/* =========================================================
   PRODUCT CARD
   Static shop.html inherited these rules from style.css.
   They live here on the WooCommerce archive so shop.css is
   self-contained.
   ========================================================= */

.product-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 10px 10px 22px;
  overflow: hidden;
  background: rgba(255, 253, 252, 0.98);
  border: 1px solid rgba(189, 64, 52, 0.1);
  box-shadow: 0 10px 30px rgba(57, 34, 30, 0.06);
  transition:
    border-color 0.25s ease,
    box-shadow 0.25s ease,
    transform 0.25s ease;
}

.product-card:hover {
  transform: translateY(-4px);
  border-color: rgba(189, 64, 52, 0.2);
  box-shadow: 0 18px 42px rgba(57, 34, 30, 0.11);
}

.product-card__image {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: #f7f2f0;
}

.product-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.product-card__content {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  padding: 20px 14px 0;
  text-align: center;
}

.product-card__title {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin: 0;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: -0.01em;
}

.product-card__title a {
  transition: color 0.2s ease;
}

.product-card__title a:hover {
  color: var(--red);
}

.product-card__price {
  position: relative;
  margin-top: 12px;
  padding-top: 13px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
}

.product-card__price::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 32px;
  height: 1px;
  transform: translateX(-50%);
  background: rgba(189, 64, 52, 0.35);
}

.product-card__price del {
  margin-right: 5px;
  color: rgba(17, 17, 17, 0.42);
  font-weight: 400;
}

.product-card__price ins {
  color: var(--red);
  text-decoration: none;
}

.product-card__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 154px;
  margin-top: 19px;
  padding: 11px 20px 12px;
  color: var(--white);
  background: var(--red);
  border: 1px solid var(--red);
  font-size: 15px;
  line-height: 1;
  transition:
    color 0.2s ease,
    background-color 0.2s ease;
}

.product-card__button:hover {
  color: var(--red);
  background: var(--white);
}

@media (max-width: 767px) {
  .product-card {
    padding: 7px 7px 15px;
  }

  .product-card:hover {
    transform: none;
  }

  .product-card__content {
    padding: 13px 5px 0;
  }

  .product-card__title {
    min-height: 38px;
    font-size: 14px;
  }

  .product-card__price {
    margin-top: 9px;
    padding-top: 10px;
    font-size: 15px;
  }

  .product-card__button {
    width: 100%;
    min-width: 0;
    margin-top: 14px;
    padding: 10px 7px 11px;
    font-size: 13px;
  }
}

@media (max-width: 420px) {
  .product-card {
    width: 100%;
    max-width: 350px;
    margin: 0 auto;
    padding: 10px 10px 18px;
  }

  .product-card__content {
    padding-top: 16px;
  }

  .product-card__title {
    min-height: auto;
    font-size: 16px;
  }

  .product-card__price {
    font-size: 17px;
  }

  .product-card__button {
    width: auto;
    min-width: 155px;
    padding: 11px 18px 12px;
    font-size: 14px;
  }
}

/* =========================================================
   SHOP PAGE
   ========================================================= */


/* SHOP HEADER */

.shop-page .header {
  position:relative;
  top:auto;
  left:auto;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid rgba(189,64,52,.1);
}

.shop-page .header__inner {
  min-height:104px;
  align-items:center;
}

.shop-page .header__logo {
  margin-top:0;
}

.shop-page .header__actions {
  padding-top:0;
}

.shop-page .header__icon img {
  filter:brightness(0);
}

.shop-page .header__cart-count {
  border-color:var(--white);
}


/* SHOP GLOBAL */

.shop-main {
  position:relative;
  z-index:1;
}

.shop-container {
  width:min(var(--container),calc(100% - var(--gutter) * 2));
  margin:0 auto;
}


/* SHOP INTRO */

.shop-intro {
  padding:54px 0 44px;
  background:rgba(255,255,255,.9);
}

.shop-breadcrumbs {
  display:flex;
  align-items:center;
  gap:9px;
  margin-bottom:30px;
  color:rgba(17,17,17,.48);
  font-size:14px;
  line-height:1;
}

.shop-breadcrumbs a {
  transition:color .2s ease;
}

.shop-breadcrumbs a:hover {
  color:var(--red);
}

.shop-intro__content {
  max-width:760px;
}

.shop-intro__title {
  margin:0;
  font-size:clamp(54px,4.4vw,82px);
  font-weight:400;
  line-height:.95;
  letter-spacing:-.035em;
}

.shop-intro__text {
  margin:18px 0 0;
  color:rgba(17,17,17,.65);
  font-size:21px;
  line-height:1.4;
}


/* SHOP CATALOG */

.shop-catalog {
  padding:32px 0 120px;
  background:rgba(255,255,255,.82);
}

.shop-layout {
  display:grid;
  grid-template-columns:240px minmax(0,1fr);
  gap:48px;
  align-items:start;
}


/* SHOP SIDEBAR */

.shop-sidebar__inner {
  position:sticky;
  top:26px;
}

.shop-sidebar__title {
  margin:0 0 20px;
  padding-bottom:16px;
  border-bottom:1px solid rgba(17,17,17,.16);
  font-size:25px;
  font-weight:400;
  line-height:1;
}

.shop-categories {
  display:flex;
  flex-direction:column;
}

.shop-categories a {
  position:relative;
  display:block;
  padding:13px 28px 13px 0;
  color:rgba(17,17,17,.72);
  border-bottom:1px solid rgba(17,17,17,.07);
  font-size:17px;
  line-height:1.25;
  transition:color .2s ease,padding-left .2s ease;
}

.shop-categories a::after {
  content:"→";
  position:absolute;
  top:50%;
  right:2px;
  color:rgba(189,64,52,.35);
  transform:translateY(-50%);
  transition:color .2s ease,right .2s ease;
}

.shop-categories a:hover {
  padding-left:5px;
  color:var(--red);
}

.shop-categories a:hover::after {
  right:0;
  color:var(--red);
}

.shop-categories a.is-active {
  color:var(--red);
}

.shop-categories a.is-active::before {
  content:"";
  position:absolute;
  top:50%;
  left:-14px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--red);
  transform:translateY(-50%);
}

.shop-categories a.is-active::after {
  color:var(--red);
}


/* SHOP CONTENT */

.shop-content {
  min-width:0;
}


/* SHOP TOOLBAR */

.shop-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  min-height:62px;
  margin-bottom:24px;
  padding:0 0 18px;
  border-bottom:1px solid rgba(17,17,17,.1);
}

.shop-toolbar__label {
  margin:0;
  color:rgba(17,17,17,.58);
  font-size:15px;
  line-height:1;
}

.shop-sort {
  position:relative;
  display:flex;
  align-items:center;
  gap:14px;
}

.shop-sort__label {
  color:rgba(17,17,17,.48);
  font-size:14px;
  white-space:nowrap;
}

.shop-sort select {
  min-width:220px;
  height:44px;
  padding:0 42px 0 15px;
  color:var(--black);
  background:
    linear-gradient(45deg,transparent 50%,var(--red) 50%) calc(100% - 17px) 19px/5px 5px no-repeat,
    linear-gradient(135deg,var(--red) 50%,transparent 50%) calc(100% - 12px) 19px/5px 5px no-repeat,
    rgba(255,255,255,.92);
  border:1px solid rgba(189,64,52,.16);
  outline:0;
  font:inherit;
  font-size:14px;
  cursor:pointer;
  transition:border-color .2s ease,box-shadow .2s ease;
}

.shop-sort select:focus {
  border-color:rgba(189,64,52,.42);
  box-shadow:0 0 0 3px rgba(189,64,52,.06);
}


/* SHOP PRODUCTS */

.shop-products-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.shop-products-grid .product-card {
  height:100%;
}

.shop-products-grid .product-card__image img {
  transition:transform .35s ease;
}

.shop-products-grid .product-card:hover .product-card__image img {
  transform:scale(1.015);
}


/* SHOP PAGINATION */

.shop-pagination {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:54px;
}

.shop-pagination a {
  display:flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  color:rgba(17,17,17,.7);
  background:rgba(255,255,255,.86);
  border:1px solid rgba(189,64,52,.14);
  font-size:15px;
  line-height:1;
  transition:color .2s ease,background-color .2s ease,border-color .2s ease;
}

.shop-pagination a:hover,
.shop-pagination a.is-active {
  color:var(--white);
  background:var(--red);
  border-color:var(--red);
}

.shop-pagination__next {
  margin-left:6px;
}


/* SHOP MOBILE TOOLBAR */

.shop-mobile-toolbar {
  display:none;
}

.shop-filter-overlay {
  position:fixed;
  inset:0;
  z-index:90;
  background:rgba(17,17,17,.44);
  opacity:0;
  visibility:hidden;
  transition:opacity .28s ease,visibility .28s ease;
}

.shop-filter-overlay.is-active {
  opacity:1;
  visibility:visible;
}

.shop-filter-drawer {
  z-index:100;
}


/* SHOP TABLET */

@media(max-width:1200px) {
  .shop-layout {
    grid-template-columns:210px minmax(0,1fr);
    gap:32px;
  }

  .shop-products-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* SHOP MOBILE */

@media(max-width:767px) {
  .shop-intro {
    padding:32px 0 30px;
  }

  .shop-breadcrumbs {
    margin-bottom:22px;
    font-size:12px;
  }

  .shop-intro__title {
    font-size:44px;
  }

  .shop-intro__text {
    margin-top:12px;
    font-size:17px;
  }

  .shop-catalog {
    padding:18px 0 80px;
  }

  .shop-mobile-toolbar {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-bottom:18px;
  }

  .shop-mobile-toolbar__button,
  .shop-sort--mobile select {
    width:100%;
    height:48px;
  }

  .shop-mobile-toolbar__button {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:0 15px;
    color:var(--black);
    background:rgba(255,255,255,.92);
    border:1px solid rgba(189,64,52,.16);
    font-size:14px;
  }

  .shop-mobile-toolbar__plus {
    color:var(--red);
    font-size:21px;
    line-height:1;
  }

  .shop-sort--mobile {
    display:block;
  }

  .shop-sort--mobile select {
    min-width:0;
    padding-left:14px;
    font-size:13px;
  }

  .shop-layout {
    display:block;
  }

  .shop-sidebar {
    display:none;
  }

  .shop-toolbar {
    display:none;
  }

  .shop-products-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }

  .shop-pagination {
    margin-top:36px;
  }

  .shop-pagination a {
    width:38px;
    height:38px;
  }
}


/* SHOP SMALL MOBILE */

@media(max-width:420px) {
  .shop-mobile-toolbar {
    grid-template-columns:1fr;
  }

  .shop-products-grid {
    grid-template-columns:1fr;
  }

  .shop-products-grid .product-card {
    max-width:350px;
    margin:0 auto;
  }
}

/* =========================================================
   WOOCOMMERCE STATES
   ========================================================= */

.shop-empty {
  margin: 30px 0 0;
  color: rgba(17, 17, 17, 0.62);
  font-size: 18px;
  line-height: 1.5;
}

.shop-pagination .page-numbers.current {
  color: var(--white);
  background: var(--red);
  border-color: var(--red);
}

.shop-pagination .page-numbers.dots {
  border-color: transparent;
  background: transparent;
}

.shop-pagination span.page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  color: rgba(17, 17, 17, 0.7);
  font-size: 15px;
  line-height: 1;
}

.woocommerce-notices-wrapper {
  width: min(var(--container), calc(100% - var(--gutter) * 2));
  margin: 20px auto 0;
}

@media (max-width: 767px) {
  .shop-pagination span.page-numbers {
    width: 38px;
    height: 38px;
  }
}
