:root {
    --tp-bg: #f6f8fb;
    --tp-bg-2: #ffffff;
    --tp-panel: #ffffff;
    --tp-panel-strong: #ffffff;
    --tp-line: #dde4ee;
    --tp-text: #101828;
    --tp-muted: #667085;
    --tp-cyan: #0077ff;
    --tp-lime: #12b76a;
    --tp-pink: #e31b54;
    --tp-orange: #f79009;
    --tp-green: #12b76a;
}

body,
.bg-one,
.bg-two,
.profile-shell,
.receipt-shell,
.ticket-view-shell {
    background: #f6f8fb !important;
    color: #101828 !important;
}

body::before,
.profile-shell::before {
    opacity: .35 !important;
    background-image:
        linear-gradient(rgba(16, 24, 40, .05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(16, 24, 40, .05) 1px, transparent 1px) !important;
}

.header-section {
    background: rgba(3,7,18,.96) !important;
    border-bottom: 1px solid rgba(255,255,255,.1) !important;
    box-shadow: 0 10px 34px rgba(15,23,42,.18) !important;
}

.header-section.header-active {
    background: rgba(3,7,18,.98) !important;
}

.menu li a {
    color: rgba(255,255,255,.82) !important;
}

.menu li a.active,
.menu li a:hover {
    color: #35e7ff !important;
}

.menu .submenu li a {
    color: #101828 !important;
}

.menu .submenu li a.active,
.menu .submenu li a:hover {
    color: #0057d9 !important;
}

.menu .submenu,
.profile-hero,
.profile-section,
.ticket-category,
.ticket-card,
.ticket-owned-item,
.payment-card,
.pending-item,
.empty-state,
.ticket-metric,
.stat-box,
.event-grid,
.event-card,
.tp-card,
.tp-rail,
.receipt-card,
.receipt-panel,
.receipt-ticket,
.ticket-view-card {
    background: #ffffff !important;
    border-color: #dde4ee !important;
    box-shadow: 0 18px 50px rgba(15,23,42,.08) !important;
    color: #101828 !important;
}

.profile-title p,
.section-title span,
.ticket-summary-title span,
.event-info span,
.movie-content span,
.movie-content small,
.receipt-panel dt,
.ticket-view-details dt,
.text-white-50 {
    color: #667085 !important;
}

.section-title strong,
.ticket-summary-title strong,
.event-info h5,
.event-info h5 a,
.movie-content h5,
.movie-content h5 a,
.profile-title h1,
.receipt-panel h3,
.ticket-view-details dd,
.profile-form label,
.transfer-box label,
.receipt-panel dd,
.stat-box strong,
.ticket-metric strong {
    color: #101828 !important;
}

.section-body,
.profile-section > summary,
.ticket-category summary,
.event-info,
.movie-content,
.newslater-form,
.ticket-owned-item,
.ticket-metric,
.payment-card,
.pending-item {
    background: #ffffff !important;
}

.profile-form input,
.profile-form select,
.profile-form textarea,
.transfer-box input,
.email-box input,
.quantity-control input,
.quantity-control button {
    background: #ffffff !important;
    border-color: #d0d5dd !important;
    color: #101828 !important;
}

.readonly-field {
    background: #f2f4f7 !important;
    color: #667085 !important;
}

.custom-button,
.tp-btn,
.view-all,
.newslater-form button,
.header-button a {
    background: linear-gradient(135deg, #12b76a, #0077ff) !important;
    color: #ffffff !important;
    box-shadow: 0 12px 28px rgba(0,119,255,.18) !important;
}

.back-button,
.tp-btn-outline,
.profile-actions .back-button,
.ticket-actions .back-button {
    background: #ffffff !important;
    color: #101828 !important;
    border: 1px solid #d0d5dd !important;
    box-shadow: 0 8px 20px rgba(15,23,42,.06) !important;
}

.banner-section.tp-hero {
    background: #f6f8fb !important;
}

.tp-hero::before {
    background:
        linear-gradient(90deg, rgba(246,248,251,.96), rgba(246,248,251,.55) 48%, rgba(246,248,251,.92)),
        radial-gradient(circle at 60% 34%, rgba(0,119,255,.13), transparent 28rem),
        radial-gradient(circle at 30% 70%, rgba(18,183,106,.12), transparent 22rem) !important;
}

.tp-hero-copy,
.tp-kicker,
.tp-section-head p,
.section-header-1 p,
.profile-title p,
.ticket-owned-item span,
.ticket-metric span,
.stat-box span,
.receipt-ticket span,
.receipt-empty,
.checkout-note {
    color: #667085 !important;
}

.tp-hero-title {
    color: #101828 !important;
    background: none !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
    text-shadow: 0 2px 0 rgba(255,255,255,.45);
}

.tp-gradient-text {
    color: #07101f !important;
    background: none !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
}

.tp-kicker {
    background: #ffffff !important;
    border-color: #d0d5dd !important;
    color: #0057d9 !important;
}

.tp-kicker i {
    color: #12b76a !important;
}

.profile-title h1,
.tp-hero-title,
.tp-gradient-text,
.dashboard-hero h1,
.scanner-hero h1 {
    background: linear-gradient(110deg, #0057d9, #12b76a 58%, #e31b54) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    color: transparent !important;
}

.newslater-container,
.footer-section {
    background: #ffffff !important;
    border-color: #dde4ee !important;
}

.footer-section p,
.footer-section a,
.footer-bottom-area .links a {
    color: #667085 !important;
}

.footer-top,
.footer-bottom-area {
    border-color: #dde4ee !important;
}

.social-icons li a {
    background: #ffffff !important;
    color: #101828 !important;
    border-color: #dde4ee !important;
}

.ticket-mini-actions {
    display: flex !important;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 7px;
}

.ticket-mini-actions a {
    color: #0057d9 !important;
    font-weight: 800;
    font-size: 12px;
}

@media print {
    body,
    .receipt-shell,
    .ticket-view-shell {
        background: #fff !important;
    }
}

/* Final readability pass: keep the light theme crisp even against older dark template rules. */
body {
    font-size: 16px !important;
    line-height: 1.55 !important;
}

.banner-section.tp-hero {
    min-height: auto !important;
    padding: 140px 0 78px !important;
    overflow: hidden !important;
}

.tp-hero-grid {
    grid-template-columns: minmax(0, .95fr) minmax(320px, .8fr) !important;
    gap: 54px !important;
}

.tp-hero-copy-block {
    max-width: 720px !important;
}

.tp-hero-title,
.tp-hero-title .tp-gradient-text {
    color: #101828 !important;
    background: none !important;
    -webkit-text-fill-color: #101828 !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
    font-size: clamp(44px, 5.4vw, 78px) !important;
    line-height: 1.05 !important;
    letter-spacing: 0 !important;
    text-shadow: none !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}

.tp-gradient-text {
    display: inline !important;
}

.tp-hero-copy {
    max-width: 640px !important;
    color: #344054 !important;
    font-size: 18px !important;
    line-height: 1.7 !important;
    margin-bottom: 0 !important;
}

.tp-hero-stats {
    max-width: 620px !important;
}

.tp-stat {
    background: #ffffff !important;
    border: 1px solid #dde4ee !important;
}

.tp-stat strong {
    color: #101828 !important;
}

.tp-stat span {
    color: #667085 !important;
}

.tp-section {
    padding: 76px 0 !important;
    background: #f6f8fb !important;
}

.tp-section.alt {
    background: #ffffff !important;
}

.tp-section-head .title,
.section-header-1 .title,
.tp-category strong,
.event-info h5,
.movie-content h5,
.event-info h5 a,
.movie-content h5 a {
    color: #101828 !important;
    -webkit-text-fill-color: #101828 !important;
    background: none !important;
}

.tp-section-head p,
.section-header-1 p,
.tp-category span,
.event-info span,
.movie-content span,
.movie-content small {
    color: #667085 !important;
}

.tp-category {
    background: #ffffff !important;
    border: 1px solid #dde4ee !important;
    box-shadow: 0 12px 34px rgba(15,23,42,.06) !important;
}

.tp-rail,
.event-card,
.event-grid,
.movie-content,
.event-info {
    background: #ffffff !important;
}

.newslater-wrapper .title,
.newslater-wrapper .cate,
.newslater-wrapper p {
    color: #ffffff !important;
}

.newslater-form input {
    color: #101828 !important;
}

@media (max-width: 1199px) {
    .tp-hero-grid {
        grid-template-columns: 1fr !important;
    }

    .tp-showcase {
        min-height: 380px !important;
    }
}

@media (max-width: 767px) {
    .tp-hero-title,
    .tp-hero-title .tp-gradient-text {
        font-size: clamp(38px, 12vw, 56px) !important;
    }

    .tp-category-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* Hard contrast guard for legacy template text that still ships with white headings. */
.tp-section .title,
.tp-section h1,
.tp-section h2,
.tp-section h3,
.tp-section h4,
.tp-section h5,
.tp-section h6,
.tp-section .event-title,
.tp-section .movie-title,
.tp-section .event-info a,
.tp-section .movie-content a,
.tp-section .event-info strong,
.tp-section .movie-content strong {
    color: #101828 !important;
    -webkit-text-fill-color: #101828 !important;
    text-shadow: none !important;
}

.tp-section p,
.tp-section span,
.tp-section small,
.tp-section li,
.tp-section .event-info,
.tp-section .movie-content,
.tp-section .movie-content .duration,
.tp-section .event-info .location,
.tp-section .movie-content .location {
    color: #667085 !important;
    text-shadow: none !important;
}

.tp-section .tp-kicker,
.tp-section .tp-kicker i,
.tp-category i,
.tp-category strong {
    color: #0057d9 !important;
}

.tp-section-head {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 24px !important;
    margin-bottom: 28px !important;
}

.tp-section-head > div {
    min-width: 0 !important;
}

.tp-section-head .title {
    font-size: clamp(30px, 4vw, 48px) !important;
    line-height: 1.12 !important;
    margin-bottom: 10px !important;
}

.tp-section-head p {
    max-width: 620px !important;
    font-size: 16px !important;
    line-height: 1.6 !important;
}

.tp-rail {
    overflow: visible !important;
}

.event-card,
.event-grid {
    overflow: hidden !important;
    min-height: 100% !important;
    border: 1px solid #dde4ee !important;
}

.event-card img,
.event-grid img {
    display: block !important;
}

.tp-showcase {
    pointer-events: none !important;
}

@media (max-width: 1199px) {
    .tp-showcase {
        display: none !important;
    }
}

@media (max-width: 767px) {
    .banner-section.tp-hero {
        padding: 112px 0 56px !important;
    }

    .tp-section {
        padding: 54px 0 !important;
    }

    .tp-section-head {
        align-items: flex-start !important;
        flex-direction: column !important;
    }

    .tp-section-head .view-all {
        align-self: flex-start !important;
    }
}

/* Profile dashboard layout, loaded last from the footer too. */
.profile-workspace {
    display: grid !important;
    grid-template-columns: minmax(260px, 320px) minmax(0, 1fr) !important;
    gap: 22px !important;
    align-items: start !important;
}

.profile-side-panel {
    position: sticky !important;
    top: 96px !important;
    display: grid !important;
    gap: 14px !important;
}

.profile-main-panel {
    min-width: 0 !important;
    display: grid !important;
    gap: 16px !important;
}

.profile-identity-card,
.profile-completion-card,
.profile-side-panel .stat-box,
.profile-section,
.ticket-category,
.ticket-card,
.pending-item,
.ticket-owned-item,
.ticket-metric,
.empty-state {
    background: #ffffff !important;
    border: 1px solid #dce6f2 !important;
    color: #101828 !important;
    box-shadow: 0 16px 38px rgba(15,23,42,.07) !important;
}

.profile-identity-card {
    display: grid !important;
    grid-template-columns: 56px minmax(0, 1fr) !important;
    gap: 12px !important;
    align-items: center !important;
    border-radius: 8px !important;
    padding: 16px !important;
}

.profile-avatar {
    width: 56px !important;
    height: 56px !important;
    border-radius: 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #ffffff !important;
    background: linear-gradient(135deg, #00a878, #0077ff) !important;
    font-size: 24px !important;
    font-weight: 900 !important;
}

.profile-identity-card strong,
.profile-completion-card strong {
    color: #101828 !important;
}

.profile-identity-card span,
.profile-completion-card span,
.profile-completion-card small {
    color: #667085 !important;
}

.profile-completion-card {
    border-radius: 8px !important;
    padding: 16px !important;
}

.completion-head {
    display: flex !important;
    justify-content: space-between !important;
    gap: 12px !important;
    align-items: center !important;
    margin-bottom: 10px !important;
}

.completion-bar {
    height: 10px !important;
    overflow: hidden !important;
    border-radius: 999px !important;
    background: #eef2f6 !important;
    margin-bottom: 10px !important;
}

.completion-bar span {
    display: block !important;
    height: 100% !important;
    border-radius: inherit !important;
    background: linear-gradient(90deg, #00a878, #0077ff) !important;
}

.profile-side-panel .stats-row {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin: 0 !important;
}

.profile-side-panel .stat-box {
    min-height: auto !important;
    padding: 14px 16px !important;
    display: grid !important;
    gap: 3px !important;
}

.profile-side-panel .stat-box strong {
    color: #101828 !important;
    font-size: 22px !important;
    line-height: 1.15 !important;
    overflow-wrap: anywhere !important;
}

.profile-side-actions {
    display: grid !important;
    gap: 10px !important;
}

.profile-main-panel .profile-accordion {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
}

.profile-main-panel .profile-accordion + .profile-accordion {
    margin-top: 0 !important;
}

.profile-main-panel .profile-accordion > .profile-section:nth-child(5),
.profile-main-panel .profile-reservation-grid {
    grid-column: 1 / -1 !important;
}

.profile-section > summary,
.ticket-category summary {
    background: #ffffff !important;
    color: #101828 !important;
    padding: 17px 18px !important;
}

.section-body {
    background: #fbfcfe !important;
    border-top: 1px solid #e4eaf2 !important;
    padding: 18px !important;
}

.ticket-flow {
    border-top: 1px solid #e4eaf2 !important;
    padding: 16px !important;
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
    overflow: visible !important;
}

.ticket-card {
    flex: initial !important;
    min-width: 0 !important;
}

.ticket-card-title strong {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

.ticket-card-title span {
    color: rgba(255,255,255,.82) !important;
}

@media (max-width: 1199px) {
    .profile-workspace {
        grid-template-columns: 1fr !important;
    }

    .profile-side-panel {
        position: static !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .profile-side-panel .stats-row,
    .profile-side-actions {
        grid-column: 1 / -1 !important;
    }

    .profile-side-panel .stats-row {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }

    .profile-side-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 991px) {
    .profile-main-panel .profile-accordion {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 767px) {
    .profile-side-panel,
    .profile-side-panel .stats-row,
    .profile-side-actions,
    .ticket-flow {
        grid-template-columns: 1fr !important;
    }
}

/* Tourism and service reservation module. */
.service-hero {
    padding-top: 140px !important;
}

.service-filter {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin: 22px 0 28px !important;
}

.service-filter a {
    padding: 10px 14px !important;
    border-radius: 999px !important;
    border: 1px solid #d0d5dd !important;
    background: #ffffff !important;
    color: #344054 !important;
    font-weight: 800 !important;
}

.service-filter a.active,
.service-filter a:hover {
    color: #ffffff !important;
    border-color: transparent !important;
    background: linear-gradient(135deg, #00a878, #0077ff) !important;
}

.service-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
    gap: 18px !important;
}

.service-card,
.service-panel,
.service-booking-card {
    background: #ffffff !important;
    border: 1px solid #dce6f2 !important;
    border-radius: 8px !important;
    box-shadow: 0 16px 38px rgba(15,23,42,.07) !important;
    overflow: hidden !important;
}

.service-thumb {
    display: block !important;
    aspect-ratio: 16 / 10 !important;
    overflow: hidden !important;
    background: #eef2f6 !important;
}

.service-thumb img,
.service-cover img,
.service-gallery img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

.service-body {
    padding: 18px !important;
}

.service-type {
    display: inline-flex !important;
    padding: 6px 10px !important;
    border-radius: 999px !important;
    background: #eaf6ff !important;
    color: #006edb !important;
    font-weight: 900 !important;
    font-size: 12px !important;
    margin-bottom: 10px !important;
}

.service-body h3,
.service-body h3 a,
.service-panel h1,
.service-booking-card h3 {
    color: #101828 !important;
    -webkit-text-fill-color: #101828 !important;
    background: none !important;
    line-height: 1.15 !important;
}

.service-body p,
.service-panel p,
.service-booking-card p,
.service-meta span,
.service-info-grid span {
    color: #667085 !important;
}

.service-meta {
    display: grid !important;
    gap: 7px !important;
    margin: 14px 0 !important;
}

.service-detail-shell {
    padding: 135px 0 80px !important;
    background: #f6f8fb !important;
}

.service-detail-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 390px) !important;
    gap: 22px !important;
    align-items: start !important;
}

.service-detail-main {
    display: grid !important;
    gap: 16px !important;
    min-width: 0 !important;
}

.service-cover {
    aspect-ratio: 16 / 8 !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    background: #e4eaf2 !important;
}

.service-panel,
.service-booking-card {
    padding: 22px !important;
}

.service-info-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    margin-top: 18px !important;
}

.service-info-grid div {
    padding: 14px !important;
    border-radius: 8px !important;
    background: #f6f8fb !important;
    border: 1px solid #e4eaf2 !important;
}

.service-info-grid strong {
    display: block !important;
    color: #101828 !important;
    margin-bottom: 4px !important;
}

.service-gallery {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
    gap: 10px !important;
}

.service-gallery img {
    aspect-ratio: 4 / 3 !important;
    border-radius: 8px !important;
    border: 1px solid #dce6f2 !important;
}

.service-booking-card {
    position: sticky !important;
    top: 96px !important;
}

.service-booking-card label {
    color: #344054 !important;
    font-weight: 800 !important;
}

.service-booking-card input,
.service-booking-card textarea {
    width: 100% !important;
    min-height: 46px !important;
    border-radius: 8px !important;
    border: 1px solid #d0d5dd !important;
    background: #ffffff !important;
    color: #101828 !important;
    padding: 10px 12px !important;
}

.service-booking-card textarea {
    resize: vertical !important;
}

@media (max-width: 991px) {
    .service-detail-grid {
        grid-template-columns: 1fr !important;
    }

    .service-booking-card {
        position: static !important;
    }
}

@media (max-width: 767px) {
    .service-hero,
    .service-detail-shell {
        padding-top: 105px !important;
    }

    .service-info-grid {
        grid-template-columns: 1fr !important;
    }
}

/* Global readability and overlap guard for the white public theme. */
body,
.bg-two,
.movie-section,
.blog-section,
.padding-top,
.padding-bottom {
    background-color: #f6f8fb !important;
    color: #101828 !important;
}

.header-section {
    z-index: 9999 !important;
}

.header-section .submenu {
    z-index: 10000 !important;
}

.banner-content,
.main-page-header .speaker-banner-content,
.details-banner-content {
    max-width: 920px !important;
}

.banner-content .title,
.speaker-banner-content .title,
.details-banner-content .title,
.tp-section-head h1,
.section-header-3 .title,
.section-header-1 .title {
    color: #101828 !important;
    -webkit-text-fill-color: #101828 !important;
    text-shadow: none !important;
    line-height: 1.05 !important;
    overflow-wrap: anywhere !important;
    letter-spacing: 0 !important;
}

.banner-content p,
.speaker-banner-content p,
.details-banner-content p,
.tp-section-head p,
.section-header-3 p,
.section-header-1 p {
    color: #475467 !important;
    text-shadow: none !important;
    max-width: 760px !important;
}

.post-item,
.event-grid,
.movie-content,
.bg-one,
.booking-summery,
.widget,
.widget-1,
.card {
    background: #ffffff !important;
    color: #101828 !important;
}

.post-content h1,
.post-content h2,
.post-content h3,
.post-content h4,
.post-content h5,
.post-content h6,
.post-content .title,
.movie-content h1,
.movie-content h2,
.movie-content h3,
.movie-content h4,
.movie-content h5,
.movie-content h6,
.movie-content .title,
.bg-one h1,
.bg-one h2,
.bg-one h3,
.bg-one h4,
.bg-one h5,
.bg-one h6,
.card h1,
.card h2,
.card h3,
.card h4,
.card h5,
.card h6 {
    color: #101828 !important;
    -webkit-text-fill-color: #101828 !important;
    text-shadow: none !important;
    line-height: 1.2 !important;
    overflow-wrap: anywhere !important;
}

.post-content p,
.movie-content p,
.bg-one p,
.card p,
.meta-post a,
.entry-content,
.entry-content span,
.movie-rating-percent .content,
.text-white-50 {
    color: #667085 !important;
    text-shadow: none !important;
}

.post-thumb,
.movie-thumb,
.service-thumb {
    background: #e9eef5 !important;
}

.post-thumb img,
.movie-thumb img,
.event-grid img,
.card img {
    object-fit: cover !important;
}

.buttons,
.custom-button,
.tp-btn,
.btn-success,
.btn-primary {
    white-space: normal !important;
    line-height: 1.2 !important;
}

.event-video-player {
    width: min(860px, 100%) !important;
    margin: 0 auto !important;
    padding: 14px !important;
    border-radius: 10px !important;
    background: rgba(16, 24, 40, .88) !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    box-shadow: 0 24px 70px rgba(15,23,42,.32) !important;
}

.event-video-player video {
    width: 100% !important;
    max-height: 520px !important;
    display: block !important;
    border-radius: 8px !important;
    background: #000000 !important;
    object-fit: contain !important;
}

.event-video-player p {
    margin: 10px 4px 0 !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    text-align: center !important;
}

.event-video-fallback {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

@media (max-width: 767px) {
    .banner-content .title,
    .speaker-banner-content .title,
    .details-banner-content .title,
    .tp-section-head h1 {
        font-size: clamp(32px, 11vw, 52px) !important;
    }

    .banner-section {
        padding-top: 120px !important;
    }

    .post-content,
    .movie-content {
        padding: 16px !important;
    }
}

/* Global white-theme fix for native and plugin dropdown readability. */
html,
body,
select,
option {
    color-scheme: light !important;
}

select,
select.form-control,
select.custom-select,
.custom-select,
.account-form select,
.profile-form select,
.security-form select,
.ticket-search-form select,
.contact-form select,
.nice-select,
.bootstrap-select > .dropdown-toggle,
.select2-container--default .select2-selection--single,
.select2-container--bootstrap4 .select2-selection,
.select2-container--bootstrap4 .select2-selection--single {
    background-color: #ffffff !important;
    color: #101828 !important;
    -webkit-text-fill-color: #101828 !important;
    border-color: #d0d5dd !important;
}

select option,
select optgroup,
.form-control option,
.custom-select option {
    background-color: #ffffff !important;
    color: #101828 !important;
    -webkit-text-fill-color: #101828 !important;
}

select option:checked,
select option:hover,
select option:focus {
    background-color: #eaf4ff !important;
    color: #101828 !important;
    -webkit-text-fill-color: #101828 !important;
}

select option:disabled {
    color: #98a2b3 !important;
    -webkit-text-fill-color: #98a2b3 !important;
}

.dropdown-menu,
.dropdown-menu.show,
.bootstrap-select .dropdown-menu,
.bootstrap-select .dropdown-menu.inner,
.nice-select .list,
.select2-dropdown,
.select2-results,
.select2-results__options {
    background-color: #ffffff !important;
    color: #101828 !important;
    border-color: #d0d5dd !important;
}

.dropdown-menu .dropdown-item,
.bootstrap-select .dropdown-menu li a,
.bootstrap-select .dropdown-menu li a span.text,
.nice-select .current,
.nice-select .option,
.select2-results__option {
    color: #101828 !important;
    -webkit-text-fill-color: #101828 !important;
}

.dropdown-menu .dropdown-item:hover,
.dropdown-menu .dropdown-item:focus,
.bootstrap-select .dropdown-menu li a:hover,
.bootstrap-select .dropdown-menu li a:focus,
.bootstrap-select .dropdown-menu li.selected a,
.nice-select .option:hover,
.nice-select .option.focus,
.nice-select .option.selected.focus,
.select2-results__option--highlighted,
.select2-results__option[aria-selected=true] {
    background-color: #eef7ff !important;
    color: #101828 !important;
    -webkit-text-fill-color: #101828 !important;
}

.tp-hover-popover {
    position: fixed;
    z-index: 100000;
    width: min(320px, calc(100vw - 28px));
    pointer-events: none;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .16s ease, transform .16s ease;
    padding: 14px 16px;
    border-radius: 8px;
    background: #ffffff;
    color: #101828;
    border: 1px solid #d0d5dd;
    box-shadow: 0 18px 46px rgba(15, 23, 42, .18);
}

.tp-hover-popover.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.tp-hover-popover strong {
    display: block;
    margin-bottom: 6px;
    color: #101828;
    font-size: 15px;
    line-height: 1.25;
}

.tp-hover-popover span {
    display: block;
    color: #475467;
    font-size: 13px;
    line-height: 1.5;
    white-space: pre-line;
}

[data-hover-detail] {
    cursor: help;
}

/* Visitor pro interface refresh. */
body {
    background:
        linear-gradient(180deg, #f7f9fc 0%, #eef3f8 100%) !important;
}

.preloader {
    background: #ffffff !important;
}

.header-section {
    background: rgba(255, 255, 255, .92) !important;
    border-bottom: 1px solid rgba(208, 213, 221, .82) !important;
    box-shadow: 0 12px 32px rgba(15, 23, 42, .08) !important;
    backdrop-filter: blur(18px) !important;
}

.header-section.header-active {
    background: rgba(255, 255, 255, .97) !important;
}

.logo img {
    max-height: 54px !important;
    object-fit: contain !important;
}

.menu li a {
    color: #1d2939 !important;
    font-weight: 900 !important;
    letter-spacing: 0 !important;
}

.menu li a.active,
.menu li a:hover {
    color: #0077ff !important;
}

.menu .submenu {
    border-radius: 8px !important;
    padding: 10px !important;
    border: 1px solid #d9e2ee !important;
    box-shadow: 0 22px 52px rgba(15, 23, 42, .16) !important;
}

.header-button a,
.tp-btn,
.custom-button,
.view-all {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, #00a878, #0077ff) !important;
    color: #ffffff !important;
    border: 0 !important;
    font-weight: 1000 !important;
    box-shadow: 0 14px 30px rgba(0, 119, 255, .2) !important;
}

.tp-btn-outline,
.back-button {
    background: #ffffff !important;
    color: #101828 !important;
    border: 1px solid #d0d5dd !important;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .08) !important;
}

.banner-section.tp-hero {
    padding: 132px 0 58px !important;
    background:
        radial-gradient(circle at 82% 18%, rgba(0, 119, 255, .12), transparent 30rem),
        radial-gradient(circle at 18% 72%, rgba(18, 183, 106, .12), transparent 24rem),
        #f7f9fc !important;
}

.tp-hero::before {
    background: linear-gradient(90deg, rgba(247,249,252,.98), rgba(247,249,252,.72), rgba(247,249,252,.96)) !important;
}

.tp-hero-grid {
    align-items: center !important;
}

.tp-hero-title,
.tp-hero-title .tp-gradient-text {
    color: #101828 !important;
    -webkit-text-fill-color: #101828 !important;
    font-weight: 1000 !important;
    font-size: clamp(46px, 6vw, 86px) !important;
    line-height: .98 !important;
    letter-spacing: 0 !important;
    text-shadow: none !important;
}

.tp-gradient-text {
    background: linear-gradient(100deg, #0077ff, #00a878 58%, #e31b54) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
}

.tp-hero-copy {
    color: #475467 !important;
    font-size: 18px !important;
    line-height: 1.7 !important;
}

.tp-quick-search {
    margin-top: 22px !important;
    max-width: 760px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1.3fr) minmax(180px, .7fr) auto !important;
    gap: 10px !important;
    padding: 10px !important;
    border-radius: 8px !important;
    background: #ffffff !important;
    border: 1px solid #d9e2ee !important;
    box-shadow: 0 18px 46px rgba(15, 23, 42, .12) !important;
}

.tp-quick-search div {
    min-width: 0 !important;
}

.tp-quick-search label {
    display: block !important;
    margin: 0 0 4px !important;
    color: #667085 !important;
    font-size: 11px !important;
    font-weight: 1000 !important;
    text-transform: uppercase !important;
}

.tp-quick-search input {
    width: 100% !important;
    height: 42px !important;
    border: 1px solid #e4eaf2 !important;
    border-radius: 8px !important;
    background: #f8fafc !important;
    color: #101828 !important;
    padding: 0 12px !important;
}

.tp-quick-search button {
    min-width: 124px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: #101828 !important;
    color: #ffffff !important;
    font-weight: 1000 !important;
}

.tp-showcase {
    min-height: 470px !important;
}

.tp-floating-card {
    border-radius: 8px !important;
    overflow: hidden !important;
    background: #ffffff !important;
    border: 1px solid rgba(255,255,255,.72) !important;
    box-shadow: 0 26px 70px rgba(15, 23, 42, .2) !important;
}

.tp-floating-card img,
.event-card img,
.event-grid img,
.post-thumb img,
.movie-thumb img,
.service-thumb img {
    filter: saturate(1.04) contrast(1.02) !important;
}

.tp-ticket-chip {
    border-radius: 8px !important;
    background: #101828 !important;
    color: #ffffff !important;
    box-shadow: 0 18px 42px rgba(15,23,42,.28) !important;
}

.tp-ticket-chip span {
    color: rgba(255,255,255,.78) !important;
}

.tp-category-strip {
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

.tp-category {
    min-height: 142px !important;
    padding: 18px !important;
    border-radius: 8px !important;
    background: #ffffff !important;
    border: 1px solid #d9e2ee !important;
    box-shadow: 0 14px 32px rgba(15,23,42,.06) !important;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}

.tp-category:hover,
.event-grid:hover,
.event-card:hover,
.post-item:hover,
.service-card:hover {
    transform: translateY(-3px) !important;
    border-color: #9bd0ff !important;
    box-shadow: 0 22px 48px rgba(15,23,42,.12) !important;
}

.tp-category i {
    width: 42px !important;
    height: 42px !important;
    border-radius: 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #eef7ff !important;
    color: #0077ff !important;
    font-size: 18px !important;
}

.tp-section {
    padding: 78px 0 !important;
}

.tp-section.alt {
    background: #ffffff !important;
}

.tp-section-head .title {
    color: #101828 !important;
    font-size: clamp(30px, 4vw, 52px) !important;
    font-weight: 1000 !important;
}

.tp-kicker {
    border-radius: 999px !important;
    padding: 8px 12px !important;
    background: #ffffff !important;
    border: 1px solid #d9e2ee !important;
    color: #0057d9 !important;
    box-shadow: 0 10px 22px rgba(15,23,42,.06) !important;
}

.event-grid,
.event-card,
.post-item,
.service-card,
.movie-grid,
.sports-grid {
    border-radius: 8px !important;
    overflow: hidden !important;
    border: 1px solid #d9e2ee !important;
    background: #ffffff !important;
    box-shadow: 0 16px 38px rgba(15,23,42,.07) !important;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}

.movie-thumb,
.post-thumb,
.service-thumb {
    aspect-ratio: 16 / 10 !important;
    height: auto !important;
}

.movie-thumb img,
.post-thumb img,
.service-thumb img,
.event-card img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.movie-content,
.event-info,
.post-content,
.service-body {
    padding: 18px !important;
}

.movie-content h5,
.event-info h5,
.post-content h4,
.service-body h3 {
    min-height: 48px !important;
    color: #101828 !important;
    font-weight: 1000 !important;
    line-height: 1.18 !important;
}

.tp-badge,
.service-type {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 6px 10px !important;
    border-radius: 999px !important;
    background: #ecfdf3 !important;
    color: #027a48 !important;
    font-weight: 1000 !important;
    font-size: 12px !important;
}

.tp-price {
    display: block !important;
    margin-top: 10px !important;
    color: #0057d9 !important;
    font-size: 15px !important;
}

.tp-availability {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    width: fit-content !important;
    max-width: 100% !important;
    padding: 6px 10px !important;
    margin-bottom: 8px !important;
    border-radius: 999px !important;
    font-size: 11px !important;
    font-weight: 1000 !important;
    line-height: 1.2 !important;
}

.tp-availability.live {
    color: #027a48 !important;
    background: #ecfdf3 !important;
    border: 1px solid #abefc6 !important;
}

.tp-availability.soon {
    color: #b54708 !important;
    background: #fffaeb !important;
    border: 1px solid #fedf89 !important;
}

.tp-date-chip {
    position: absolute !important;
    top: 12px !important;
    left: 12px !important;
    z-index: 3 !important;
    width: 54px !important;
    min-height: 58px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 8px !important;
    background: rgba(255,255,255,.94) !important;
    border: 1px solid rgba(208,213,221,.9) !important;
    box-shadow: 0 12px 28px rgba(15,23,42,.18) !important;
}

.tp-date-chip strong {
    color: #101828 !important;
    font-size: 22px !important;
    line-height: 1 !important;
}

.tp-date-chip small {
    color: #0057d9 !important;
    font-size: 11px !important;
    font-weight: 1000 !important;
    text-transform: uppercase !important;
}

.tp-card-action {
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    margin-top: 12px !important;
    color: #0057d9 !important;
    font-size: 13px !important;
    font-weight: 1000 !important;
}

.tp-pro-card .movie-thumb,
.tp-pro-card .post-thumb,
.tp-pro-card .service-thumb,
.event-card.tp-pro-card {
    position: relative !important;
    overflow: hidden !important;
}

.tp-pro-card .movie-thumb::after,
.tp-pro-card .post-thumb::after,
.tp-pro-card .service-thumb::after,
.event-card.tp-pro-card::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    opacity: 0 !important;
    background: linear-gradient(180deg, transparent 42%, rgba(16,24,40,.58)) !important;
    transition: opacity .24s ease !important;
    pointer-events: none !important;
}

.tp-pro-card:hover .movie-thumb::after,
.tp-pro-card:hover .post-thumb::after,
.tp-pro-card:hover .service-thumb::after,
.event-card.tp-pro-card:hover::after {
    opacity: 1 !important;
}

.tp-pro-card img {
    transform: scale(1) !important;
    transition: transform .45s ease, filter .45s ease !important;
}

.tp-pro-card:hover img {
    transform: scale(1.055) !important;
    filter: saturate(1.12) contrast(1.05) brightness(.98) !important;
}

.tp-pro-card {
    animation: tpCardRise .48s ease both !important;
}

@keyframes tpCardRise {
    from {
        opacity: 0;
        transform: translateY(14px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.movie-search-form,
.service-filter {
    border-radius: 8px !important;
    border: 1px solid #d9e2ee !important;
    background: #ffffff !important;
    box-shadow: 0 14px 34px rgba(15,23,42,.07) !important;
}

.banner-section:not(.tp-hero) {
    padding-top: 132px !important;
    padding-bottom: 72px !important;
    background: #f7f9fc !important;
}

.banner-section:not(.tp-hero) .banner-bg {
    opacity: .18 !important;
}

.banner-content .title,
.speaker-banner-content .title,
.details-banner-content .title {
    color: #101828 !important;
    -webkit-text-fill-color: #101828 !important;
    font-weight: 1000 !important;
}

.banner-content p,
.speaker-banner-content p,
.details-banner-content p {
    color: #475467 !important;
}

@media (max-width: 1199px) {
    .tp-category-strip {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 991px) {
    .header-section {
        background: #ffffff !important;
    }

    .menu {
        background: #ffffff !important;
        border: 1px solid #d9e2ee !important;
    }

    .tp-quick-search {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 767px) {
    .tp-category-strip {
        grid-template-columns: 1fr !important;
    }

    .banner-section.tp-hero {
        padding-top: 108px !important;
    }

    .tp-hero-title,
    .tp-hero-title .tp-gradient-text {
        font-size: clamp(40px, 12vw, 58px) !important;
    }
}

/* Public visitor final pass: dark nav, stable media and animated AI decor */
.header-section,
.header-section.header-active {
    background: rgba(3, 7, 18, .97) !important;
    border-bottom: 1px solid rgba(255, 255, 255, .12) !important;
    box-shadow: 0 16px 38px rgba(3, 7, 18, .24) !important;
}

.header-section .menu li a {
    color: rgba(255, 255, 255, .86) !important;
    text-shadow: none !important;
}

.header-section .menu li a.active,
.header-section .menu li a:hover {
    color: #35e7ff !important;
}

.header-section .menu .submenu {
    background: #ffffff !important;
    border: 1px solid rgba(208, 213, 221, .95) !important;
    box-shadow: 0 18px 44px rgba(15, 23, 42, .16) !important;
}

.header-section .menu .submenu li a {
    color: #101828 !important;
}

.header-section .menu .submenu li a:hover {
    color: #0057d9 !important;
    background: #f3f7ff !important;
}

.header-section .header-button a {
    color: #ffffff !important;
    background: linear-gradient(135deg, #00a878, #0077ff) !important;
    box-shadow: 0 14px 30px rgba(0, 119, 255, .22) !important;
}

.header-section .header-bar span {
    background: #ffffff !important;
}

.event-grid .movie-thumb,
.movie-grid .movie-thumb,
.sports-grid .movie-thumb,
.tp-pro-card .movie-thumb,
.post-item .post-thumb,
.tp-pro-card .post-thumb,
.service-card .service-thumb,
.tp-pro-card .service-thumb,
.event-card.tp-pro-card > a {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    aspect-ratio: 16 / 10 !important;
    min-height: 220px !important;
    height: auto !important;
    overflow: hidden !important;
    border-radius: 8px 8px 0 0 !important;
    background: #eef2f6 !important;
}

.event-grid .movie-thumb img,
.movie-grid .movie-thumb img,
.sports-grid .movie-thumb img,
.tp-pro-card .movie-thumb img,
.post-item .post-thumb img,
.tp-pro-card .post-thumb img,
.service-card .service-thumb img,
.tp-pro-card .service-thumb img,
.event-card.tp-pro-card > a > img {
    width: 100% !important;
    height: 100% !important;
    min-height: 220px !important;
    display: block !important;
    object-fit: cover !important;
    object-position: center center !important;
}

.event-card.tp-pro-card > a {
    aspect-ratio: auto !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: visible !important;
    border-radius: 8px !important;
    background: #ffffff !important;
}

.event-card.tp-pro-card > a > img {
    height: 220px !important;
    min-height: 220px !important;
    border-radius: 8px 8px 0 0 !important;
}

.event-card.tp-pro-card .event-info {
    position: relative !important;
    z-index: 2 !important;
    background: #ffffff !important;
}

.tp-showcase {
    position: relative !important;
}

.tp-floating-card,
.tp-ticket-chip {
    position: relative !important;
    z-index: 3 !important;
}

.tp-ai-video-decor {
    position: absolute !important;
    top: -8px !important;
    right: 8px !important;
    z-index: 1 !important;
    width: min(390px, 46vw) !important;
    aspect-ratio: 16 / 9 !important;
    overflow: hidden !important;
    border-radius: 14px !important;
    background: #050a18 !important;
    border: 1px solid rgba(255, 255, 255, .18) !important;
    box-shadow: 0 28px 70px rgba(0, 119, 255, .22), inset 0 0 0 1px rgba(255, 255, 255, .08) !important;
    transform: rotate(-1.4deg) !important;
}

.tp-ai-video-screen {
    position: absolute !important;
    inset: 0 !important;
    background:
        radial-gradient(circle at 22% 25%, rgba(53, 231, 255, .95), transparent 24%),
        radial-gradient(circle at 78% 35%, rgba(0, 168, 120, .86), transparent 24%),
        radial-gradient(circle at 48% 78%, rgba(0, 119, 255, .9), transparent 30%),
        linear-gradient(135deg, #050a18, #132447 52%, #07101f) !important;
    animation: tpAiVideoGlow 7s ease-in-out infinite alternate !important;
}

.tp-ai-video-screen::before,
.tp-ai-video-screen::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    pointer-events: none !important;
}

.tp-ai-video-screen::before {
    background: linear-gradient(100deg, transparent 0%, rgba(255, 255, 255, .32) 42%, transparent 54%) !important;
    transform: translateX(-120%) skewX(-18deg) !important;
    animation: tpAiVideoScan 4.8s ease-in-out infinite !important;
}

.tp-ai-video-screen::after {
    opacity: .34 !important;
    background-image:
        linear-gradient(rgba(255, 255, 255, .08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .08) 1px, transparent 1px) !important;
    background-size: 28px 28px !important;
    mix-blend-mode: screen !important;
}

.tp-ai-video-screen span {
    position: absolute !important;
    display: block !important;
    width: 120px !important;
    height: 120px !important;
    border-radius: 36px !important;
    filter: blur(.2px) !important;
    opacity: .82 !important;
    background: linear-gradient(135deg, rgba(255, 255, 255, .72), rgba(53, 231, 255, .22)) !important;
    animation: tpAiVideoFloat 8s ease-in-out infinite !important;
}

.tp-ai-video-screen span:nth-child(1) {
    left: 10% !important;
    top: 18% !important;
}

.tp-ai-video-screen span:nth-child(2) {
    right: 12% !important;
    top: 20% !important;
    animation-delay: -2.6s !important;
}

.tp-ai-video-screen span:nth-child(3) {
    left: 42% !important;
    bottom: 8% !important;
    animation-delay: -5s !important;
}

.tp-ai-video-caption {
    position: absolute !important;
    left: 14px !important;
    bottom: 14px !important;
    z-index: 2 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 9px 12px !important;
    border-radius: 999px !important;
    color: #ffffff !important;
    background: rgba(3, 7, 18, .62) !important;
    border: 1px solid rgba(255, 255, 255, .18) !important;
    backdrop-filter: blur(10px) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
}

.tp-ai-video-caption i {
    color: #35e7ff !important;
}

.banner-section.tp-hero {
    position: relative !important;
    overflow: hidden !important;
}

.banner-section.tp-hero .container {
    position: relative !important;
    z-index: 2 !important;
}

.banner-section.tp-hero::after {
    content: "" !important;
    position: absolute !important;
    right: max(22px, 5vw) !important;
    top: 116px !important;
    z-index: 1 !important;
    width: min(520px, 44vw) !important;
    aspect-ratio: 16 / 9 !important;
    border-radius: 18px !important;
    opacity: .2 !important;
    background:
        linear-gradient(100deg, transparent 0%, rgba(255, 255, 255, .56) 42%, transparent 54%),
        radial-gradient(circle at 18% 26%, #35e7ff, transparent 24%),
        radial-gradient(circle at 78% 36%, #00a878, transparent 24%),
        radial-gradient(circle at 42% 84%, #0077ff, transparent 30%),
        linear-gradient(135deg, #050a18, #132447 52%, #07101f) !important;
    background-size: 180% 100%, auto, auto, auto, auto !important;
    box-shadow: 0 32px 90px rgba(0, 119, 255, .2) !important;
    animation: tpAiHeroVideo 6.5s ease-in-out infinite alternate !important;
    pointer-events: none !important;
}

.banner-section:not(.tp-hero) {
    position: relative !important;
    overflow: hidden !important;
}

.banner-section:not(.tp-hero)::after {
    content: "" !important;
    position: absolute !important;
    top: 30px !important;
    right: 7% !important;
    width: min(310px, 34vw) !important;
    aspect-ratio: 16 / 9 !important;
    border-radius: 12px !important;
    opacity: .18 !important;
    background:
        radial-gradient(circle at 25% 25%, #35e7ff, transparent 28%),
        radial-gradient(circle at 72% 70%, #00a878, transparent 30%),
        linear-gradient(135deg, #07101f, #0057d9) !important;
    box-shadow: 0 22px 60px rgba(0, 119, 255, .18) !important;
    animation: tpAiVideoGlow 6s ease-in-out infinite alternate !important;
    pointer-events: none !important;
}

.banner-content,
.speaker-banner-content,
.details-banner-content {
    position: relative !important;
    z-index: 2 !important;
}

@keyframes tpAiVideoGlow {
    from {
        filter: saturate(1) hue-rotate(0deg);
        transform: scale(1);
    }
    to {
        filter: saturate(1.24) hue-rotate(14deg);
        transform: scale(1.035);
    }
}

@keyframes tpAiVideoScan {
    0%, 38% {
        transform: translateX(-120%) skewX(-18deg);
    }
    66%, 100% {
        transform: translateX(120%) skewX(-18deg);
    }
}

@keyframes tpAiVideoFloat {
    0%, 100% {
        transform: translate3d(0, 0, 0) rotate(0deg);
    }
    50% {
        transform: translate3d(18px, -14px, 0) rotate(12deg);
    }
}

@keyframes tpAiHeroVideo {
    from {
        background-position: -80% 0, center, center, center, center;
        transform: translate3d(0, 0, 0) rotate(-1deg) scale(1);
    }
    to {
        background-position: 120% 0, center, center, center, center;
        transform: translate3d(0, 10px, 0) rotate(1deg) scale(1.03);
    }
}

@media (max-width: 991px) {
    .header-section,
    .header-section.header-active {
        background: rgba(3, 7, 18, .98) !important;
    }

    .header-section .menu {
        background: #07101f !important;
        border: 1px solid rgba(255, 255, 255, .1) !important;
    }

    .header-section .menu .submenu {
        background: #ffffff !important;
    }

    .event-grid .movie-thumb,
    .movie-grid .movie-thumb,
    .sports-grid .movie-thumb,
    .tp-pro-card .movie-thumb,
    .post-item .post-thumb,
    .tp-pro-card .post-thumb,
    .service-card .service-thumb,
    .tp-pro-card .service-thumb,
    .event-card.tp-pro-card > a,
    .event-grid .movie-thumb img,
    .movie-grid .movie-thumb img,
    .sports-grid .movie-thumb img,
    .tp-pro-card .movie-thumb img,
    .post-item .post-thumb img,
    .tp-pro-card .post-thumb img,
    .service-card .service-thumb img,
    .tp-pro-card .service-thumb img,
    .event-card.tp-pro-card > a > img {
        min-height: 190px !important;
    }

    .banner-section.tp-hero::after {
        width: min(420px, 64vw) !important;
        top: 92px !important;
        right: -80px !important;
        opacity: .14 !important;
    }
}

@media (max-width: 1199px) {
    .tp-ai-video-decor {
        display: none !important;
    }
}

/* Public media fallback clarity */
img.tp-media-journal,
.movie-thumb img.tp-media-journal,
.post-thumb img.tp-media-journal,
.service-thumb img.tp-media-journal,
.event-card.tp-pro-card > a > img.tp-media-journal,
.event-about-thumb img.tp-media-journal,
.tp-floating-card img.tp-media-journal {
    object-fit: contain !important;
    object-position: center center !important;
    padding: 14px !important;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(239, 246, 255, .98)),
        radial-gradient(circle at 20% 20%, rgba(53, 231, 255, .14), transparent 26%) !important;
    filter: saturate(1.06) contrast(1.04) !important;
}

.tp-pro-card:hover img.tp-media-journal,
.event-grid:hover img.tp-media-journal,
.movie-grid:hover img.tp-media-journal,
.sports-grid:hover img.tp-media-journal {
    transform: scale(1.015) !important;
    filter: saturate(1.12) contrast(1.05) !important;
}

img.tp-media-room,
.movie-thumb img.tp-media-room,
.tp-pro-card img.tp-media-room {
    object-position: center center !important;
}

/* Hotel detail rebuilt layout */
.hotel-detail-hero {
    position: relative !important;
    overflow: hidden !important;
    padding: 142px 0 54px !important;
    background: #07101f !important;
}

.hotel-detail-hero-bg {
    position: absolute !important;
    inset: 0 !important;
    background-size: cover !important;
    background-position: center !important;
    opacity: .34 !important;
    filter: saturate(1.08) contrast(1.04) !important;
}

.hotel-detail-hero::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(90deg, rgba(3,7,18,.94), rgba(3,7,18,.62), rgba(3,7,18,.88)) !important;
}

.hotel-detail-hero .container {
    position: relative !important;
    z-index: 2 !important;
}

.hotel-detail-hero-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 390px !important;
    gap: 28px !important;
    align-items: end !important;
}

.hotel-detail-copy h1 {
    color: #ffffff !important;
    font-size: clamp(42px, 6vw, 76px) !important;
    line-height: 1 !important;
    margin: 18px 0 12px !important;
    font-weight: 1000 !important;
}

.hotel-detail-copy p {
    color: rgba(255,255,255,.78) !important;
    font-size: 18px !important;
}

.hotel-detail-meta {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin-top: 22px !important;
}

.hotel-detail-meta span {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 9px 12px !important;
    border-radius: 999px !important;
    color: #ffffff !important;
    background: rgba(255,255,255,.12) !important;
    border: 1px solid rgba(255,255,255,.16) !important;
}

.hotel-booking-panel,
.hotel-info-card,
.hotel-practical-card,
.hotel-room-card {
    border-radius: 8px !important;
    background: #ffffff !important;
    border: 1px solid #d9e2ee !important;
    box-shadow: 0 20px 48px rgba(15,23,42,.1) !important;
}

.hotel-booking-panel {
    padding: 24px !important;
}

.hotel-booking-panel h3,
.hotel-practical-card h3,
.hotel-room-body h3,
.hotel-section-title h2 {
    color: #101828 !important;
    font-weight: 1000 !important;
}

.hotel-booking-panel p,
.hotel-room-body p,
.hotel-info-card p {
    color: #667085 !important;
}

.hotel-booking-form {
    display: grid !important;
    gap: 14px !important;
}

.hotel-booking-form label {
    margin-bottom: 6px !important;
    color: #344054 !important;
    font-weight: 900 !important;
    font-size: 13px !important;
}

.hotel-booking-form select,
.hotel-booking-form input {
    width: 100% !important;
    min-height: 46px !important;
    border-radius: 8px !important;
    border: 1px solid #d0d5dd !important;
    background: #ffffff !important;
    color: #101828 !important;
    padding: 0 12px !important;
}

.hotel-profile-rule {
    display: grid !important;
    gap: 3px !important;
    margin: 14px 0 16px !important;
    padding: 12px 14px !important;
    border-radius: 8px !important;
    border: 1px solid #fedf89 !important;
    background: #fffaeb !important;
}

.hotel-profile-rule.ok {
    border-color: #abefc6 !important;
    background: #ecfdf3 !important;
}

.hotel-profile-rule strong {
    color: #101828 !important;
    font-size: 18px !important;
}

.hotel-profile-rule span {
    color: #667085 !important;
    font-size: 13px !important;
    font-weight: 800 !important;
}

.hotel-guarantee-check {
    display: grid !important;
    grid-template-columns: 18px minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: flex-start !important;
    padding: 12px !important;
    border-radius: 8px !important;
    background: #f7f9fc !important;
    border: 1px solid #e4e7ec !important;
    color: #344054 !important;
    line-height: 1.35 !important;
}

.hotel-guarantee-check input {
    min-height: auto !important;
    width: 18px !important;
    height: 18px !important;
    margin-top: 2px !important;
    padding: 0 !important;
}

.hotel-date-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
}

.hotel-booking-form button,
.hotel-side-cta,
.hotel-room-footer a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    border: 0 !important;
    border-radius: 999px !important;
    color: #ffffff !important;
    background: linear-gradient(135deg, #00a878, #0077ff) !important;
    font-weight: 1000 !important;
    min-height: 46px !important;
    padding: 0 18px !important;
    box-shadow: 0 14px 30px rgba(0,119,255,.2) !important;
}

.hotel-booking-form.unavailable select,
.hotel-booking-form.unavailable input,
.hotel-booking-form.unavailable button {
    cursor: not-allowed !important;
    opacity: .72 !important;
}

.hotel-booking-form.unavailable button {
    background: #98a2b3 !important;
    box-shadow: none !important;
}

.hotel-detail-section {
    padding: 54px 0 72px !important;
    background: #f7f9fc !important;
}

.hotel-detail-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 330px !important;
    gap: 28px !important;
    align-items: start !important;
}

.hotel-gallery-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
    margin-bottom: 24px !important;
}

.hotel-gallery-item {
    position: relative !important;
    display: block !important;
    min-height: 148px !important;
    overflow: hidden !important;
    border-radius: 8px !important;
    background: #eef2f6 !important;
}

.hotel-gallery-item.main {
    grid-column: span 2 !important;
    grid-row: span 2 !important;
    min-height: 308px !important;
}

.hotel-gallery-item img,
.hotel-room-card > img {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    object-fit: cover !important;
    object-position: center !important;
}

.hotel-info-card {
    padding: 26px !important;
    margin-bottom: 28px !important;
}

.hotel-section-title span {
    color: #0077ff !important;
    font-weight: 1000 !important;
    text-transform: uppercase !important;
    font-size: 12px !important;
}

.hotel-section-title h2 {
    margin: 6px 0 16px !important;
}

.room-title {
    margin: 4px 0 18px !important;
}

.hotel-amenities,
.hotel-room-thumbs {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
}

.hotel-amenities span {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 8px 11px !important;
    border-radius: 999px !important;
    color: #667085 !important;
    background: #f2f4f7 !important;
}

.hotel-amenities span.on {
    color: #027a48 !important;
    background: #ecfdf3 !important;
}

.hotel-room-list {
    display: grid !important;
    gap: 18px !important;
}

.hotel-room-card {
    display: grid !important;
    grid-template-columns: 250px minmax(0, 1fr) !important;
    overflow: hidden !important;
}

.hotel-room-card > img {
    min-height: 245px !important;
}

.hotel-room-body {
    display: grid !important;
    gap: 14px !important;
    padding: 22px !important;
}

.hotel-room-thumbs a {
    width: 78px !important;
    height: 58px !important;
    overflow: hidden !important;
    border-radius: 8px !important;
    background: #eef2f6 !important;
}

.hotel-room-thumbs img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.hotel-room-footer {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 14px !important;
    padding-top: 12px !important;
    border-top: 1px solid #e4e7ec !important;
}

.hotel-room-footer strong {
    color: #101828 !important;
    font-size: 22px !important;
}

.hotel-room-footer small {
    color: #667085 !important;
    font-size: 13px !important;
}

.hotel-practical-card {
    position: sticky !important;
    top: 98px !important;
    padding: 24px !important;
}

.hotel-practical-card ul {
    margin: 18px 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.hotel-practical-card li {
    padding: 13px 0 !important;
    border-bottom: 1px solid #e4e7ec !important;
}

.hotel-practical-card span {
    display: block !important;
    color: #667085 !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
}

.hotel-practical-card strong {
    display: block !important;
    margin-top: 4px !important;
    color: #101828 !important;
    line-height: 1.35 !important;
}

.hotel-empty-booking {
    padding: 14px !important;
    border-radius: 8px !important;
    background: #fffaeb !important;
    color: #b54708 !important;
    font-weight: 900 !important;
}

@media (max-width: 991px) {
    .hotel-detail-hero-grid,
    .hotel-detail-layout {
        grid-template-columns: 1fr !important;
    }

    .hotel-practical-card {
        position: static !important;
    }

    .hotel-room-card {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 767px) {
    .hotel-detail-hero {
        padding-top: 116px !important;
    }

    .hotel-gallery-grid {
        grid-template-columns: 1fr 1fr !important;
    }

    .hotel-gallery-item.main {
        grid-column: span 2 !important;
        min-height: 230px !important;
    }

    .hotel-date-grid {
        grid-template-columns: 1fr !important;
    }

    .hotel-room-footer {
        align-items: flex-start !important;
        flex-direction: column !important;
    }
}

/* Event detail rebuilt layout */
.event-detail-hero {
    position: relative !important;
    overflow: hidden !important;
    padding: 142px 0 54px !important;
    background: #07101f !important;
}

.event-detail-hero-bg {
    position: absolute !important;
    inset: 0 !important;
    background-size: cover !important;
    background-position: center !important;
    opacity: .36 !important;
    filter: saturate(1.1) contrast(1.05) !important;
}

.event-detail-hero::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background:
        radial-gradient(circle at 78% 18%, rgba(0,119,255,.28), transparent 28rem),
        linear-gradient(90deg, rgba(3,7,18,.95), rgba(3,7,18,.58), rgba(3,7,18,.9)) !important;
}

.event-detail-hero .container {
    position: relative !important;
    z-index: 2 !important;
}

.event-detail-hero-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 390px !important;
    gap: 28px !important;
    align-items: end !important;
}

.event-detail-copy h1 {
    color: #ffffff !important;
    font-size: clamp(42px, 6vw, 78px) !important;
    line-height: 1 !important;
    margin: 18px 0 12px !important;
    font-weight: 1000 !important;
}

.event-detail-copy p {
    color: rgba(255,255,255,.78) !important;
    font-size: 18px !important;
}

.event-detail-meta {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin-top: 22px !important;
}

.event-detail-meta span,
.event-status {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 9px 12px !important;
    border-radius: 999px !important;
    color: #ffffff !important;
    background: rgba(255,255,255,.12) !important;
    border: 1px solid rgba(255,255,255,.16) !important;
}

.event-booking-panel,
.event-info-card,
.event-practical-card,
.event-media-card,
.event-ticket-card,
.event-speaker-card,
.event-sponsor-section {
    border-radius: 8px !important;
    background: #ffffff !important;
    border: 1px solid #d9e2ee !important;
    box-shadow: 0 20px 48px rgba(15,23,42,.1) !important;
}

.event-booking-panel {
    padding: 24px !important;
}

.event-status {
    margin-bottom: 14px !important;
    color: #027a48 !important;
    background: #ecfdf3 !important;
    border-color: #abefc6 !important;
}

.event-status.soon {
    color: #b54708 !important;
    background: #fffaeb !important;
    border-color: #fedf89 !important;
}

.event-booking-panel h3,
.event-section-title h2,
.event-practical-card h3,
.event-ticket-card h3,
.event-speaker-card h3,
.event-sponsor-group h3 {
    color: #101828 !important;
    font-weight: 1000 !important;
}

.event-price-line {
    display: flex !important;
    justify-content: space-between !important;
    gap: 12px !important;
    align-items: flex-end !important;
    margin: 16px 0 !important;
    padding-bottom: 16px !important;
    border-bottom: 1px solid #e4e7ec !important;
}

.event-price-line strong {
    color: #101828 !important;
    font-size: 22px !important;
}

.event-price-line span,
.event-ticket-card span,
.event-speaker-card span,
.event-info-card p,
.event-practical-card span {
    color: #667085 !important;
}

.event-mini-stats {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 10px !important;
    margin: 0 0 18px !important;
    padding: 0 !important;
    list-style: none !important;
}

.event-mini-stats li {
    padding: 12px !important;
    border-radius: 8px !important;
    background: #f7f9fc !important;
}

.event-mini-stats strong,
.event-mini-stats span {
    display: block !important;
}

.event-mini-stats strong {
    color: #101828 !important;
    font-size: 20px !important;
}

.event-main-cta,
.event-side-cta {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100% !important;
    min-height: 48px !important;
    border: 0 !important;
    border-radius: 999px !important;
    color: #ffffff !important;
    background: linear-gradient(135deg, #00a878, #0077ff) !important;
    font-weight: 1000 !important;
    box-shadow: 0 14px 30px rgba(0,119,255,.2) !important;
}

.event-main-cta.disabled {
    background: #98a2b3 !important;
    box-shadow: none !important;
    cursor: not-allowed !important;
}

.event-detail-main {
    padding: 54px 0 72px !important;
    background: #f7f9fc !important;
}

.event-detail-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 330px !important;
    gap: 28px !important;
    align-items: start !important;
}

.event-media-card {
    overflow: hidden !important;
    margin-bottom: 26px !important;
    background: #07101f !important;
}

.event-media-head {
    display: flex !important;
    justify-content: space-between !important;
    gap: 14px !important;
    align-items: center !important;
    padding: 18px 20px !important;
    background: #ffffff !important;
    border-bottom: 1px solid #e4e7ec !important;
}

.event-media-head span {
    color: #0077ff !important;
    font-size: 12px !important;
    font-weight: 1000 !important;
    text-transform: uppercase !important;
}

.event-media-head h2 {
    margin: 4px 0 0 !important;
    color: #101828 !important;
    font-size: 22px !important;
    font-weight: 1000 !important;
}

.event-media-head strong {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    max-width: 48% !important;
    padding: 8px 11px !important;
    border-radius: 999px !important;
    color: #027a48 !important;
    background: #ecfdf3 !important;
    border: 1px solid #abefc6 !important;
    font-size: 12px !important;
    font-weight: 1000 !important;
    line-height: 1.2 !important;
    white-space: normal !important;
}

.event-media-card video,
.event-media-fallback,
.event-media-fallback img {
    width: 100% !important;
    display: block !important;
}

.event-media-card video,
.event-media-fallback img {
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    object-fit: cover !important;
}

.event-media-fallback {
    position: relative !important;
    min-height: 340px !important;
    background:
        radial-gradient(circle at 28% 24%, rgba(53,231,255,.16), transparent 28%),
        linear-gradient(135deg, #07101f, #132447) !important;
}

.event-media-fallback span {
    position: absolute !important;
    left: 18px !important;
    bottom: 18px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 9px 12px !important;
    border-radius: 999px !important;
    color: #ffffff !important;
    background: rgba(3,7,18,.64) !important;
    border: 1px solid rgba(255,255,255,.18) !important;
    max-width: calc(100% - 36px) !important;
    white-space: normal !important;
    line-height: 1.25 !important;
}

.event-media-fallback.no-video::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    pointer-events: none !important;
    background: linear-gradient(180deg, transparent 48%, rgba(3,7,18,.64)) !important;
}

.event-media-fallback.no-video img {
    min-height: 340px !important;
}

.event-media-fallback.no-video span {
    z-index: 2 !important;
}

.event-info-card {
    padding: 26px !important;
    margin-bottom: 28px !important;
}

.event-section-title {
    margin: 8px 0 18px !important;
}

.event-section-title span {
    color: #0077ff !important;
    font-weight: 1000 !important;
    text-transform: uppercase !important;
    font-size: 12px !important;
}

.event-section-title h2 {
    margin: 6px 0 0 !important;
}

.event-ticket-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
    margin-bottom: 28px !important;
}

.event-ticket-card {
    display: flex !important;
    justify-content: space-between !important;
    gap: 14px !important;
    padding: 18px !important;
}

.event-ticket-card strong {
    color: #0057d9 !important;
    white-space: nowrap !important;
}

.event-gallery-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
    margin-bottom: 28px !important;
}

.event-gallery-item {
    position: relative !important;
    display: block !important;
    min-height: 148px !important;
    overflow: hidden !important;
    border-radius: 8px !important;
    background: #eef2f6 !important;
}

.event-gallery-item.main {
    grid-column: span 2 !important;
    grid-row: span 2 !important;
    min-height: 308px !important;
}

.event-gallery-item img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.event-speaker-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 16px !important;
}

.event-speaker-card {
    overflow: hidden !important;
}

.event-speaker-card img {
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
}

.event-speaker-card div {
    padding: 16px !important;
}

.event-practical-card {
    position: sticky !important;
    top: 98px !important;
    padding: 24px !important;
}

.event-practical-card ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 18px 0 !important;
}

.event-practical-card li {
    padding: 13px 0 !important;
    border-bottom: 1px solid #e4e7ec !important;
}

.event-practical-card span {
    display: block !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
}

.event-practical-card strong {
    display: block !important;
    margin-top: 4px !important;
    color: #101828 !important;
    line-height: 1.35 !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
}

.event-detail-copy h1,
.event-detail-copy p,
.event-ticket-card h3,
.event-speaker-card h3,
.event-sponsor-card span,
.break-text {
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
}

.event-sponsor-section {
    margin-top: 32px !important;
    padding: 26px !important;
}

.event-sponsor-group + .event-sponsor-group {
    margin-top: 20px !important;
}

.event-sponsor-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 14px !important;
}

.event-sponsor-card {
    display: grid !important;
    place-items: center !important;
    gap: 10px !important;
    min-height: 132px !important;
    padding: 16px !important;
    border: 1px solid #e4e7ec !important;
    border-radius: 8px !important;
    background: #ffffff !important;
}

.event-sponsor-card img {
    max-width: 100% !important;
    max-height: 70px !important;
    object-fit: contain !important;
}

.event-sponsor-card span {
    color: #344054 !important;
    font-weight: 900 !important;
    text-align: center !important;
}

@media (max-width: 991px) {
    .event-detail-hero-grid,
    .event-detail-layout {
        grid-template-columns: 1fr !important;
    }

    .event-practical-card {
        position: static !important;
    }

    .event-speaker-grid,
    .event-sponsor-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 767px) {
    .event-detail-hero {
        padding-top: 116px !important;
    }

    .event-ticket-grid,
    .event-speaker-grid,
    .event-sponsor-grid {
        grid-template-columns: 1fr !important;
    }

    .event-gallery-grid {
        grid-template-columns: 1fr 1fr !important;
    }

    .event-gallery-item.main {
        grid-column: span 2 !important;
        min-height: 230px !important;
    }

    .event-media-head {
        align-items: flex-start !important;
        flex-direction: column !important;
    }

    .event-media-head strong {
        max-width: 100% !important;
    }

    .event-media-fallback,
    .event-media-fallback.no-video img {
        min-height: 250px !important;
    }

    .event-ticket-card,
    .event-price-line {
        flex-direction: column !important;
        align-items: flex-start !important;
    }
}

/* Hotel payment and receipt */
.hotel-pay-shell,
.hotel-receipt-shell {
    min-height: 100vh !important;
    padding: 132px 0 72px !important;
    background:
        radial-gradient(circle at 16% 12%, rgba(0,119,255,.12), transparent 28rem),
        radial-gradient(circle at 84% 18%, rgba(0,168,120,.12), transparent 28rem),
        #f7f9fc !important;
}

.hotel-pay-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 360px !important;
    gap: 28px !important;
    align-items: start !important;
}

.hotel-pay-card,
.hotel-pay-summary,
.hotel-receipt-card {
    border-radius: 8px !important;
    background: #ffffff !important;
    border: 1px solid #d9e2ee !important;
    box-shadow: 0 20px 48px rgba(15,23,42,.1) !important;
}

.hotel-pay-card {
    padding: 28px !important;
}

.hotel-pay-card h1 {
    margin: 18px 0 8px !important;
    color: #101828 !important;
    font-size: clamp(34px, 5vw, 58px) !important;
    font-weight: 1000 !important;
}

.hotel-pay-card p,
.hotel-pay-summary span,
.hotel-receipt-card p,
.hotel-receipt-grid span {
    color: #667085 !important;
}

.hotel-pay-form {
    display: grid !important;
    gap: 14px !important;
    margin-top: 22px !important;
}

.hotel-pay-form label {
    color: #344054 !important;
    font-weight: 900 !important;
}

.hotel-pay-form input,
.hotel-pay-form select,
.hotel-pay-form textarea {
    width: 100% !important;
    min-height: 46px !important;
    border-radius: 8px !important;
    border: 1px solid #d0d5dd !important;
    background: #ffffff !important;
    color: #101828 !important;
    padding: 10px 12px !important;
}

.hotel-receipt-qr {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 20px 0;
    padding: 16px;
    border: 1px solid #d8e1ee;
    border-radius: 8px;
    background: #f8fbff;
}

.hotel-receipt-qr img {
    width: 128px;
    height: 128px;
    object-fit: contain;
    background: #ffffff;
    border-radius: 8px;
    padding: 8px;
}

.hotel-receipt-qr span {
    color: #101828;
    font-weight: 900;
}

.hotel-receipt-note {
    margin-top: 18px;
    padding: 16px;
    border: 1px solid #d8e1ee;
    border-radius: 8px;
    background: #ffffff;
}

.hotel-receipt-note span {
    display: block;
    color: #667085;
    font-weight: 900;
    margin-bottom: 8px;
}

.hotel-receipt-note p {
    margin: 0;
    color: #101828;
    overflow-wrap: anywhere;
}

/* Public account menu and profile sidebar refinement */
.public-account-entry {
    position: relative;
}

.public-user-trigger {
    display: inline-flex !important;
    align-items: center !important;
    gap: 9px !important;
    min-height: 46px !important;
    padding: 6px 14px 6px 7px !important;
}

.public-user-trigger img,
.public-user-trigger span {
    width: 34px !important;
    height: 34px !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    object-fit: cover !important;
    background: #ffffff !important;
    color: #101828 !important;
    font-weight: 1000 !important;
}

.public-user-trigger strong {
    max-width: 130px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.public-user-menu {
    min-width: 210px !important;
    right: 0 !important;
    left: auto !important;
}

.public-user-menu a {
    display: flex !important;
    gap: 10px !important;
    align-items: center !important;
}

.profile-sidebar-nav {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    padding: 8px !important;
    border-radius: 8px !important;
    background: #f8fbff !important;
    border: 1px solid #d9e2ee !important;
}

.profile-sidebar-nav a {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    min-height: 42px !important;
    padding: 0 12px !important;
    border-radius: 7px !important;
    color: #344054 !important;
    font-weight: 900 !important;
}

.profile-sidebar-nav a:hover,
.profile-sidebar-nav a.active {
    color: #06101b !important;
    background: linear-gradient(135deg, #b8ff4d, #35e7ff) !important;
    box-shadow: 0 10px 24px rgba(14,165,233,.12) !important;
}

.profile-sidebar-nav i {
    width: 18px !important;
    text-align: center !important;
}

.profile-sidebar-nav em {
    margin-left: auto !important;
    min-width: 22px !important;
    height: 22px !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #f04438 !important;
    color: #ffffff !important;
    font-style: normal !important;
    font-size: 12px !important;
    font-weight: 1000 !important;
}

.profile-section {
    scroll-margin-top: 110px !important;
}

.profile-main-panel .profile-section[id] {
    display: none !important;
}

.profile-main-panel .profile-section[id].is-active {
    display: block !important;
    animation: profilePanelSlideIn .28s ease both;
    transform-origin: left center;
    max-height: calc(100vh - 150px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    scrollbar-width: thin !important;
    scrollbar-color: #31d7a9 #e9eef6 !important;
}

.profile-main-panel .profile-section[id].is-active::-webkit-scrollbar {
    width: 10px !important;
}

.profile-main-panel .profile-section[id].is-active::-webkit-scrollbar-track {
    background: #e9eef6 !important;
    border-radius: 999px !important;
}

.profile-main-panel .profile-section[id].is-active::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #31d7a9, #0ea5e9) !important;
    border-radius: 999px !important;
}

.profile-main-panel .profile-section[id].is-active .section-body {
    max-height: none !important;
    overflow: visible !important;
}

.profile-main-panel .profile-section[id].is-active > summary {
    cursor: default !important;
}

.profile-main-panel .profile-section[id].is-active > summary .section-arrow {
    display: none !important;
}

.profile-main-panel .profile-accordion,
.profile-main-panel .profile-reservation-grid {
    display: block !important;
}

@keyframes profilePanelSlideIn {
    from {
        opacity: 0;
        transform: translateX(-22px) scale(.985);
        filter: blur(3px);
    }
    to {
        opacity: 1;
        transform: translateX(0) scale(1);
        filter: blur(0);
    }
}

@media (max-width: 991px) {
    .public-user-menu {
        position: static !important;
        min-width: 100% !important;
    }
}

.vehicle-detail-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.vehicle-detail-pills span {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0 10px;
    border-radius: 999px;
    background: #eef7ff;
    color: #155e75;
    font-weight: 900;
    font-size: 13px;
}

.hotel-pay-methods {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

.hotel-pay-methods label {
    display: grid !important;
    gap: 4px !important;
    min-height: 92px !important;
    padding: 14px !important;
    border-radius: 8px !important;
    border: 1px solid #d0d5dd !important;
    background: #f8fafc !important;
    cursor: pointer !important;
}

.hotel-pay-methods label.active {
    border-color: #0077ff !important;
    background: #eef6ff !important;
}

.hotel-pay-methods input {
    min-height: auto !important;
    width: auto !important;
}

.hotel-pay-methods strong,
.hotel-pay-summary strong,
.hotel-receipt-grid strong {
    color: #101828 !important;
    overflow-wrap: anywhere !important;
}

.hotel-pay-methods small {
    color: #667085 !important;
}

.hotel-pay-form button,
.hotel-receipt-actions button,
.hotel-receipt-actions a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    min-height: 48px !important;
    border: 0 !important;
    border-radius: 999px !important;
    color: #ffffff !important;
    background: linear-gradient(135deg, #00a878, #0077ff) !important;
    font-weight: 1000 !important;
    padding: 0 18px !important;
    box-shadow: 0 14px 30px rgba(0,119,255,.2) !important;
}

.hotel-pay-summary {
    position: sticky !important;
    top: 98px !important;
    padding: 24px !important;
}

.hotel-pay-summary h3,
.hotel-receipt-card h1 {
    color: #101828 !important;
    font-weight: 1000 !important;
}

.hotel-pay-summary ul {
    margin: 18px 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.hotel-pay-summary li {
    padding: 12px 0 !important;
    border-bottom: 1px solid #e4e7ec !important;
}

.hotel-pay-summary span,
.hotel-receipt-grid span {
    display: block !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
}

.hotel-pay-alert {
    margin-top: 14px !important;
    padding: 12px 14px !important;
    border-radius: 8px !important;
    background: #fff1f3 !important;
    border: 1px solid #fecdca !important;
    color: #b42318 !important;
    font-weight: 900 !important;
}

.hotel-receipt-card {
    max-width: 900px !important;
    margin: 0 auto !important;
    padding: 32px !important;
}

.hotel-receipt-head {
    display: flex !important;
    justify-content: space-between !important;
    gap: 16px !important;
    padding-bottom: 18px !important;
    border-bottom: 1px solid #e4e7ec !important;
}

.hotel-receipt-head span {
    color: #0077ff !important;
    font-weight: 1000 !important;
}

.hotel-receipt-head strong {
    color: #101828 !important;
    overflow-wrap: anywhere !important;
}

.hotel-receipt-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    margin: 24px 0 !important;
}

.hotel-receipt-grid div {
    min-height: 82px !important;
    padding: 14px !important;
    border-radius: 8px !important;
    background: #f7f9fc !important;
    border: 1px solid #e4e7ec !important;
}

.hotel-receipt-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
}

.tp-favorite-form {
    margin: 14px 0 0 !important;
}

.tp-favorite-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    min-height: 42px !important;
    padding: 0 16px !important;
    border: 1px solid #d0d5dd !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    color: #101828 !important;
    font-weight: 900 !important;
    box-shadow: 0 12px 26px rgba(15,23,42,.08) !important;
}

.tp-favorite-btn i {
    color: #e31b54 !important;
}

.tp-favorite-btn.is-active {
    border-color: #fecdd6 !important;
    background: #fff1f3 !important;
    color: #b42318 !important;
}

.support-client-card {
    max-width: 980px !important;
    margin: 0 auto !important;
}

.support-client-meta {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
    margin: 22px 0 !important;
}

.support-client-meta div,
.support-client-message {
    border: 1px solid #e4e7ec !important;
    border-radius: 8px !important;
    background: #ffffff !important;
    padding: 14px !important;
}

.support-client-meta strong,
.support-client-message strong {
    display: block !important;
    color: #101828 !important;
    font-weight: 1000 !important;
}

.support-client-meta span,
.support-client-message small {
    color: #667085 !important;
}

.support-client-thread {
    display: grid !important;
    gap: 12px !important;
    max-height: min(70vh, 620px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    padding-right: 6px !important;
    scrollbar-width: thin !important;
}

.support-client-message.from-client {
    margin-left: min(80px, 12vw) !important;
    background: #eef7ff !important;
    border-color: #b9dcff !important;
}

.support-client-message.from-admin {
    margin-right: min(80px, 12vw) !important;
    background: #f8fafc !important;
}

.support-client-message p {
    margin: 8px 0 !important;
    color: #344054 !important;
}

.support-client-reply {
    margin-top: 22px !important;
}

@media (max-width: 767px) {
    .support-client-meta {
        grid-template-columns: 1fr !important;
    }
    .support-client-message.from-client,
    .support-client-message.from-admin {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

@media print {
    .header-section,
    .footer-section,
    .hotel-receipt-actions {
        display: none !important;
    }
    .hotel-receipt-shell {
        padding: 0 !important;
        background: #ffffff !important;
    }
    .hotel-receipt-card {
        box-shadow: none !important;
        border: 0 !important;
    }
}

@media (max-width: 991px) {
    .hotel-pay-grid {
        grid-template-columns: 1fr !important;
    }
    .hotel-pay-summary {
        position: static !important;
    }
}

@media (max-width: 767px) {
    .hotel-pay-methods,
    .hotel-receipt-grid {
        grid-template-columns: 1fr !important;
    }
}

/* Intelligent internal scrolling for long public/profile content. */
.ticket-owned-list,
.pending-list,
.ticket-flow,
.ticket-catalog,
.hotel-room-grid,
.hotel-gallery-grid,
.event-gallery-grid,
.event-speaker-grid,
.event-ticket-stack,
.event-ticket-list,
.profile-support-list,
.profile-favorite-list,
.profile-reservation-grid,
.service-gallery {
    max-height: min(70vh, 760px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    scrollbar-width: thin !important;
    scrollbar-color: #31d7a9 #e9eef6 !important;
}

.ticket-owned-list,
.pending-list,
.ticket-flow,
.ticket-catalog,
.hotel-room-grid,
.hotel-gallery-grid,
.event-gallery-grid,
.event-speaker-grid,
.event-ticket-stack,
.event-ticket-list,
.profile-support-list,
.profile-favorite-list,
.profile-reservation-grid,
.service-gallery {
    padding-right: 6px !important;
}

.ticket-owned-list::-webkit-scrollbar,
.pending-list::-webkit-scrollbar,
.ticket-flow::-webkit-scrollbar,
.ticket-catalog::-webkit-scrollbar,
.hotel-room-grid::-webkit-scrollbar,
.hotel-gallery-grid::-webkit-scrollbar,
.event-gallery-grid::-webkit-scrollbar,
.event-speaker-grid::-webkit-scrollbar,
.event-ticket-stack::-webkit-scrollbar,
.event-ticket-list::-webkit-scrollbar,
.profile-support-list::-webkit-scrollbar,
.profile-favorite-list::-webkit-scrollbar,
.profile-reservation-grid::-webkit-scrollbar,
.service-gallery::-webkit-scrollbar {
    width: 10px !important;
    height: 10px !important;
}

.ticket-owned-list::-webkit-scrollbar-track,
.pending-list::-webkit-scrollbar-track,
.ticket-flow::-webkit-scrollbar-track,
.ticket-catalog::-webkit-scrollbar-track,
.hotel-room-grid::-webkit-scrollbar-track,
.hotel-gallery-grid::-webkit-scrollbar-track,
.event-gallery-grid::-webkit-scrollbar-track,
.event-speaker-grid::-webkit-scrollbar-track,
.event-ticket-stack::-webkit-scrollbar-track,
.event-ticket-list::-webkit-scrollbar-track,
.profile-support-list::-webkit-scrollbar-track,
.profile-favorite-list::-webkit-scrollbar-track,
.profile-reservation-grid::-webkit-scrollbar-track,
.service-gallery::-webkit-scrollbar-track {
    background: #e9eef6 !important;
    border-radius: 999px !important;
}

.ticket-owned-list::-webkit-scrollbar-thumb,
.pending-list::-webkit-scrollbar-thumb,
.ticket-flow::-webkit-scrollbar-thumb,
.ticket-catalog::-webkit-scrollbar-thumb,
.hotel-room-grid::-webkit-scrollbar-thumb,
.hotel-gallery-grid::-webkit-scrollbar-thumb,
.event-gallery-grid::-webkit-scrollbar-thumb,
.event-speaker-grid::-webkit-scrollbar-thumb,
.event-ticket-stack::-webkit-scrollbar-thumb,
.event-ticket-list::-webkit-scrollbar-thumb,
.profile-support-list::-webkit-scrollbar-thumb,
.profile-favorite-list::-webkit-scrollbar-thumb,
.profile-reservation-grid::-webkit-scrollbar-thumb,
.service-gallery::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #31d7a9, #0ea5e9) !important;
    border-radius: 999px !important;
}

.dropdown-menu,
.dropdown-menu.show,
.bootstrap-select .dropdown-menu.inner,
.select2-results__options,
.nice-select .list,
.public-user-menu {
    max-height: min(70vh, 420px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    scrollbar-width: thin !important;
    scrollbar-color: #31d7a9 #e9eef6 !important;
}

@media (max-width: 767px) {
    .ticket-owned-list,
    .pending-list,
    .ticket-flow,
    .ticket-catalog,
    .hotel-room-grid,
    .hotel-gallery-grid,
    .event-gallery-grid,
    .event-speaker-grid,
    .event-ticket-stack,
    .event-ticket-list,
    .profile-support-list,
    .profile-favorite-list,
    .profile-reservation-grid,
    .service-gallery {
        max-height: calc(100vh - 170px) !important;
    }
}
