.pt-action-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 10px;
    border: 1.5px solid var(--pt-line-2);
    background: #fff;
    color: var(--pt-dark);
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: all .2s ease;
    -webkit-tap-highlight-color: transparent;
}
.pt-action-btn:hover {
    border-color: var(--pt-accent);
    color: var(--pt-accent);
    background: rgba(181, 87, 126, 0.04);
}
.pt-action-btn:active {
    transform: scale(0.97);
}
.pt-action-btn svg {
    flex-shrink: 0;
}
.pt-mf-cta {
    display: inline-flex; align-items: center; gap: 8px;
    background: linear-gradient(135deg, #B5577E 0%, #6B5280 100%);
    color: #fff;
    border: none;
    padding: 13px 32px;
    border-radius: 12px;
    font-size: 14px; font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(181,87,126,0.3);
    transition: transform .15s, box-shadow .15s;
}

:root {
    --pt-black: #0B0914;
    --pt-dark-purple: #2D2640;
    --pt-mid-purple: #3D3558;
    --pt-purple: #4E4470;
    --pt-purple-pink: #7B5E8E;
    --pt-light-purple: #9B7EAE;
    --pt-pink: #C48EB0;
    --pt-mauve: #A86D94;
    --pt-accent: #B5577E;
    --pt-accent-grad: linear-gradient(135deg, #6B5280, #B5577E, #C48EB0);
    --pt-green: #1D8348;
    --pt-green-light: #27AE60;
    --pt-gold: #D4A017;
    --pt-red: #C0392B;
    --pt-red-light: #E74C3C;
    --pt-g50: #FAFAFA;
    --pt-g100: #F3F2F6;
    --pt-g200: #E4E1EB;
    --pt-g300: #C9C5D4;
    --pt-g400: #8E879F;
    --pt-g500: #5E5774;
    --pt-text: #2D2640;
    --bs-font-sans-serif: 'IBM Plex Sans Arabic', sans-serif;
}

/* Base */
body {
    font-family: 'IBM Plex Sans Arabic', sans-serif;
    background: var(--pt-g50);
    color: var(--pt-text);
    font-weight: 400;
}

/* Titres premium */
h1, h2, h3, h4, h5, h6,
.section-title,
.hero-title,
.navbar-brand {
    font-family: 'IBM Plex Sans Arabic', sans-serif;
    font-weight: 700;
    letter-spacing: -0.02em;
}

/* Paragraphes éditoriaux (optionnel) */
.article-content p,
.blog-content p {
    font-family: 'IBM Plex Sans Arabic', sans-serif;
    line-height: 1.8;
}

/* Boutons / UI */
button,
.btn,
input,
select,
textarea,
.nav-link {
    font-family: 'IBM Plex Sans Arabic', sans-serif;
}

/* ═══ Buttons ═══ */
.btn-pt-primary {
    background: var(--pt-accent-grad);
    color: #fff;
    border: none;
    font-weight: 700;
    border-radius: 14px;
    padding: 12px 24px;
    font-family: inherit;
}
.btn-pt-primary:hover { opacity: 0.9; color: #fff; }

.btn-pt-secondary {
    background: #fff;
    color: var(--pt-text);
    border: 1.5px solid var(--pt-g200);
    font-weight: 600;
    border-radius: 14px;
    padding: 12px 24px;
    font-family: inherit;
}
.btn-pt-secondary:hover { background: var(--pt-g100); color: var(--pt-text); }

.btn-pt-dark {
    background: var(--pt-dark-purple);
    color: #fff;
    border: none;
    font-weight: 700;
    border-radius: 12px;
    font-family: inherit;
}
.btn-pt-dark:hover { opacity: 0.9; color: #fff; }

.btn-pt-pill {
    border-radius: 25px;
    padding: 9px 18px;
    font-size: 13px;
    font-weight: 700;
    border: 1.5px solid var(--pt-g200);
    background: #fff;
    color: var(--pt-purple-pink);
    font-family: inherit;
}
.btn-pt-pill:hover {
    background: var(--pt-dark-purple);
    color: #fff;
    border-color: var(--pt-dark-purple);
}

.btn-pt-whatsapp {
    background: rgba(37,211,102,0.04);
    border: 1px solid rgba(37,211,102,0.15);
    color: #1B8C3A;
    border-radius: 14px;
    font-weight: 600;
    font-family: inherit;
}
.btn-pt-whatsapp:hover { background: rgba(37,211,102,0.1); color: #1B8C3A; }

/* ═══ Navbar ═══ */
.pt-navbar {
    background: #fff;
    border-bottom: 1px solid var(--pt-g200);
    padding: 10px 16px;
}
.pt-navbar .navbar-brand {
    font-size: 15px;
    font-weight: 800;
    color: var(--pt-dark-purple);
}
.pt-navbar .logo-icon {
    width: 30px; height: 30px;
    border-radius: 8px;
    background: var(--pt-accent-grad);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
}

/* ═══ Hero ═══ */
.pt-hero {
    background: linear-gradient(135deg, var(--pt-dark-purple), var(--pt-purple-pink), var(--pt-mauve));
    padding: 40px 20px;
    text-align: center;
}
.pt-hero h1 { font-size: 20px; font-weight: 800; color: #fff; }
.pt-hero .search-box {
    max-width: 500px;
    margin: 16px auto 0;
    position: relative;
}
.pt-hero .search-box input {
    width: 100%;
    height: 46px;
    border-radius: 12px;
    border: none;
    padding: 0 44px 0 16px;
    font-size: 14px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.12);
}
.pt-hero .search-box .search-icon {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--pt-g400);
}

@media (min-width: 1025px) {
    .pt-hero { padding: 80px 40px; }
    .pt-hero h1 { font-size: 36px; }
    .pt-hero .search-box { max-width: 600px; }
    .pt-hero .search-box input { height: 52px; font-size: 16px; }
}

/* ═══ Carousel Section ═══ */
.pt-section-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--pt-dark-purple);
}
@media (min-width: 1025px) { .pt-section-title { font-size: 24px; } }

.pt-carousel-track {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding-bottom: 6px;
}
.pt-carousel-track::-webkit-scrollbar { display: none; }

.pt-carousel-arrow {
    width: 32px; height: 32px;
    border-radius: 50%;
    border: none;
    background: #fff;
    color: var(--pt-dark-purple);
    box-shadow: 0 2px 10px rgba(45,38,64,0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 60px;
    z-index: 10;
}
@media (min-width: 1025px) { .pt-carousel-arrow { width: 40px; height: 40px; } }

/* ═══ Event Card ═══ */
.pt-event-card {
    min-width: 240px;
    flex: 0 0 auto;
    scroll-snap-align: start;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid var(--pt-g200);
    background: #fff;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.15s ease;
}
.pt-event-card:hover { box-shadow: 0 4px 16px rgba(45,38,64,0.1); color: inherit; }
@media (min-width: 1025px) { .pt-event-card { min-width: 300px; } }

.pt-event-card .card-img {
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
@media (min-width: 1025px) { .pt-event-card .card-img { height: 180px; } }

.pt-event-card .date-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    background: #fff;
    border-radius: 8px;
    padding: 4px 10px;
    text-align: center;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.pt-event-card .date-badge .month { font-size: 9px; color: var(--pt-accent); font-weight: 700; }
.pt-event-card .date-badge .day { font-size: 16px; font-weight: 800; color: var(--pt-dark-purple); line-height: 1; }

.pt-event-card .card-body { padding: 10px 12px; }
.pt-event-card .weekday { font-size: 10px; color: var(--pt-g400); }
.pt-event-card .event-name { font-size: 13px; font-weight: 700; color: var(--pt-dark-purple); line-height: 1.5; }

/* ═══ Ticket Card ═══ */
.pt-ticket-card {
    background: #fff;
    border: 1px solid var(--pt-g200);
    border-radius: 14px;
    padding: 12px 16px;
    transition: all 0.15s ease;
}
.pt-ticket-card:hover {
    border-color: rgba(123,94,142,0.25);
    box-shadow: 0 2px 12px rgba(11,9,20,0.06);
}
.pt-ticket-card .section-name { font-size: 15px; font-weight: 800; color: var(--pt-dark-purple); }
.pt-ticket-card .row-name { font-size: 12px; color: var(--pt-g400); }
.pt-ticket-card .adj-badge { font-size: 11px; font-weight: 600; }
.pt-ticket-card .adj-badge.adj-yes { color: var(--pt-green); }
.pt-ticket-card .adj-badge.adj-no { color: var(--pt-g400); }
.pt-ticket-card .best-label { font-size: 10px; font-weight: 700; color: var(--pt-gold); }
.pt-ticket-card .price-amount { font-size: 18px; font-weight: 800; color: var(--pt-text); direction: ltr; }
.pt-ticket-card .price-currency { font-size: 11px; color: var(--pt-g400); }
.pt-ticket-card .btn-buy {
    padding: 8px 20px;
    border-radius: 10px;
    border: none;
    background: var(--pt-accent-grad);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}
.pt-ticket-card .btn-buy:disabled {
    background: var(--pt-g200);
    color: var(--pt-g400);
}

/* ═══ Filter Bar ═══ */
.pt-filter-bar {
    background: #fff;
    border-bottom: 1px solid var(--pt-g200);
    padding: 12px 20px;
    position: sticky;
    top: 0;
    z-index: 50;
}
.pt-toggle-switch {
    width: 36px; height: 20px;
    border-radius: 10px;
    background: var(--pt-g300);
    position: relative;
    transition: background 0.2s ease;
    cursor: pointer;
    display: inline-block;
}
.pt-toggle-switch.active { background: var(--pt-dark-purple); }
.pt-toggle-knob {
    width: 16px; height: 16px;
    border-radius: 50%;
    background: #fff;
    position: absolute;
    top: 2px;
    right: 2px;
    transition: right 0.2s ease;
}
.pt-toggle-switch.active .pt-toggle-knob { right: 18px; }

/* ═══ Bottom Sheet / Modal ═══ */
.pt-sheet-overlay {
    position: fixed; inset: 0; z-index: 1050;
    background: rgba(11,9,20,0.5);
    backdrop-filter: blur(8px);
    display: none;
    align-items: flex-end;
    justify-content: center;
}
.pt-sheet-overlay.show { display: flex; }
@media (min-width: 1025px) { .pt-sheet-overlay.show { align-items: center; } }

.pt-sheet-content {
    background: #fff;
    border-radius: 24px 24px 0 0;
    padding: 12px 24px 32px;
    width: 100%;
    max-width: 500px;
    max-height: 90vh;
    overflow-y: auto;
}
@media (min-width: 1025px) { .pt-sheet-content { border-radius: 24px; max-height: 80vh; } }

.pt-sheet-handle {
    width: 40px; height: 4px;
    background: var(--pt-g300);
    border-radius: 2px;
    margin: 0 auto 24px;
}

/* ═══ Checkout ═══ */
.pt-checkout-header {
    background: var(--pt-dark-purple);
    padding: 14px 20px;
}
.pt-timer {
    padding: 6px 14px;
    border-radius: 20px;
    background: rgba(255,255,255,0.08);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    font-family: monospace;
}
.pt-timer.urgent { background: rgba(181,87,126,0.25); color: var(--pt-accent); }

.pt-checkout-section {
    padding: 16px 20px;
    border-bottom: 1px solid var(--pt-g200);
    background: #fff;
}

.pt-radio-option {
    width: 100%;
    padding: 14px 16px;
    border-radius: 14px;
    border: 1.5px solid var(--pt-g200);
    background: #fff;
    cursor: pointer;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 12px;
    text-align: right;
}
.pt-radio-option.active {
    border-color: var(--pt-mauve);
    background: rgba(168,109,148,0.03);
}
.pt-radio-dot {
    width: 22px; height: 22px;
    border-radius: 50%;
    border: 2px solid var(--pt-g300);
    background: #fff;
    flex-shrink: 0;
}
.pt-radio-option.active .pt-radio-dot {
    border: 6px solid var(--pt-mauve);
}

/* ═══ Result Pages (Success / Failure) ═══ */
.pt-result-page {
    min-height: 100vh;
    background: var(--pt-g100);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
}
@media (min-width: 1025px) { .pt-result-page { padding: 60px; } }

.pt-result-card {
    width: 100%;
    max-width: 440px;
    background: #fff;
    border-radius: 24px;
    padding: 32px 24px;
    box-shadow: 0 4px 30px rgba(45,38,64,0.08);
}
@media (min-width: 1025px) { .pt-result-card { max-width: 500px; padding: 40px 32px; } }

.pt-result-icon {
    width: 80px; height: 80px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 20px;
    animation: popIn 0.4s ease;
}
@media (min-width: 1025px) { .pt-result-icon { width: 96px; height: 96px; } }

.pt-result-icon.success {
    background: linear-gradient(135deg, var(--pt-green), var(--pt-green-light));
    box-shadow: 0 8px 30px rgba(29,131,72,0.3);
}
.pt-result-icon.failure {
    background: linear-gradient(135deg, var(--pt-red), var(--pt-red-light));
    box-shadow: 0 8px 30px rgba(192,57,43,0.3);
}

.pt-detail-box {
    background: var(--pt-g50);
    border-radius: 16px;
    padding: 16px 18px;
    border: 1px solid var(--pt-g200);
}
.pt-detail-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--pt-g200);
}
.pt-detail-row:last-child { border-bottom: none; }

.pt-error-box {
    background: rgba(192,57,43,0.05);
    border: 1px solid rgba(192,57,43,0.1);
    border-radius: 14px;
    padding: 14px 16px;
}

.pt-tips-box {
    background: var(--pt-g50);
    border: 1px solid var(--pt-g200);
    border-radius: 14px;
    padding: 16px;
}

/* Contact confirmation */
.pt-contact-wrap {
    height: 46px;
    border-radius: 12px;
    border: 1.5px solid var(--pt-g200);
    background: #fff;
    transition: all 0.2s ease;
}
.pt-contact-wrap.confirmed {
    border-color: var(--pt-green);
    background: rgba(29,131,72,0.04);
}

/* ═══ Footer ═══ */
.pt-footer {
    background: var(--pt-g50);
    border-top: 1px solid var(--pt-g200);
}
.pt-footer h4 { font-size: 13px; font-weight: 700; color: var(--pt-dark-purple); }
.pt-footer a { font-size: 12px; color: var(--pt-g500); text-decoration: none; }
.pt-footer a:hover { color: var(--pt-accent); }
.pt-footer .pay-badge {
    padding: 10px 6px;
    border-radius: 8px;
    border: 1px solid var(--pt-g200);
    text-align: center;
    font-size: 10px;
    font-weight: 800;
    background: #F7F7F7;
}
.pt-footer .social-icon {
    width: 38px; height: 38px;
    border-radius: 50%;
    border: 1.5px solid var(--pt-g200);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    font-size: 16px;
}

/* ═══ Guarantee Banner ═══ */
.pt-guarantee {
    background: var(--pt-dark-purple);
    border-radius: 14px;
    padding: 16px 20px;
}

/* ═══ Animations ═══ */
@keyframes popIn {
    0%   { transform: scale(0.5); opacity: 0; }
    70%  { transform: scale(1.05); }
    100% { transform: scale(1); opacity: 1; }
}
@keyframes fadeUp {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}



:root {
    --pt-black: #0B0914;
    --pt-dark-purple: #2D2640;
    --pt-mid-purple: #3D3558;
    --pt-purple: #4E4470;
    --pt-purple-pink: #7B5E8E;
    --pt-light-purple: #9B7EAE;
    --pt-pink: #C48EB0;
    --pt-mauve: #A86D94;
    --pt-accent: #B5577E;
    --pt-accent-grad: linear-gradient(135deg, #6B5280, #B5577E, #C48EB0);
    --pt-green: #1D8348;
    --pt-green-light: #27AE60;
    --pt-gold: #D4A017;
    --pt-red: #C0392B;
    --pt-red-light: #E74C3C;
    --pt-g50: #FAFAFA;
    --pt-g100: #F3F2F6;
    --pt-g200: #E4E1EB;
    --pt-g300: #C9C5D4;
    --pt-g400: #8E879F;
    --pt-g500: #5E5774;
    --pt-text: #2D2640;
    --bs-font-sans-serif: 'IBM Plex Sans Arabic', sans-serif;
}

body {
    font-family: 'IBM Plex Sans Arabic', sans-serif;
    background: var(--pt-g50);
    color: var(--pt-text);
    overflow-x: clip;
}
html { background: #FAFAFA; }


/* ═══ Buttons ═══ */
.btn-pt-primary {
    background: var(--pt-accent-grad);
    color: #fff;
    border: none;
    font-weight: 700;
    border-radius: 14px;
    padding: 12px 24px;
    font-family: inherit;
}
.btn-pt-primary:hover { opacity: 0.9; color: #fff; }

.btn-pt-secondary {
    background: #fff;
    color: var(--pt-text);
    border: 1.5px solid var(--pt-g200);
    font-weight: 600;
    border-radius: 14px;
    padding: 12px 24px;
    font-family: inherit;
}
.btn-pt-secondary:hover { background: var(--pt-g100); color: var(--pt-text); }

.btn-pt-dark {
    background: var(--pt-dark-purple);
    color: #fff;
    border: none;
    font-weight: 700;
    border-radius: 12px;
    font-family: inherit;
}
.btn-pt-dark:hover { opacity: 0.9; color: #fff; }

.btn-pt-pill {
    border-radius: 25px;
    padding: 9px 18px;
    font-size: 13px;
    font-weight: 700;
    border: 1.5px solid var(--pt-g200);
    background: #fff;
    color: var(--pt-purple-pink);
    font-family: inherit;
}
.btn-pt-pill:hover {
    background: var(--pt-dark-purple);
    color: #fff;
    border-color: var(--pt-dark-purple);
}

.btn-pt-whatsapp {
    background: rgba(37,211,102,0.04);
    border: 1px solid rgba(37,211,102,0.15);
    color: #1B8C3A;
    border-radius: 14px;
    font-weight: 600;
    font-family: inherit;
}
.btn-pt-whatsapp:hover { background: rgba(37,211,102,0.1); color: #1B8C3A; }

/* ═══ Navbar ═══ */
.pt-navbar {
    background: #fff;
    border-bottom: 1px solid var(--pt-g200);
    padding: 10px 16px;
}
.pt-navbar .navbar-brand {
    font-size: 15px;
    font-weight: 800;
    color: var(--pt-dark-purple);
}
.pt-navbar .logo-icon {
    width: 30px; height: 30px;
    border-radius: 8px;
    background: var(--pt-accent-grad);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
}

/* ═══ Hero ═══ */
.pt-hero {
    background: linear-gradient(135deg, var(--pt-dark-purple), var(--pt-purple-pink), var(--pt-mauve));
    padding: 40px 20px;
    text-align: center;
}
.pt-hero h1 { font-size: 20px; font-weight: 800; color: #fff; }
.pt-hero .search-box {
    max-width: 500px;
    margin: 16px auto 0;
    position: relative;
}
.pt-hero .search-box input {
    width: 100%;
    height: 46px;
    border-radius: 12px;
    border: none;
    padding: 0 44px 0 16px;
    font-size: 16px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.12);
}
.pt-hero .search-box .search-icon {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--pt-g400);
}

@media (min-width: 1025px) {
    .pt-hero { padding: 80px 40px; }
    .pt-hero h1 { font-size: 36px; }
    .pt-hero .search-box { max-width: 600px; }
    .pt-hero .search-box input { height: 52px; font-size: 16px; }
}

/* ═══ Carousel Section ═══ */
.pt-section-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--pt-dark-purple);
}
@media (min-width: 1025px) { .pt-section-title { font-size: 24px; } }

.pt-carousel-track {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding-bottom: 6px;
}
.pt-carousel-track::-webkit-scrollbar { display: none; }

.pt-carousel-arrow {
    width: 32px; height: 32px;
    border-radius: 50%;
    border: none;
    background: #fff;
    color: var(--pt-dark-purple);
    box-shadow: 0 2px 10px rgba(45,38,64,0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 60px;
    z-index: 10;
}
@media (min-width: 1025px) { .pt-carousel-arrow { width: 40px; height: 40px; } }

/* ═══ Event Card ═══ */
.pt-event-card {
    min-width: 240px;
    flex: 0 0 auto;
    scroll-snap-align: start;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid var(--pt-g200);
    background: #fff;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.15s ease;
}
.pt-event-card:hover { box-shadow: 0 4px 16px rgba(45,38,64,0.1); color: inherit; }
@media (min-width: 1025px) { .pt-event-card { min-width: 300px; } }

.pt-event-card .card-img {
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
@media (min-width: 1025px) { .pt-event-card .card-img { height: 180px; } }

.pt-event-card .date-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    background: #fff;
    border-radius: 8px;
    padding: 4px 10px;
    text-align: center;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.pt-event-card .date-badge .month { font-size: 9px; color: var(--pt-accent); font-weight: 700; }
.pt-event-card .date-badge .day { font-size: 16px; font-weight: 800; color: var(--pt-dark-purple); line-height: 1; }

.pt-event-card .card-body { padding: 10px 12px; }
.pt-event-card .weekday { font-size: 10px; color: var(--pt-g400); }
.pt-event-card .event-name { font-size: 13px; font-weight: 700; color: var(--pt-dark-purple); line-height: 1.5; }

/* ═══ Ticket Card ═══ */
.pt-ticket-card {
    background: #fff;
    border: 1px solid var(--pt-g200);
    border-radius: 14px;
    padding: 12px 16px;
    transition: all 0.15s ease;
}
.pt-ticket-card:hover {
    border-color: rgba(123,94,142,0.25);
    box-shadow: 0 2px 12px rgba(11,9,20,0.06);
}
.pt-ticket-card .section-name { font-size: 15px; font-weight: 800; color: var(--pt-dark-purple); }
.pt-ticket-card .row-name { font-size: 12px; color: var(--pt-g400); }
.pt-ticket-card .adj-badge { font-size: 11px; font-weight: 600; }
.pt-ticket-card .adj-badge.adj-yes { color: var(--pt-green); }
.pt-ticket-card .adj-badge.adj-no { color: var(--pt-g400); }
.pt-ticket-card .best-label { font-size: 10px; font-weight: 700; color: var(--pt-gold); }
.pt-ticket-card .price-amount { font-size: 18px; font-weight: 800; color: var(--pt-text); direction: ltr; }
.pt-ticket-card .price-currency { font-size: 11px; color: var(--pt-g400); }
.pt-ticket-card .btn-buy {
    padding: 8px 20px;
    border-radius: 10px;
    border: none;
    background: var(--pt-accent-grad);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}
.pt-ticket-card .btn-buy:disabled {
    background: var(--pt-g200);
    color: var(--pt-g400);
}

/* ═══ Filter Bar ═══ */
.pt-filter-bar {
    background: #fff;
    border-bottom: 1px solid var(--pt-g200);
    padding: 12px 20px;
    position: sticky;
    top: 0;
    z-index: 50;
}
.pt-toggle-switch {
    width: 36px; height: 20px;
    border-radius: 10px;
    background: var(--pt-g300);
    position: relative;
    transition: background 0.2s ease;
    cursor: pointer;
    display: inline-block;
}
.pt-toggle-switch.active { background: var(--pt-dark-purple); }
.pt-toggle-knob {
    width: 16px; height: 16px;
    border-radius: 50%;
    background: #fff;
    position: absolute;
    top: 2px;
    right: 2px;
    transition: right 0.2s ease;
}
.pt-toggle-switch.active .pt-toggle-knob { right: 18px; }

/* ═══ Bottom Sheet / Modal ═══ */
.pt-sheet-overlay {
    position: fixed; inset: 0; z-index: 1050;
    background: rgba(11,9,20,0.5);
    backdrop-filter: blur(8px);
    display: none;
    align-items: flex-end;
    justify-content: center;
}
.pt-sheet-overlay.show { display: flex; }
@media (min-width: 1025px) { .pt-sheet-overlay.show { align-items: end; } }

.pt-sheet-content {
    background: #fff;
    border-radius: 24px 24px 0 0;
    padding: 12px 24px 32px;
    width: 100%;
    max-width: 500px;
    max-height: 90vh;
    overflow-y: auto;
}
@media (min-width: 1025px) { .pt-sheet-content { border-radius: 24px; max-height: 80vh; } }

.pt-sheet-handle {
    width: 40px; height: 4px;
    background: var(--pt-g300);
    border-radius: 2px;
    margin: 0 auto 24px;
}

/* ═══ Checkout ═══ */
.pt-checkout-header {
    background: var(--pt-dark-purple);
    padding: 14px 20px;
}
.pt-timer {
    padding: 6px 14px;
    border-radius: 20px;
    background: rgba(255,255,255,0.08);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    font-family: monospace;
}
.pt-timer.urgent { background: rgba(181,87,126,0.25); color: var(--pt-accent); }

.pt-checkout-section {
    padding: 16px 20px;
    border-bottom: 1px solid var(--pt-g200);
    background: #fff;
}

.pt-radio-option {
    width: 100%;
    padding: 14px 16px;
    border-radius: 14px;
    border: 1.5px solid var(--pt-g200);
    background: #fff;
    cursor: pointer;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 12px;
    text-align: right;
}
.pt-radio-option.active {
    border-color: var(--pt-mauve);
    background: rgba(168,109,148,0.03);
}
.pt-radio-dot {
    width: 22px; height: 22px;
    border-radius: 50%;
    border: 2px solid var(--pt-g300);
    background: #fff;
    flex-shrink: 0;
}
.pt-radio-option.active .pt-radio-dot {
    border: 6px solid var(--pt-mauve);
}

/* ═══ Result Pages (Success / Failure) ═══ */
.pt-result-page {
    min-height: 100vh;
    background: var(--pt-g100);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
}
@media (min-width: 1025px) { .pt-result-page { padding: 60px; } }

.pt-result-card {
    width: 100%;
    max-width: 440px;
    background: #fff;
    border-radius: 24px;
    padding: 32px 24px;
    box-shadow: 0 4px 30px rgba(45,38,64,0.08);
}
@media (min-width: 1025px) { .pt-result-card { max-width: 500px; padding: 40px 32px; } }

.pt-result-icon {
    width: 80px; height: 80px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 20px;
    animation: popIn 0.4s ease;
}
@media (min-width: 1025px) { .pt-result-icon { width: 96px; height: 96px; } }

.pt-result-icon.success {
    background: linear-gradient(135deg, var(--pt-green), var(--pt-green-light));
    box-shadow: 0 8px 30px rgba(29,131,72,0.3);
}
.pt-result-icon.failure {
    background: linear-gradient(135deg, var(--pt-red), var(--pt-red-light));
    box-shadow: 0 8px 30px rgba(192,57,43,0.3);
}

.pt-detail-box {
    background: var(--pt-g50);
    border-radius: 16px;
    padding: 16px 18px;
    border: 1px solid var(--pt-g200);
}
.pt-detail-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--pt-g200);
}
.pt-detail-row:last-child { border-bottom: none; }

.pt-error-box {
    background: rgba(192,57,43,0.05);
    border: 1px solid rgba(192,57,43,0.1);
    border-radius: 14px;
    padding: 14px 16px;
}

.pt-tips-box {
    background: var(--pt-g50);
    border: 1px solid var(--pt-g200);
    border-radius: 14px;
    padding: 16px;
}

/* Contact confirmation */
.pt-contact-wrap {
    height: 46px;
    border-radius: 12px;
    border: 1.5px solid var(--pt-g200);
    background: #fff;
    transition: all 0.2s ease;
}
.pt-contact-wrap.confirmed {
    border-color: var(--pt-green);
    background: rgba(29,131,72,0.04);
}

/* ═══ Footer ═══ */
.pt-footer {
    background: var(--pt-g50);
    border-top: 1px solid var(--pt-g200);
}
.pt-footer h4 { font-size: 13px; font-weight: 700; color: var(--pt-dark-purple); }
.pt-footer a { font-size: 12px; color: var(--pt-g500); text-decoration: none; }
.pt-footer a:hover { color: var(--pt-accent); }
.pt-footer .pay-badge {
    padding: 10px 6px;
    border-radius: 8px;
    border: 1px solid var(--pt-g200);
    text-align: center;
    font-size: 10px;
    font-weight: 800;
    background: #F7F7F7;
}
.pt-footer .social-icon {
    width: 38px; height: 38px;
    border-radius: 50%;
    border: 1.5px solid var(--pt-g200);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    font-size: 16px;
}

/* ═══ Guarantee Banner ═══ */
.pt-guarantee {
    background: var(--pt-dark-purple);
    border-radius: 14px;
    padding: 16px 20px;
}

/* ═══ Animations ═══ */
@keyframes popIn {
    0%   { transform: scale(0.5); opacity: 0; }
    70%  { transform: scale(1.05); }
    100% { transform: scale(1); opacity: 1; }
}
@keyframes fadeUp {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}

.page{display:none;min-height:100vh;background:#FAFAFA;}
.page.active{display:block;animation:fadeIn .2s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.prow-last{border-bottom:none!important;}
*{-webkit-tap-highlight-color:transparent;}
button{touch-action:manipulation;font-family:'IBM Plex Sans Arabic',sans-serif;}
a{touch-action:manipulation;}
input,select{touch-action:auto;}
/* Toggle */
.tog{width:44px;height:26px;border-radius:13px;background:#C9C5D4;border:none;position:relative;cursor:pointer;transition:background .2s;flex-shrink:0;}
.tog.on{background:#2D2640;}
.tog span{display:block;width:20px;height:20px;border-radius:50%;background:#fff;position:absolute;top:3px;right:3px;transition:right .2s;pointer-events:none;}
.tog.on span{right:21px;}

/* Dropdown fix */
.dropdown-menu { z-index: 1000 !important; }
.pt-filter-bar { overflow: visible !important; }

.pt-h-scroll::-webkit-scrollbar { display: none; }

/* Language & Currency Dropdowns */
.pt-dropdown { position:relative; cursor:pointer; }
.pt-dropdown-menu {
    display:none; position:absolute; top:calc(100% + 8px); left:0;
    background:#fff; border:1px solid #E4E1EB; border-radius:12px;
    box-shadow:0 8px 24px rgba(0,0,0,.12); min-width:110px; z-index:999;
    overflow:hidden;
}
.pt-dropdown-menu.open { display:block; }
.pt-dropdown-item {
    padding:11px 16px; font-size:14px; font-weight:600; color:#2D2640;
    display:flex; align-items:center; gap:8px; transition:background .15s;
    cursor:pointer; white-space:nowrap;
}
.pt-dropdown-item:hover { background:#F5F3F9; }
.pt-dropdown-item.active { color:#fff; font-weight:700; background:#B5577E; }
.pt-dropdown-item.active:hover { background:#a04d6e; }

/* LTR override when English is active */
html[dir="ltr"] .page {
    text-align: left !important;
}
html[dir="ltr"] [style*="text-align:right"],
html[dir="ltr"] [style*="text-align: right"] {
    text-align: left !important;
}
html[dir="ltr"] [style*="justify-content:flex-end"],
html[dir="ltr"] [style*="justify-content: flex-end"] {
    justify-content: flex-start !important;
}
html[dir="ltr"] [style*="direction:rtl"],
html[dir="ltr"] [style*="direction: rtl"] {
    direction: ltr !important;
}
html[dir="ltr"] .pt-h-scroll {
    direction: ltr !important;
}
html[dir="ltr"] nav [style*="direction:ltr"] {
    direction: ltr !important;
}

/* Pagination — app design system */
.pt-pagination-nav {
    display: flex;
    flex-direction: column;
    padding: 8px 16px;
}

.pt-pagination {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0;
    margin: 0;
    list-style: none;
    flex-wrap: wrap;
    justify-content: center;
}

.pt-page-item { display: flex; }

.pt-page-link {
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    border-radius: 10px;
    border: 1.5px solid var(--pt-line-2);
    background: #fff;
    color: var(--pt-dark);
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all .2s ease;
    -webkit-tap-highlight-color: transparent;
    text-decoration: none;
}
.pt-page-link:hover {
    border-color: var(--pt-accent);
    color: var(--pt-accent);
    background: rgba(181, 87, 126, 0.04);
    text-decoration: none;
}
.pt-page-link:active { transform: scale(0.95); }

.pt-page-link-text { padding: 0 16px; }

.pt-page-item.active .pt-page-link {
    background: var(--pt-grad);
    border-color: transparent;
    color: #fff;
    box-shadow: 0 4px 12px rgba(181, 87, 126, 0.25);
    cursor: default;
}
.pt-page-item.active .pt-page-link:hover {
    color: #fff;
    background: var(--pt-grad);
}

.pt-page-item.disabled .pt-page-link {
    color: var(--pt-light);
    background: var(--pt-g50);
    border-color: var(--pt-line);
    cursor: not-allowed;
    opacity: 0.6;
}
.pt-page-item.disabled .pt-page-link:hover {
    border-color: var(--pt-line);
    color: var(--pt-light);
    background: var(--pt-g50);
    transform: none;
}

.pt-page-dots {
    border: none !important;
    background: transparent !important;
    color: var(--pt-light) !important;
    cursor: default !important;
    box-shadow: none !important;
}

/* RTL chevrons — flip via CSS based on dir attribute */
[dir="rtl"] .pt-chev-prev path { d: path("M9 18l6-6-6-6"); }
[dir="rtl"] .pt-chev-next path { d: path("M15 18l-6-6 6-6"); }
/* Fallback for browsers that don't support CSS `d:` property */
[dir="rtl"] .pt-chev { transform: scaleX(-1); }

/* Results count + desktop layout */
.pt-pagination-results {
    font-size: 12px;
    color: var(--pt-mid);
    margin: 0;
}
.pt-pagination-bold {
    font-weight: 700;
    color: var(--pt-dark);
}

/* Mobile: show only prev/next, hide desktop */
.pt-pagination-mobile { display: flex; justify-content: space-between; width: 100%; }
.pt-pagination-desktop { display: none; }

@media (min-width: 576px) {
    .pt-pagination-mobile { display: none; }
    .pt-pagination-desktop {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        flex-wrap: wrap;
    }
}
.pt-page-title { font-size: 26px; font-weight: 800; color: var(--pt-dark); }
.pt-page-count { font-size: 12px; color: var(--pt-light); margin-inline-start: auto; }

/* ═══ Desktop shell — caps page content at 1200px with side gutters ═══ */
.pt-shell { width: 100%; max-width: 1200px; margin-inline: auto; }
