/*
 * REBELD URBANIA · WooCommerce system
 * v0.5.0 — catalogue, filters and resilient product cards.
 */

/* Shared WooCommerce controls. */
.woocommerce .woocommerce-breadcrumb{margin:0 0 1rem;color:var(--ru-grey-500);font-size:.78rem}
.woocommerce .woocommerce-breadcrumb a{color:inherit}
.woocommerce-message,.woocommerce-info,.woocommerce-error{margin:0 0 1.25rem!important;padding:1rem 1rem 1rem 3rem!important;border:0!important;border-left:4px solid var(--ru-red)!important;background:var(--ru-white)!important;color:var(--ru-black)!important;box-shadow:var(--ru-shadow-sm)}
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before{top:1rem!important;color:var(--ru-red)!important}
.woocommerce button.button,.woocommerce a.button,.woocommerce input.button,.woocommerce #respond input#submit{min-height:3rem;padding:.78rem 1rem!important;border:0!important;border-radius:var(--ru-radius-sm)!important;background:var(--ru-red)!important;color:var(--ru-white)!important;font-size:.78rem!important;font-weight:900!important;letter-spacing:.04em;text-transform:uppercase;transition:background var(--ru-transition),transform var(--ru-transition)}
.woocommerce button.button:hover,.woocommerce a.button:hover,.woocommerce input.button:hover,.woocommerce #respond input#submit:hover{background:var(--ru-red-dark)!important;color:var(--ru-white)!important;transform:translateY(-1px)}

/* Shop page foundation. */
.ru-shop-page{background:var(--ru-black);color:var(--ru-white)}
.ru-shop-hero{position:relative;isolation:isolate;display:grid;align-items:end;min-height:clamp(27rem,52vw,40rem);overflow:hidden;border-bottom:1px solid rgb(255 255 255/.14);background:#090909}
.ru-shop-hero::before{content:"";position:absolute;z-index:-2;inset:0;background:url("../images/shop-hero-door.webp") center 56% / cover no-repeat;filter:brightness(.68) saturate(.78) contrast(1.06);transform:scale(1.012)}
.ru-shop-hero::after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgb(0 0 0/.94) 0%,rgb(0 0 0/.80) 31%,rgb(0 0 0/.48) 56%,rgb(0 0 0/.20) 100%),linear-gradient(0deg,rgb(0 0 0/.62),transparent 45%);pointer-events:none}
.ru-shop-hero__inner{position:relative;z-index:1;display:grid;gap:1.5rem;align-items:end;padding-block:clamp(4rem,8vw,7rem)}
.ru-shop-hero h1{max-width:13ch;margin:0;color:var(--ru-white);font-size:clamp(3.6rem,9vw,8rem);line-height:.84;overflow-wrap:normal}
.ru-shop-hero__text{max-width:46rem;margin:1rem 0 0;color:var(--ru-grey-300);font-size:clamp(1rem,1.5vw,1.16rem)}
.ru-shop-hero__help{display:grid;grid-template-columns:1fr auto;gap:.2rem 1rem;align-items:center;max-width:22rem;padding:1rem 1.1rem;border:1px solid rgb(255 255 255/.18);border-radius:var(--ru-radius-md);background:rgb(255 255 255/.045);color:var(--ru-white);text-decoration:none;backdrop-filter:blur(8px)}
.ru-shop-hero__help span{grid-column:1;color:var(--ru-grey-300);font-size:.78rem}
.ru-shop-hero__help strong{grid-column:1;font-size:.92rem;text-transform:uppercase}
.ru-shop-hero__help .ru-icon{grid-column:2;grid-row:1/3;color:var(--ru-red)}

/* Horizontal category navigation. */
.ru-shop-categories{position:relative;z-index:4;border-bottom:1px solid rgb(255 255 255/.1);background:#0d0d0d}
.ru-shop-categories__track{display:flex;gap:.55rem;overflow-x:auto;padding-block:.9rem;scrollbar-width:none}
.ru-shop-categories__track::-webkit-scrollbar{display:none}
.ru-shop-chip{display:inline-flex;flex:none;align-items:center;gap:.5rem;min-height:2.65rem;padding:.55rem .85rem;border:1px solid rgb(255 255 255/.16);border-radius:999px;color:var(--ru-grey-100);font-size:.74rem;font-weight:850;text-decoration:none;text-transform:uppercase;transition:background var(--ru-transition),border-color var(--ru-transition),color var(--ru-transition)}
.ru-shop-chip span{display:grid;place-items:center;min-width:1.45rem;height:1.45rem;padding-inline:.3rem;border-radius:999px;background:rgb(255 255 255/.09);font-size:.66rem}
.ru-shop-chip:hover,.ru-shop-chip.is-active{border-color:var(--ru-red);background:var(--ru-red);color:var(--ru-white)}

/* Catalogue layout and mobile filter drawer. */
.ru-shop-catalog{min-height:60vh;padding-block:clamp(2rem,5vw,5rem);background:var(--ru-black)}
.ru-shop-catalog__inner{display:grid;gap:1.25rem}
.ru-shop-filter-toggle{display:flex;align-items:center;justify-content:center;gap:.55rem;width:100%;min-height:3rem;padding:.7rem 1rem;border:1px solid rgb(255 255 255/.18);border-radius:var(--ru-radius-sm);background:var(--ru-black-soft);color:var(--ru-white);font-size:.78rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.ru-shop-filters{position:fixed;z-index:360;inset:0 auto 0 0;width:min(90vw,24rem);overflow:auto;padding:1rem;background:var(--ru-black-soft);color:var(--ru-white);visibility:hidden;transform:translateX(-105%);transition:transform 220ms ease,visibility 220ms ease}
.ru-shop-filters.is-open{visibility:visible;transform:none}
.ru-shop-filters__backdrop{position:fixed;z-index:350;inset:0;display:none;border:0;background:rgb(0 0 0/.7)}
.ru-shop-filters.is-open + .ru-shop-filters__backdrop{display:block}
.ru-shop-filters__mobile-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;padding-bottom:.85rem;border-bottom:1px solid rgb(255 255 255/.14);text-transform:uppercase}
.ru-shop-filters .ru-icon-button{display:grid;place-items:center;width:2.6rem;height:2.6rem;border:1px solid rgb(255 255 255/.18);border-radius:999px;background:transparent;color:var(--ru-white)}
.ru-shop-filter-form{display:grid;gap:1.35rem}
.ru-shop-filter-group{display:grid;gap:.55rem}
.ru-shop-filter-group>label,.ru-shop-filter-label{color:var(--ru-white);font-size:.76rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.ru-shop-filter-group input,.ru-shop-filter-group select{width:100%;min-height:3rem;padding:.68rem .75rem;border:1px solid rgb(255 255 255/.18);border-radius:var(--ru-radius-sm);background:#202020;color:var(--ru-white);outline:none}
.ru-shop-filter-group input:focus,.ru-shop-filter-group select:focus{border-color:var(--ru-red)}
.ru-shop-search-field{position:relative}
.ru-shop-search-field .ru-icon{position:absolute;left:.8rem;top:50%;width:1.15rem;height:1.15rem;transform:translateY(-50%);color:var(--ru-grey-500)}
.ru-shop-search-field input{padding-left:2.6rem}
.ru-shop-price-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.ru-shop-price-fields label{display:grid;gap:.3rem;color:var(--ru-grey-300);font-size:.72rem}
.ru-shop-filter-actions{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;padding-top:.25rem}
.ru-shop-filter-actions .ru-button{width:100%;padding-inline:.65rem}
.ru-shop-results{min-width:0}
.ru-shop-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:1.35rem;padding-bottom:1rem;border-bottom:1px solid rgb(255 255 255/.14)}
.ru-shop-toolbar .woocommerce-result-count{float:none!important;margin:0!important;color:var(--ru-grey-300);font-size:.82rem}
.ru-shop-toolbar .woocommerce-ordering{float:none!important;margin:0!important}
.ru-shop-toolbar .woocommerce-ordering select{min-height:2.8rem;max-width:100%;padding:.55rem 2.2rem .55rem .75rem;border:1px solid rgb(255 255 255/.16);border-radius:var(--ru-radius-sm);background:#171717;color:var(--ru-white)}

/* Product grid — one mobile, two tablet, three laptop, four wide desktop. */
.woocommerce ul.products{display:grid!important;grid-template-columns:1fr;gap:1.15rem;margin:0!important;padding:0!important;list-style:none}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none!important}
.woocommerce ul.products li.ru-product-card{float:none!important;width:auto!important;min-width:0;margin:0!important;padding:0!important;border:1px solid rgb(255 255 255/.14);border-radius:var(--ru-radius-md);overflow:hidden;background:#121212;box-shadow:0 12px 34px rgb(0 0 0/.2);transition:transform 220ms ease,border-color 220ms ease,box-shadow 220ms ease}
.woocommerce ul.products li.ru-product-card:hover{transform:translateY(-4px);border-color:rgb(255 0 43/.7);box-shadow:0 22px 48px rgb(0 0 0/.32)}
.ru-product-card__link{display:flex;height:100%;flex-direction:column;color:var(--ru-white);text-decoration:none}
.ru-product-card__media{position:relative;overflow:hidden;aspect-ratio:4/5;background:var(--ru-paper)}
.ru-product-card__image{width:100%!important;height:100%!important;margin:0!important;object-fit:cover!important;object-position:center;transform:scale(1.001);transition:transform 420ms ease,filter 220ms ease}
.ru-product-card:hover .ru-product-card__image{transform:scale(1.035);filter:contrast(1.03)}
.ru-product-badge{position:absolute;z-index:2;left:.75rem;top:.75rem;display:inline-flex;align-items:center;min-height:1.8rem;padding:.35rem .6rem;border-radius:999px;background:var(--ru-red);color:var(--ru-white);font-size:.66rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 7px 20px rgb(0 0 0/.25)}
.ru-product-badge.is-sold-out{background:#313131}
.ru-product-badge.is-sale{background:var(--ru-red)}
.ru-product-card__view{position:absolute;left:.75rem;right:.75rem;bottom:.75rem;display:flex;align-items:center;justify-content:space-between;min-height:2.8rem;padding:.65rem .75rem;border-radius:var(--ru-radius-sm);background:rgb(9 9 9/.86);color:var(--ru-white);font-size:.72rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;opacity:0;transform:translateY(.5rem);transition:opacity 220ms ease,transform 220ms ease;backdrop-filter:blur(8px)}
.ru-product-card__view .ru-icon{width:1rem;height:1rem;color:var(--ru-red)}
.ru-product-card:hover .ru-product-card__view,.ru-product-card:focus-within .ru-product-card__view{opacity:1;transform:none}
.ru-product-card__body{display:flex;flex:1;flex-direction:column;padding:1rem}
.ru-product-card__brand{margin:0 0 .35rem;color:var(--ru-red);font-size:.68rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.woocommerce ul.products li.ru-product-card .ru-product-card__title{margin:0!important;padding:0!important;color:var(--ru-white)!important;font-family:var(--ru-font-sans)!important;font-size:1rem!important;font-weight:850!important;line-height:1.25!important;text-transform:none!important}
.ru-product-card__meta{display:flex;align-items:end;justify-content:space-between;gap:.75rem;margin-top:.75rem}
.woocommerce ul.products li.ru-product-card .ru-product-card__price{display:block;margin:0;color:var(--ru-white)!important;font-size:1.05rem!important;font-weight:900!important}
.woocommerce ul.products li.ru-product-card .ru-product-card__price del{color:var(--ru-grey-500);font-size:.82rem;opacity:1}
.woocommerce ul.products li.ru-product-card .ru-product-card__price ins{color:var(--ru-white);text-decoration:none}
.ru-product-card__colours{color:var(--ru-grey-500);font-size:.72rem;white-space:nowrap}
.ru-product-card__cta{display:flex;align-items:center;justify-content:center;min-height:2.85rem;margin-top:1rem;border-radius:var(--ru-radius-sm);background:var(--ru-red);color:var(--ru-white);font-size:.72rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;transition:background var(--ru-transition)}
.ru-product-card:hover .ru-product-card__cta{background:var(--ru-red-dark)}

/* Home product shortcodes also use the same card system. */
.ru-section--products .woocommerce ul.products{display:grid!important;grid-template-columns:1fr;gap:1.15rem;margin:0!important;padding:0!important}
.ru-section--products .woocommerce ul.products::before,.ru-section--products .woocommerce ul.products::after{display:none!important}
.ru-section--products .woocommerce ul.products li.ru-product-card{width:auto!important;margin:0!important}

/* Empty state and pagination. */
.ru-shop-empty{max-width:46rem;padding:clamp(2rem,6vw,5rem);border:1px solid rgb(255 255 255/.14);border-radius:var(--ru-radius-lg);background:var(--ru-black-soft)}
.ru-shop-empty h2{color:var(--ru-white)}
.ru-shop-empty>p:not(.ru-eyebrow){color:var(--ru-grey-300)}
.ru-shop-pagination{margin-top:2.5rem}
.woocommerce nav.woocommerce-pagination ul{display:flex;flex-wrap:wrap;gap:.45rem;border:0!important}
.woocommerce nav.woocommerce-pagination ul li{border:0!important}
.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{display:grid!important;place-items:center!important;min-width:2.7rem;height:2.7rem;padding:.4rem!important;border:1px solid rgb(255 255 255/.16);border-radius:var(--ru-radius-sm);background:#151515!important;color:var(--ru-white)!important}
.woocommerce nav.woocommerce-pagination ul li span.current,.woocommerce nav.woocommerce-pagination ul li a:hover{border-color:var(--ru-red);background:var(--ru-red)!important}

/* Single product baseline. */
.woocommerce .ru-main--shop{padding-block:var(--ru-space-6)}
.woocommerce div.product{display:grid;gap:1.5rem;min-width:0}
.woocommerce div.product div.images,.woocommerce div.product div.summary{float:none!important;width:auto!important;min-width:0;margin:0!important}
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper{max-width:100%;overflow:hidden}
.woocommerce div.product div.images img{width:100%;height:auto;max-width:100%}
.woocommerce div.product .product_title{font-size:clamp(2rem,6vw,4rem)}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--ru-black);font-size:1.35rem;font-weight:900}
.woocommerce div.product form.cart .variations{width:100%}
.woocommerce div.product form.cart .variations th,.woocommerce div.product form.cart .variations td{display:block;width:100%;padding:.25rem 0}
.woocommerce div.product form.cart select{width:100%;min-height:3rem;padding:.65rem;border:1px solid var(--ru-grey-300);background:var(--ru-white)}
.woocommerce .quantity .qty{min-height:3rem;border:1px solid var(--ru-grey-300)}
.woocommerce table.shop_table{border-color:var(--ru-grey-300)!important;border-radius:var(--ru-radius-sm)!important;background:var(--ru-white)}
.woocommerce-cart-form,.cart_totals,.woocommerce-checkout-review-order,.woocommerce-checkout-payment{min-width:0}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select{min-height:3rem;padding:.65rem;border:1px solid var(--ru-grey-300);background:var(--ru-white)}

@media (min-width:38rem){
  .woocommerce ul.products,.ru-section--products .woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (min-width:48rem){
  .ru-shop-hero__inner{grid-template-columns:minmax(0,1fr) auto}
  .ru-shop-toolbar{flex-wrap:nowrap}
}

@media (min-width:60rem){
  .ru-shop-catalog__inner{grid-template-columns:15rem minmax(0,1fr);gap:2rem;align-items:start}
  .ru-shop-filter-toggle{display:none}
  .ru-shop-filters{position:sticky;z-index:1;top:calc(var(--ru-header-height) + 1rem);grid-column:1;width:auto;max-height:calc(100vh - var(--ru-header-height) - 2rem);padding:1.1rem;border:1px solid rgb(255 255 255/.14);border-radius:var(--ru-radius-md);background:var(--ru-black-soft);visibility:visible;transform:none}
  .ru-shop-filters__mobile-head,.ru-shop-filters__backdrop{display:none!important}
  .ru-shop-results{grid-column:2}
  .woocommerce ul.products,.ru-section--products .woocommerce ul.products{grid-template-columns:repeat(3,minmax(0,1fr))}
  .woocommerce div.product{grid-template-columns:minmax(0,1.25fr) minmax(20rem,.75fr);gap:3rem}
}

@media (min-width:80rem){
  .ru-shop-catalog__inner{grid-template-columns:16rem minmax(0,1fr);gap:2.25rem}
  .woocommerce ul.products,.ru-section--products .woocommerce ul.products{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.35rem}
}

@media (hover:none){
  .ru-product-card__view{display:none}
}

@media (prefers-reduced-motion:reduce){
  .woocommerce ul.products li.ru-product-card,.ru-product-card__image,.ru-product-card__view{transition:none}
}


/* v0.5.1 stability hotfix: never let catalogue controls alter the global header. */
@media (min-width:64rem){
  .ru-header .ru-header__menu-toggle{display:none!important}
  .ru-header .ru-icon-button{border:0;background:transparent}
  .ru-header__inner{grid-template-columns:minmax(13rem,17rem) minmax(0,1fr) auto!important;align-items:center}
  .ru-brand--header{justify-self:start}
  .ru-primary-nav{display:block;justify-self:center}
}
@media (min-width:80rem){.ru-header__inner{grid-template-columns:18rem minmax(0,1fr) auto!important}}

/* Make the footer a deliberate closing block instead of an extension of the black catalogue. */
.ru-footer{position:relative;border-top:4px solid var(--ru-red);background:linear-gradient(180deg,#190309 0%,#0b0b0b 22%,#070707 100%);box-shadow:0 -2rem 5rem rgb(255 0 43/.07)}
.ru-footer::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:rgb(255 255 255/.14)}

@media (max-width:47.99rem){
  .ru-shop-hero{min-height:31rem}
  .ru-shop-hero::before{background-position:59% center}
  .ru-shop-hero::after{background:linear-gradient(90deg,rgb(0 0 0/.94),rgb(0 0 0/.62) 68%,rgb(0 0 0/.32)),linear-gradient(0deg,rgb(0 0 0/.72),transparent 55%)}
}
