body {
  background: #e5e5e5;
}
.defaultImage {
  padding: 0;
}
.social-icon:hover svg path{
  fill:#bbbbbb;
}
.row {  
  margin: 0px !important;
}
p {
  font-weight: 500 !important;
  font-size: 20px;
}
.banner-top-section .yv-page-banner {
  height: 450px;
}
.banner-top-section .page-banner-content {
  max-width: 845px;
  background: rgba(255, 255, 255, 0.9);
  padding: 60px 50px;
  border-radius: 20px;
}
.banner-top-section .page-banner-content p {
  font-size: 30px;
}
.banner-top-section .page-banner-content h1 {
  margin-bottom: 15px;
}
.template_page-about .promo-banner-counter-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.template_page-about .promo-banner-counter-item {
  width: 31%;
  margin-top: 80px;
}
.template_page-about .promo-banner-counter-item-inner {
  max-width: unset;
  text-align: left;
}
.template_page-about .promo-banner-counter-heading {
  margin-bottom: 15px;
}
.yv-contact-map iframe {
  width: 100%;
  height: 450px;
  border: 0;
  margin-bottom: 20px;
}

.yv-contact-info .footer-logo {
  margin-bottom: 20px;
}

.contact-info-row {
  display: flex;
  flex-wrap: wrap;
}

.info-left,
.info-right {
  margin-bottom: 20px;
}

.info-left p,
.info-right p {
  margin-bottom: 10px;
}

.social-icons a {
  margin-right: 10px;
  display: inline-block;
}

.opening-hours-table {
  border-collapse: collapse;
}

.opening-hours-table td {
  padding: 4px 10px 4px 0;
}

.opening-hours-table td:first-child {
  font-weight: normal;
  white-space: nowrap;
}

.opening-hours-table td:last-child {
  white-space: nowrap;
}
.info-left {
  color: #0b1854;
}
.info-right-heading {
  margin: 0px !important;
}
.form-table-border {
  width: auto;
}
label {
  text-transform: capitalize;
}
.star {
  color: #f4364c;
  padding-left: 2px;
}
.rich-text-description p {
  font-size: 26px;
  line-height:40px;
}
.button:hover, a.nav-link:hover {
  text-decoration:none;
}
a:hover{
  text-decoration:underline;
}

.button {
  text-transform: capitalize !important;
}
h1 {
  font-size: 50px;
  line-height: 55px;
}
h6 {
  font-size: 28px;
  line-height: 35px;
}
h3 {
  font-size: 30px;
  line-height: 45px;
}
h2 {
  font-size: 40px;
}
.yv-gallery-collage-detail {
  max-width: 1019px !important;
  border-radius: 20px;
  background-color: rgba(255, 255, 255, 0.95);
  padding: 60px 50px;
  margin-left: 15px;
}

.yv-gallery-collage-detail h6 {
  margin: 20px 0px 60px 0;
  line-height: 35px;
  font-weight: 500;
}
.button {
  font-size: 20px;
  padding: 25px 50px;
  border-radius: 50px;
}
.image-with-text-section {
  background-color: #e5e5e5;
}
.image-with-text-section .row {
  background: white;
  border-radius: 20px;
}
.image-with-text-section .row img,
.row.image-position-left .yv-img-content {
  border-top-left-radius: 20px;
  border-bottom-left-radius: 20px;
}
.image-with-text-section .row.image-position-right img,
.row.image-position-right .yv-img-content {
  border-top-right-radius: 20px;
  border-bottom-right-radius: 20px;
  border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
}
.wave-class {
  height: 50px;
  max-width: unset !important;
  width: 100%;
  margin: 0;
  padding: 0;
  position: relative;
}
.wave-class::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  height: 50px;
  width: 100%;
  background: url(https://cdn.shopify.com/s/files/1/0890/1286/3342/files/Vector.svg?v=1738716431);
  background-size: cover;
}
.wave-class.bgwhite::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  height: 50px;
  width: 100%;
  background: url(https://cdn.shopify.com/s/files/1/0890/1286/3342/files/Vector_1.svg?v=1738796004);
  background-size: cover;
}
.yv-gallery-collage-outer .row {
  gap: 20px;
  flex-wrap: nowrap;
}
.yv-gallery-collage-outer .row::-webkit-scrollbar {
  display: none;
}
.yv-get-in-touch .btn-block {
  width: unset;
}
.below-banner-text {
  font-size: 35px;
  padding: 40px;
}
.template_page-about .promo-banner-content {
  display: flex;
  justify-content: flex-start;
  font-weight: 700;
  text-align: left;
  margin-top: 100px;
}
.promo-banner-title {
  font-size: 40px;
}
@media screen and (max-width: 1300px) {
  .yv-gallery-collage-outer .row {
    overflow: auto;
  }
}
@media screen and (min-width: 1200px) and (max-width: 1641px) {
  .defaultImage .image-wrapper {
    padding-bottom: 100% !important;
  }
}
@media screen and (max-width: 1200px) {
  h1 {
    line-height: 31px;
    font-size: 25px;
  }
  p {
    font-size: 15px;
  }
  h6 {
    font-size: 15px;
  }
  h2 {
    font-size: 20px;
  }
  h3 {
    font-size: 20px;
  }
  .below-banner-text {
    font-size: 18px;
    padding: 0 15px;
  }
  .banner-top-section .page-banner-content p {
    font-size: 18px;
  }
  .banner-top-section .page-banner-content {
    padding: 30px 25px;
  }
  .text-content p {
    font-size: 15px;
  }
  .rich-text-description p {
    font-size: 18px;
  }
  .rich-text-content h2 {
    font-size: 20px;
  }
  .yv-gallery-collage-detail h6 {
    margin: 10px 0px 15px 0;
    line-height: 22px;
    font-size: 15px;
  }
  .yv-gallery-collage-detail {
    text-align: left;
    padding: 25px;
    margin-left: 0;
  }
  .button.m-small-btn {
    font-size: 15px;
    padding: 15px 25px;
  }
  .navbar {
    padding: 5px 0;
  }
  .image-with-text-section .text-content {
    padding: 10px 10px 25px 10px;
  }
  .image-with-text-section .image-position-right .yv-imgbox-container,
  .image-with-text-section .image-position-left .yv-imgbox-container {
    margin-bottom: 0;
  }
  .image-with-text-section .row.image-position-right img,
  .row.image-position-right .yv-img-content,
  .image-with-text-section .row.image-position-left img,
  .row.image-position-left .yv-img-content {
    border-top-right-radius: 20px;
    border-bottom-right-radius: 0px;
    border-top-left-radius: 20px;
    border-bottom-left-radius: 0px;
  }
  .wave-class::before,
  .wave-class.bgwhite::before {
    height: 20px;
  }
  .yv-get-in-touch p {
    font-size: 15px;
  }
  .yv-get-in-touch .btn-block {
    padding: 15px 25px;
    font-size: 15px;
  }
  .yv-contact-form .row .col-md-6 + .col-md-6 {
    margin-top: 0;
  }
  .yv-contact-form .info-left {
    margin-bottom: 10px;
  }
  .cf-sr-first-div {
    display: flex;
    flex-direction: column;
    gap: 25px;
  }
  .cf-main-footer {
    padding: 30px 20px;
  }
  .cf-fr-logo-section img {
    width: 150px;
  }
  .cf-first-row-div {
    gap: 25px;
  }
  .yv-gallery-collage-outer .yv-gallery-collage-inner {
    width: 90%;
  }
  .template_page-about .promo-banner-content p {
    text-align: left;
  }
  .template_page-about .promo-banner-content {
    margin-top: 15px;
  }
  .template_page-about .promo-banner-counter-item {
    width: 100%;
    margin-top: 20px;
  }
  .template_page-about .promo-banner-counter-heading {
    font-size: 20px;
  }
  .template_page-about .promo-banner-title {
    font-size: 25px;
  }
  .yv-multicolumn-item {
    margin-top: 30px;
  }
  .grid-item .masonry-img {
    width: 90%;
    margin: auto;
  }
  .row.image-position-right {
    flex-flow: column-reverse;
  }
  .row.image-position-left {
    flex-flow: column;
  }
  .image-with-text-section .col-md-6 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .yv-contact-form > .row div {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .yv-get-in-touch {
    margin-bottom: 30px;
  }
}
@media screen and (min-width: 768px) {
  .yv-gallery-collage-detail {
    margin-left: 15px;
  }
}

/* Hide "Description" tab text only (Yuva-14o) */
.product-tabs .tab-title,
.product-tabs__nav-item--description,
.product__tabs .description-tab {
  display: none !important;
}

/* Fallback: hide description tab by attribute */
button[aria-controls*="description"],
a[href*="description"] {
  display: none !important;
}

/* Add $ sign before all prices (Yuva theme fix) */
.money::before,
.price::before,
.product-price::before,
.grid-product__price::before,
.card__price::before,
.price-item::before {
  content: "$";
  margin-right: 2px;
}

span:not(:empty)[class*="price"]::before {
  content: "$";
}
/* 
   PRODUCT GRID – PRICE AT BOTTOM CENTER (PIXEL CONTROLLED)
   FILE: assets/custom.min.css*/
 

   
.defaultImage .image-wrapper{
 
  height: 120px !important;       
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.yv-product-card.product-grid-layout-rounded[data-product-main-grid]{
  height: 300px !important;     
  min-height: 300px !important;
  display: flex;
  flex-direction: column;
}


.yv-product-card .yv-product-information {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.yv-product-card .yv-prizebox.text {
  margin-top: auto !important;   
  align-self: center;           
  text-align: center;
  justify-content: center !important;
  padding-bottom: 8px;          
 
}

.yv-product-card .yv-product-price {
  display: inline-block;
  text-align: center;
}

.yv-product-card.product-grid-layout-rounded[data-product-main-grid]{
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  overflow: hidden;
}

.yv-product-card .yv-product-card-img{
  background: #ffffff;
  border: 0;
}

.yv-product-card .yv-product-information{
  padding: 12px 14px;
}




/* 1) Make each search grid cell a proper "card box" */
.template-search [data-product-grid]{
  border: 1px solid #0b1854;    
  border-radius: 0;              
  padding: 14px 14px 10px;
  background: #fff;
  display: flex;                 
  flex-direction: column;
  height: 100%;
}

/* 2) Remove card border inside search so we don’t get double borders */
.template-search [data-product-grid] .yv-product-card{
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  width: 100%;
  display: flex;
  flex-direction: column;
  flex: 1;
}

/* 3) Remove fixed heights ONLY on search (fixed height causes overflow) */
.template-search .defaultImage .image-wrapper{
  height: auto !important;
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.template-search .yv-product-card.product-grid-layout-rounded[data-product-main-grid]{
  height: auto !important;
  min-height: 0 !important;
}

/* 4) Make product info fill space so price+stock can sit nicely */
.template-search .yv-product-card .yv-product-information{
  display: flex;
  flex-direction: column;
  flex: 1;
}

/* 5) Keep titles equal height (prevents uneven rows) */
.template-search .yv-product-card .yv-product-title,
.template-search .yv-product-card h3,
.template-search .yv-product-card h4{
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.8em;
}

/* 6) Price stays aligned */
.template-search .yv-product-card .yv-prizebox.text{
  margin-top: auto !important;
  text-align: center;
  align-self: center;
  width: 100%;
  padding-top: 10px;
}

/* 7) Stock line (on search it may be OUTSIDE the card, so target wrapper) */
.template-search [data-product-grid] .p_stock-status{
  margin-top: 8px;
  display: flex;
  justify-content: center;
  gap: 6px;
  flex-wrap: wrap;
  line-height: 1.2;
}


/* Image wrapper – keep square, add breathing space */
.yv-product-card .image-wrapper,
.template-search .image-wrapper {
  aspect-ratio: 1 / 1;
  padding: 12px;                 
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
}

/* Image itself – DO NOT CROP */
.yv-product-card .image-wrapper img,
.template-search .image-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: contain;           
  object-position: center;
  max-width: 100%;
  max-height: 100%;
  transition: transform 0.25s ease;
}

.yv-product-card:hover .image-wrapper img {
  transform: scale(1.03);       
}



/* =========================================================
   SEARCH PAGE (template_search) - FIX GRID + GAP + NO VERTICAL TEXT
   Based on your structure:
   .yv-products-list > .row > div.col-... [data-product-grid] > .yv-product-card
========================================================= */

/* A) Do NOT turn .yv-products-list into flex/grid (let theme layout work) */
body.template_search .yv-products-list{
  display: block !important;
  width: 100% !important;
}

/* B) Convert the INNER .row into a clean flex-wrap grid with real gaps */
body.template_search .yv-products-list > .row{
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 24px !important;             /* ✅ gap like your front page */
  margin: 0 !important;             /* kill bootstrap negative margins */
  padding: 0 !important;
  width: 100% !important;
}

/* C) Remove bootstrap gutter padding from columns (because gap handles spacing) */
body.template_search .yv-products-list > .row > [class*="col-"]{
  padding: 0 !important;
  margin: 0 !important;

  /* ✅ Force stable responsive tile widths (prevents thin strips) */
  flex: 1 1 calc((100% - (24px * 3)) / 4) !important;  /* 4 columns */
  max-width: calc((100% - (24px * 3)) / 4) !important;
  min-width: 220px !important;         /* prevents vertical text */
  box-sizing: border-box !important;
}

/* D) Breakpoints */
@media (max-width: 1200px){
  body.template_search .yv-products-list > .row > [class*="col-"]{
    flex: 1 1 calc((100% - (24px * 2)) / 3) !important;
    max-width: calc((100% - (24px * 2)) / 3) !important;
  }
}
@media (max-width: 992px){
  body.template_search .yv-products-list > .row > [class*="col-"]{
    flex: 1 1 calc((100% - 24px) / 2) !important;
    max-width: calc((100% - 24px) / 2) !important;
    min-width: 200px !important;
  }
}
@media (max-width: 576px){
  body.template_search .yv-products-list > .row > [class*="col-"]{
    flex: 1 1 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

/* E) Keep your card border and full height */
body.template_search [data-product-grid]{
  border: 1px solid #0b1854 !important;
  background: #fff !important;
  height: 100% !important;
}

/* F) Hard stop for “vertical text” behavior */
body.template_search .yv-product-card,
body.template_search .yv-product-title,
body.template_search .yv-product-title a{
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}


/* =========================================================
   SEARCH PAGE: STANDARDIZE PRODUCT CARD HEIGHTS (template_search)
   Makes ALL cards same height even if title/price/stock differs
========================================================= */

/* Ensure each column stretches */
body.template_search .yv-products-list > .row > [class*="col-"]{
  display: flex !important;
  align-items: stretch !important;
}

/* Card wrapper: fixed height + flex column */
body.template_search [data-product-grid]{
  display: flex !important;
  flex-direction: column !important;
  height: 420px !important;        /* ✅ change this if you want taller/shorter */
  padding: 14px !important;
  box-sizing: border-box !important;
}

/* Inner card fills full height */
body.template_search .yv-product-card{
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

/* Image area: fixed height so all images align */
body.template_search .defaultImage .image-wrapper{
  height: 190px !important;        /* ✅ image block height */
  padding: 12px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}
body.template_search .defaultImage .image-wrapper img{
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

/* Content area: takes remaining space */
body.template_search .yv-product-information{
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
}

/* Title: always 2 lines reserved (prevents card height change) */
body.template_search .yv-product-title,
body.template_search .yv-product-title a{
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
  min-height: 44px !important;     /* ✅ reserve space for 2 lines */
  line-height: 22px !important;
  margin-bottom: 6px !important;
}

/* Price area: reserve space */
body.template_search .yv-prizebox,
body.template_search .yv-prizebox.text{
  min-height: 34px !important;     /* ✅ keeps price section same height */
  margin-top: auto !important;     /* pushes price+stock to bottom */
  text-align: center !important;
}

/* Stock line: reserve space so it doesn't change card height */
body.template_search .p_stock-status{
  min-height: 26px !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 6px !important;
  flex-wrap: wrap !important;
  margin-top: 8px !important;
}






/* ✅ Yuva 14o - Fix Sort By dropdown on search page */

/* 1) Prevent dropdown clipping by parent containers */
.yv-right-sidebar,
.collection-sort-elements,
.collection-sortbar,
.yv-search-result-page-list,
.yv-tab-pane {
  overflow: visible !important;
}

/* 2) Anchor dropdown positioning */
.collection-sortbar {
  position: relative !important;
}

/* 3) Dropdown box styling + make sure it's above products grid */
#sort__list.sort-list {
  position: absolute !important;
  top: calc(100% + 8px) !important;
  right: 0 !important;

  min-width: 220px !important;
  background: #fff !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 12px !important;
  padding: 8px 0 !important;

  z-index: 99999 !important;

  /* if theme sets weird height */
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

/* 4) Ensure the open state always shows */
/* #sort__list.sort-list.active,
#sort__list.sort-list.open {
  display: block !important;
} */

/* 5) Make list items actually visible */
#sort__list.sort-list li {
  display: block !important;
  padding: 10px 14px !important;
}

#sort__list.sort-list li a,
#sort__list.sort-list li button {
  display: block !important;
  width: 100% !important;
  text-align: left !important;
  background: transparent !important;
  border: 0 !important;
  color: #111827 !important; /* prevents white-on-white */
}



/* ✅ FIX: Stop Sort dropdown auto-opening on MOBILE */
@media (max-width: 767px) {
  /* Always closed by default */
  #sort__list.sort-list {
    display: none !important;
  }

  /* Only open when the Sort button is expanded */
  button[aria-controls="sort__list"][aria-expanded="true"] + #sort__list.sort-list,
  .sort-by[aria-expanded="true"] + #sort__list.sort-list {
    display: block !important;
  }

  /* Important: do NOT force-open via .open/.active on mobile */
  #sort__list.sort-list.active,
  #sort__list.sort-list.open {
    display: none !important;
  }
}




/* =====================================================
   ✅ YUVA-14O – MOBILE SORT BUTTON FIX (FINAL)
   - No auto-open
   - Click toggles correctly
===================================================== */

/* Default: always closed */
#sort__list.sort-list {
  display: none;
}

/* Desktop behavior (theme default) */
@media (min-width: 768px) {
  #sort__list.sort-list.open,
  #sort__list.sort-list.active {
    display: block !important;
  }
}

/* Mobile behavior */
@media (max-width: 767px) {
  /* Open ONLY when JS adds open/active */
  #sort__list.sort-list.open,
  #sort__list.sort-list.active {
    display: block !important;
  }

  /* Prevent focus / hover auto-open */
  .sort-by:focus + #sort__list,
  .sort-by:focus-within + #sort__list,
  .sort-by:hover + #sort__list {
    display: none !important;
  }
}


/* =====================================================
   MOBILE: Sort dropdown must look like desktop (solid)
===================================================== */
@media (max-width: 767px) {

  /* Put sort list above everything and not clipped */
  #sort__list.sort-list{
    position: fixed !important;
    left: 16px !important;
    right: 16px !important;
    top: 190px !important;         /* adjust if needed */
    z-index: 999999 !important;

    background: #fff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 14px !important;
    box-shadow: 0 12px 30px rgba(0,0,0,.18) !important;

    padding: 10px 0 !important;
    max-height: 60vh !important;
    overflow: auto !important;
  }

  /* Make sure list items are solid */
  #sort__list.sort-list li,
  #sort__list.sort-list li a,
  #sort__list.sort-list li button{
    background: transparent !important;
    color: #111827 !important;
  }
}


/* =====================================================
   MOBILE: Prevent theme overlay/blur from fading Sort list
   (Common Yuva-14o drawers/overlays)
===================================================== */
@media (max-width: 767px) {

  /* When sort is open/active, ensure key wrappers are NOT blurred/faded */
  #sort__list.sort-list.open,
  #sort__list.sort-list.active{
    filter: none !important;
    backdrop-filter: none !important;
  }

  /* These containers often get opacity/blur in mobile drawer mode */
  .collection-sortbar,
  .collection-sort-elements,
  .yv-search-result-page-list,
  .yv-products-list{
    filter: none !important;
    backdrop-filter: none !important;
    opacity: 1 !important;
  }
}


/* ✅ MOBILE Sort list: left align options (text + radio) */
@media (max-width: 767px) {
  /* list container */
  #sort__list.sort-list {
    text-align: left !important;
  }

  /* each item row */
  #sort__list.sort-list li {
    text-align: left !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* links/buttons inside */
  #sort__list.sort-list li a,
  #sort__list.sort-list li button {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: left !important;
    width: 100% !important;
    gap: 10px !important;
  }

  /* radio / check icon spacing */
  #sort__list.sort-list input[type="radio"],
  #sort__list.sort-list .checkmark,
  #sort__list.sort-list svg {
    margin: 0 !important;
    flex: 0 0 auto !important;
  }
}

@media (max-width: 767px) {
  #sort__list.sort-list label {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    width: 100% !important;
    text-align: left !important;
  }
}

/* =========================================================
   SEARCH PAGE - MOBILE: Sort dropdown height should fit content
   Target: ul#sort__list.list-unstyled.sort-list.active
========================================================= */
@media (max-width: 767px) {

  /* 1) Stop parent flex from stretching children */
  .collection-sort-elements,
  #toolbox-sort.collection-sortbar {
    align-items: flex-start !important;
  }

  /* 2) Force the UL to size by content (not stretched) */
  ul#sort__list.sort-list {
    height: auto !important;
    min-height: 0 !important;
    max-height: 70vh !important;     /* scroll only if many options */
    overflow-y: auto !important;

    flex: 0 0 auto !important;       /* ✅ IMPORTANT: prevents flex stretching */
    align-self: flex-start !important;

    padding-bottom: 12px !important;
  }

  /* 3) If theme uses a fixed height on the LI rows, remove it */
  ul#sort__list.sort-list > li {
    height: auto !important;
    min-height: 0 !important;
  }

  /* 4) Ensure the "selected" item doesn't add extra space */
  ul#sort__list.sort-list > li.selected {
    margin: 0 !important;
  }
}

/* =========================================================
   Global product card redesign (uses shared snippets/product-grid)
   Applies across collection/search/shop/product grids, skips xsmall cards
========================================================= */
.yv-product-card--featured-style {
  height: 100%;
  border: 0 !important;
  box-shadow: none !important;
}

.yv-product-card--featured-style > .animated-grid {
  height: 100%;
  background: #fff;
  border: 1px solid #d9d9d9;
  border-radius: 14px;
  padding: 10px 10px 12px;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.yv-product-card--featured-style .yv-product-img,
.yv-product-card--featured-style .yv-product-img:focus,
.yv-product-card--featured-style .yv-product-img:focus-visible,
.yv-product-card--featured-style .yv-product-card-img {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

.yv-product-card--featured-style.yv-product-card--outofstock > .animated-grid {
  border-color: #dc2626 !important;
}

.yv-product-card--featured-style:hover > .animated-grid,
.yv-product-card--featured-style:focus-within > .animated-grid {
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.12);
  border-color: #cfcfcf;
}

.yv-product-card--featured-style.yv-product-card--outofstock:hover > .animated-grid,
.yv-product-card--featured-style.yv-product-card--outofstock:focus-within > .animated-grid {
  border-color: #dc2626 !important;
}

.yv-product-card--featured-style .yv-product-card-img {
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 10px;
}

.yv-product-card--featured-style .yv-product-img {
  display: block;
}

.yv-product-card--featured-style .yv-product-img .image-wrapper {
  aspect-ratio: 1 / 1;
  padding-bottom: 0 !important;
  min-height: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
}

.yv-product-card--featured-style .yv-product-img .image-wrapper > img,
.yv-product-card--featured-style .yv-product-img .image-wrapper picture img,
.yv-product-card--featured-style .yv-product-img .image-wrapper .product-first-img {
  width: auto !important;
  height: auto !important;
  max-width: 82%;
  max-height: 82%;
  object-fit: contain;
  margin: 0 auto;
  position: static !important;
  transform: none !important;
  transition: transform 0.2s ease;
}

.yv-product-card--featured-style:hover .yv-product-img .image-wrapper > img,
.yv-product-card--featured-style:hover .yv-product-img .image-wrapper picture img,
.yv-product-card--featured-style:hover .yv-product-img .image-wrapper .product-first-img,
.yv-product-card--featured-style:focus-within .yv-product-img .image-wrapper > img,
.yv-product-card--featured-style:focus-within .yv-product-img .image-wrapper picture img,
.yv-product-card--featured-style:focus-within .yv-product-img .image-wrapper .product-first-img {
  transform: scale(1.04) !important;
}

.yv-product-card--featured-style .product-second-img,
.yv-product-card--featured-style .main-slider-wrapper,
.yv-product-card--featured-style .slider-button {
  display: none !important;
}

.yv-product-card--featured-style .yv-product-information {
  text-align: center !important;
  padding: 0 6px;
}

.yv-product-card--featured-style .yv-product-vendor-info,
.yv-product-card--featured-style .ratingbox,
.yv-product-card--featured-style .yv-product-options,
.yv-product-card--featured-style .similar_options,
.yv-product-card--featured-style .yv-product-badge,
.yv-product-card--featured-style .yv-product-card-label-container,
.yv-product-card--featured-style .yv-pickup-availability,
.yv-product-card--featured-style .select-color {
  display: none !important;
}

.yv-product-card--featured-style .yv-product-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #111 !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  font-size: 14px !important;
  margin: 0 0 6px !important;
  min-height: 2.7em;
}

.yv-product-card--featured-style .yv-prizebox {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 4px;
  line-height: 1.2;
}

.yv-product-card--featured-style .yv-prizebox strong {
  font-weight: 700;
}

.yv-product-card--featured-style .yv-prizebox .yv-product-price {
  color: #111 !important;
  font-weight: 700 !important;
  font-size: 15px !important;
}

.yv-product-card--featured-style .yv-prizebox .yv-product-compare-price {
  color: #8a8a8a !important;
  font-size: 13px !important;
}

.yv-product-card--featured-style .stock-status {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin: 0;
  color: #8d8d8d !important;
  font-size: 12px !important;
  line-height: 1.3;
}

.yv-product-card--featured-style .stock-status.yv-outofstock {
  color: #dc2626 !important;
  font-weight: 600;
}

.yv-product-card--featured-style .stock-status > span {
  display: none !important;
}

@media (max-width: 991px) {
  .yv-products-list .row[data-collection-products] {
    margin-left: -4px !important;
    margin-right: -4px !important;
  }

  .yv-products-list .row[data-collection-products] > [data-product-grid] {
    padding-left: 4px !important;
    padding-right: 4px !important;
    margin-bottom: 8px;
  }

  .yv-product-card--featured-style > .animated-grid {
    border-radius: 12px;
    padding: 8px 8px 10px;
  }

  .yv-product-card--featured-style .yv-product-img .image-wrapper {
    min-height: 110px;
  }
}

@media (max-width: 767px) {
  .yv-products-list .row[data-collection-products] {
    margin-left: -3px !important;
    margin-right: -3px !important;
  }

  .yv-products-list .row[data-collection-products] > [data-product-grid] {
    padding-left: 3px !important;
    padding-right: 3px !important;
    margin-bottom: 6px;
  }

  .yv-product-card--featured-style > .animated-grid {
    border-radius: 12px;
    padding: 7px 6px 9px;
  }

  .yv-product-card--featured-style .yv-product-img .image-wrapper {
    min-height: 96px;
  }

  .yv-product-card--featured-style .yv-product-title {
    font-size: 13px !important;
    min-height: 2.6em;
    margin-bottom: 4px !important;
  }

  .yv-product-card--featured-style .yv-prizebox .yv-product-price {
    font-size: 14px !important;
  }

  .yv-product-card--featured-style .stock-status {
    font-size: 11px !important;
  }
}

@media (max-width: 480px) {
  .yv-products-list .row[data-collection-products] {
    margin-left: -2px !important;
    margin-right: -2px !important;
  }

  .yv-products-list .row[data-collection-products] > [data-product-grid] {
    padding-left: 2px !important;
    padding-right: 2px !important;
    margin-bottom: 4px;
  }
}

/* =========================================================
   Product listing grid override (collection + search)
   Fixes large gaps and overly narrow cards on small desktops
========================================================= */
.yv-collection-products .yv-products-list > .row[data-collection-products] {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 24px !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

.yv-collection-products .yv-products-list > .row[data-collection-products] > [data-product-grid] {
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  flex: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: block !important;
  border: 0 !important; /* removes old search blue border wrapper */
  background: transparent !important;
  height: auto !important;
}

.yv-collection-products .yv-products-list > .row[data-collection-products] > [data-product-grid] > .yv-product-card {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.yv-collection-products .yv-products-list > .row[data-collection-products] > [data-product-grid] > .yv-product-card > .animated-grid {
  width: 100% !important;
}

.yv-collection-products .yv-products-list > .row[data-collection-products] > #more {
  grid-column: 1 / -1;
}

@media (max-width: 1399px) {
  .yv-collection-products .yv-products-list > .row[data-collection-products] {
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
    gap: 24px !important;
  }
}

@media (max-width: 991px) {
  .yv-collection-products .yv-products-list > .row[data-collection-products] {
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)) !important;
    gap: 16px !important;
  }
}

@media (max-width: 767px) {
  .yv-collection-products .yv-products-list > .row[data-collection-products] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
}

@media (max-width: 420px) {
  .yv-collection-products .yv-products-list > .row[data-collection-products] {
    gap: 8px !important;
  }
}

/* =========================================================
   Filter sidebar ordering: Availability + Price above menu
========================================================= */
.yv-collection-filter {
  display: flex;
  flex-direction: column;
}

.yv-collection-filter > .yv-filter-name {
  order: 3;
}

.yv-collection-filter > .yv-filters-menu {
  order: 2;
}

.yv-collection-filter > .yv-filter-name.yv-filter-name--availability {
  order: 1;
}

.yv-collection-filter > .yv-filter-name.yv-filter-name--price {
  order: 0;
}

/* =========================================================
   Product page recommended products slider
   Fix clipped price / reduce extra top spacing
========================================================= */
.product-recommendations .yv-product-card--featured-style > .animated-grid {
  height: auto !important;
  min-height: 100% !important;
  padding-top: 6px !important;
  padding-bottom: 14px !important;
}

.product-recommendations .yv-product-card--featured-style .yv-product-card-img {
  margin-bottom: 6px !important;
}

.product-recommendations .yv-product-card--featured-style .yv-product-img .image-wrapper {
  min-height: 110px !important;
}

.product-recommendations .yv-product-card--featured-style .yv-product-information {
  margin-top: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 8px !important;
}

.product-recommendations .yv-product-card--featured-style > .animated-grid {
  padding-bottom: 18px !important;
}

.product-recommendations .yv-product-card--featured-style .yv-product-title {
  min-height: 2.5em;
  margin-bottom: 3px !important;
}

.product-recommendations .yv-product-card--featured-style .yv-prizebox {
  margin-bottom: 2px;
}

@media (max-width: 767px) {
  .product-recommendations .yv-product-card--featured-style .yv-product-img .image-wrapper {
    min-height: 90px !important;
  }
}
