/* UBevents246 — Night Culture, site-wide layer. Applied 2026-09-02.
   Companion to ubevents-night-culture.css (homepage). Delete this file to remove it. */

:root{
  --nc-bg:#0A0B14; --nc-panel:#11132A; --nc-panel2:#181B3A; --nc-edge:#262B52;
  --nc-ink:#F2F3FB; --nc-ink2:#C6CAE4; --nc-mute:#8F96BD;
  --nc-gold:#F5C518; --nc-blue:#2E63C7;
}

/* ---------- WooCommerce product grids: shop, categories, related, vendor stores ---------- */
.woocommerce ul.products{
  display:grid !important;
  grid-template-columns:repeat(auto-fill,minmax(228px,1fr)) !important;
  gap:20px !important; align-items:stretch !important;
  margin:0 0 32px !important; padding:0 !important; list-style:none !important;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after{display:none !important; content:none !important}

.woocommerce ul.products li.product{
  width:auto !important; max-width:none !important; margin:0 !important; padding:0 !important;
  float:none !important; clear:none !important;
  display:flex !important; flex-direction:column !important;
  background:var(--nc-panel) !important;
  border:1px solid var(--nc-edge) !important; border-radius:10px !important;
  overflow:hidden !important;
  transition:border-color .18s ease, transform .18s ease;
}
.woocommerce ul.products li.product:hover{
  border-color:var(--nc-gold) !important; transform:translateY(-2px);
}

/* one image frame everywhere */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link{margin:0 !important; padding:0 !important; display:block}
.woocommerce ul.products li.product img{
  display:block !important; width:100% !important; height:auto;
  aspect-ratio:4/5 !important; object-fit:cover !important;
  border-radius:0 !important; margin:0 !important;
}

/* card body fills, button pinned to the bottom edge */
.woocommerce ul.products li.product .astra-shop-summary-wrap{
  display:flex !important; flex-direction:column !important; flex:1 1 auto !important;
  gap:6px !important; padding:16px !important; margin:0 !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .ast-woo-product-category{margin:0 !important}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-size:15px !important; line-height:1.3 !important; color:var(--nc-ink) !important;
}
.woocommerce ul.products li.product .ast-woo-product-category{
  font-size:11px !important; letter-spacing:.12em; text-transform:uppercase;
  color:var(--nc-gold) !important;
}
.woocommerce ul.products li.product .price{
  color:var(--nc-ink) !important; font-size:14px !important; margin:0 !important;
}
.woocommerce ul.products li.product .price del{color:var(--nc-mute) !important}
.woocommerce ul.products li.product .star-rating{margin:2px 0 !important}
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart,
.woocommerce ul.products li.product .ast-on-card-button{
  margin-top:auto !important; width:100% !important; text-align:center !important;
  border-radius:4px !important; font-size:12px !important; letter-spacing:.05em !important;
  padding:11px 14px !important;
}

/* ---------- Buttons: one system across the site ---------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt{
  border-radius:4px !important; font-weight:600 !important; letter-spacing:.04em !important;
}

/* ---------- Focus visibility, site-wide ---------- */
a:focus-visible,button:focus-visible,
.elementor-button:focus-visible,
.woocommerce .button:focus-visible{
  outline:2px solid var(--nc-gold) !important; outline-offset:3px;
}

@media (prefers-reduced-motion:reduce){
  .woocommerce ul.products li.product{transition:none !important}
}

/* ---------- SHOW THE WHOLE PRODUCT IMAGE ----------
   The 4:5 frame is kept so the grid stays even, but the image is fitted inside it
   instead of filling it, so nothing is ever cropped off. The matte behind it makes
   the letterboxing read as deliberate. */
.woocommerce ul.products li.product img{
  object-fit:contain !important;
  object-position:center !important;
  background:#0D0E1F;
  aspect-ratio:4/5 !important;
  width:100% !important;
  height:auto;
}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap{background:#0D0E1F}

/* single product page: never crop the main image or the gallery thumbs */
.woocommerce div.product div.images img,
.woocommerce div.product div.images .flex-control-thumbs img{
  object-fit:contain !important;
  background:#0D0E1F;
  width:100% !important;
  height:auto !important;
}

/* ---------- DOKAN VENDOR DIRECTORY ----------
   [dokan-stores] renders a plain stacked list under this theme. Lay it out as a grid
   and give each store card the Night Culture treatment. Dokan's own internal card
   layout (the avatar overlapping the banner) is left alone on purpose. */
.dokan-seller-wrap{
  display:grid !important;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr)) !important;
  gap:22px !important;
  margin:0 0 8px !important; padding:0 !important; list-style:none !important;
}
.dokan-seller-wrap::before,
.dokan-seller-wrap::after{display:none !important; content:none !important}

.dokan-seller-wrap .dokan-single-seller{
  width:auto !important; max-width:none !important;
  margin:0 !important; padding:0 !important; float:none !important;
  display:block !important; list-style:none !important;
}
.dokan-seller-wrap .dokan-single-seller .store-wrapper{
  width:100% !important;
  background:var(--nc-panel) !important;
  border:1px solid var(--nc-edge) !important;
  border-radius:10px !important;
  overflow:hidden !important;
  transition:border-color .18s ease, transform .18s ease;
}
.dokan-seller-wrap .dokan-single-seller:hover .store-wrapper{
  border-color:var(--nc-gold) !important; transform:translateY(-2px);
}
.dokan-seller-wrap .store-banner img{
  width:100% !important; height:100% !important; object-fit:cover !important;
}
.dokan-seller-wrap .store-data-container{color:var(--nc-ink2) !important}
.dokan-seller-wrap .store-data h2,
.dokan-seller-wrap .store-data-container h2,
.dokan-seller-wrap .store-data-container h3{color:var(--nc-ink) !important;font-size:1.05rem !important}
.dokan-seller-wrap .store-footer{border-top:1px solid var(--nc-edge) !important}
.dokan-seller-wrap .seller-avatar img{border-radius:50% !important;object-fit:cover !important}
.dokan-seller-wrap .dokan-btn,
.dokan-seller-wrap .store-footer a{border-radius:4px !important}

/* Vendors page header block */
.page-id-2123 .elementor-element-ubvenda p{
  font-family:"Poppins",sans-serif !important; font-size:12px !important;
  letter-spacing:.22em !important; text-transform:uppercase !important;
  color:var(--nc-gold) !important; font-weight:600 !important; margin:0 0 10px !important;
}
.page-id-2123 .elementor-element-ubvendb .elementor-heading-title{
  font-family:"Archivo Black",sans-serif !important;
  font-size:clamp(28px,4.5vw,44px) !important; line-height:1.05 !important;
  color:#FFFFFF !important; letter-spacing:-.015em !important;
}
.page-id-2123 .elementor-element-ubvendc p{
  color:var(--nc-ink2) !important; max-width:60ch; margin-top:14px !important;
}
.page-id-2123 .elementor-widget-button .elementor-button{
  border-radius:4px !important; font-weight:600 !important; letter-spacing:.04em !important;
}

/* ---------- WP EVENT MANAGER LISTINGS ----------
   The plugin ships a Bootstrap-style grid whose rows carry margin:0 -15px. Inside
   Astra's container that pushes every column 30px wider than its parent, so cards
   overhang and get clipped on the right. Replace the row/col system with a grid. */
.event_listings .wpem-row,
.event_listings_main .wpem-row,
.wpem-event-listings-header .wpem-row,
.event_filters .wpem-row{
  margin-left:0 !important; margin-right:0 !important;
  max-width:100% !important; width:100% !important;
}
.event_listings .wpem-event-listings.wpem-row{
  display:grid !important;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr)) !important;
  gap:20px !important;
}
.event_listings .wpem-event-box-col{
  width:auto !important; max-width:none !important; flex:none !important;
  padding-left:0 !important; padding-right:0 !important; margin:0 !important;
}

/* the event card itself */
.wpem-event-box-col .wpem-event-action-url{
  display:block !important; height:100%;
  background:var(--nc-panel) !important;
  border:1px solid var(--nc-edge) !important;
  border-radius:10px !important;
  overflow:hidden !important;
  color:var(--nc-ink) !important; text-decoration:none !important;
  transition:border-color .18s ease, transform .18s ease;
}
.wpem-event-box-col:hover .wpem-event-action-url{
  border-color:var(--nc-gold) !important; transform:translateY(-2px);
}

/* banner: one frame, whole artwork visible, no crop */
.wpem-event-banner-img{
  aspect-ratio:16 / 9 !important; height:auto !important;
  background-size:contain !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
  background-color:#0D0E1F !important;
}

/* card text */
.wpem-event-box-col .wpem-event-content,
.wpem-event-box-col .wpem-event-details{padding:16px !important}
.wpem-event-box-col .wpem-event-title h3,
.wpem-event-box-col .wpem-heading-text{
  color:var(--nc-ink) !important; font-size:1rem !important; line-height:1.3 !important;
}
.wpem-event-box-col .wpem-event-date-time-text,
.wpem-event-box-col .wpem-event-location-text{color:var(--nc-mute) !important;font-size:.86rem !important}
.wpem-event-box-col .wpem-event-date{background:var(--nc-gold) !important;color:#0A0B14 !important}

/* filter bar */
.event_filters.wpem-form-wrapper{
  background:var(--nc-panel) !important;
  border:1px solid var(--nc-edge) !important;
  border-radius:10px !important;
  padding:16px !important; margin-bottom:24px !important;
}
.event_filters .wpem-theme-button{border-radius:4px !important}

@media (max-width:520px){
  .event_listings .wpem-event-listings.wpem-row{grid-template-columns:1fr !important}
}
