/* Finition visuelle commune aux pages publiques et aux espaces utilisateur. */
body {
    background: #ffffff;
}

main .card,
main .modal-content,
main .page-shell,
main .sidebar-shell,
main .alert,
main .list-group-item,
main .table-responsive {
    border-radius: 0.6rem !important;
    box-shadow: none !important;
}

main .card {
    border: 1px solid rgba(13, 59, 13, 0.10) !important;
}

main .card:hover,
main .list-group-item:hover {
    transform: none !important;
    box-shadow: none !important;
}

main .page-shell,
main .project-detail-page,
main .music-detail-page,
main .video-detail-page,
main .ad-detail-page,
main .receipt-shell {
    background: #ffffff !important;
}

main [class*="-page"]::before,
main [class*="-shell"]::before {
    background: none !important;
}

main .page-hero,
main .intro-panel,
main .ticket-pass__header {
    background: var(--dark-green) !important;
    border-radius: 0.6rem !important;
    box-shadow: none !important;
}

main .btn,
main .form-control,
main .form-select,
main .input-group-text,
main .badge:not(.rounded-circle) {
    border-radius: 0.35rem !important;
}

main .btn {
    box-shadow: none !important;
}

main .music-card,
main .video-card,
main .project-card,
main .news-card,
main .artist-card,
main .concert-card,
main .freestyle-card,
main .editorial-card {
    border-radius: 0.5rem !important;
    box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px !important;
}

/* Musiques et projets : les pages de détail ont des composants locaux dédiés. */
main .music-detail-hero-card,
main .project-hero-card,
main .project-tracks-card,
main .project-sidebar-card,
main .track-row-card,
main .project-cover,
main .artist-card-avatar {
    border-radius: 0.5rem !important;
    box-shadow: none !important;
}

main .project-hero-card {
    background: var(--dark-green) !important;
}

main .project-cover-wrap::after {
    display: none !important;
}

main .project-meta-card,
main .track-row-card {
    border-radius: 0.45rem !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
}

main .track-row-card {
    background: #f8f9fa !important;
    transition: background-color 0.2s ease !important;
}

main .track-row-card:hover {
    transform: none !important;
    box-shadow: none !important;
    background: #f2f5f3 !important;
}

/* Clips et freestyles : mêmes règles pour les lecteurs et leurs informations. */
main .video-player-shell,
main .video-container,
main .video-info-card,
main .freestyle-audio-shell,
main .video-meta-chip,
main .video-description-block,
main .freestyle-detail-chip,
main .artist-stats-panel {
    border-radius: 0.5rem !important;
    box-shadow: none !important;
}

main .video-container,
main .freestyle-audio-shell {
    background: #17211a !important;
}

main .video-meta-chip,
main .video-description-block,
main .freestyle-detail-chip,
main .artist-stats-panel {
    background: #f8f9fa !important;
}

main .video-artist-avatar,
main .sidebar-artist-avatar,
main .freestyle-detail-page .rounded-circle {
    box-shadow: none !important;
}

main .video-detail-page .list-group-item:hover,
main .freestyle-detail-page .card:hover,
main .freestyle-detail-page .like-btn:hover,
main .freestyle-detail-page .btn-outline-success:hover,
main .artist-page .card:hover {
    transform: none !important;
    box-shadow: none !important;
}

main .artist-stats-bar-fill {
    background: var(--primary-orange) !important;
}

main .music-card .card-img-top,
main .video-card .card-img-top,
main .project-card .card-img-top,
main .news-card .card-img-top,
main .concert-card .card-img-top,
main .freestyle-card .card-img-top {
    filter: none !important;
}

main .lyrics-text,
main .comment-item,
main .project-link-box,
main .info-card,
main .metric-card {
    background: #f8f9fa !important;
    border-radius: 0.5rem !important;
    box-shadow: none !important;
}

main .section-title-icon,
main .rank-circle,
main .intro-kicker {
    box-shadow: none !important;
}

main .concert-meta-pill,
main .result-type-badge,
main .filter-pills .btn,
main .pagination-shell .page-link,
main .ticket-pass__origin,
main .receipt-chip {
    border-radius: 0.35rem !important;
    box-shadow: none !important;
}

main .card-overlay,
main .hero-slide__overlay,
main .receipt-banner__overlay {
    background: rgba(0, 0, 0, 0.32) !important;
}

/* Cards de contenu : une base sobre, puis des variantes selon le média. */
main .music-card,
main .video-card,
main .project-card,
main .editorial-card,
main .artist-card,
main .concert-card {
    background: #ffffff !important;
    border: 1px solid rgba(13, 59, 13, 0.14) !important;
    border-radius: 0.65rem !important;
    overflow: hidden;
    transition: border-color 0.2s ease, background-color 0.2s ease !important;
}

main .music-card:hover,
main .video-card:hover,
main .project-card:hover,
main .editorial-card:hover,
main .artist-card:hover,
main .concert-card:hover {
    background: #fcfdfc !important;
    border-color: rgba(255, 107, 53, 0.52) !important;
    transform: none !important;
    box-shadow: none !important;
}

main .project-card .card-img-top,
main .editorial-card .card-img-top {
    aspect-ratio: 1 / 1;
    height: auto !important;
    object-fit: cover;
}

main .project-card .card-body,
main .editorial-card .card-body,
main .music-card .card-body,
main .video-card .card-body,
main .artist-card .card-body,
main .concert-card .card-body {
    padding: 1rem !important;
}

main .project-card .card-title,
main .editorial-card .card-title,
main .music-card .card-title,
main .video-card .card-title,
main .artist-card .card-title,
main .concert-card .card-title {
    margin-bottom: 0.3rem;
    color: #15221a;
    font-size: 1rem;
    line-height: 1.35;
}

main .project-card .card-text,
main .editorial-card .card-text,
main .music-card .card-text,
main .video-card .card-text,
main .artist-card .card-text,
main .concert-card .card-text {
    margin-bottom: 0.7rem;
    line-height: 1.45;
}

/* Albums : la pochette, le titre et l'artiste sont prioritaires. */
main .project-card .project-card-meta,
main .editorial-card .editorial-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 1.25rem;
    margin-bottom: 0.65rem;
    color: #62706a;
    font-size: 0.82rem;
}

main .project-card .badge,
main .editorial-card .badge {
    display: none;
}

/* Musiques : pochette compacte, lecture identifiable, actions secondaires discrètes. */
main .music-card .card-img-top {
    aspect-ratio: 1 / 1;
    height: auto !important;
    object-fit: cover;
}

main .music-card .card-overlay,
main .video-card .card-overlay {
    background: rgba(13, 59, 13, 0.38) !important;
    opacity: 0;
    transition: opacity 0.2s ease !important;
}

main .music-card:hover .card-overlay,
main .music-card:focus-within .card-overlay,
main .video-card:hover .card-overlay,
main .video-card:focus-within .card-overlay {
    opacity: 1;
}

main .music-card .btn-circle,
main .video-card .btn-circle {
    width: 46px;
    height: 46px;
    padding: 0;
    font-size: 1rem;
}

main .music-card .card-footer {
    padding: 0 1rem 1rem !important;
}

main .music-card .card-footer .btn {
    padding-block: 0.45rem;
}

/* Clips : miniature 16:9 et métadonnées à faible contraste. */
main .video-card .card-img-top,
main .video-card .video-card__placeholder {
    aspect-ratio: 16 / 9;
    height: auto !important;
    object-fit: cover;
    background: var(--dark-green) !important;
}

main .video-card .video-meta-pill {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #62706a;
    font-size: 0.8rem;
    font-weight: 500;
}

/* Artistes : photo lisible, informations et actions compactes. */
main .artist-card .artist-avatar img {
    width: 104px !important;
    height: 104px !important;
    border: 3px solid rgba(255, 107, 53, 0.14) !important;
    box-shadow: none !important;
}

main .artist-card .social-links {
    display: flex;
    justify-content: center;
    gap: 0.4rem;
}

main .artist-card .social-links .btn,
main .artist-card .btn-outline-orange {
    min-width: 34px;
    padding: 0.35rem 0.55rem;
}

/* Concerts : date, lieu et réservation sont structurés sans décoration superflue. */
main .concert-card .card-img-top {
    aspect-ratio: 4 / 3;
    height: auto !important;
    object-fit: cover;
}

main .concert-card .badge,
main .concert-card .concert-meta-pill {
    border-radius: 0.35rem !important;
    font-size: 0.78rem;
}

main .concert-card .concert-meta-pill {
    padding: 0;
    border: 0;
    background: transparent;
    color: #62706a;
    font-weight: 500;
}

main .concert-card .card-footer {
    padding: 0 1rem 1rem !important;
    background: #ffffff !important;
}

[data-bs-theme="dark"] main .music-card,
[data-bs-theme="dark"] main .video-card,
[data-bs-theme="dark"] main .project-card,
[data-bs-theme="dark"] main .editorial-card,
[data-bs-theme="dark"] main .artist-card,
[data-bs-theme="dark"] main .concert-card,
[data-bs-theme="dark"] main .concert-card .card-footer {
    background: var(--surface-color) !important;
    border-color: var(--border-color) !important;
}

[data-bs-theme="dark"] main .music-card:hover,
[data-bs-theme="dark"] main .video-card:hover,
[data-bs-theme="dark"] main .project-card:hover,
[data-bs-theme="dark"] main .editorial-card:hover,
[data-bs-theme="dark"] main .artist-card:hover,
[data-bs-theme="dark"] main .concert-card:hover {
    background: var(--surface-soft) !important;
}

[data-bs-theme="dark"] main .project-card .card-title,
[data-bs-theme="dark"] main .editorial-card .card-title,
[data-bs-theme="dark"] main .music-card .card-title,
[data-bs-theme="dark"] main .video-card .card-title,
[data-bs-theme="dark"] main .artist-card .card-title,
[data-bs-theme="dark"] main .concert-card .card-title {
    color: var(--text-color);
}

/* Les finitions du thème clair utilisent plusieurs fonds forcés : on les
   remplace explicitement ici lorsque le thème sombre est actif. */
[data-bs-theme="dark"] body {
    background: var(--bg-color, #0f1318) !important;
    color: var(--text-color, #e7edf5);
}

[data-bs-theme="dark"] .home-shell {
    background: var(--bg-color, #0f1318) !important;
}

[data-bs-theme="dark"] .section-shell {
    background: var(--surface-color, #161c24) !important;
    border-color: var(--border-color, #2b3644) !important;
}

[data-bs-theme="dark"] .section-shell .section-title,
[data-bs-theme="dark"] .section-shell .fw-bold {
    color: var(--text-color, #e7edf5);
}

[data-bs-theme="dark"] .section-shell .section-subtitle {
    color: var(--text-muted, #a7b3c2);
}

/* Bloc vedette de l'accueil : une vitre teintée, sans modifier le fond du site. */
[data-bs-theme="dark"] .home-featured-hero.section-shell {
    background: linear-gradient(135deg, rgba(4, 45, 27, 0.88) 0%, rgba(5, 25, 16, 0.76) 100%) !important;
    border-color: rgba(255, 255, 255, 0.32) !important;
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.16) !important;
    backdrop-filter: blur(20px) saturate(135%);
    -webkit-backdrop-filter: blur(20px) saturate(135%);
}

[data-bs-theme="dark"] .home-featured-group {
    background: linear-gradient(135deg, rgba(8, 52, 32, 0.76) 0%, rgba(5, 28, 18, 0.64) 100%) !important;
    border-color: rgba(255, 255, 255, 0.26) !important;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
    backdrop-filter: blur(16px) saturate(130%);
    -webkit-backdrop-filter: blur(16px) saturate(130%);
}

[data-bs-theme="dark"] main .page-shell,
[data-bs-theme="dark"] main .project-detail-page,
[data-bs-theme="dark"] main .music-detail-page,
[data-bs-theme="dark"] main .video-detail-page,
[data-bs-theme="dark"] main .ad-detail-page,
[data-bs-theme="dark"] main .receipt-shell {
    background: var(--bg-color) !important;
}

[data-bs-theme="dark"] main .card {
    border-color: var(--border-color) !important;
}

[data-bs-theme="dark"] main .track-row-card,
[data-bs-theme="dark"] main .video-meta-chip,
[data-bs-theme="dark"] main .video-description-block,
[data-bs-theme="dark"] main .freestyle-detail-chip,
[data-bs-theme="dark"] main .artist-stats-panel,
[data-bs-theme="dark"] main .lyrics-text,
[data-bs-theme="dark"] main .comment-item,
[data-bs-theme="dark"] main .project-link-box,
[data-bs-theme="dark"] main .info-card,
[data-bs-theme="dark"] main .metric-card {
    background: var(--surface-soft) !important;
    color: var(--text-color);
}

[data-bs-theme="dark"] main .track-row-card:hover {
    background: var(--surface-strong) !important;
}

[data-bs-theme="dark"] main .project-card .project-card-meta,
[data-bs-theme="dark"] main .editorial-card .editorial-meta,
[data-bs-theme="dark"] main .video-card .video-meta-pill,
[data-bs-theme="dark"] main .concert-card .concert-meta-pill {
    color: var(--text-muted);
}

/* Page artiste : lecture éditoriale simple, sans empilement de cartes décoratives. */
.artist-page .artist-profile-card,
.artist-page .page-shell {
    border: 1px solid rgba(13, 59, 13, 0.10) !important;
    border-radius: 0.5rem !important;
    box-shadow: none !important;
}

.artist-page .card-header.bg-dark-green {
    min-height: auto;
    padding: 0.9rem 1rem;
    background: #f8faf8 !important;
    border-bottom: 1px solid rgba(13, 59, 13, 0.10) !important;
    color: #15221a !important;
}

.artist-page .card-header.bg-dark-green h5 {
    color: inherit !important;
    font-size: 1rem;
}

.artist-page .card-header.bg-dark-green .btn-outline-light {
    border-color: rgba(13, 59, 13, 0.25);
    color: var(--dark-green);
}

.artist-page .card-header.bg-dark-green .btn-outline-light:hover {
    background: var(--light-green);
}

.artist-page .artist-photo {
    margin-bottom: 1.25rem !important;
}

.artist-page .artist-photo img {
    border: 2px solid rgba(13, 59, 13, 0.12) !important;
    box-shadow: none !important;
}

.artist-page .artist-profile-card .card-body {
    padding: 1.5rem !important;
}

.artist-page .artist-profile-card .stat-number {
    color: var(--dark-green);
    font-size: 1.5rem;
    font-weight: 700;
}

.artist-page .social-links .btn-circle {
    width: 34px;
    height: 34px;
    border-radius: 0.4rem;
    box-shadow: none !important;
}

.artist-page .biography-content {
    line-height: 1.65;
    text-align: left;
}

.artist-page .card.bg-light {
    border: 1px solid rgba(13, 59, 13, 0.10) !important;
    border-radius: 0.45rem !important;
    background: #fff !important;
    box-shadow: none !important;
}

.artist-page .artist-stats-panel {
    border-radius: 0.45rem;
    background: #f8faf8;
    border-color: rgba(13, 59, 13, 0.10);
}

.artist-page .artist-stats-bar-track,
.artist-page .artist-stats-bar-fill {
    border-radius: 0.2rem;
}

.artist-page .artist-stats-bar-fill {
    background: var(--primary-orange);
}

[data-bs-theme="dark"] .artist-page .artist-profile-card,
[data-bs-theme="dark"] .artist-page .page-shell,
[data-bs-theme="dark"] .artist-page .card.bg-light {
    background: var(--surface-color) !important;
    border-color: var(--border-color) !important;
}

[data-bs-theme="dark"] .artist-page .card-header.bg-dark-green,
[data-bs-theme="dark"] .artist-page .artist-stats-panel {
    background: var(--surface-soft) !important;
    border-color: var(--border-color) !important;
    color: var(--text-color) !important;
}

[data-bs-theme="dark"] .artist-page .artist-profile-card .stat-number {
    color: var(--text-color);
}

/* Pages légales : priorité au contenu et à la lecture, sans mise en scène. */
.legal-page {
    max-width: 1180px;
}

.legal-page > .row.mb-5 {
    margin-bottom: 2rem !important;
}

.legal-page > .row.mb-5 h1 {
    font-size: clamp(1.65rem, 2.7vw, 2.25rem);
    letter-spacing: -0.02em;
}

.legal-page .card {
    border: 1px solid rgba(13, 59, 13, 0.10) !important;
    border-radius: 0.5rem !important;
    background: #fff !important;
    box-shadow: none !important;
}

.legal-page .card-header.bg-dark-green {
    min-height: auto;
    padding: 0.9rem 1rem;
    background: #f8faf8 !important;
    color: #15221a !important;
    border-bottom: 1px solid rgba(13, 59, 13, 0.10) !important;
}

.legal-page .card-header.bg-dark-green h3,
.legal-page .card-header.bg-dark-green h5 {
    color: inherit !important;
    font-size: 1rem;
}

.legal-page .card-footer.bg-light,
.legal-page .card-header.bg-light {
    background: #f8faf8 !important;
    border-color: rgba(13, 59, 13, 0.10) !important;
}

.legal-page .list-group-item {
    padding: 0.8rem 0.9rem !important;
    border-bottom: 1px solid rgba(13, 59, 13, 0.08) !important;
    background: transparent;
}

.legal-page .list-group-item.active {
    background: var(--dark-green) !important;
    border-color: var(--dark-green) !important;
}

.legal-page .list-group-item .rounded-circle {
    border-radius: 0.4rem !important;
    box-shadow: none !important;
}

.legal-page .legal-content h4 {
    margin-top: 1.75rem;
    padding-bottom: 0.5rem;
    border-bottom-color: var(--primary-orange);
    color: #15221a;
}

.legal-page .legal-content h5 { color: var(--dark-green); }

.legal-page .legal-content .highlight,
.legal-page .legal-content .note,
.legal-page .legal-content .warning {
    padding: 0.85rem 1rem;
    border-radius: 0.35rem;
}

.legal-page .legal-content table { font-size: 0.94rem; }

.legal-page .legal-content th { background: #f8faf8; }

.legal-page .btn {
    border-radius: 0.35rem;
    box-shadow: none !important;
}

[data-bs-theme="dark"] .legal-page .card {
    background: var(--surface-color) !important;
    border-color: var(--border-color) !important;
}

[data-bs-theme="dark"] .legal-page .card-header.bg-dark-green,
[data-bs-theme="dark"] .legal-page .card-footer.bg-light,
[data-bs-theme="dark"] .legal-page .card-header.bg-light,
[data-bs-theme="dark"] .legal-page .legal-content th {
    background: var(--surface-soft) !important;
    border-color: var(--border-color) !important;
    color: var(--text-color) !important;
}

/* Ticket concert : informations et paiement structurés comme un formulaire de service. */
.concert-ticket-page .card,
.concert-ticket-page .modal-content {
    border: 1px solid rgba(13, 59, 13, 0.10) !important;
    border-radius: 0.5rem !important;
    background: #fff !important;
    box-shadow: none !important;
}

.concert-ticket-page .card-img-top {
    border-radius: 0.5rem 0.5rem 0 0 !important;
}

.concert-ticket-page .card-header.bg-orange {
    padding: 0.9rem 1rem;
    background: #f8faf8 !important;
    border-bottom: 1px solid rgba(13, 59, 13, 0.10) !important;
    color: #15221a !important;
}

.concert-ticket-page .card-header.bg-orange h4 {
    color: inherit !important;
    font-size: 1rem;
}

.concert-ticket-page .bg-light.rounded {
    border: 1px solid rgba(13, 59, 13, 0.08);
    border-radius: 0.4rem !important;
    background: #f8faf8 !important;
}

.concert-ticket-page .payment-option {
    border-radius: 0.4rem !important;
    background: #fff;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.concert-ticket-page .payment-option:hover {
    border-color: var(--primary-orange) !important;
    background: #fffaf7;
    box-shadow: none !important;
}

.concert-ticket-page .manual-payment-box {
    border-radius: 0.4rem !important;
    background: #f8faf8 !important;
    border-color: rgba(13, 59, 13, 0.12) !important;
}

.concert-ticket-page .manual-payment-number {
    font-size: clamp(1.55rem, 4vw, 2.1rem);
    color: var(--dark-green);
    letter-spacing: 0.04em;
}

.concert-ticket-page .payment-success-icon {
    width: 56px;
    height: 56px;
    border-radius: 0.5rem;
    font-size: 1.5rem;
}

.concert-ticket-page .btn {
    border-radius: 0.35rem;
    box-shadow: none !important;
}

[data-bs-theme="dark"] .concert-ticket-page .card,
[data-bs-theme="dark"] .concert-ticket-page .modal-content,
[data-bs-theme="dark"] .concert-ticket-page .payment-option {
    background: var(--surface-color) !important;
    border-color: var(--border-color) !important;
}

[data-bs-theme="dark"] .concert-ticket-page .card-header.bg-orange,
[data-bs-theme="dark"] .concert-ticket-page .bg-light.rounded,
[data-bs-theme="dark"] .concert-ticket-page .manual-payment-box {
    background: var(--surface-soft) !important;
    border-color: var(--border-color) !important;
    color: var(--text-color) !important;
}

/* Reçu de concert : un document de confirmation net, plutôt qu'une carte promotionnelle. */
.receipt-shell {
    background: #f6f8f6 !important;
}

.receipt-shell .receipt-topbar {
    margin-bottom: 1.5rem !important;
}

.receipt-shell .receipt-title {
    font-size: clamp(1.7rem, 3vw, 2.3rem);
    line-height: 1.15;
}

.receipt-shell .receipt-chip {
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: var(--dark-green);
    font-size: 0.82rem;
}

.receipt-shell .receipt-banner {
    min-height: 250px;
    border-radius: 0.5rem;
    box-shadow: none !important;
}

.receipt-shell .receipt-banner__overlay {
    background: linear-gradient(90deg, rgba(6, 22, 13, 0.88) 0%, rgba(6, 22, 13, 0.56) 62%, rgba(6, 22, 13, 0.35) 100%) !important;
}

.receipt-shell .receipt-banner__content {
    min-height: 250px;
    padding: 1.5rem;
}

.receipt-shell .receipt-event {
    font-size: clamp(1.6rem, 3vw, 2.25rem);
}

.receipt-shell .ticket-pass {
    border: 1px solid rgba(13, 59, 13, 0.12) !important;
    border-radius: 0.5rem !important;
    box-shadow: none !important;
}

.receipt-shell .ticket-pass__header {
    padding: 1.1rem 1.25rem;
    background: var(--dark-green) !important;
}

.receipt-shell .ticket-pass__origin {
    padding: 0;
    border: 0;
    border-radius: 0;
    color: rgba(255, 255, 255, 0.76);
    letter-spacing: 0.08em;
}

.receipt-shell .ticket-pass__body {
    padding: 1.25rem;
    background: #fff !important;
}

.receipt-shell .info-card,
.receipt-shell .metric-card,
.receipt-shell .metric-card--accent,
.receipt-shell .artist-ticket-embed__body,
.receipt-shell .unit-ticket-card {
    border: 1px solid rgba(13, 59, 13, 0.10) !important;
    border-radius: 0.4rem !important;
    background: #f8faf8 !important;
    box-shadow: none !important;
}

.receipt-shell .ticket-strip {
    gap: 0.75rem;
    padding-top: 1rem;
}

.receipt-shell .purchase-proof {
    padding: 1rem;
    border-radius: 0.4rem;
    background: #f8faf8;
    border-color: rgba(13, 59, 13, 0.12);
}

.receipt-shell .purchase-proof__stamp {
    min-height: 90px;
    border-radius: 0.35rem;
    background: #fff;
}

.receipt-shell .unit-ticket-code,
.receipt-shell .unit-ticket-qr img,
.receipt-shell .artist-ticket-rendered-page {
    border-radius: 0.35rem;
}

/* Le QR doit rester au-dessus du filigrane de prévisualisation pour être lisible. */
.receipt-shell .unit-ticket-qr {
    position: relative;
    z-index: 4;
}

.receipt-shell .unit-ticket-qr img {
    display: inline-block;
    width: 180px !important;
    height: 180px !important;
    max-width: 100%;
    padding: 0.5rem;
    background: #fff;
    opacity: 1;
}

.receipt-shell .btn {
    border-radius: 0.35rem;
    box-shadow: none !important;
}

[data-bs-theme="dark"] .receipt-shell {
    background: var(--bg-color) !important;
}

[data-bs-theme="dark"] .receipt-shell .ticket-pass__body,
[data-bs-theme="dark"] .receipt-shell .info-card,
[data-bs-theme="dark"] .receipt-shell .metric-card,
[data-bs-theme="dark"] .receipt-shell .metric-card--accent,
[data-bs-theme="dark"] .receipt-shell .artist-ticket-embed__body,
[data-bs-theme="dark"] .receipt-shell .unit-ticket-card {
    background: var(--surface-color) !important;
    border-color: var(--border-color) !important;
    color: var(--text-color);
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

@media (max-width: 767.98px) {
    main .page-shell,
    main .sidebar-shell,
    main .card,
    main .modal-content {
        border-radius: 0.45rem !important;
    }

    main .project-card .card-title,
    main .editorial-card .card-title,
    main .music-card .card-title,
    main .video-card .card-title,
    main .artist-card .card-title,
    main .concert-card .card-title {
        display: -webkit-box;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    main .music-card .d-flex.align-items-center.gap-2.flex-nowrap.ms-auto,
    main .video-card .d-flex.gap-2.flex-nowrap.ms-auto {
        width: 100%;
        margin-left: 0 !important;
        flex-wrap: wrap !important;
    }

    main .concert-card .card-footer .d-flex {
        align-items: flex-start !important;
        gap: 0.75rem;
    }
}
