/* ==========================================================================
   WEAR WING — Maison page layer: SHOP / LISTING
   Scope: .products (shop grid + list), .compare-area (compare page),
          .quick-view-modal (shared quick-view interior).

   NOTE: #show-products is AJAX-replaced (product-search.js), so its
   entrance uses a pure CSS animation (always ends visible, replays on
   every filter swap) — never luxe.js reveal classes.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1 · Entrance choreography for the (AJAX-swapped) product results
   -------------------------------------------------------------------------- */
@keyframes ww-shop-rise {
  from {
    opacity: 0;
    transform: translateY(22px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.products #show-products > * {
  animation: ww-shop-rise 0.8s var(--ww-ease-out) backwards;
}

.products #show-products > *:nth-child(1) { animation-delay: 0.04s; }
.products #show-products > *:nth-child(2) { animation-delay: 0.11s; }
.products #show-products > *:nth-child(3) { animation-delay: 0.18s; }
.products #show-products > *:nth-child(4) { animation-delay: 0.25s; }
.products #show-products > *:nth-child(5) { animation-delay: 0.32s; }
.products #show-products > *:nth-child(6) { animation-delay: 0.39s; }
.products #show-products > *:nth-child(7) { animation-delay: 0.46s; }
.products #show-products > *:nth-child(8) { animation-delay: 0.53s; }

@media (prefers-reduced-motion: reduce) {
  .products #show-products > * {
    animation: none;
  }
}

/* --------------------------------------------------------------------------
   2 · Toolbar — one quiet hairline bar: search · sort · view
   -------------------------------------------------------------------------- */
.products .product-sort-area {
  padding-bottom: 20px;
  border-bottom: 1px solid var(--ww-hairline);
  margin-bottom: 34px;
}

/* Search: underline only, no box */
.products .serch-product.form-control {
  border: 0;
  border-bottom: 1px solid var(--ww-hairline);
  border-radius: 0;
  background: transparent;
  padding-inline-start: 2px;
  font-size: 13px;
  letter-spacing: 0.02em;
  color: var(--ww-ink);
}

.products .serch-product.form-control:focus {
  box-shadow: none;
  border-bottom-color: var(--ww-ink);
}

.products .serch-product.form-control::placeholder {
  color: var(--color-gray-1);
}

/* Sort (nice-select clone of #sort-type): editorial caps, underline */
.products .product-sort-list .nice-select {
  border: 0;
  border-bottom: 1px solid var(--ww-hairline);
  border-radius: 0;
  background: transparent;
  font-family: var(--font-family-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ww-ink);
}

.products .product-sort-list .nice-select:hover,
.products .product-sort-list .nice-select.open {
  border-bottom-color: var(--ww-ink);
}

.products .product-sort-list .nice-select .list {
  border-radius: 0;
  border: 1px solid var(--ww-hairline);
  background: var(--ww-paper);
  box-shadow: 0 20px 44px rgba(30, 29, 35, 0.08);
  margin-top: 6px;
}

.products .product-sort-list .nice-select .option {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: none;
  color: var(--color-gray-2);
}

.products .product-sort-list .nice-select .option.selected {
  font-weight: 700;
  color: var(--ww-ink);
}

.products .product-sort-list .nice-select .option:hover,
.products .product-sort-list .nice-select .option.focus,
.products .product-sort-list .nice-select .option.selected.focus {
  background: var(--ww-ivory);
}

/* View switch: squared ghosts, ink when active */
.products .view-and-filter .view {
  display: flex;
  gap: 8px;
}

.products .view-and-filter .btn-icon {
  width: 40px;
  height: 40px;
  line-height: 38px;
  border: 1px solid var(--ww-hairline);
  border-radius: 2px;
  background: transparent;
  color: var(--color-gray-2);
  font-size: 13px;
  transition: color 0.3s ease, background 0.3s ease, border-color 0.3s ease;
}

.products .view-and-filter .btn-icon:hover {
  color: var(--ww-ink);
  border-color: var(--ww-ink);
  background: transparent;
}

.products a.btn-icon.view-type.active {
  background: var(--ww-ink);
  border-color: var(--ww-ink);
  color: #fff;
}

/* Mobile filters trigger */
.products .product_filter_btn {
  border: 1px solid var(--ww-ink);
  border-radius: 2px;
  color: var(--ww-ink);
  background: transparent;
}

.products .product_filter_btn:hover {
  background: var(--ww-ink);
  color: #fff;
}

/* Offcanvas chrome (mobile filters panel) */
.products .widget-offcanvas-close {
  background: var(--ww-ink);
  border-color: var(--ww-ink);
  border-radius: 2px;
}

.products .widget-offcanvas .offcanvas-header {
  border-bottom: 1px solid var(--ww-hairline);
}

/* --------------------------------------------------------------------------
   3 · Sidebar — quiet stacked groups on bare paper
   -------------------------------------------------------------------------- */
.products .sidebar-widget-area {
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
}

/* Keep breathing room when the sidebar becomes the mobile offcanvas */
@media (max-width: 991.98px) {
  .products .sidebar-widget-area {
    padding: 8px 20px 40px;
  }
}

/* Micro-caps group headings (the accordion button inherits via font:inherit) */
.products .sidebar-widget-area .widget .title {
  font-family: var(--font-family-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--ww-ink);
  margin-bottom: 20px;
}

/* Variant group headings arrive with .color-primary — keep them ink (AA) */
.products .sidebar-widget-area .widget .title.color-primary {
  color: var(--ww-ink) !important;
}

.products .sidebar-widget-area .accordion-button::after {
  font-size: 11px;
  color: var(--color-gray-1);
}

/* Hairline separators between groups */
.products .sidebar-widget-area .widget {
  border-bottom: 1px solid var(--ww-hairline);
  padding-bottom: 26px;
}

.products .sidebar-widget-area #rating_div .widget {
  border-bottom: 0;
  padding-bottom: 0;
}

/* Category tree */
.products .sidebar-widget-area .widget.widget-categories ul li a {
  font-size: 13px;
  letter-spacing: 0.02em;
  color: var(--color-gray-2);
}

.products .sidebar-widget-area .widget.widget-categories ul li a:hover,
.products .sidebar-widget-area .widget.widget-categories .list-dropdown.open > a {
  color: var(--ww-ink);
}

.products .sidebar-widget-area .widget.widget-categories .list-dropdown > a::before {
  height: 13px;
  width: 13px;
  border-color: #cbc4b8;
}

.products .sidebar-widget-area .widget.widget-categories .list-dropdown > a::after {
  width: 7px;
  height: 7px;
  left: 3px;
  background-color: var(--ww-ink);
}

.products .sidebar-widget-area .widget.widget-categories .list-dropdown.open > .menu-collapse .open a,
.products .sidebar-widget-area .widget.widget-categories .list-dropdown .menu-collapse li a.active {
  color: var(--ww-ink);
}

/* Subcategory fly-out: paper panel, hairline, squared */
.products .sidebar-widget-area .widget.widget-categories .list-dropdown .menu-collapse {
  border-radius: 0;
  border: 1px solid var(--ww-hairline);
  background: var(--ww-paper);
  box-shadow: 0 18px 44px rgba(30, 29, 35, 0.08);
}

/* Counts */
.products .sidebar-widget-area .widget .qty {
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--color-gray-2);
}

.products .sidebar-widget-area .widget.widget-categories span.show-more {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--ww-ink);
}

/* Price slider: hairline rail, ink range, porcelain handles */
.products .sidebar-widget-area .widget.widget-price .noUi-target {
  height: 2px;
  border-radius: 0;
  background: var(--ww-hairline);
}

.products .sidebar-widget-area .widget.widget-price .noUi-connect {
  background: var(--ww-ink);
}

.products .sidebar-widget-area .widget.widget-price .noUi-horizontal .noUi-handle {
  width: 13px;
  height: 13px;
  right: -7px;
  top: -6px;
  border-radius: 50%;
  background: var(--ww-paper);
  border: 1px solid var(--ww-ink);
  box-shadow: none;
}

.products .sidebar-widget-area .widget.widget-price .price-value {
  margin-top: 20px;
}

.products .sidebar-widget-area .widget.widget-price .price-value span {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--color-gray-2);
}

/* Radios / checkboxes: hairline rings, ink marks */
.products .custom-radio .form-radio-label {
  font-size: 13px;
  color: var(--color-gray-2);
}

.products .custom-radio .form-radio-label::before {
  border-color: #cbc4b8;
}

.products .custom-radio input[type="radio"] + .form-radio-label::after {
  width: 6px;
  height: 6px;
  left: 4px;
  background-color: var(--ww-ink);
}

.products .custom-radio input[type="radio"]:checked + .form-radio-label {
  color: var(--ww-ink);
}

.products .custom-checkbox .form-check-label {
  font-size: 13px;
  color: var(--color-gray-2);
}

.products .custom-checkbox .form-check-label::before {
  border: 1px solid #cbc4b8;
  height: 15px;
  width: 15px;
  border-radius: 2px;
}

.products .custom-checkbox input[type="checkbox"]:checked + .form-check-label::before {
  background-color: var(--ww-ink);
  border-color: var(--ww-ink);
}

.products .custom-checkbox input[type="checkbox"] + .form-check-label::after {
  width: 9px;
  height: 5px;
  left: 3px;
}

/* Sidebar rating stars: small, ink */
.products #rating_div .form-radio-label .fas.fa-star {
  font-size: 11px;
  color: var(--ww-ink);
  margin-inline-end: 2px;
}

/* --------------------------------------------------------------------------
   4 · Results count — quiet overline above the grid (lives in the AJAX
       fragment so it stays accurate after every filter)
   -------------------------------------------------------------------------- */
.products .ww-results-bar {
  margin-bottom: 24px;
}

.products .ww-results-count {
  display: inline-block;
  font-family: var(--font-family-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--color-gray-2);
}

/* --------------------------------------------------------------------------
   5 · Grid view — gallery tiles, editorial rhythm
   -------------------------------------------------------------------------- */
@media (min-width: 1200px) {
  .products #show-products {
    --bs-gutter-x: 2.25rem;
  }
}

.products .product-grid-card.product-default {
  margin-bottom: 46px;
}

.products .product-grid-card .product-img {
  padding-top: 0;
}

.products .product-grid-card-image {
  width: 100%;
  margin-bottom: 18px;
  background: var(--ww-ivory);
  border-radius: 0;
  overflow: hidden;
}

.products .product-grid-card-image img {
  transition: transform 1.4s var(--ww-ease), opacity 0.6s ease, filter 300ms;
}

.products .product-grid-card:hover .product-grid-card-image img {
  transform: scale(1.05);
}

.products .product-default .product-category {
  font-family: var(--font-family-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--color-gray-2);
}

.products .product-grid-card.product-default .product-details .product-title {
  font-size: 16px;
  line-height: 1.45;
  margin: 7px 0 2px;
}

.products .product-grid-card.product-default .product-price {
  margin: 8px 0 18px;
}

.products .product-grid-card .ratings-total {
  font-size: 11px;
  color: var(--color-gray-2);
}

/* Admin label chips: squared, micro-caps */
.products .product-default .label {
  border-radius: 0;
  padding: 7px 12px;
  font-family: var(--font-family-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.products .product-default .label:empty {
  display: none;
}

.products .product-default .label-discount-percentage {
  border-radius: 0;
  font-size: 11px;
  letter-spacing: 0.06em;
  padding: 5px 10px;
}

/* --------------------------------------------------------------------------
   6 · List view — editorial rows split by hairlines
   -------------------------------------------------------------------------- */
.products .product-list-card.product-default {
  grid-template-columns: minmax(200px, 280px) 1fr minmax(200px, 250px);
  gap: clamp(20px, 3vw, 44px);
  align-items: center;
  margin-bottom: 0;
  padding: 36px 0;
  border-radius: 0;
  border-bottom: 1px solid var(--ww-hairline);
  background: transparent;
}

.products .ww-results-bar + .col-12 .product-list-card {
  border-top: 1px solid var(--ww-hairline);
}

.products .product-list-card .product-img {
  padding: 0;
}

.products .product-list-card .product-img .lazy-container {
  border-radius: 0;
  background: var(--ww-ivory);
}

.products .product-list-card .product-details {
  padding: 0;
}

.products .product-list-card .product-title,
.products .product-list-card .product-title a {
  font-size: 21px;
  line-height: 1.35;
}

.products .product-list-card .product-title {
  margin: 8px 0 12px;
}

.products .product-list-card .text {
  font-size: 14px;
  line-height: 1.9;
  color: var(--color-gray-2);
  max-width: 54ch;
  margin-bottom: 0;
}

/* Right column: price + actions behind a hairline */
.products .product-list-card .product-action {
  text-align: start;
  padding: 6px 0;
  border-inline-start: 1px solid var(--ww-hairline);
  padding-inline-start: clamp(20px, 2.6vw, 38px);
}

.products .product-list-card .product-price {
  margin: 0 0 4px;
  margin-left: 0;
  margin-right: 0;
  width: auto;
  justify-content: flex-start;
  gap: 10px;
  align-items: baseline;
}

.products .product-list-card .product-price .new-price {
  font-size: 17px;
  margin-left: 0; /* base .product-column centers it with margin:auto */
  margin-right: 0;
}

.products .product-list-card .product-action > .d-flex {
  justify-content: flex-start !important; /* beats the BS utility */
}

.products .product-list-card .btn-icon-group {
  margin-top: 14px;
}

.products .product-list-card .btn-icon-group > div {
  display: flex;
  gap: 8px;
}

@media (max-width: 991.98px) {
  .products .product-list-card.product-default {
    grid-template-columns: minmax(150px, 200px) 1fr;
    row-gap: 18px;
  }

  .products .product-list-card .product-action {
    grid-column: 2;
    border-inline-start: 0;
    padding-inline-start: 0;
  }
}

@media (max-width: 575.98px) {
  .products .product-list-card.product-default {
    grid-template-columns: 1fr;
    padding: 28px 0;
  }

  .products .product-list-card .product-action {
    grid-column: 1;
  }
}

/* --------------------------------------------------------------------------
   7 · Empty state — a calm pause, not an error
   -------------------------------------------------------------------------- */
.products #show-products .card {
  border: 1px solid var(--ww-hairline);
  border-radius: 0;
  background: var(--ww-paper);
}

.products .empty-cart-cls {
  padding: 70px 20px;
}

.products .empty-cart-cls .empty-icon {
  font-size: 30px;
  color: var(--color-gray-1);
  margin-bottom: 18px;
  display: inline-block;
}

.products .empty-cart-cls h3 {
  font-size: clamp(1.35rem, 2.2vw, 1.7rem);
  color: var(--ww-ink);
  margin-bottom: 0;
}

.products .empty-cart-cls h3 strong {
  font-weight: 400;
}

/* Skeletons on ivory, squared */
.products .skeleton,
.products .skeleton-category,
.products .skeleton-title,
.products .skeleton-text {
  background: var(--ww-ivory);
  border-radius: 2px;
}

/* --------------------------------------------------------------------------
   8 · Quick-view modal interior — product-page standards
   -------------------------------------------------------------------------- */
.quick-view-modal .modal-body {
  padding: clamp(24px, 3.4vw, 44px);
}

/* Close: quiet ink square instead of the red block */
.quick-view-modal .modal-dialog .close_modal_btn {
  background: var(--ww-ink);
  border-color: var(--ww-ink);
  color: #fff;
  border-radius: 2px;
}

.quick-view-modal .modal-dialog .close_modal_btn:hover {
  background: transparent;
  color: var(--ww-ink);
}

.quick-view-modal .product-single-details .product-title {
  font-size: clamp(1.4rem, 2.2vw, 1.9rem);
  line-height: 1.18;
  margin-bottom: 12px;
  color: var(--ww-ink);
}

.quick-view-modal .rating-wrapper svg {
  width: 15px;
  height: 15px;
}

.quick-view-modal .rating-wrapper span {
  font-size: 13px;
  color: var(--color-gray-2);
}

/* Stock badges (also reused on compare): quiet outlined states */
.quick-view-modal .stock-status .badge,
.compare-area .available-stock .badge {
  border-radius: 2px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 6px 10px;
}

.quick-view-modal .stock-status .badge.bg-success,
.compare-area .available-stock .badge.bg-success {
  background-color: transparent !important; /* .bg-success is !important */
  color: #2f6b47;
  border: 1px solid rgba(47, 107, 71, 0.35);
}

.quick-view-modal .stock-status .badge.bg-danger,
.compare-area .available-stock .badge.bg-danger {
  background-color: transparent !important; /* .bg-danger is !important */
  color: #a8432f;
  border: 1px solid rgba(168, 67, 47, 0.35);
}

/* Price: composed, quiet */
.quick-view-modal .product-price {
  align-items: baseline;
}

.quick-view-modal .product-price .new-price-area,
.quick-view-modal .product-price .new-price-area .new-price {
  font-family: var(--font-family-body);
  font-size: 22px;
  font-weight: 700;
}

.quick-view-modal .product-price .old-price-area {
  font-size: 14px;
  color: var(--color-gray-2);
}

.quick-view-modal .product-price .discountoff {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-gray-2);
}

.quick-view-modal .product-text {
  font-size: 14px;
  line-height: 1.9;
  color: var(--color-gray-2);
}

.quick-view-modal .sku-code span {
  font-size: 12px;
  letter-spacing: 0.05em;
}

/* Flash countdown: hairline counters */
.quick-view-modal .product-countdown .count {
  background: transparent;
  border: 1px solid var(--ww-hairline);
  border-radius: 2px;
  box-shadow: none;
}

/* Gallery: ivory mats, squared; ink hairline on the active thumb
   (.radius-lg/.radius-sm utilities are !important) */
.quick-view-modal .product-single-slider figure,
.quick-view-modal .slider-thumbnails .thumbnail-img {
  border-radius: 0 !important;
  background: var(--ww-ivory);
}

.quick-view-modal .slider-thumbnails .thumbnail-img {
  border: 1px solid transparent;
  cursor: pointer;
  transition: border-color 0.3s ease;
}

.quick-view-modal .slider-thumbnails .slick-current .thumbnail-img {
  border-color: var(--ww-ink);
}

/* Variant + quantity chrome */
.quick-view-modal .list-item-title {
  font-family: var(--font-family-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ww-ink) !important; /* .color-primary utility on the heading */
}

.quick-view-modal .variantUL li label {
  font-size: 13px;
  color: var(--color-gray-2);
  cursor: pointer;
}

.quick-view-modal .product-single-details .quantity-input {
  border: 1px solid var(--ww-hairline);
  border-radius: 2px;
  background: #fff;
}

.quick-view-modal .product-single-details .quantity-input .quantity-btn {
  color: var(--ww-ink);
}

/* Compare / wishlist ghosts beside the quantity control */
.quick-view-modal .product-single-details .btn-icon-group .btn.btn-icon {
  background: transparent;
  border: 1px solid var(--ww-hairline);
  border-radius: 2px;
  color: var(--ww-ink);
  transition: color 0.3s ease, background 0.3s ease, border-color 0.3s ease;
}

.quick-view-modal .product-single-details .btn-icon-group .btn.btn-icon:hover {
  background: var(--ww-ink);
  border-color: var(--ww-ink);
  color: #fff;
}

/* --------------------------------------------------------------------------
   9 · Compare — a specification sheet in hairlines
   -------------------------------------------------------------------------- */
.compare-area .table.table-bordered > :not(caption) > * > * {
  border-color: var(--ww-hairline);
}

.compare-area .table {
  border-color: var(--ww-hairline);
  margin-bottom: 0;
}

.compare-area .table tbody tr th.product-name,
.compare-area .table thead th.product-name {
  font-family: var(--font-family-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--ww-ink);
  background: var(--ww-ivory);
  vertical-align: middle;
  min-width: 150px;
}

.compare-area .table > thead {
  background: var(--ww-ivory);
}

.compare-area .table > thead .cmp-remove {
  font-family: var(--font-family-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-gray-2);
  border: 1px solid var(--ww-hairline);
  border-radius: 2px;
  padding: 9px 16px;
  background: transparent !important; /* base ships a red tint !important */
  transition: color 0.3s ease, background 0.3s ease, border-color 0.3s ease;
}

.compare-area .table > thead .cmp-remove:hover {
  background: var(--ww-ink) !important; /* see above */
  border-color: var(--ww-ink);
  color: #fff;
}

.compare-area .table tbody tr td {
  vertical-align: middle;
}

.compare-area .table tbody h5 a {
  font-family: var(--font-family-base);
  color: var(--ww-ink);
}

.compare-area .table tbody h5 a:hover {
  color: var(--color-primary);
}

.compare-area .compare_image img {
  background: var(--ww-ivory);
  padding: 10px;
}

.compare-area .table tbody p {
  font-size: 13px;
  line-height: 1.8;
  color: var(--color-gray-2);
}

.compare-area .price-area .price-text .new-price {
  font-weight: 600;
  color: var(--ww-ink);
}

.compare-area .price-area .price-text .old-price {
  font-size: 13px;
  color: var(--color-gray-2);
}

.compare-area .price-area .price-btn .btn-icon {
  width: 38px;
  height: 38px;
  line-height: 36px;
  border: 1px solid var(--ww-hairline);
  border-radius: 2px;
  background: transparent;
  color: var(--ww-ink);
  transition: color 0.3s ease, background 0.3s ease, border-color 0.3s ease;
}

.compare-area .price-area .price-btn .btn-icon:hover {
  background: var(--ww-ink);
  border-color: var(--ww-ink);
  color: #fff;
}

/* Soften the horizontal scrollbar chrome */
.compare-area .table::-webkit-scrollbar-thumb {
  background: #d8d2c7;
}

/* Compare empty state mirrors the shop's */
.compare-area .card {
  border: 1px solid var(--ww-hairline);
  border-radius: 0;
  background: var(--ww-paper);
}

.compare-area .empty-cart-cls {
  padding: 70px 20px;
}

.compare-area .empty-cart-cls .empty-icon {
  font-size: 30px;
  color: var(--color-gray-1);
  margin-bottom: 18px;
  display: inline-block;
}

.compare-area .empty-cart-cls h3 {
  font-size: clamp(1.35rem, 2.2vw, 1.7rem);
  color: var(--ww-ink);
}

.compare-area .empty-cart-cls h3 strong {
  font-weight: 400;
}

/* Compare "Variations" modal — paper panel */
.compare-area ~ .modal .modal-content,
.compare-area .modal .modal-content {
  border-radius: 0;
  border: 1px solid var(--ww-hairline);
  background: var(--ww-paper);
}

.compare-area .modal .modal-header {
  border-bottom-color: var(--ww-hairline);
}

.compare-area .variation-header {
  background: var(--ww-ivory);
}

.compare-area .variation-header .title {
  font-family: var(--font-family-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ww-ink);
}

.compare-area .modal .variatmodal-close {
  color: var(--ww-ink);
  opacity: 1;
}

/* The variations modal ships an empty decorative footer strip */
.compare-area .modal .card-footer:empty {
  display: none;
}
