/* EventQora 2.0.9 — hardening overrides for themes that style plugin markup globally. */
body.single-evqra_event main.evqra-single-event-page,
body.single-evqra_venue main.evqra-profile-page,
body.single-evqra_organizer main.evqra-profile-page,
body.tax-evqra_event_category main.evqra-category-single-page,
main.evqra-my-bookings-page {
    width:100%!important;
    max-width:none!important;
    margin-left:calc(50% - 50vw)!important;
    margin-right:calc(50% - 50vw)!important;
    padding-left:0!important;
    padding-right:0!important;
    box-sizing:border-box!important;
    position:relative!important;
}

/* Theme page wrappers commonly constrain shortcode content. Keep EventQora-owned pages full-bleed while preserving the theme header/footer. */
main.evqra-my-bookings-page,
main.evqra-single-event-page{
    min-width:0!important;
    overflow:visible!important;
}

/* EventQora owns the page body on these templates; do not let theme typography/layout rules collapse plugin components. */
main.evqra-my-bookings-page *,
main.evqra-single-event-page *{
    box-sizing:border-box;
}

/* The EventQora navigation component is legacy page chrome. Theme navigation remains the single site navigation. */
.evqra-page-chrome{display:none!important;}

body.single-evqra_event .evqra-event-banner{display:block!important;width:min(1320px,calc(100% - 32px))!important;max-width:1320px!important;margin:28px auto 0!important;padding:0!important;overflow:hidden!important;position:relative!important;isolation:isolate!important;border-radius:30px!important;}
body.single-evqra_event .evqra-event-banner-media{display:block!important;position:relative!important;width:100%!important;height:clamp(440px,52vw,620px)!important;min-height:0!important;max-height:none!important;overflow:hidden!important;background:#111827!important;line-height:0!important;}
body.single-evqra_event .evqra-event-banner-media>img{position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;min-width:100%!important;min-height:100%!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;object-fit:cover!important;object-position:center!important;}
body.single-evqra_event .evqra-event-banner-placeholder{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;display:grid!important;place-items:center!important;}
body.single-evqra_event .evqra-event-banner-shade{position:absolute!important;inset:0!important;z-index:2!important;pointer-events:none!important;}
body.single-evqra_event .evqra-event-banner-content{position:absolute!important;z-index:3!important;display:block!important;left:clamp(24px,6vw,80px)!important;right:24px!important;bottom:44px!important;max-width:850px!important;margin:0!important;padding:0!important;color:#fff!important;}
body.single-evqra_event .evqra-event-banner-content h1{display:block!important;width:auto!important;max-width:850px!important;margin:8px 0 12px!important;padding:0!important;color:#fff!important;font-size:clamp(38px,5vw,70px)!important;line-height:1.02!important;text-shadow:0 3px 24px rgba(0,0,0,.3)!important;}
body.single-evqra_event .evqra-event-banner-summary{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:10px!important;margin:0!important;color:rgba(255,255,255,.94)!important;}
body.single-evqra_event .evqra-single-event-shell{width:min(1180px,calc(100% - 32px))!important;max-width:1180px!important;margin:0 auto!important;padding:30px 0 80px!important;}
body.single-evqra_event .evqra-single-event-shell img{max-width:none;}
body.single-evqra_event .evqra-event-content-card img,
body.single-evqra_event .evqra-event-gallery-item img{max-width:100%!important;}

/* Profiles and category pages should not inherit theme content width constraints. */
body.single-evqra_venue .evqra-profile-hero,
body.single-evqra_organizer .evqra-profile-hero,
body.tax-evqra_event_category .evqra-category-hero{width:min(1320px,calc(100% - 32px))!important;max-width:1320px!important;margin-left:auto!important;margin-right:auto!important;}
body.single-evqra_venue .evqra-profile-content-shell,
body.single-evqra_organizer .evqra-profile-content-shell,
body.tax-evqra_event_category .evqra-category-events-wrap{width:min(1180px,calc(100% - 32px))!important;max-width:1180px!important;margin-left:auto!important;margin-right:auto!important;}

@media (max-width:680px){
 body.single-evqra_event .evqra-event-banner,
 body.single-evqra_venue .evqra-profile-hero,
 body.single-evqra_organizer .evqra-profile-hero,
 body.tax-evqra_event_category .evqra-category-hero{width:calc(100% - 20px)!important;margin-top:16px!important;border-radius:22px!important;}
 body.single-evqra_event .evqra-event-banner-media{height:430px!important;}
 body.single-evqra_event .evqra-event-banner-content{left:22px!important;right:18px!important;bottom:25px!important;}
 body.single-evqra_event .evqra-single-event-shell,
 body.single-evqra_venue .evqra-profile-content-shell,
 body.single-evqra_organizer .evqra-profile-content-shell,
 body.tax-evqra_event_category .evqra-category-events-wrap{width:calc(100% - 20px)!important;}
 main.evqra-my-bookings-page{padding:24px 16px 60px!important;}
}

/* EventQora Core QA — category directory layout */
.evqra-directory-page.evqra-categories-directory .evqra-category-directory-grid{
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr))!important;
    gap:20px!important;
    align-items:stretch;
}
.evqra-directory-page.evqra-categories-directory .evqra-category-directory-card{
    min-width:0;
    min-height:124px;
    padding:20px 22px;
    border-radius:18px;
    box-sizing:border-box;
}
.evqra-directory-page.evqra-categories-directory .evqra-category-directory-card .evqra-category-icon{
    flex:0 0 48px;
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:14px;
    background:rgba(255,255,255,.72);
    color:var(--evqra-category-color,#312e81);
    font-size:20px;
    font-weight:800;
}
.evqra-directory-page.evqra-categories-directory .evqra-category-directory-card .evqra-category-copy{
    min-width:0;
    flex:1;
    display:grid;
    gap:5px;
    align-content:center;
}
.evqra-directory-page.evqra-categories-directory .evqra-category-directory-card .evqra-category-copy strong{
    color:var(--evqra-category-color,#312e81);
    font-size:18px;
    line-height:1.25;
    white-space:normal;
    overflow-wrap:anywhere;
}
.evqra-directory-page.evqra-categories-directory .evqra-category-directory-card .evqra-category-copy small{
    color:var(--evqra-category-color,#312e81);
    opacity:.75;
    font-size:14px;
    line-height:1.4;
}
.evqra-directory-page.evqra-categories-directory .evqra-category-directory-card .evqra-category-arrow{
    flex:0 0 auto;
    margin-left:auto;
    color:var(--evqra-category-color,#312e81);
    font-size:20px;
    font-weight:700;
}
.evqra-directory-page.evqra-categories-directory .evqra-category-directory-card:focus-visible{
    outline:3px solid rgba(79,70,229,.35);
    outline-offset:3px;
}
@media (max-width:640px){
    .evqra-directory-page.evqra-categories-directory .evqra-category-directory-grid{grid-template-columns:1fr!important;gap:16px!important;}
    .evqra-directory-page.evqra-categories-directory .evqra-category-directory-card{min-height:104px;padding:16px 18px;}
    .evqra-directory-page.evqra-categories-directory .evqra-category-directory-card .evqra-category-copy strong{font-size:16px;}
}

/* EventQora Core QA — theme compatibility for EventQora-owned page roots. */
body.single-evqra_event .site-content,
body.single-evqra_event #content,
body.single-evqra_event #primary,
body.single-evqra_event .content-area,
body.single-evqra_event .site-main,
body.single-evqra_event .entry-content,
body.single-evqra_event .wp-block-post-content,
body.single-evqra_event .wp-site-blocks,
body.single-evqra_venue .site-content,
body.single-evqra_venue #content,
body.single-evqra_venue #primary,
body.single-evqra_venue .content-area,
body.single-evqra_venue .site-main,
body.single-evqra_venue .entry-content,
body.single-evqra_venue .wp-block-post-content,
body.single-evqra_venue .wp-site-blocks,
body.single-evqra_organizer .site-content,
body.single-evqra_organizer #content,
body.single-evqra_organizer #primary,
body.single-evqra_organizer .content-area,
body.single-evqra_organizer .site-main,
body.single-evqra_organizer .entry-content,
body.single-evqra_organizer .wp-block-post-content,
body.single-evqra_organizer .wp-site-blocks,
body.tax-evqra_event_category .site-content,
body.tax-evqra_event_category #content,
body.tax-evqra_event_category #primary,
body.tax-evqra_event_category .content-area,
body.tax-evqra_event_category .site-main,
body.tax-evqra_event_category .entry-content,
body.tax-evqra_event_category .wp-block-post-content,
body.tax-evqra_event_category .wp-site-blocks,
body:has(main.evqra-my-bookings-page) .site-content,
body:has(main.evqra-my-bookings-page) #content,
body:has(main.evqra-my-bookings-page) #primary,
body:has(main.evqra-my-bookings-page) .content-area,
body:has(main.evqra-my-bookings-page) .site-main,
body:has(main.evqra-my-bookings-page) .entry-content,
body:has(main.evqra-my-bookings-page) .wp-block-post-content,
body:has(main.evqra-my-bookings-page) .wp-site-blocks {
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin-left:auto!important;
    margin-right:auto!important;
    overflow:visible!important;
}

body.single-evqra_event main.evqra-single-event-page,
body.single-evqra_venue main.evqra-profile-page,
body.single-evqra_organizer main.evqra-profile-page,
body.tax-evqra_event_category main.evqra-category-single-page,
body:has(main.evqra-my-bookings-page) main.evqra-my-bookings-page {
    width:min(100%,1440px)!important;
    max-width:1440px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    left:auto!important;
    right:auto!important;
    transform:none!important;
    padding-left:24px!important;
    padding-right:24px!important;
}

body.single-evqra_event .evqra-event-banner{
    width:min(1320px,100%)!important;
    max-width:1320px!important;
    margin-left:auto!important;
    margin-right:auto!important;
}

body.single-evqra_event .evqra-single-event-shell{
    width:min(1180px,100%)!important;
    max-width:1180px!important;
    margin-left:auto!important;
    margin-right:auto!important;
}

body:has(main.evqra-my-bookings-page) .evqra-my-bookings-shell{
    width:min(1200px,100%)!important;
    max-width:1200px!important;
    margin-left:auto!important;
    margin-right:auto!important;
}

body.tax-evqra_event_category main.evqra-category-single-page{
    padding-top:28px!important;
    padding-bottom:72px!important;
}

body.tax-evqra_event_category .evqra-category-hero{
    display:grid!important;
    grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr)!important;
    align-items:stretch!important;
    gap:28px!important;
    min-height:270px!important;
    padding:38px!important;
    border:1px solid rgba(148,163,184,.22)!important;
    border-radius:28px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
}
body.tax-evqra_event_category .evqra-category-hero-copy{display:flex!important;flex-direction:column!important;justify-content:center!important;min-width:0!important;}
body.tax-evqra_event_category .evqra-category-hero h1{margin:8px 0 12px!important;font-size:clamp(36px,5vw,64px)!important;line-height:1.02!important;}
body.tax-evqra_event_category .evqra-category-hero-copy>p{max-width:700px!important;margin:0!important;line-height:1.65!important;}
body.tax-evqra_event_category .evqra-category-hero-stats{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:14px!important;margin-top:24px!important;}
body.tax-evqra_event_category .evqra-category-hero-art{min-height:190px!important;border-radius:22px!important;overflow:hidden!important;display:grid!important;place-items:center!important;background:rgba(255,255,255,.48)!important;}
body.tax-evqra_event_category .evqra-category-hero-art img{width:100%!important;height:100%!important;object-fit:cover!important;}
body.tax-evqra_event_category .evqra-category-events-wrap{
    margin-top:28px!important;
    padding:30px!important;
    border:1px solid rgba(148,163,184,.18)!important;
    border-radius:24px!important;
    background:#fff!important;
    box-shadow:0 18px 45px rgba(15,23,42,.06)!important;
}
body.tax-evqra_event_category .evqra-category-events-grid{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:20px!important;
    align-items:stretch!important;
}
body.tax-evqra_event_category .evqra-category-events-grid .evqra-event-card{height:100%!important;min-width:0!important;}

body.single-evqra_venue main.evqra-profile-page,
body.single-evqra_organizer main.evqra-profile-page{
    padding-top:28px!important;
    padding-bottom:72px!important;
}
body.single-evqra_venue .evqra-profile-hero,
body.single-evqra_organizer .evqra-profile-hero{
    width:100%!important;
    max-width:1320px!important;
    margin-left:auto!important;
    margin-right:auto!important;
}
body.single-evqra_venue .evqra-profile-content-shell,
body.single-evqra_organizer .evqra-profile-content-shell{
    width:100%!important;
    max-width:1180px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    grid-template-columns:minmax(0,1fr) minmax(280px,340px)!important;
    gap:28px!important;
    align-items:start!important;
}
body.single-evqra_venue .evqra-profile-card,
body.single-evqra_organizer .evqra-profile-card{min-width:0!important;}

@media (max-width:960px){
    body.tax-evqra_event_category .evqra-category-hero{grid-template-columns:1fr!important;}
    body.tax-evqra_event_category .evqra-category-hero-art{min-height:180px!important;}
    body.tax-evqra_event_category .evqra-category-events-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
    body.single-evqra_venue .evqra-profile-content-shell,
    body.single-evqra_organizer .evqra-profile-content-shell{grid-template-columns:1fr!important;}
}

@media (max-width:640px){
    body.single-evqra_event main.evqra-single-event-page,
    body.single-evqra_venue main.evqra-profile-page,
    body.single-evqra_organizer main.evqra-profile-page,
    body.tax-evqra_event_category main.evqra-category-single-page,
    body:has(main.evqra-my-bookings-page) main.evqra-my-bookings-page{padding-left:12px!important;padding-right:12px!important;}
    body.tax-evqra_event_category .evqra-category-hero{padding:24px!important;border-radius:20px!important;}
    body.tax-evqra_event_category .evqra-category-events-wrap{padding:20px!important;border-radius:20px!important;}
    body.tax-evqra_event_category .evqra-category-events-grid{grid-template-columns:1fr!important;}
}


/* EventQora booking modal: keep the close control anchored to the dialog corner.
 * Theme/button defaults must not move or resize this control. */
.evqra-booking-modal-dialog .evqra-booking-modal-close{
    position:absolute !important;
    top:18px !important;
    right:18px !important;
    width:38px !important;
    height:38px !important;
    min-width:38px !important;
    min-height:38px !important;
    max-width:38px !important;
    max-height:38px !important;
    margin:0 !important;
    padding:0 !important;
    box-sizing:border-box !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    line-height:1 !important;
    text-align:center !important;
    transform:none !important;
}
.evqra-booking-modal-dialog .evqra-booking-modal-close::before,
.evqra-booking-modal-dialog .evqra-booking-modal-close::after{
    box-sizing:border-box;
}
@media(max-width:700px){
    .evqra-booking-modal-dialog .evqra-booking-modal-close{
        top:14px !important;
        right:14px !important;
    }
}
