/* =========================================================
   PARADISE VALLEY EVENTS - GRID LAYOUT STYLING
   Only applies to /tools/events/ pages
   ALL SELECTORS SCOPED TO body.pv-events-listing
   ========================================================= */

/* Page Background - White */
body.pv-events-listing {
    background: #ffffff !important;
}

/* =========================================================
   PAGE TITLE STYLING
   ========================================================= */
body.pv-events-listing .pv-styled-title {
    font-family: 'Urbanist', sans-serif !important;
    font-size: 5rem !important;
    font-weight: 800 !important;
    color: #E67E22 !important;
    text-align: center !important;
    margin: 2rem auto 0.75rem !important;
    padding: 0 1.5rem !important;
    background: none !important;
    letter-spacing: -2px !important;
    display: block !important;
    width: 100% !important;
}

body.pv-events-listing #pv-title-accent {
    width: 80px !important;
    height: 5px !important;
    background: linear-gradient(90deg, #2980b9, #E67E22) !important;
    margin: 1rem auto 2.5rem !important;
    border-radius: 3px !important;
}

/* =========================================================
   EVENTS GRID CONTAINER
   ========================================================= */
body.pv-events-listing .pv-events-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(480px, 1fr)) !important;
    gap: 2.5rem !important;
    max-width: 1600px !important;
    margin: 0 auto !important;
    padding: 0 2rem 3rem !important;
}

/* Hide original event content when modernized */
body.pv-events-listing .event.pv-modernized > .clearfix,
body.pv-events-listing .event.pv-modernized > .vertical_padding {
    display: none !important;
}

/* =========================================================
   EVENT CARD
   ========================================================= */
body.pv-events-listing .event.pv-modernized {
    background: #ffffff !important;
    border-radius: 20px !important;
    box-shadow: 0 6px 30px rgba(0, 0, 0, 0.1) !important;
    overflow: hidden !important;
    transition: all 0.3s ease !important;
    font-family: 'Urbanist', sans-serif !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
}

body.pv-events-listing .event.pv-modernized:hover {
    box-shadow: 0 16px 50px rgba(0, 0, 0, 0.15) !important;
    transform: translateY(-6px) !important;
}

/* =========================================================
   HEADER WITH IMAGE BANNER
   ========================================================= */
body.pv-events-listing .pv-event-header {
    position: relative !important;
    height: 280px !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
}

body.pv-events-listing .pv-event-image {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 1 !important;
}

body.pv-events-listing .pv-event-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

/* Gradient overlay */
body.pv-events-listing .pv-event-header::after {
    content: '' !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 80% !important;
    background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.4) 50%, transparent 100%) !important;
    z-index: 2 !important;
    pointer-events: none !important;
}

body.pv-events-listing .pv-header-content {
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 3 !important;
    padding: 2rem 2.25rem !important;
}

body.pv-events-listing .pv-event-category {
    display: inline-block !important;
    background: rgba(255,255,255,0.25) !important;
    color: #fff !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    padding: 0.5rem 1.25rem !important;
    border-radius: 16px !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    margin-bottom: 0.85rem !important;
}

body.pv-events-listing .pv-event-title,
body.pv-events-listing h2.pv-event-title {
    font-size: 2.25rem !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    line-height: 1.25 !important;
    margin: 0 !important;
    text-shadow: 0 2px 8px rgba(0,0,0,0.3) !important;
    background: none !important;
    padding: 0 !important;
}

body.pv-events-listing .pv-event-title a {
    color: #ffffff !important;
    text-decoration: none !important;
}

/* =========================================================
   EVENT BODY
   ========================================================= */
body.pv-events-listing .pv-event-body {
    padding: 2.25rem !important;
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}

body.pv-events-listing .pv-event-description {
    font-size: 1.5rem !important;
    color: #555 !important;
    line-height: 1.65 !important;
    margin-bottom: 1.75rem !important;
}

/* =========================================================
   INFO ROWS
   ========================================================= */
body.pv-events-listing .pv-event-info {
    border-top: 2px solid #f0f0f0 !important;
    padding-top: 1.75rem !important;
    margin-top: auto !important;
}

body.pv-events-listing .pv-info-row {
    display: flex !important;
    align-items: flex-start !important;
    margin-bottom: 1.5rem !important;
    gap: 1.25rem !important;
}

body.pv-events-listing .pv-info-row:last-child {
    margin-bottom: 0 !important;
}

body.pv-events-listing .pv-info-icon {
    width: 60px !important;
    height: 60px !important;
    background: rgba(230, 126, 34, 0.1) !important;
    border-radius: 14px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}

body.pv-events-listing .pv-info-icon svg {
    width: 32px !important;
    height: 32px !important;
    color: #2980b9 !important;
}

body.pv-events-listing .pv-info-content {
    flex: 1 !important;
    min-width: 0 !important;
}

body.pv-events-listing .pv-info-label {
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: #999 !important;
    text-transform: uppercase !important;
    letter-spacing: 1.5px !important;
    margin-bottom: 0.35rem !important;
    display: block !important;
}

body.pv-events-listing .pv-info-value {
    font-size: 1.5rem !important;
    color: #333 !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
}

/* =========================================================
   PRICING
   ========================================================= */
body.pv-events-listing .pv-pricing-grid {
    display: flex !important;
    gap: 1.25rem !important;
    margin-top: 1.75rem !important;
    flex-wrap: wrap !important;
}

body.pv-events-listing .pv-price-item {
    background: #FFF8F0 !important;
    padding: 1rem 1.5rem !important;
    border-radius: 14px !important;
    text-align: center !important;
    flex: 1 !important;
    min-width: 120px !important;
}

body.pv-events-listing .pv-price-label {
    font-size: 1rem !important;
    color: #888 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    display: block !important;
    margin-bottom: 0.25rem !important;
}

body.pv-events-listing .pv-price-value {
    font-size: 2rem !important;
    font-weight: 800 !important;
    color: #E67E22 !important;
}

/* =========================================================
   FOOTER
   ========================================================= */
body.pv-events-listing .pv-event-footer {
    background: #FAFAFA !important;
    padding: 1.75rem 2.25rem !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    border-top: 2px solid #f0f0f0 !important;
    gap: 1.5rem !important;
    flex-wrap: wrap !important;
}

body.pv-events-listing .pv-date-display {
    display: flex !important;
    align-items: center !important;
    gap: 1rem !important;
}

body.pv-events-listing .pv-date-box {
    background: #2980b9 !important;
    color: #fff !important;
    padding: 0.75rem 1.25rem !important;
    border-radius: 12px !important;
    text-align: center !important;
    min-width: 70px !important;
}

body.pv-events-listing .pv-date-month {
    font-size: 1rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    display: block !important;
    color: #fff !important;
}

body.pv-events-listing .pv-date-day {
    font-size: 2rem !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    display: block !important;
    color: #fff !important;
}

body.pv-events-listing .pv-date-text {
    font-size: 1.4rem !important;
    color: #666 !important;
    font-weight: 500 !important;
}

/* Footer actions */
body.pv-events-listing .pv-footer-actions {
    display: flex !important;
    align-items: center !important;
    gap: 1.25rem !important;
}

body.pv-events-listing .pv-login-checkbox {
    display: flex !important;
    align-items: center !important;
    gap: 0.6rem !important;
    font-family: 'Urbanist', sans-serif !important;
    font-size: 1.1rem !important;
    color: #666 !important;
    cursor: pointer !important;
}

body.pv-events-listing .pv-login-checkbox input[type="checkbox"] {
    width: 20px !important;
    height: 20px !important;
    accent-color: #2980b9 !important;
    cursor: pointer !important;
}

body.pv-events-listing .pv-login-checkbox span {
    font-weight: 500 !important;
}

/* Login Notice - moved below cards (minimal styling) */
body.pv-events-listing .blue.f-small.clearfix {
    max-width: 600px !important;
    margin: 2rem auto !important;
    text-align: center !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 1rem !important;
    color: #666 !important;
}

body.pv-events-listing .blue.f-small.clearfix a {
    color: #2980b9 !important;
    text-decoration: underline !important;
}

body.pv-events-listing .blue.f-small.clearfix a:hover {
    color: #E67E22 !important;
}

/* Register Button */
body.pv-events-listing .pv-register-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    background: #E67E22 !important;
    color: #fff !important;
    font-family: 'Urbanist', sans-serif !important;
    font-size: 1.4rem !important;
    font-weight: 700 !important;
    padding: 1.1rem 2rem !important;
    border-radius: 14px !important;
    text-decoration: none !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 15px rgba(230, 126, 34, 0.3) !important;
    border: none !important;
    white-space: nowrap !important;
}

body.pv-events-listing .pv-register-btn:hover {
    background: #D35400 !important;
    transform: scale(1.03) !important;
    color: #fff !important;
}

body.pv-events-listing .pv-register-btn svg {
    width: 24px !important;
    height: 24px !important;
    color: #fff !important;
}

/* =========================================================
   RESPONSIVE - TABLET
   ========================================================= */
@media (max-width: 1100px) {
    body.pv-events-listing .pv-events-grid {
        grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)) !important;
        gap: 2rem !important;
        padding: 0 1.5rem 2.5rem !important;
    }

    body.pv-events-listing .pv-styled-title {
        font-size: 4rem !important;
    }

    body.pv-events-listing .pv-event-header {
        height: 240px !important;
    }

    body.pv-events-listing .pv-event-title,
    body.pv-events-listing h2.pv-event-title {
        font-size: 2rem !important;
    }

    body.pv-events-listing .pv-event-description {
        font-size: 1.3rem !important;
    }

    body.pv-events-listing .pv-info-value {
        font-size: 1.3rem !important;
    }
}

/* =========================================================
   RESPONSIVE - MOBILE (Single Column)
   ========================================================= */
@media (max-width: 520px) {
    body.pv-events-listing .pv-events-grid {
        grid-template-columns: 1fr !important;
        gap: 1.75rem !important;
        padding: 0 1rem 2rem !important;
    }

    body.pv-events-listing .pv-styled-title {
        font-size: 2.75rem !important;
    }

    body.pv-events-listing #pv-title-accent {
        margin-bottom: 2rem !important;
    }

    body.pv-events-listing .pv-event-header {
        height: 200px !important;
    }

    body.pv-events-listing .pv-header-content {
        padding: 1.5rem !important;
    }

    body.pv-events-listing .pv-event-category {
        font-size: 0.85rem !important;
        padding: 0.4rem 1rem !important;
    }

    body.pv-events-listing .pv-event-title,
    body.pv-events-listing h2.pv-event-title {
        font-size: 1.75rem !important;
    }

    body.pv-events-listing .pv-event-body {
        padding: 1.5rem !important;
    }

    body.pv-events-listing .pv-event-description {
        font-size: 1.2rem !important;
    }

    body.pv-events-listing .pv-info-icon {
        width: 48px !important;
        height: 48px !important;
    }

    body.pv-events-listing .pv-info-icon svg {
        width: 26px !important;
        height: 26px !important;
    }

    body.pv-events-listing .pv-info-label {
        font-size: 0.85rem !important;
    }

    body.pv-events-listing .pv-info-value {
        font-size: 1.2rem !important;
    }

    body.pv-events-listing .pv-price-value {
        font-size: 1.6rem !important;
    }

    body.pv-events-listing .pv-event-footer {
        padding: 1.25rem 1.5rem !important;
    }

    body.pv-events-listing .pv-date-day {
        font-size: 1.6rem !important;
    }

    body.pv-events-listing .pv-date-text {
        font-size: 1.1rem !important;
    }

    body.pv-events-listing .pv-register-btn {
        flex: 1 !important;
        justify-content: center !important;
        font-size: 1.2rem !important;
        padding: 1rem 1.5rem !important;
    }

    body.pv-events-listing .pv-footer-actions {
        flex-direction: column !important;
        width: 100% !important;
        gap: 1rem !important;
    }

    body.pv-events-listing .pv-login-checkbox {
        font-size: 1rem !important;
    }
}

/* =========================================================
   =========================================================
   SINGLE EVENT REGISTRATION PAGE STYLES
   For /tools/events/register_cdo/ pages
   ALL SELECTORS SCOPED TO body.pv-registration-page
   =========================================================
   ========================================================= */

/* =========================================================
   SINGLE EVENT - PAGE BACKGROUND
   ========================================================= */
body.pv-registration-page {
    background: #ffffff !important;
    min-height: 100vh !important;
}

/* Remove default backgrounds for single event */
body.pv-registration-page #BodyContainer,
body.pv-registration-page #co_content_container,
body.pv-registration-page .body_wrapper,
body.pv-registration-page .master-content-wrapper {
    background: transparent !important;
}

/* =========================================================
   FOOTER PROTECTION - Ensure footer is not affected
   ========================================================= */
/* Footer inputs should use default styling */
body.pv-registration-page #footer input,
body.pv-registration-page #footer select,
body.pv-registration-page #footer textarea,
body.pv-registration-page .footer input,
body.pv-registration-page .footer select,
body.pv-registration-page .footer textarea,
body.pv-registration-page .footer3 input,
body.pv-registration-page .footer3 select,
body.pv-registration-page .footer3 textarea {
    font-family: inherit !important;
    font-size: inherit !important;
    padding: initial !important;
    border: initial !important;
    border-radius: initial !important;
    background: initial !important;
    box-shadow: none !important;
    width: auto !important;
    max-width: none !important;
}

/* Footer labels should use default styling */
body.pv-registration-page #footer label,
body.pv-registration-page .footer label,
body.pv-registration-page .footer3 label {
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    color: inherit !important;
    display: initial !important;
    margin-bottom: initial !important;
}

/* =========================================================
   SINGLE EVENT - MAIN CONTAINER
   ========================================================= */
body.pv-registration-page .master-content-wrapper {
    max-width: 1000px !important;
    margin: 0 auto !important;
    padding: 3rem 2rem 4rem !important;
}

body.pv-registration-page .master-content-wrapper > header.article-header {
    display: none !important;
}

body.pv-registration-page .vertical_padding {
    background: transparent !important;
    padding: 0 !important;
    overflow: visible !important;
}

body.pv-registration-page form#RegisterSinglePage {
    font-family: 'Inter', sans-serif !important;
}

/* =========================================================
   SINGLE EVENT - REGISTER HEADER
   ========================================================= */
body.pv-registration-page #RegisterHeader {
    padding: 0 !important;
    background: transparent !important;
    margin-bottom: 0 !important;
}

body.pv-registration-page #RegisterHeader .banner_image {
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 28px !important;
    overflow: hidden !important;
    box-shadow: 0 25px 80px rgba(0,0,0,0.15), 0 10px 30px rgba(0,0,0,0.08) !important;
    position: relative !important;
}

body.pv-registration-page #RegisterHeader .banner_image img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
}

body.pv-registration-page #RegisterHeader .column1,
body.pv-registration-page #RegisterHeader .column2 {
    float: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

body.pv-registration-page #RegisterHeader .column1 {
    background: #ffffff !important;
    border-radius: 24px 24px 0 0 !important;
    margin-top: 2.5rem !important;
    position: relative !important;
    z-index: 10 !important;
    box-shadow: 0 -10px 40px rgba(0,0,0,0.04), 0 20px 60px rgba(0,0,0,0.08) !important;
    padding: 3.5rem 3.5rem 2.5rem !important;
    border-bottom: 1px solid rgba(0,0,0,0.06) !important;
}

body.pv-registration-page #RegisterHeader .column1::before {
    content: '✦ Special Event' !important;
    display: inline-block !important;
    background: #E67E22 !important;
    color: #ffffff !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.9rem !important;
    font-weight: 700 !important;
    padding: 0.6rem 1.4rem !important;
    border-radius: 30px !important;
    text-transform: uppercase !important;
    letter-spacing: 2px !important;
    margin-bottom: 2rem !important;
    box-shadow: 0 4px 15px rgba(230, 126, 34, 0.3) !important;
}

body.pv-registration-page #RegisterHeader .event_name {
    font-family: 'Urbanist', sans-serif !important;
    font-size: 3.5rem !important;
    font-weight: 700 !important;
    color: #333 !important;
    margin-bottom: 1.5rem !important;
    line-height: 1.2 !important;
    letter-spacing: -1px !important;
}

body.pv-registration-page #RegisterHeader .event_description {
    font-family: 'Inter', sans-serif !important;
    font-size: 1.4rem !important;
    line-height: 1.8 !important;
    color: #555 !important;
    max-width: 800px !important;
}

body.pv-registration-page #RegisterHeader .column2,
body.pv-registration-page #RegisterHeader .column2.pv-info-styled,
body.pv-registration-page #RegisterHeader div.column2,
body.pv-registration-page .column2.pv-info-styled {
    background: #ffffff !important;
    background-color: #ffffff !important;
    color: #333 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 1.5rem !important;
    padding: 2.5rem 3.5rem !important;
    border-radius: 0 !important;
    margin-top: 0 !important;
}

body.pv-registration-page #RegisterHeader .column2 .heading {
    display: none !important;
}

/* =========================================================
   SINGLE EVENT - INFO CARDS
   ========================================================= */
body.pv-registration-page .pv-info-icon {
    width: 60px !important;
    height: 60px !important;
    min-width: 60px !important;
    border-radius: 14px !important;
    background: rgba(230, 126, 34, 0.1) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}

body.pv-registration-page .pv-info-icon svg {
    width: 32px !important;
    height: 32px !important;
    color: #2980b9 !important;
    stroke: #2980b9 !important;
}

body.pv-registration-page .pv-info-card {
    background: #ffffff !important;
    border-radius: 20px !important;
    padding: 1.75rem 2rem !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02), 0 8px 24px rgba(0,0,0,0.04) !important;
    border: 1px solid rgba(0,0,0,0.08) !important;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
    display: flex !important;
    align-items: center !important;
    gap: 1.25rem !important;
    text-decoration: none !important;
    color: inherit !important;
    flex: 0 1 320px !important;
}

body.pv-registration-page .pv-info-card:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 12px 40px rgba(0,0,0,0.08), 0 4px 12px rgba(0,0,0,0.04) !important;
    border-color: rgba(230, 126, 34, 0.3) !important;
}

body.pv-registration-page .pv-card-label {
    font-family: 'Inter', sans-serif !important;
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 1.5px !important;
    color: #E67E22 !important;
    margin-bottom: 0.5rem !important;
    display: block !important;
}

body.pv-registration-page .pv-info-text {
    flex: 1 !important;
    min-width: 0 !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 1.2rem !important;
    font-weight: 600 !important;
    color: #333 !important;
    line-height: 1.5 !important;
}

body.pv-registration-page .pv-info-content {
    font-family: 'Inter', sans-serif !important;
    font-size: 1.1rem !important;
    font-weight: 600 !important;
    color: #333 !important;
    line-height: 1.5 !important;
    margin-top: 0.25rem !important;
}

body.pv-registration-page .pv-info-content a {
    color: #333 !important;
    text-decoration: none !important;
}

body.pv-registration-page .pv-info-content a:hover {
    color: #E67E22 !important;
}

body.pv-registration-page .pv-info-section-title {
    font-family: 'Urbanist', sans-serif !important;
    font-size: 1.75rem !important;
    font-weight: 700 !important;
    color: #333 !important;
    margin-bottom: 1.5rem !important;
    padding-bottom: 0.75rem !important;
    border-bottom: 2px solid rgba(230, 126, 34, 0.3) !important;
    display: block !important;
    grid-column: 1 / -1 !important;
    text-align: center !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    border-left: none !important;
    border-right: none !important;
    border-top: none !important;
}

/* Info cards wrapper - ensure full width */
body.pv-registration-page .pv-info-wrapper {
    max-width: 100% !important;
    width: 100% !important;
}

body.pv-registration-page .pv-info-cards-grid {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    gap: 30px !important;
    width: 100% !important;
    max-width: 100% !important;
    background: transparent !important;
    padding: 0 !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}

/* Info cards - 2 columns on larger screens */
body.pv-registration-page .pv-info-cards-grid > div.pv-info-card {
    flex: 1 1 calc(50% - 15px) !important;
    min-width: 200px !important;
    display: flex !important;
}

/* Responsive - Single column on tablets (900px and below) */
@media (max-width: 900px) {
    body.pv-registration-page .pv-info-cards-grid > div {
        flex: 1 1 100% !important;
    }
}

/* Responsive - Smaller gap on mobile (600px and below) */
@media (max-width: 600px) {
    body.pv-registration-page .pv-info-cards-grid {
        gap: 20px !important;
    }

    body.pv-registration-page .pv-info-cards-grid > div {
        flex: 1 1 100% !important;
    }
}

/* =========================================================
   SINGLE EVENT - REGISTER BODY
   ========================================================= */
body.pv-registration-page #RegisterBody {
    background: #ffffff !important;
    padding: 3rem 3.5rem !important;
    border-top: 1px solid rgba(0,0,0,0.06) !important;
}

body.pv-registration-page #RegisterBody .title {
    font-family: 'Urbanist', sans-serif !important;
    font-size: 1.75rem !important;
    font-weight: 700 !important;
    color: #333 !important;
    margin-bottom: 2rem !important;
}

/* =========================================================
   SINGLE EVENT - RESERVATIONS PRICING SECTION
   Styles the General Admission, VIP, and Sponsorship text
   ========================================================= */
/* Container for pricing info */
body.pv-registration-page #RegisterBody .pv-pricing-container {
    background: linear-gradient(135deg, #FFF8F0 0%, #FFF5EB 100%) !important;
    border-radius: 20px !important;
    padding: 2rem 2.5rem !important;
    margin-bottom: 2rem !important;
    border: 2px solid rgba(230, 126, 34, 0.2) !important;
    box-shadow: 0 4px 20px rgba(230, 126, 34, 0.08) !important;
}

/* Pricing section title */
body.pv-registration-page #RegisterBody .pv-pricing-title {
    font-family: 'Urbanist', sans-serif !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    color: #E67E22 !important;
    text-transform: uppercase !important;
    letter-spacing: 2px !important;
    margin-bottom: 1.5rem !important;
    padding-bottom: 0.75rem !important;
    border-bottom: 2px solid rgba(230, 126, 34, 0.3) !important;
    display: block !important;
}

/* Style pricing items - wrapper for each price line */
body.pv-registration-page .pv-pricing-item {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    background: #ffffff !important;
    padding: 1rem 1.5rem !important;
    border-radius: 12px !important;
    margin-bottom: 0.75rem !important;
    border: 1px solid rgba(0,0,0,0.06) !important;
    transition: all 0.2s ease !important;
}

body.pv-registration-page .pv-pricing-item:hover {
    border-color: rgba(230, 126, 34, 0.3) !important;
    box-shadow: 0 4px 12px rgba(230, 126, 34, 0.1) !important;
}

body.pv-registration-page .pv-pricing-label {
    font-family: 'Inter', sans-serif !important;
    font-size: 1.1rem !important;
    font-weight: 600 !important;
    color: #333 !important;
}

body.pv-registration-page .pv-pricing-amount {
    font-family: 'Urbanist', sans-serif !important;
    font-size: 1.5rem !important;
    font-weight: 800 !important;
    color: #E67E22 !important;
}

/* Sponsorship levels - horizontal layout */
body.pv-registration-page .pv-sponsorship-levels {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 1rem !important;
    justify-content: center !important;
    margin-top: 1.5rem !important;
    padding-top: 1.5rem !important;
    border-top: 1px dashed rgba(230, 126, 34, 0.3) !important;
}

body.pv-registration-page .pv-sponsorship-level {
    background: linear-gradient(135deg, #E67E22 0%, #F39C12 100%) !important;
    color: #ffffff !important;
    font-family: 'Urbanist', sans-serif !important;
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    padding: 0.75rem 1.5rem !important;
    border-radius: 30px !important;
    box-shadow: 0 4px 15px rgba(230, 126, 34, 0.3) !important;
    transition: all 0.3s ease !important;
}

body.pv-registration-page .pv-sponsorship-level:hover {
    transform: translateY(-2px) scale(1.05) !important;
    box-shadow: 0 8px 25px rgba(230, 126, 34, 0.4) !important;
}

/* VIP badge style */
body.pv-registration-page .pv-vip-badge {
    display: inline-block !important;
    background: linear-gradient(135deg, #9b59b6 0%, #8e44ad 100%) !important;
    color: #ffffff !important;
    font-family: 'Urbanist', sans-serif !important;
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    padding: 0.35rem 0.85rem !important;
    border-radius: 20px !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    margin-right: 0.5rem !important;
    vertical-align: middle !important;
}

/* Sponsorship description text */
body.pv-registration-page .pv-sponsorship-text {
    font-family: 'Inter', sans-serif !important;
    font-size: 1rem !important;
    font-style: italic !important;
    color: #666 !important;
    text-align: center !important;
    margin-top: 1rem !important;
}

body.pv-registration-page #RegisterBody .performance {
    background: #ffffff !important;
    border: 2px solid rgba(230, 126, 34, 0.2) !important;
    border-left: 4px solid #E67E22 !important;
    border-radius: 12px !important;
    padding: 1.5rem 2rem !important;
    margin-bottom: 1rem !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04) !important;
}

body.pv-registration-page #RegisterBody .performance:hover {
    border-color: #E67E22 !important;
    background: #fff9f5 !important;
    box-shadow: 0 8px 24px rgba(230, 126, 34, 0.15) !important;
    transform: translateX(4px) !important;
}

body.pv-registration-page #RegisterBody .performance .bold {
    font-family: 'Inter', sans-serif !important;
    font-size: 1.35rem !important;
    font-weight: 700 !important;
    color: #333 !important;
}

body.pv-registration-page #RegisterBody .performance .price {
    font-family: 'Urbanist', sans-serif !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    color: #E67E22 !important;
}

/* =========================================================
   SINGLE EVENT - CATEGORY SELECTION / TOGGLE OPTIONS
   Dashed border container with labels on TOP of inputs
   NOTE: Do NOT set display property - CMS controls visibility via inline styles
   ========================================================= */
body.pv-registration-page #RegisterBody .performance .toggle_options {
    flex-wrap: nowrap !important;
    align-items: flex-end !important;
    gap: 1.5rem !important;
    margin-top: 1.25rem !important;
    padding: 1.5rem !important;
    background: rgba(230, 126, 34, 0.05) !important;
    border: 2px dashed #E67E22 !important;
    border-radius: 10px !important;
}

/* Category dropdown container - labels on TOP */
body.pv-registration-page #RegisterBody .performance .toggle_options > .inline_block:first-child {
    flex: 2 1 250px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.4rem !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

/* Quantity dropdown container - labels on TOP */
body.pv-registration-page #RegisterBody .performance .toggle_options > .inline_block:nth-child(2) {
    flex: 0 0 120px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.4rem !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

/* Button container */
body.pv-registration-page #RegisterBody .performance .toggle_options > .inline_block:nth-child(3),
body.pv-registration-page #RegisterBody .performance .toggle_options .co_global_button {
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: flex-end !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

/* Labels above dropdowns - uppercase styling */
body.pv-registration-page #RegisterBody .performance .toggle_options > .inline_block > div:first-child,
body.pv-registration-page #RegisterBody .performance .toggle_options label {
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    color: #777 !important;
    margin: 0 !important;
    white-space: nowrap !important;
}

/* Dropdowns - full width within their container */
body.pv-registration-page #RegisterBody .performance .toggle_options select {
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    padding: 0.75rem 1rem !important;
    border: 1px solid #ccc !important;
    border-radius: 8px !important;
    background: #ffffff !important;
    width: 100% !important;
    height: 46px !important;
    cursor: pointer !important;
    transition: border-color 0.15s ease !important;
}

body.pv-registration-page #RegisterBody .performance .toggle_options select:focus {
    border-color: #E67E22 !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(230, 126, 34, 0.15) !important;
}

/* ADD button styling */
body.pv-registration-page #RegisterBody .performance .toggle_options button.add_attendee,
body.pv-registration-page #RegisterBody .performance .toggle_options button.button,
body.pv-registration-page #RegisterBody .performance .toggle_options input[type="submit"],
body.pv-registration-page #RegisterBody .performance .toggle_options input[type="button"] {
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    background: #E67E22 !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 6px !important;
    padding: 0 1.5rem !important;
    height: 46px !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
    white-space: nowrap !important;
}

body.pv-registration-page #RegisterBody .performance .toggle_options button.add_attendee:hover,
body.pv-registration-page #RegisterBody .performance .toggle_options button.button:hover,
body.pv-registration-page #RegisterBody .performance .toggle_options input[type="submit"]:hover,
body.pv-registration-page #RegisterBody .performance .toggle_options input[type="button"]:hover {
    background: #333 !important;
    color: #E67E22 !important;
}

/* Cancel (×) button styling */
body.pv-registration-page #RegisterBody .performance .toggle_options button.cancel,
body.pv-registration-page #RegisterBody .performance .additionals_toggle button.cancel {
    font-family: 'Inter', sans-serif !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    background: transparent !important;
    color: #999 !important;
    border: 1px solid #ccc !important;
    border-radius: 6px !important;
    width: 46px !important;
    height: 46px !important;
    padding: 0 !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

body.pv-registration-page #RegisterBody .performance .toggle_options button.cancel:hover,
body.pv-registration-page #RegisterBody .performance .additionals_toggle button.cancel:hover {
    background: #fee2e2 !important;
    color: #dc2626 !important;
    border-color: #dc2626 !important;
}

/* Cancel link styling */
body.pv-registration-page #RegisterBody .performance .toggle_options a {
    font-family: 'Inter', sans-serif !important;
    font-size: 0.9rem !important;
    color: #999 !important;
    text-decoration: none !important;
    transition: color 0.2s ease !important;
}

body.pv-registration-page #RegisterBody .performance .toggle_options a:hover {
    color: #E67E22 !important;
}

/* Responsive - Stack on mobile */
@media (max-width: 600px) {
    body.pv-registration-page #RegisterBody .performance .toggle_options {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 1rem !important;
    }

    body.pv-registration-page #RegisterBody .performance .toggle_options .inline_block {
        width: 100% !important;
    }

    body.pv-registration-page #RegisterBody .performance .toggle_options select {
        flex: 1 !important;
        width: 100% !important;
    }

    body.pv-registration-page #RegisterBody .performance .toggle_options button,
    body.pv-registration-page #RegisterBody .performance .toggle_options input[type="submit"],
    body.pv-registration-page #RegisterBody .performance .toggle_options input[type="button"] {
        width: 100% !important;
    }
}

/* =========================================================
   SINGLE EVENT - RESERVATION HEADER ROW (FIRST NAME, LAST NAME, etc.)
   Uses CMS classes: g20, g120, g140, g100, etc.
   ========================================================= */
/* Target the header row inside reservations */
body.pv-registration-page #RegisterBody .reservations > .clearfix.medium_top_margin {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 0 !important;
    padding: 0 0 0.75rem 0 !important;
    margin-bottom: 0.5rem !important;
    border-bottom: 2px solid #f0f0f0 !important;
}

/* Header labels - uppercase, small, gray */
body.pv-registration-page #RegisterBody .reservations > .clearfix.medium_top_margin > div {
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    color: #777 !important;
    float: none !important;
    margin: 0 !important;
}

/* =========================================================
   CMS Grid Classes - FLEX ORDER FIX
   The delete button (g40) appears BETWEEN category and price in data rows
   but doesn't exist in header rows. Use CSS order to align columns.
   ========================================================= */

/* ALL columns in header AND data rows - reset float and apply flex */
body.pv-registration-page #RegisterBody #Performances .reservations .clearfix > div[class*="g"],
body.pv-registration-page #RegisterBody #Performances .reservations .clearfix > div.inline_block {
    float: none !important;
    margin: 0 !important;
    padding: 0 8px 0 0 !important;
    box-sizing: border-box !important;
}

/* ===== COLUMN ORDER - ensures header and data rows align ===== */
/* g20 - Index column */
body.pv-registration-page #RegisterBody #Performances .reservations .clearfix > div.g20 {
    order: 1 !important;
}

/* g120 - First Name column */
body.pv-registration-page #RegisterBody #Performances .reservations .clearfix > div.g120 {
    order: 2 !important;
}

/* g140 - Last Name column */
body.pv-registration-page #RegisterBody #Performances .reservations .clearfix > div.g140 {
    order: 3 !important;
}

/* g220 - Seat Selection (hidden but keep in order) */
body.pv-registration-page #RegisterBody #Performances .reservations .clearfix > div.g220,
body.pv-registration-page #RegisterBody #Performances .reservations .clearfix > div.seat_selection {
    order: 4 !important;
}

/* g100 - Category column */
body.pv-registration-page #RegisterBody #Performances .reservations .clearfix > div.g100 {
    order: 5 !important;
}

/* g40 - Delete button column (data row only) */
body.pv-registration-page #RegisterBody #Performances .reservations .clearfix > div.g40 {
    order: 6 !important;
}

/* Price column (inline_block with price-header or price-display) */
body.pv-registration-page #RegisterBody #Performances .reservations .clearfix > div.inline_block {
    order: 7 !important;
}

/* ===== COLUMN SIZING ===== */
/* g20 - Index column (fixed narrow) */
body.pv-registration-page #RegisterBody #Performances .reservations div.g20 {
    flex: 0 0 35px !important;
    width: 35px !important;
    min-width: 35px !important;
    max-width: 35px !important;
}

/* g120 - First Name column */
body.pv-registration-page #RegisterBody #Performances .reservations div.g120 {
    flex: 1 1 100px !important;
    min-width: 80px !important;
}

/* g140 - Last Name column */
body.pv-registration-page #RegisterBody #Performances .reservations div.g140 {
    flex: 1 1 100px !important;
    min-width: 80px !important;
}

/* g220 - Seat Selection (HIDDEN) */
body.pv-registration-page #RegisterBody #Performances .reservations div.g220,
body.pv-registration-page #RegisterBody #Performances .reservations div.seat_selection {
    display: none !important;
    flex: 0 0 0 !important;
    width: 0 !important;
}

/* g100 - Category column (fixed) */
body.pv-registration-page #RegisterBody #Performances .reservations div.g100 {
    flex: 0 0 90px !important;
    width: 90px !important;
    min-width: 90px !important;
    max-width: 90px !important;
    text-align: center !important;
}

/* g40 - Delete button column (data row only) */
body.pv-registration-page #RegisterBody #Performances .reservations div.g40 {
    flex: 0 0 35px !important;
    width: 35px !important;
    min-width: 35px !important;
    max-width: 35px !important;
    padding: 0 !important;
    text-align: center !important;
}

/* Price header */
body.pv-registration-page #RegisterBody #Performances .reservations div.price-header,
body.pv-registration-page #RegisterBody #Performances .reservations > .clearfix.medium_top_margin > div.inline_block {
    flex: 0 0 75px !important;
    width: 75px !important;
    min-width: 75px !important;
    max-width: 75px !important;
    padding: 0 !important;
    text-align: right !important;
}

/* Price data */
body.pv-registration-page #RegisterBody #Performances .reservations .reservation div.price-display,
body.pv-registration-page #RegisterBody #Performances .reservations .reservation div[id$="_price"] {
    flex: 0 0 75px !important;
    width: 75px !important;
    min-width: 75px !important;
    max-width: 75px !important;
    padding: 0 !important;
    text-align: right !important;
}

/* Header row spacer for delete button alignment - ORDER 6 matches g40 */
body.pv-registration-page #RegisterBody #Performances .reservations > .clearfix.medium_top_margin::after {
    content: '' !important;
    order: 6 !important;
    flex: 0 0 35px !important;
    width: 35px !important;
    display: block !important;
}

/* =========================================================
   SINGLE EVENT - RESERVATION ROWS
   Structure: .reservation > .medium_vertical_padding > divs with g20, g120, etc.
   ========================================================= */
body.pv-registration-page #RegisterBody .reservation,
body.pv-registration-page #RegisterBody .clearfix.reservation {
    position: relative !important;
    background: #ffffff !important;
    border-radius: 0 !important;
    padding: 0.5rem 0 !important;
    margin-bottom: 0 !important;
    border-bottom: 1px solid #f0f0f0 !important;
    box-shadow: none !important;
}

body.pv-registration-page #RegisterBody .reservation:last-child {
    border-bottom: none !important;
}

body.pv-registration-page #RegisterBody .reservation:hover {
    background: #fafafa !important;
}

/* The inner wrapper that contains all the fields */
body.pv-registration-page #RegisterBody .reservation > .clearfix.medium_vertical_padding {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Row number styling */
body.pv-registration-page #RegisterBody .reservation [id$="_index"] {
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #999 !important;
    text-align: center !important;
}

/* Input fields in reservation rows */
body.pv-registration-page #RegisterBody .reservation input.co_form_input,
body.pv-registration-page #RegisterBody .reservation input[type="text"] {
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    padding: 0.6rem 0.8rem !important;
    border: 1px solid #ddd !important;
    border-radius: 8px !important;
    background: #fff !important;
    width: 100% !important;
    height: auto !important;
    min-height: 38px !important;
    box-sizing: border-box !important;
}

body.pv-registration-page #RegisterBody .reservation input[type="text"]:focus,
body.pv-registration-page #RegisterBody .reservation input.co_form_input:focus {
    border-color: #E67E22 !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(230, 126, 34, 0.15) !important;
}

/* Category badge styling */
body.pv-registration-page #RegisterBody .reservation .category_name {
    font-family: 'Inter', sans-serif !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    background: #f5f5f5 !important;
    color: #555 !important;
    padding: 0.4rem 0.6rem !important;
    border-radius: 6px !important;
    display: inline-block !important;
    white-space: nowrap !important;
}

body.pv-registration-page #RegisterBody .reservation .right,
body.pv-registration-page #RegisterBody .reservation span.right {
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #333 !important;
    float: none !important;
}

/* =========================================================
   SINGLE EVENT - BIRTH DATE SECTION
   ========================================================= */
/* Birth Date row - inside reservation */
body.pv-registration-page #RegisterBody .reservation .clearfix:has([name*="birth"]),
body.pv-registration-page #RegisterBody .reservation .clearfix:has([id*="birth"]) {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    gap: 0.75rem !important;
    padding: 1rem 0 !important;
    margin: 0.5rem 0 !important;
    border-top: 1px solid #f0f0f0 !important;
}

/* Birth Date label */
body.pv-registration-page #RegisterBody .reservation .clearfix:has([name*="birth"]) > .bold:first-child,
body.pv-registration-page #RegisterBody .reservation [class*="birth"] > label,
body.pv-registration-page #RegisterBody .reservation label[for*="birth"] {
    flex: 0 0 80px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    color: #777 !important;
    padding-top: 0.5rem !important;
    float: none !important;
}

/* Birth Date dropdown container */
body.pv-registration-page #RegisterBody .reservation .clearfix:has([name*="birth"]) .float_left,
body.pv-registration-page #RegisterBody .reservation [id*="birth_container"] {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 0.5rem !important;
    align-items: flex-start !important;
    float: none !important;
}

/* Birth Date dropdowns */
body.pv-registration-page #RegisterBody .reservation select[name*="birth"],
body.pv-registration-page #RegisterBody .reservation select[id*="birth"] {
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    padding: 0.5rem 0.75rem !important;
    border: 1px solid #ddd !important;
    border-radius: 6px !important;
    background: #fff !important;
    min-width: 70px !important;
    cursor: pointer !important;
}

body.pv-registration-page #RegisterBody .reservation select[name*="birth"]:focus {
    border-color: #E67E22 !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(230, 126, 34, 0.15) !important;
}

/* Birth Date sublabels (Month, Day, Year) */
body.pv-registration-page #RegisterBody .reservation .clearfix:has([name*="birth"]) .small,
body.pv-registration-page #RegisterBody .reservation .clearfix:has([name*="birth"]) small {
    font-family: 'Inter', sans-serif !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    color: #999 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3px !important;
    display: block !important;
    margin-top: 0.25rem !important;
}

/* =========================================================
   SINGLE EVENT - EMAIL SECTION
   ========================================================= */
body.pv-registration-page #RegisterBody .reservation .clearfix:has([name*="email"]),
body.pv-registration-page #RegisterBody .reservation .clearfix:has([type="email"]) {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    gap: 0.75rem !important;
    padding: 1rem 0 !important;
    margin: 0.5rem 0 !important;
    border-top: 1px solid #f0f0f0 !important;
}

/* Email label */
body.pv-registration-page #RegisterBody .reservation .clearfix:has([name*="email"]) > .bold:first-child,
body.pv-registration-page #RegisterBody .reservation .clearfix:has([name*="email"]) > div:first-child {
    flex: 0 0 120px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    color: #777 !important;
    float: none !important;
}

/* Email helper text */
body.pv-registration-page #RegisterBody .reservation .clearfix:has([name*="email"]) .small,
body.pv-registration-page #RegisterBody .reservation .clearfix:has([name*="email"]) small,
body.pv-registration-page #RegisterBody .reservation .clearfix:has([name*="email"]) em {
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-style: italic !important;
    color: #999 !important;
    display: block !important;
    margin-top: 0.25rem !important;
}

/* Email input */
body.pv-registration-page #RegisterBody .reservation input[name*="email"],
body.pv-registration-page #RegisterBody .reservation input[type="email"] {
    flex: 1 1 300px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    padding: 0.6rem 0.8rem !important;
    border: 1px solid #ddd !important;
    border-radius: 8px !important;
    background: #fff !important;
}

body.pv-registration-page #RegisterBody .reservation input[name*="email"]:focus {
    border-color: #E67E22 !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(230, 126, 34, 0.15) !important;
}

/* Delete button styling - grid cell */
body.pv-registration-page #RegisterBody .remove_reservation,
body.pv-registration-page #RegisterBody button.remove_reservation,
body.pv-registration-page button.remove_reservation {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    border-radius: 50% !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 auto !important;
    color: #ccc !important;
    font-size: 18px !important;
    font-weight: normal !important;
    opacity: 1 !important;
    transition: all 0.15s ease !important;
}

body.pv-registration-page #RegisterBody .reservation:hover .remove_reservation {
    color: #ff5252 !important;
}

body.pv-registration-page #RegisterBody .remove_reservation:hover {
    background: #ffebee !important;
    color: #ff5252 !important;
    transform: scale(1.1) !important;
}

/* =========================================================
   SINGLE EVENT - FORM FIELDS (VISIBLE BORDERS!)
   ========================================================= */
/* NOTE: Do NOT set display property here - CMS JavaScript controls visibility */
/* IMPORTANT: Use #RegisterBody to avoid styling footer's .bottom_padding element */
body.pv-registration-page #RegisterBody .bottom_padding {
    background: #ffffff !important;
    border-radius: 0 0 24px 24px !important;
    box-shadow: 0 20px 60px rgba(0,0,0,0.08) !important;
    padding: 0 !important;
    margin-bottom: 3rem !important;
    overflow: hidden !important;
}

/* Global form input styles - DARK VISIBLE BORDERS */
body.pv-registration-page #RegisterBody .bottom_padding input,
body.pv-registration-page #RegisterBody .bottom_padding select,
body.pv-registration-page #RegisterBody .bottom_padding textarea,
body.pv-registration-page #Summary input,
body.pv-registration-page #Summary select,
body.pv-registration-page #Summary textarea,
body.pv-registration-page #ReserversInformation input,
body.pv-registration-page #ReserversInformation select,
body.pv-registration-page #ReserversInformation textarea,
body.pv-registration-page #Payment input,
body.pv-registration-page #Payment select,
body.pv-registration-page #Payment textarea,
body.pv-registration-page form#RegisterSinglePage input[type="text"],
body.pv-registration-page form#RegisterSinglePage input[type="email"],
body.pv-registration-page form#RegisterSinglePage input[type="tel"],
body.pv-registration-page form#RegisterSinglePage input[type="number"],
body.pv-registration-page form#RegisterSinglePage select,
body.pv-registration-page form#RegisterSinglePage textarea {
    font-family: 'Inter', sans-serif !important;
    font-size: 1.1rem !important;
    padding: 0.9rem 1.1rem !important;
    border: 2px solid #999 !important;
    border-width: 2px !important;
    border-style: solid !important;
    border-color: #999 !important;
    border-radius: 10px !important;
    transition: all 0.25s ease !important;
    box-sizing: border-box !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.1) !important;
    width: 100% !important;
    max-width: 100% !important;
}

body.pv-registration-page #RegisterBody .bottom_padding input:focus,
body.pv-registration-page #RegisterBody .bottom_padding select:focus,
body.pv-registration-page #RegisterBody .bottom_padding textarea:focus,
body.pv-registration-page #Summary input:focus,
body.pv-registration-page #Summary select:focus,
body.pv-registration-page #Summary textarea:focus,
body.pv-registration-page #ReserversInformation input:focus,
body.pv-registration-page #ReserversInformation select:focus,
body.pv-registration-page #ReserversInformation textarea:focus,
body.pv-registration-page #Payment input:focus,
body.pv-registration-page #Payment select:focus,
body.pv-registration-page #Payment textarea:focus {
    border-color: #E67E22 !important;
    outline: none !important;
    background: #ffffff !important;
    box-shadow: 0 0 0 4px rgba(230, 126, 34, 0.12) !important;
}

body.pv-registration-page #RegisterBody .bottom_padding textarea,
body.pv-registration-page #Summary textarea,
body.pv-registration-page #ReserversInformation textarea,
body.pv-registration-page #Payment textarea {
    min-height: 100px !important;
    resize: vertical !important;
}

/* Form labels */
body.pv-registration-page #RegisterBody .bottom_padding label,
body.pv-registration-page #Summary label,
body.pv-registration-page #ReserversInformation label,
body.pv-registration-page #Payment label {
    font-family: 'Inter', sans-serif !important;
    font-size: 1.15rem !important;
    font-weight: 600 !important;
    color: #333 !important;
    display: block !important;
    margin-bottom: 0.5rem !important;
}

/* =========================================================
   SINGLE EVENT - SECTION STYLING
   ========================================================= */
body.pv-registration-page #Summary {
    padding: 2.5rem 3.5rem !important;
    background: #ffffff !important;
    border-bottom: 1px solid rgba(0,0,0,0.06) !important;
}

/* ----- Summary moved to bottom (like CWV) ----- */
body.pv-registration-page #Summary.pv-summary-moved {
    display: block !important;
    background: #ffffff !important;
    border: 2px solid #E67E22 !important;
    border-radius: 16px !important;
    padding: 2rem 2.5rem !important;
    margin: 2rem 2.5rem !important;
    box-shadow: 0 4px 20px rgba(230, 126, 34, 0.15) !important;
}

body.pv-registration-page #Summary.pv-summary-moved .title {
    display: flex !important;
    align-items: center !important;
    gap: 1rem !important;
    font-family: 'Urbanist', sans-serif !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    color: #333 !important;
    margin-bottom: 1.5rem !important;
    padding-bottom: 1rem !important;
    border-bottom: 2px solid rgba(230, 126, 34, 0.2) !important;
}

body.pv-registration-page #Summary.pv-summary-moved .title::before {
    content: '' !important;
    display: flex !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    background: #E67E22 !important;
    border-radius: 12px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Cpath d='M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2'/%3E%3Crect x='9' y='3' width='6' height='4' rx='1'/%3E%3Cpath d='M9 12h6'/%3E%3Cpath d='M9 16h6'/%3E%3C/svg%3E") !important;
    background-size: 22px 22px !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
}

/* Summary totals breakdown */
body.pv-registration-page #Summary.pv-summary-moved #Totals {
    border-top: 2px solid #eee !important;
    padding-top: 1rem !important;
    margin-top: 1rem !important;
}

body.pv-registration-page #Summary.pv-summary-moved #Totals > .clearfix {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 0.5rem 0 !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 15px !important;
    color: #777 !important;
}

body.pv-registration-page #Summary.pv-summary-moved #Totals > .clearfix .right,
body.pv-registration-page #Summary.pv-summary-moved #Totals > .clearfix .float_right {
    font-weight: 600 !important;
    color: #555 !important;
}

/* Total line - highlighted */
body.pv-registration-page #Summary.pv-summary-moved #Totals > .clearfix.small_top_margin {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #333 !important;
    border-top: 2px solid #ddd !important;
    margin-top: 0.75rem !important;
    padding-top: 1rem !important;
}

body.pv-registration-page #Summary.pv-summary-moved #Totals > .clearfix.small_top_margin .right,
body.pv-registration-page #Summary.pv-summary-moved #Totals > .clearfix.small_top_margin .float_right,
body.pv-registration-page #Summary.pv-summary-moved #Totals #TotalCost {
    font-family: 'Urbanist', sans-serif !important;
    font-size: 24px !important;
    font-weight: 800 !important;
    color: #E67E22 !important;
}

body.pv-registration-page #Summary .title,
body.pv-registration-page #ReserversInformation .title,
body.pv-registration-page #Payment .title {
    font-family: 'Urbanist', sans-serif !important;
    font-size: 1.75rem !important;
    font-weight: 700 !important;
    color: #333 !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    margin-bottom: 1.5rem !important;
}

body.pv-registration-page #Summary .title::before,
body.pv-registration-page #ReserversInformation .title::before,
body.pv-registration-page #Payment .title::before {
    content: '' !important;
    width: 5px !important;
    height: 28px !important;
    background: #E67E22 !important;
    border-radius: 3px !important;
}

body.pv-registration-page #ReserversInformation {
    padding: 3rem 3.5rem !important;
    border-bottom: 1px solid rgba(0,0,0,0.06) !important;
    background: #ffffff !important;
}

/* =========================================================
   SINGLE EVENT - FORM FIELDS GRID LAYOUT
   2 columns on desktop, 1 column on mobile
   Structure: #ReserversInformation > div.wrapper > div.clearfix (form container)
              Each field: div.clearfix.small_vertical_padding > div.label + div.float_left
   ========================================================= */
/* Target ONLY the form fields container - use child combinator to avoid inner .clearfix */
body.pv-registration-page #ReserversInformation > div > div.clearfix:not(.title) {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1.5rem 2rem !important;
    width: 100% !important;
}

/* Each form field wrapper inside the grid (they also have .clearfix class) */
body.pv-registration-page #ReserversInformation > div > div.clearfix:not(.title) > div.clearfix {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.5rem !important;
}

/* Reset float on inner label and input divs */
body.pv-registration-page #ReserversInformation > div > div.clearfix:not(.title) > div.clearfix > div {
    float: none !important;
    margin-left: 0 !important;
}

/* Full width for last item (usually checkbox/notes) */
body.pv-registration-page #ReserversInformation > div > div.clearfix:not(.title) > div.clearfix:last-child {
    grid-column: 1 / -1 !important;
}

/* Table-based layouts (if present) */
body.pv-registration-page #ReserversInformation table tbody {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1.5rem 2rem !important;
    width: 100% !important;
}

body.pv-registration-page #ReserversInformation table tr {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.5rem !important;
}

body.pv-registration-page #ReserversInformation table td {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    border: none !important;
}

body.pv-registration-page #ReserversInformation table tr:last-child {
    grid-column: 1 / -1 !important;
}

/* Labels in grid */
body.pv-registration-page #ReserversInformation > div > div.clearfix:not(.title) label {
    font-family: 'Inter', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    color: #555 !important;
    margin-bottom: 0.4rem !important;
}

/* Checkbox row styling */
body.pv-registration-page #ReserversInformation input[type="checkbox"] {
    width: 20px !important;
    height: 20px !important;
    accent-color: #E67E22 !important;
    cursor: pointer !important;
}

body.pv-registration-page #ReserversInformation label[for*="checkbox"],
body.pv-registration-page #ReserversInformation .checkbox-label {
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    font-size: 1rem !important;
    color: #555 !important;
    cursor: pointer !important;
}

/* Helper text styling */
body.pv-registration-page #ReserversInformation .f-small,
body.pv-registration-page #ReserversInformation small,
body.pv-registration-page #ReserversInformation .help-text {
    font-size: 0.9rem !important;
    color: #888 !important;
    margin-top: 0.25rem !important;
    grid-column: 1 / -1 !important;
}

/* =========================================================
   ADDITIONAL INFORMATION - RADIO BUTTON STYLING
   Fix boxes around radio buttons and improve layout
   ========================================================= */

/* Radio container - remove box appearance */
body.pv-registration-page #AdditionalInformation .form-radio-item {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0.25rem 0 !important;
    margin-right: 1rem !important;
}

/* Radio input - clean circular style */
body.pv-registration-page #AdditionalInformation input.form-radio,
body.pv-registration-page #AdditionalInformation input[type="radio"] {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    width: 22px !important;
    min-width: 22px !important;
    max-width: 22px !important;
    height: 22px !important;
    min-height: 22px !important;
    max-height: 22px !important;
    border: 2px solid #ccc !important;
    border-radius: 50% !important;
    background: #fff !important;
    cursor: pointer !important;
    margin: 0 !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
    flex-grow: 0 !important;
    aspect-ratio: 1 / 1 !important;
    transition: all 0.2s ease !important;
}

/* Radio checked state */
body.pv-registration-page #AdditionalInformation input.form-radio:checked,
body.pv-registration-page #AdditionalInformation input[type="radio"]:checked {
    border-color: #E67E22 !important;
    background: #E67E22 !important;
    box-shadow: inset 0 0 0 4px #fff !important;
}

/* Radio hover state */
body.pv-registration-page #AdditionalInformation input.form-radio:hover,
body.pv-registration-page #AdditionalInformation input[type="radio"]:hover {
    border-color: #E67E22 !important;
}

/* Radio label styling */
body.pv-registration-page #AdditionalInformation .form-radio-item label {
    font-family: 'Inter', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 500 !important;
    color: #333 !important;
    cursor: pointer !important;
    margin: 0 !important;
    display: inline !important;
}

/* Form multiple column layout - horizontal flow */
body.pv-registration-page #AdditionalInformation .form-multiple-column {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.5rem 1.5rem !important;
    align-items: center !important;
}

/* Remove clearfix spans that break layout */
body.pv-registration-page #AdditionalInformation .form-multiple-column > span.clearfix {
    display: none !important;
}

/* Form line container */
body.pv-registration-page #AdditionalInformation .form-line {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    gap: 1rem !important;
    padding: 1rem 0 !important;
    border-bottom: 1px solid #eee !important;
}

/* Form label (left side) */
body.pv-registration-page #AdditionalInformation .form-label,
body.pv-registration-page #AdditionalInformation .form-label-top {
    font-family: 'Inter', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    color: #333 !important;
    min-width: 150px !important;
}

/* Form input container */
body.pv-registration-page #AdditionalInformation .form-input {
    flex: 1 !important;
    display: block !important;
}

/* Required field indicator */
body.pv-registration-page #ReserversInformation .required,
body.pv-registration-page #ReserversInformation span[style*="color: red"],
body.pv-registration-page #ReserversInformation .red {
    color: #E74C3C !important;
    font-weight: 600 !important;
}

/* Mobile responsive - stack all fields */
@media (max-width: 768px) {
    body.pv-registration-page #ReserversInformation {
        padding: 2rem 1.5rem !important;
    }

    body.pv-registration-page #ReserversInformation > div > div.clearfix:not(.title),
    body.pv-registration-page #ReserversInformation table tbody {
        grid-template-columns: 1fr !important;
        gap: 1.25rem !important;
    }

    body.pv-registration-page #ReserversInformation > div > div.clearfix:not(.title) > div.clearfix:last-child,
    body.pv-registration-page #ReserversInformation table tr:last-child {
        grid-column: 1 !important;
    }
}

body.pv-registration-page #Payment {
    padding: 3rem 3.5rem !important;
    border-bottom: 1px solid rgba(0,0,0,0.06) !important;
    background: #ffffff !important;
}

/* =========================================================
   SINGLE EVENT - PAYMENT INFORMATION 2-COLUMN GRID
   ========================================================= */
/* Payment Information section - 2 column grid layout */
body.pv-registration-page .credit_card .large_top_padding > div {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 15px 30px !important;
    max-width: 100% !important;
    align-items: start !important;
}

body.pv-registration-page .credit_card .clearfix.title {
    grid-column: 1 / -1 !important;
}

body.pv-registration-page .credit_card .clearfix.small_vertical_padding.required:first-of-type {
    grid-column: 1 / -1 !important;
}

body.pv-registration-page .credit_card .clearfix.small_vertical_padding {
    display: block !important;
    text-align: left !important;
}

body.pv-registration-page .credit_card .clearfix.small_vertical_padding .bold,
body.pv-registration-page .credit_card .clearfix.small_vertical_padding .FormLabel,
body.pv-registration-page .credit_card .clearfix.small_vertical_padding .label {
    float: none !important;
    display: block !important;
    width: auto !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 8px !important;
    padding-left: 0 !important;
    text-align: left !important;
}

body.pv-registration-page .credit_card .clearfix.small_vertical_padding .float_left {
    float: none !important;
    display: inline-block !important;
    width: auto !important;
    text-align: left !important;
    margin-left: 0 !important;
}

body.pv-registration-page .credit_card .clearfix.small_vertical_padding input[type="text"],
body.pv-registration-page .credit_card .clearfix.small_vertical_padding select:not([name="x_exp_month"]):not([name="x_exp_year"]) {
    width: 100% !important;
    box-sizing: border-box !important;
}

body.pv-registration-page .credit_card .clearfix.small_vertical_padding:not(:has([name="x_exp_month"])) .float_left {
    display: block !important;
    width: 100% !important;
}

body.pv-registration-page .credit_card select[name="x_exp_month"],
body.pv-registration-page .credit_card select[name="x_exp_year"] {
    width: auto !important;
    min-width: 100px !important;
    margin-right: 10px !important;
}

body.pv-registration-page .credit_card .clearfix:has([name="x_exp_month"]) .float_left {
    display: inline-block !important;
    width: auto !important;
    margin-right: 5px !important;
}

body.pv-registration-page .credit_card .clearfix:has(textarea) {
    grid-column: 1 / -1 !important;
    text-align: left !important;
}

body.pv-registration-page .credit_card .clearfix:has(textarea) .bold {
    margin-left: 0 !important;
}

body.pv-registration-page .credit_card textarea {
    width: 100% !important;
}

body.pv-registration-page .credit_card .small_vertical_padding:has(.required_indicator) {
    grid-column: 1 / -1 !important;
}

/* =========================================================
   SINGLE EVENT - SUBMIT BUTTON
   ========================================================= */
body.pv-registration-page #Buttons {
    padding: 2.5rem 3.5rem !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    background: #ffffff !important;
}

body.pv-registration-page #SubmitButton,
body.pv-registration-page #Buttons button[name="submit"],
body.pv-registration-page #Buttons input[type="submit"] {
    font-family: 'Inter', sans-serif !important;
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    background: #E67E22 !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 16px !important;
    padding: 1.4rem 3.5rem !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 15px rgba(230, 126, 34, 0.3) !important;
    text-transform: uppercase !important;
    letter-spacing: 1.5px !important;
}

body.pv-registration-page #SubmitButton:hover,
body.pv-registration-page #Buttons button[name="submit"]:hover,
body.pv-registration-page #Buttons input[type="submit"]:hover {
    background: #D35400 !important;
    transform: scale(1.03) !important;
}

body.pv-registration-page #Buttons .total strong,
body.pv-registration-page #Buttons .total .amount {
    font-family: 'Urbanist', sans-serif !important;
    font-size: 2.75rem !important;
    font-weight: 700 !important;
    color: #333 !important;
}

/* =========================================================
   SINGLE EVENT - OVERRIDE CMS DEFAULT BORDER COLORS
   Only apply orange borders to section titles, NOT to form inputs
   ========================================================= */
body.pv-registration-page #Summary .title::before,
body.pv-registration-page #ReserversInformation .title::before,
body.pv-registration-page #Payment .title::before {
    background-color: #E67E22 !important;
}

/* Keep input borders neutral - NOT orange */
body.pv-registration-page #RegisterBody input,
body.pv-registration-page #RegisterBody select,
body.pv-registration-page #RegisterBody textarea,
body.pv-registration-page .reservation input,
body.pv-registration-page .reservation select {
    border-color: #ddd !important;
}

body.pv-registration-page #RegisterBody input:focus,
body.pv-registration-page #RegisterBody select:focus,
body.pv-registration-page #RegisterBody textarea:focus {
    border-color: #E67E22 !important;
}

/* Keep specific border colors where needed */
body.pv-registration-page #RegisterBody .performance {
    border: 2px solid transparent !important;
}

body.pv-registration-page #RegisterBody .performance:hover {
    border-color: #E67E22 !important;
}

body.pv-registration-page #RegisterBody .reservation {
    border: none !important;
}

body.pv-registration-page #RegisterBody .remove_reservation {
    border: 1px solid #ddd !important;
}

body.pv-registration-page #RegisterBody .reservation:hover .remove_reservation {
    border-color: #ff5252 !important;
}

body.pv-registration-page #RegisterBody .remove_reservation:hover {
    border-color: #ff5252 !important;
}

/* Form inputs - use #999 for default, #E67E22 for focus */
body.pv-registration-page #RegisterBody input,
body.pv-registration-page #RegisterBody select,
body.pv-registration-page #RegisterBody textarea,
body.pv-registration-page #Summary input,
body.pv-registration-page #Summary select,
body.pv-registration-page #Summary textarea,
body.pv-registration-page #ReserversInformation input,
body.pv-registration-page #ReserversInformation select,
body.pv-registration-page #ReserversInformation textarea,
body.pv-registration-page #Payment input,
body.pv-registration-page #Payment select,
body.pv-registration-page #Payment textarea {
    border-color: #999 !important;
}

body.pv-registration-page #RegisterBody input:focus,
body.pv-registration-page #RegisterBody select:focus,
body.pv-registration-page #RegisterBody textarea:focus,
body.pv-registration-page #Summary input:focus,
body.pv-registration-page #Summary select:focus,
body.pv-registration-page #Summary textarea:focus,
body.pv-registration-page #ReserversInformation input:focus,
body.pv-registration-page #ReserversInformation select:focus,
body.pv-registration-page #ReserversInformation textarea:focus,
body.pv-registration-page #Payment input:focus,
body.pv-registration-page #Payment select:focus,
body.pv-registration-page #Payment textarea:focus {
    border-color: #E67E22 !important;
}

/* Section title underlines */
body.pv-registration-page .pv-info-section-title {
    border-bottom-color: rgba(230, 126, 34, 0.3) !important;
}

/* Section separators - subtle */
body.pv-registration-page #Summary,
body.pv-registration-page #ReserversInformation,
body.pv-registration-page #Payment,
body.pv-registration-page #RegisterBody {
    border-color: rgba(0,0,0,0.06) !important;
}

/* Override shaded containers to white */
.cco_body .ads .container.shaded,
.container.shaded,
.footnote.selected {
    background-color: #ffffff !important;
}

/* Override RegisterHeader blue background to white */
#RegisterHeader.clearfix.blue,
#RegisterHeader.blue {
    background-color: #ffffff !important;
    background: #ffffff !important;
}

/* Orange border around entire form card */
form#RegisterSinglePage {
    /* border: 3px solid #E67E22 !important; */
    border-radius: 24px !important;
    overflow: hidden !important;
}

/* =========================================================
   SINGLE EVENT - RESPONSIVE
   ========================================================= */
@media (max-width: 768px) {
    body.pv-registration-page .master-content-wrapper {
        padding: 1.5rem 1rem !important;
    }

    body.pv-registration-page #RegisterHeader .column1 {
        padding: 2rem 1.5rem !important;
        margin-top: 1.5rem !important;
    }

    body.pv-registration-page #RegisterHeader .event_name {
        font-size: 2.25rem !important;
    }

    body.pv-registration-page #RegisterHeader .event_description {
        font-size: 1.15rem !important;
    }

    body.pv-registration-page #RegisterHeader .column2 {
        padding: 1.5rem !important;
        grid-template-columns: 1fr !important;
    }

    body.pv-registration-page .pv-info-icon {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
        border-radius: 10px !important;
    }

    body.pv-registration-page .pv-info-icon svg {
        width: 20px !important;
        height: 20px !important;
    }

    /* Info cards grid - stack vertically on mobile */
    body.pv-registration-page .pv-info-cards-grid {
        flex-direction: column !important;
        gap: 12px !important;
    }

    body.pv-registration-page .pv-info-card {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        padding: 1rem 1.25rem !important;
        gap: 1rem !important;
        border-radius: 14px !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    body.pv-registration-page .pv-info-text {
        flex: 1 !important;
        min-width: 0 !important;
        text-align: left !important;
    }

    body.pv-registration-page .pv-card-label {
        font-size: 0.7rem !important;
        letter-spacing: 1px !important;
        margin-bottom: 0.25rem !important;
    }

    body.pv-registration-page .pv-info-content {
        font-size: 0.95rem !important;
        line-height: 1.4 !important;
        word-break: break-word !important;
    }

    body.pv-registration-page .pv-info-section-title {
        font-size: 1.15rem !important;
        margin-bottom: 0.75rem !important;
    }

    /* FIX: Remove gap between First Name and Last Name on mobile */
    body.pv-registration-page #RegisterBody .reservation .clearfix.small_top_padding > .inline_block,
    body.pv-registration-page #RegisterBody .reservation .clearfix.small_top_padding > div.inline_block.small_bottom_margin {
        flex: 0 0 auto !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        flex-basis: auto !important;
        flex-grow: 0 !important;
        flex-shrink: 0 !important;
    }

    /* Your Information - 2 columns on mobile */
    body.pv-registration-page #ReserversInformation > div.large_top_padding > div.clearfix {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 0.5rem 1rem !important;
    }

    body.pv-registration-page #ReserversInformation > div.large_top_padding > div.clearfix > .clearfix.small_vertical_padding {
        flex: 1 1 calc(50% - 0.5rem) !important;
        min-width: 140px !important;
        max-width: 100% !important;
    }

    /* Full width for email and billing address */
    body.pv-registration-page #ReserversInformation > div.large_top_padding > div.clearfix > .clearfix.small_vertical_padding:has(input[name*="email"]),
    body.pv-registration-page #ReserversInformation > div.large_top_padding > div.clearfix > .clearfix.small_vertical_padding:has(input[name*="address"]),
    body.pv-registration-page #ReserversInformation > div.large_top_padding > div.clearfix > .clearfix.small_vertical_padding:has(input[name*="billing"]) {
        flex: 1 1 100% !important;
    }

    body.pv-registration-page #RegisterBody,
    body.pv-registration-page #Summary,
    body.pv-registration-page #ReserversInformation,
    body.pv-registration-page #Payment,
    body.pv-registration-page #Buttons {
        padding: 2rem 1.5rem !important;
    }

    /* Reservation grid - stack on mobile */
    body.pv-registration-page #RegisterBody .reservations > .clearfix.medium_top_margin {
        display: none !important;
    }

    body.pv-registration-page #RegisterBody .reservation,
    body.pv-registration-page #RegisterBody .clearfix.reservation {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 0.5rem !important;
        padding: 1rem !important;
        border: 1px solid #eee !important;
        border-radius: 12px !important;
        margin-bottom: 0.75rem !important;
    }

    body.pv-registration-page #RegisterBody .reservation input[type="text"] {
        flex: 1 1 45% !important;
        min-width: 120px !important;
    }

    body.pv-registration-page #RegisterBody .reservation .remove_reservation {
        position: absolute !important;
        right: 8px !important;
        top: 8px !important;
    }

    body.pv-registration-page #Buttons {
        flex-direction: column !important;
        gap: 2rem !important;
        text-align: center !important;
    }

    body.pv-registration-page #SubmitButton,
    body.pv-registration-page #Buttons button[name="submit"],
    body.pv-registration-page #Buttons input[type="submit"] {
        width: 100% !important;
        padding: 1.25rem 2rem !important;
    }

    body.pv-registration-page #Summary label,
    body.pv-registration-page #ReserversInformation label,
    body.pv-registration-page #Payment label {
        font-size: 1rem !important;
    }
}
