/* Base resets and VW Tokens */

@font-face {
    font-family: 'VWHeadWeb';
    src: url('../fonts/VWHeadWeb-Bold.woff') format('woff'),
         url('../fonts/VWHeadWeb-Bold.ttf') format('truetype');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'VWHeadWeb';
    src: url('../fonts/VWHeadWeb-Light.woff') format('woff'),
         url('../fonts/VWHeadWeb-Light.ttf') format('truetype');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'ArchivoExpanded';
    src: url('../fonts/Archivo_Expanded-Medium.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'ArchivoExpanded';
    src: url('../fonts/Archivo_Expanded-SemiBold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'ArchivoExpanded';
    src: url('../fonts/Archivo_Expanded-Bold.ttf') format('truetype');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'ArchivoExpanded';
    src: url('../fonts/Archivo_Expanded-ExtraBold.ttf') format('truetype');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'ArchivoBlack';
    src: url('../fonts/Archivo-Black.ttf') format('truetype');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}



@font-face {
    font-family: 'VWHeadWeb';
    src: url('../fonts/VWHeadWeb-Regular.woff') format('woff'),
         url('../fonts/VWHeadWeb-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'VWTextWeb';
    src: url('../fonts/VWTextWeb-Bold.woff') format('woff'),
         url('../fonts/VWTextWeb-Bold.ttf') format('truetype');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'VWTextWeb';
    src: url('../fonts/VWTextWeb-Regular.woff') format('woff'),
         url('../fonts/VWTextWeb-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

:root {
    --vw-red: #ff002a;
    --vw-black: #000000;
    --vw-white: #FFFFFF;
    
    --layout-max-width: 1440px;
    --content-max-width: 1440px;
}

body {
    font-family: 'ArchivoExpanded', sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    background-color: var(--vw-red);
    color: var(--vw-white);
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'ArchivoExpanded', Arial, sans-serif;
    font-weight: 600;
}

/* Swiper overrides */
.swiper-pagination-bullet {
    background: white !important;
    opacity: 0.3 !important;
}
.swiper-pagination-bullet-active {
    background: var(--vw-red) !important;
    opacity: 1 !important;
}

/* Utility classes (plain CSS) */
.bg-vw-red {
    background-color: var(--vw-red);
}
.bg-vw-black {
    background-color: var(--vw-black);
}
.text-vw-red {
    color: var(--vw-red);
}
.text-vw-black {
    color: var(--vw-black);
}

.container-fluid {
    width: 100%;
    max-width: var(--layout-max-width);
    margin-left: auto;
    margin-right: auto;
}

.container-content {
    width: 100%;
    max-width: var(--content-max-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

/* Selection colors */
::selection {
    background-color: #0b0a0a;
    color: #ff002a;
}
::-moz-selection {
    background-color: #0b0a0a;
    color: #ff002a;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: var(--vw-black);
}

::-webkit-scrollbar-thumb {
    background: var(--vw-red);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #cc0010;
}

/* Tickets Card Effect component */
.ticket-card {
    position: relative;
    display: flex;
    flex-direction: column;
    text-align: center;
    height: 100%;
    background-color: transparent;
    transition: transform 0.3s ease;
}

.ticket-card:hover {
    transform: translateY(-5px);
}

.ticket-card-border {
    position: absolute;
    top: 15px;
    left: 0;
    right: 0;
    bottom: 0;
    border: 1px solid currentColor;
    border-top: none;
    border-radius: 0 0 1rem 1rem;
    pointer-events: none;
}
.ticket-border-top {
    position: absolute;
    top: 0;
    left: 15px;
    right: 15px;
    border-top: 2px dashed currentColor;
    pointer-events: none;
}
.ticket-notch-left {
    position: absolute;
    top: 0;
    left: 0;
    width: 15px;
    height: 15px;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    border-bottom-right-radius: 15px;
    pointer-events: none;
}
.ticket-notch-right {
    position: absolute;
    top: 0;
    right: 0;
    width: 15px;
    height: 15px;
    border-left: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    border-bottom-left-radius: 15px;
    pointer-events: none;
}
.ticket-divider {
    border-bottom: 1px solid currentColor;
}

/* Gallery Swiper Effects */
.gallery-swiper .swiper-slide > div {
    transition: transform 0.5s ease-out;
}
.gallery-swiper .swiper-slide-active > div {
    transform: scale(1.06);
}

.gallery-swiper .swiper-slide > div::after {
    content: '';
    position: absolute;
    inset: 0;
    background-color: #000000;
    opacity: 0.25;
    transition: opacity 0.5s ease-out;
    pointer-events: none;
    z-index: 10;
}
.gallery-swiper .swiper-slide-active > div::after {
    opacity: 0;
}

/* Ticket Selection Animation */
.ticket-row-label {
    position: relative;
    overflow: hidden;
    color: var(--vw-black);
    transition: color 0.4s ease;
    z-index: 1;
}

.ticket-row-label::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background-color: var(--vw-black);
    transition: left 0.6s cubic-bezier(0.77, 0, 0.175, 1);
    z-index: -1;
}

.ticket-row-label.is-selected {
    color: var(--vw-red);
}

.ticket-row-label.is-selected::before {
    left: 0;
}

/* Cross-browser Placeholder Color */
::-webkit-input-placeholder {
    color: rgba(0, 0, 0, 0.8) !important;
}
:-moz-placeholder {
    color: rgba(0, 0, 0, 0.8) !important;
    opacity: 1;
}
::-moz-placeholder {
    color: rgba(0, 0, 0, 0.8) !important;
    opacity: 1;
}
:-ms-input-placeholder {
    color: rgba(0, 0, 0, 0.8) !important;
}
::placeholder {
    color: rgba(0, 0, 0, 0.8) !important;
    opacity: 1;
}
