/* ============================================================
   HOLLS FINDS - LASSO GRID CUSTOM CSS  (v7)
   Old Navy/Gap shop-style product grid
   Paste into: Appearance > Customize > Additional CSS
   ============================================================

   Brand colors:
   Espresso    #2c2421  (text)
   Deep Green  #4A6B4D  (buttons)
   Terracotta  #ca6a4a  (hover accent)
============================================================ */


/* ---------- OUTER GRID ---------- */

.lasso-grid-wrap {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 20px !important;
  margin: 32px 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: none !important;
  align-items: start !important;
}

.lasso-grid-wrap .lasso-grid-row {
  display: contents !important;
}

@media (max-width: 768px) {
  .lasso-grid-wrap {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 14px !important;
  }
}


/* ---------- CARD CONTAINER ---------- */
/* position: relative is critical - it becomes the positioning context
   for the absolutely positioned price below the button */

.lasso-grid-wrap .lasso-container {
  background: #ffffff !important;
  border: 1px solid #f0ece8 !important;
  border-radius: 4px !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  position: relative !important;
  transition: box-shadow 0.25s ease, transform 0.25s ease !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
}

.lasso-grid-wrap .lasso-container:hover {
  box-shadow: 0 8px 24px rgba(44, 36, 33, 0.12) !important;
  transform: translateY(-2px) !important;
}


/* ---------- INNER CARD LAYOUT ---------- */
/* padding-bottom: 44px reserves space at bottom for absolutely positioned price */

.lasso-grid-wrap .lasso-display {
  display: grid !important;
  grid-template-columns: 1fr !important;
  grid-template-rows: 1fr auto auto !important;
  grid-template-areas:
    "image"
    "title"
    "button" !important;
  padding: 0 0 0px 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  box-sizing: border-box !important;
}

.lasso-grid-wrap .lasso-box-1,
.lasso-grid-wrap .lasso-box-2,
.lasso-grid-wrap .lasso-box-3,
.lasso-grid-wrap .lasso-box-4,
.lasso-grid-wrap .lasso-box-5,
.lasso-grid-wrap .lasso-box-6 {
  max-width: none !important;
  min-width: 0 !important;
}


/* ---------- IMAGE AREA ---------- */

.lasso-grid-wrap .lasso-box-2 {
  grid-area: image !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  background: #ffffff !important;
  min-height: 0 !important;
  aspect-ratio: 1 / 1 !important;
  overflow: hidden !important;
  position: relative !important;
  display: block !important;
}

.lasso-grid-wrap .lasso-image {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  padding: 20px !important;
  box-sizing: border-box !important;
  text-decoration: none !important;
  background: transparent !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
}

.lasso-grid-wrap .lasso-image img {
  max-width: 100% !important;
  max-height: 100% !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: center !important;
  display: block !important;
  background: transparent !important;
  margin: 0 auto !important;
  position: static !important;
}


/* ---------- TITLE AREA ---------- */

.lasso-grid-wrap .lasso-box-1 {
  grid-area: title !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 14px 14px 0 14px !important;
  float: none !important;
  background: #ffffff !important;
  box-sizing: border-box !important;
  display: block !important;
  position: static !important;
}

/* High-specificity title rule. Clip to 2 lines using overflow + max-height.
   Pseudo-element gradient softens the cut. */
html div[id^="lasso-anchor-id"].lasso-grid-wrap .lasso-container .lasso-box-1 a.lasso-title,
html div[id^="lasso-anchor-id"].lasso-grid-wrap a.lasso-title,
html .lasso-grid-wrap a.lasso-title,
div[id^="lasso-anchor-id"].lasso-grid-wrap .lasso-container .lasso-box-1 a.lasso-title,
div[id^="lasso-anchor-id"].lasso-grid-wrap a.lasso-title,
div[id^="lasso-anchor-id"].lasso-grid-wrap .lasso-title,
.lasso-grid-wrap .lasso-display.lasso-money a.lasso-title,
.lasso-grid-wrap .lasso-title,
.lasso-grid-wrap a.lasso-title {
  font-size: 16px !important;
  line-height: 1.4 !important;
  font-weight: 500 !important;
  color: #2c2421 !important;
  overflow: hidden !important;
  white-space: normal !important;
  word-break: break-word !important;
  min-height: 70px !important;
  max-height: 70px !important;
  text-decoration: none !important;
  margin: 0 0 8px 0 !important;
  padding: 0 !important;
  letter-spacing: 0.01em !important;
  width: 100% !important;
  max-width: none !important;
  text-align: left !important;
  float: none !important;
  position: relative !important;
}

/* Gradient fade at bottom-right of title */
.lasso-grid-wrap .lasso-title::after {
  content: "" !important;
  position: absolute !important;
  bottom: 8px !important;
  right: 0 !important;
  width: 50% !important;
  height: 22px !important;
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 70%) !important;
  pointer-events: none !important;
}


/* ---------- PRICE (positioned ABSOLUTELY at bottom of card, below button) ---------- */

html div[id^="lasso-anchor-id"].lasso-grid-wrap .lasso-container .lasso-box-1 .lasso-price,
html div[id^="lasso-anchor-id"].lasso-grid-wrap .lasso-price,
html .lasso-grid-wrap .lasso-price,
div[id^="lasso-anchor-id"].lasso-grid-wrap .lasso-price,
.lasso-grid-wrap .lasso-price {
  position: absolute !important;
  bottom: 15px !important;
  left: 0 !important;
  right: 0 !important;
  margin: 0 !important;
  padding: 0 14px !important;
  font-size: 15px !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  max-width: none !important;
  float: none !important;
  box-sizing: border-box !important;
  background: transparent !important;
  z-index: 5 !important;
}

.lasso-grid-wrap .lasso-price-value {
  display: flex !important;
  align-items: baseline !important;
  gap: 6px !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 !important;
  max-width: none !important;
}

.lasso-grid-wrap .lasso-price .discount-price {
  color: #2c2421 !important;
  opacity: 0.5 !important;
  font-size: 12px !important;
  display: inline-block !important;
}

.lasso-grid-wrap .lasso-price .discount-price:empty {
  display: none !important;
}

.lasso-grid-wrap .lasso-price .discount-price strike,
.lasso-grid-wrap .lasso-price .discount-price s {
  text-decoration: line-through !important;
}

.lasso-grid-wrap .lasso-price .latest-price {
  color: #2c2421 !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  display: inline-block !important;
}

.lasso-grid-wrap .lasso-amazon-prime,
.lasso-grid-wrap .lasso-price i.lasso-amazon-prime {
  display: none !important;
}

.lasso-grid-wrap .lasso-display .clear {
  display: none !important;
}


/* ---------- BUTTON ---------- */

.lasso-grid-wrap .lasso-box-3 {
  grid-area: button !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 8px 14px 10px 14px !important;
  float: none !important;
  background: #ffffff !important;
  box-sizing: border-box !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

/* High-specificity button rule. 20px bottom padding optically centers
   the uppercase text vertically in the green button. */
div[id^="lasso-anchor-id"].lasso-grid-wrap .lasso-box-3 a.lasso-button-1,
div[id^="lasso-anchor-id"].lasso-grid-wrap a.lasso-button-1,
.lasso-grid-wrap .lasso-button-1,
.lasso-grid-wrap a.lasso-button-1 {
  background: #4A6B4D !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 4px !important;
  padding: 0 24px 20px 24px !important;
  height: 56px !important;
  font-size: 20px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  text-decoration: none !important;
  text-align: center !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 65% !important;
  max-width: none !important;
  line-height: 1 !important;
  margin: 0 !important;
  cursor: pointer !important;
  transition: background 0.2s ease !important;
  box-shadow: none !important;
  font-family: inherit !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  float: none !important;
  box-sizing: border-box !important;
}

.lasso-grid-wrap .lasso-button-1:hover,
.lasso-grid-wrap a.lasso-button-1:hover,
div[id^="lasso-anchor-id"].lasso-grid-wrap a.lasso-button-1:hover {
  background: #3a5a3d !important;
  color: #ffffff !important;
}


/* ---------- HIDE EXTRAS ---------- */

.lasso-grid-wrap .lasso-description,
.lasso-grid-wrap .lasso-box-4,
.lasso-grid-wrap .lasso-box-5,
.lasso-grid-wrap .lasso-box-6,
.lasso-grid-wrap .lasso-disclosure,
.lasso-grid-wrap .lasso-date,
.lasso-grid-wrap .lasso-amazon-info,
.lasso-grid-wrap .lasso-badge {
  display: none !important;
}


/* ---------- MOBILE ---------- */

@media (max-width: 768px) {
  .lasso-grid-wrap .lasso-box-1 {
    padding: 12px 10px 0 10px !important;
  }

  .lasso-grid-wrap .lasso-box-3 {
    padding: 8px 10px 10px 10px !important;
  }

  .lasso-grid-wrap .lasso-image {
    padding: 14px !important;
  }

  div[id^="lasso-anchor-id"].lasso-grid-wrap .lasso-box-3 a.lasso-button-1,
  div[id^="lasso-anchor-id"].lasso-grid-wrap a.lasso-button-1,
  .lasso-grid-wrap .lasso-button-1,
  .lasso-grid-wrap a.lasso-button-1 {
    font-size: 14px !important;
    height: 48px !important;
    letter-spacing: 0.04em !important;
    padding: 0 16px 14px 16px !important;
  }

  .lasso-grid-wrap .lasso-price .latest-price {
    font-size: 13px !important;
  }
}