/**
 * Product Single + Store Locator CSS
 * @package Modeka
 */

/* ═══════════════════════════════════════════════════════════════
   SINGLE PRODUCT
   ═══════════════════════════════════════════════════════════════ */

.product-single {
  background: var(--color-white);
}

/* ─── Layout ──────────────────────────────────────────────────── */
.product-single__layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  padding-block: clamp(2rem, 4vw, 3.5rem);
}

@media (min-width: 960px) {
  .product-single__layout {
    grid-template-columns: 1.35fr 1fr;
    gap: 3.5rem;
    align-items: start;
  }
}

/* ─── Gallery — vertical thumbs left + main image ─────────────── */
.product-single__gallery {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

@media (min-width: 960px) {
  .product-single__gallery {
    position: sticky;
    top: calc(var(--header-h, 72px) + 1rem);
    max-height: calc(100vh - var(--header-h, 72px) - 2rem);
  }
}

/* ─── Thumbs strip (always horizontal, below main image) ───────── */
.product-single__thumbs {
  display: flex;
  flex-direction: row;
  gap: .5rem;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  flex-shrink: 0;
  padding-bottom: .25rem;
}

.product-single__thumbs::-webkit-scrollbar { display: none; }

.product-single__thumb {
  flex-shrink: 0;
  width: 72px;
  height: 90px;
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 2px solid transparent;
  padding: 0;
  background: var(--color-off-white);
  cursor: pointer;
  transition: border-color .25s ease,
              opacity .25s ease,
              transform .25s var(--ease-out);
  display: block;
  opacity: .55;
}

@media (min-width: 600px) {
  .product-single__thumb {
    width: 80px;
    height: 100px;
  }
}

.product-single__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

.product-single__thumb:hover {
  border-color: var(--color-gray-light);
  opacity: .85;
  transform: translateY(-2px);
}
.product-single__thumb.is-active {
  border-color: var(--color-black);
  opacity: 1;
  transform: translateY(0);
}

/* ─── Main image ───────────────────────────────────────────────── */
.product-single__main-img {
  position: relative;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: var(--color-off-white);
  aspect-ratio: 4 / 5;
  cursor: zoom-in;
  flex: 1;
  min-width: 0;
}

.product-single__main-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  transition: transform .6s var(--ease-out), opacity .3s ease;
}

.product-single__main-img.is-switching img {
  opacity: 0;
  transform: scale(1.03);
}

.product-single__main-img:hover img { transform: scale(1.02); }

.product-single__img-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-gray-light);
  font-size: 4rem;
}

/* Badge */
.product-single__badge {
  position: absolute;
  top: 1.125rem;
  left: 1.125rem;
  padding: .25rem .75rem;
  background: var(--color-black);
  color: var(--color-white);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  border-radius: var(--radius-pill);
  z-index: 2;
}

/* Zoom btn */
.product-img-zoom {
  position: absolute;
  bottom: .875rem;
  right: .875rem;
  width: 38px;
  height: 38px;
  background: rgba(255,255,255,.92);
  border: none;
  border-radius: var(--radius-md);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-black);
  font-size: .8rem;
  z-index: 2;
  backdrop-filter: blur(8px);
  transition: background var(--dur-base) ease, transform var(--dur-base) ease;
}
.product-img-zoom:hover { background: var(--color-white); transform: scale(1.05); }

/* Gallery arrow buttons */
.product-gallery__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 38px;
  height: 38px;
  background: rgba(255,255,255,.92);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .75rem;
  color: var(--color-black);
  z-index: 3;
  backdrop-filter: blur(8px);
  transition: background var(--dur-base) ease, transform var(--dur-base) ease;
}
.product-gallery__arrow:hover { background: var(--color-white); }
.product-gallery__arrow--prev { left: .875rem; }
.product-gallery__arrow--next { right: 3.25rem; } /* offset from zoom btn */

/* Counter */
.product-gallery__counter {
  position: absolute;
  bottom: .875rem;
  left: 1rem;
  font-size: var(--fs-xs);
  font-weight: var(--fw-semi);
  color: var(--color-black);
  background: rgba(255,255,255,.88);
  padding: .2rem .625rem;
  border-radius: var(--radius-pill);
  backdrop-filter: blur(6px);
  letter-spacing: var(--ls-wide);
  z-index: 2;
}

/* ─── Product Info ────────────────────────────────────────────── */
.product-single__info {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.product-single__category {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-mega, .12em);
  text-transform: uppercase;
  color: var(--color-gray);
  margin-bottom: .625rem;
}

.product-single__cat { color: var(--color-gray); }

.product-single__name {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 900;
  line-height: .95;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  color: var(--color-black);
  margin-bottom: 1rem;
}

.product-single__price {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 700;
  color: var(--color-black);
  letter-spacing: -0.02em;
  margin-bottom: 1rem;
}

.product-single__short-desc {
  font-size: var(--fs-md);
  font-weight: var(--fw-light);
  color: var(--color-gray-dark);
  line-height: var(--lh-loose);
  margin-bottom: 1rem;
}

.product-single__divider {
  border: none;
  border-top: 1px solid var(--color-gray-ultra);
  margin-block: 1.5rem;
}

/* CE Badges */
.product-single__cert-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: 1.75rem;
}

.product-cert-badge {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .35rem .75rem;
  border: 1px solid var(--color-gray-ultra);
  border-radius: var(--radius-pill);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-gray-dark);
}

.product-cert-badge i { font-size: .7rem; color: var(--color-black); }

/* Option groups */
.product-single__option-group {
  margin-bottom: 1.5rem;
}

.product-single__option-label {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-gray);
  margin-bottom: .625rem;
}

.product-single__option-value {
  color: var(--color-black);
  font-weight: var(--fw-semi);
}

/* Color swatches */
.product-single__colors {
  display: flex;
  flex-wrap: wrap;
  gap: .625rem;
}

.product-color-swatch {
  width: 64px;
  height: 64px;
  border-radius: var(--radius-md, 8px);
  border: 2px solid var(--color-gray-ultra);
  cursor: pointer;
  outline: none;
  transition: transform var(--dur-base) ease, border-color var(--dur-base) ease, box-shadow var(--dur-base) ease;
  padding: 0;
  overflow: hidden;
  background: var(--color-off-white);
  display: flex;
  align-items: center;
  justify-content: center;
}

.product-color-swatch img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.product-color-swatch__fallback {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
}

.product-color-swatch:hover { transform: scale(1.08); border-color: var(--color-gray-light); }
.product-color-swatch.is-active {
  border-color: var(--color-black);
  box-shadow: 0 0 0 2px var(--color-white), 0 0 0 4px var(--color-black);
}

/* Size buttons */
.product-single__sizes {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: .75rem;
}

.product-size-btn {
  min-width: 48px;
  padding: .5rem .875rem;
  border: 1.5px solid var(--color-gray-ultra);
  border-radius: var(--radius-md);
  background: var(--color-white);
  font-family: var(--font-body);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semi);
  color: var(--color-gray-dark);
  cursor: pointer;
  transition: border-color var(--dur-base) ease, background var(--dur-base) ease, color var(--dur-base) ease;
}

.product-size-btn:hover { border-color: var(--color-black); color: var(--color-black); }
.product-size-btn.is-active {
  background: var(--color-black);
  border-color: var(--color-black);
  color: var(--color-white);
}

.product-single__size-guide {
  font-size: var(--fs-xs);
  color: var(--color-gray);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  transition: color var(--dur-base) ease;
}

.product-single__size-guide:hover { color: var(--color-black); }

/* CTA */
.product-single__cta {
  margin-block: 1.75rem;
}

.product-single__store-btn {
  width: 100%;
  justify-content: center;
  gap: .75rem;
  font-size: var(--fs-md);
  padding-block: 1rem;
}

.product-single__cta-note {
  font-size: var(--fs-xs);
  color: var(--color-gray);
  margin-top: .75rem;
  display: flex;
  align-items: flex-start;
  gap: .4rem;
  line-height: 1.5;
}

.product-single__cta-note i { flex-shrink: 0; margin-top: .15rem; }

/* Meta */
.product-single__meta {
  font-size: var(--fs-xs);
  color: var(--color-gray);
  border-top: 1px solid var(--color-gray-ultra);
  padding-top: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: .35rem;
  margin-bottom: 1.25rem;
}

.product-single__meta-item { display: flex; gap: .5rem; }
.product-single__meta-label { font-weight: var(--fw-semi); color: var(--color-gray-dark); }

/* Share */
.product-single__share {
  display: flex;
  align-items: center;
  gap: .75rem;
}

.product-single__share-label {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-gray);
}

.product-share-btn {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid var(--color-gray-ultra);
  border-radius: var(--radius-md);
  color: var(--color-gray-dark);
  text-decoration: none;
  font-size: .85rem;
  transition: background var(--dur-base) ease, border-color var(--dur-base) ease, color var(--dur-base) ease;
}

.product-share-btn:hover {
  background: var(--color-black);
  border-color: var(--color-black);
  color: var(--color-white);
}

/* ─── Product Tabs ────────────────────────────────────────────── */
.product-tabs {
  border-top: 1px solid var(--color-gray-ultra);
  margin-top: 2rem;
}

.product-tabs__nav {
  display: flex;
  gap: 0;
  overflow-x: auto;
  scrollbar-width: none;
  border-bottom: 1px solid var(--color-gray-ultra);
  position: relative;
}

.product-tabs__nav::-webkit-scrollbar { display: none; }

.product-tabs__btn {
  flex-shrink: 0;
  padding: 1.125rem 1.5rem;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  font-family: var(--font-body);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-gray);
  cursor: pointer;
  transition: color var(--dur-base) ease, border-color var(--dur-base) ease;
  white-space: nowrap;
}

.product-tabs__btn:hover { color: var(--color-black); }
.product-tabs__btn.is-active {
  color: var(--color-black);
  border-bottom-color: var(--color-black);
}

.product-tabs__panel {
  padding-block: clamp(2rem, 5vw, 3.5rem);
}

.product-tabs__content {
  max-width: var(--container);
  width: 100%;
}

/* Entry content in tabs */
.product-desc.entry-content { font-size: var(--fs-md); font-weight: var(--fw-light); color: var(--color-gray-dark); line-height: var(--lh-loose); }
.product-desc.entry-content p + p { margin-top: 1em; }
.product-desc.entry-content h2, .product-desc.entry-content h3 { font-family: var(--font-display); font-weight: 800; text-transform: uppercase; letter-spacing: -.02em; margin-top: 0; margin-bottom: .5em; color: var(--color-black); }
.product-desc.entry-content ul, .product-desc.entry-content ol { padding-left: 1.5rem; margin-top: 1em; }
.product-desc.entry-content li + li { margin-top: .5em; }

/* Materials grid */
.product-materials-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 1.5rem;
}

.product-material-card {
  padding: 1.75rem;
  border: 1.5px solid var(--color-gray-ultra);
  border-radius: var(--radius-xl);
  transition: border-color var(--dur-base) ease, transform var(--dur-base) var(--ease-out);
}

.product-material-card:hover { border-color: var(--color-black); transform: translateY(-4px); }

.product-material-card__icon {
  width: 44px;
  height: 44px;
  background: var(--color-off-white);
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  color: var(--color-black);
  margin-bottom: 1rem;
}

.product-material-card__name {
  font-family: var(--font-display);
  font-size: var(--fs-base);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  margin-bottom: .5rem;
}

.product-material-card__desc {
  font-size: var(--fs-sm);
  color: var(--color-gray-dark);
  line-height: var(--lh-loose);
}

/* Safety layout */
.product-safety-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
}

@media (min-width: 768px) {
  .product-safety-layout { grid-template-columns: 1fr 2fr; gap: 3rem; }
}

.product-safety-intro__title {
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: -.02em;
  margin-bottom: 1rem;
}

.product-safety-certs {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* Size table */
.product-size-table-wrap { overflow-x: hidden; }
.size-table-scroll { overflow-x: auto; }

.product-size-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-sm);
  min-width: 480px;
}

.product-size-table th,
.product-size-table td {
  padding: .875rem 1.25rem;
  text-align: center;
  border-bottom: 1px solid var(--color-gray-ultra);
}

.product-size-table thead th {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-gray);
  background: var(--color-off-white);
}

.product-size-table tbody tr:hover td,
.product-size-table tbody tr:hover th { background: var(--color-off-white); }

.product-size-table tbody th {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--fs-base);
  text-align: left;
  color: var(--color-black);
}

.size-table-note {
  margin-top: 1rem;
  font-size: var(--fs-xs);
  color: var(--color-gray);
  display: flex;
  align-items: flex-start;
  gap: .4rem;
  line-height: 1.6;
}

/* Attributes table */
.product-attrs-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-sm);
}

.product-attrs-table th,
.product-attrs-table td {
  padding: .875rem 1.25rem;
  border-bottom: 1px solid var(--color-gray-ultra);
  text-align: left;
  line-height: 1.5;
}

.product-attrs-table th {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-gray);
  width: 36%;
  background: var(--color-off-white);
}

/* ─── Related Products Slider ─────────────────────────────────── */
.product-related__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.product-related__header .section__header {
  margin-bottom: 0;
}

.product-related__nav {
  display: flex;
  gap: .5rem;
}

.product-related__track-wrapper {
  overflow: hidden;
  position: relative;
}

.product-related__track {
  display: flex;
  gap: 1.25rem;
  transition: transform .5s var(--ease-out);
  will-change: transform;
}

.product-related__track > [role="listitem"] {
  flex: 0 0 calc(100vw - 2 * var(--gutter));
  min-width: 0;
}

@media (min-width: 480px) {
  .product-related__track > [role="listitem"] {
    flex: 0 0 calc((100% - 1.25rem) / 2);
  }
}

@media (min-width: 768px) {
  .product-related__track > [role="listitem"] {
    flex: 0 0 calc((100% - 2 * 1.25rem) / 3);
  }
}

.product-related__track .product-card {
  flex: 1 1 100%;
  max-width: none;
}

/* ─── Lightbox ────────────────────────────────────────────────── */
.product-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(10,10,10,.96);
  z-index: 9000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}

.product-lightbox[hidden] { display: none; }

.product-lightbox.is-open { display: flex; }

.product-lightbox__inner {
  max-width: 1000px;
  max-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.product-lightbox__inner img {
  max-width: 100%;
  max-height: 90vh;
  object-fit: contain;
  border-radius: var(--radius-lg);
}

.product-lightbox__close {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  width: 48px;
  height: 48px;
  background: rgba(255,255,255,.1);
  border: none;
  border-radius: 50%;
  color: var(--color-white);
  font-size: 1.25rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background var(--dur-base) ease;
}

.product-lightbox__close:hover { background: rgba(255,255,255,.25); }

.product-lightbox__prev,
.product-lightbox__next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 52px;
  height: 52px;
  background: rgba(255,255,255,.1);
  border: none;
  border-radius: 50%;
  color: var(--color-white);
  font-size: 1.1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background var(--dur-base) ease;
}

.product-lightbox__prev { left: 1.5rem; }
.product-lightbox__next { right: 1.5rem; }
.product-lightbox__prev:hover,
.product-lightbox__next:hover { background: rgba(255,255,255,.25); }

/* ═══════════════════════════════════════════════════════════════
   STORE LOCATOR
   ═══════════════════════════════════════════════════════════════ */

.page-hero--compact { padding-block: clamp(4rem, 10vh, 6.5rem); }

.store-locator {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 55vw auto;
  height: auto;
}

@media (min-width: 900px) {
  .store-locator {
    grid-template-columns: 420px 1fr;
    grid-template-rows: 1fr;
    height: calc(100vh - var(--header-h, 72px));
    max-height: 850px;
    min-height: 560px;
    /* panel left on desktop */
    direction: ltr;
  }
}

/* Panel */
.store-locator__panel {
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--color-gray-ultra);
  overflow: hidden;
  order: 2;
}

@media (min-width: 900px) { .store-locator__panel { order: 1; } }

.store-panel__search-wrap {
  padding: 1.25rem;
  border-bottom: 1px solid var(--color-gray-ultra);
  flex-shrink: 0;
  background: var(--color-white);
}

.store-panel__search {
  position: relative;
  margin-bottom: .75rem;
}

.store-panel__search > .fa-magnifying-glass {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-gray);
  font-size: .85rem;
  pointer-events: none;
}

.store-panel__search-input {
  width: 100%;
  padding: .75rem 2.5rem .75rem 2.75rem;
  background: var(--color-off-white);
  border: 1.5px solid transparent;
  border-radius: var(--radius-pill);
  font-family: var(--font-body);
  font-size: var(--fs-sm);
  color: var(--color-black);
  outline: none;
  transition: border-color var(--dur-base) ease, background var(--dur-base) ease;
}

.store-panel__search-input:focus {
  border-color: var(--color-black);
  background: var(--color-white);
}

.store-panel__search-input::placeholder { color: var(--color-gray-light); }

.store-panel__search-clear {
  position: absolute;
  right: .875rem;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: var(--color-gray);
  cursor: pointer;
  font-size: .875rem;
  padding: .25rem;
  transition: color var(--dur-base) ease;
}

.store-panel__search-clear:hover { color: var(--color-black); }

.store-panel__filters {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .5rem;
  margin-bottom: .625rem;
}

.store-panel__filter-select {
  padding: .6rem .875rem;
  background: var(--color-off-white);
  border: 1.5px solid transparent;
  border-radius: var(--radius-lg);
  font-family: var(--font-body);
  font-size: var(--fs-xs);
  color: var(--color-black);
  outline: none;
  cursor: pointer;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%23888' d='M5 7L0 2h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .75rem center;
  padding-right: 2rem;
  transition: border-color var(--dur-base) ease;
}

.store-panel__filter-select:focus { border-color: var(--color-black); }

.store-panel__count {
  font-size: var(--fs-xs);
  color: var(--color-gray);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
}

/* Store list */
.store-list {
  list-style: none;
  overflow-y: auto;
  flex: 1;
  scrollbar-width: thin;
  scrollbar-color: var(--color-gray-ultra) transparent;
}

.store-card {
  border-bottom: 1px solid var(--color-gray-ultra);
  transition: background var(--dur-base) ease;
}

.store-card.is-active { background: var(--color-off-white); }

.store-card__inner {
  display: block;
  width: 100%;
  padding: 1.25rem;
  background: none;
  border: none;
  text-align: left;
  cursor: pointer;
  font-family: var(--font-body);
  transition: background var(--dur-base) ease;
}

.store-card__inner:hover { background: var(--color-off-white); }

.store-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .5rem;
}

.store-card__name {
  font-family: var(--font-display);
  font-size: var(--fs-base);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: -.01em;
  color: var(--color-black);
  line-height: 1.2;
}

.store-card__city {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-gray);
  margin-top: .15rem;
}

.store-card__badge {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .25rem .625rem;
  background: var(--color-black);
  color: var(--color-white);
  font-size: 10px;
  font-weight: var(--fw-semi);
  letter-spacing: .06em;
  text-transform: uppercase;
  border-radius: var(--radius-pill);
}

.store-card__address {
  font-size: var(--fs-xs);
  color: var(--color-gray-dark);
  display: flex;
  align-items: flex-start;
  gap: .4rem;
  line-height: 1.5;
  margin-bottom: .625rem;
}

.store-card__address i { flex-shrink: 0; margin-top: .1rem; color: var(--color-gray); }

.store-card__details {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  margin-bottom: .75rem;
}

.store-card__detail-link,
.store-card__hours {
  font-size: var(--fs-xs);
  color: var(--color-gray);
  display: flex;
  align-items: center;
  gap: .4rem;
  text-decoration: none;
  transition: color var(--dur-base) ease;
}

.store-card__detail-link:hover { color: var(--color-black); }

.store-card__cta {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: var(--fs-xs);
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-black);
  border-bottom: 1px solid var(--color-black);
  padding-bottom: .1rem;
  transition: opacity var(--dur-base) ease;
}

.store-card__cta i { font-size: .7rem; }
.store-card__inner:hover .store-card__cta { opacity: .6; }

.store-list__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: 3rem 1.5rem;
  text-align: center;
  color: var(--color-gray);
}

.store-list__empty i { font-size: 2.5rem; opacity: .3; }
.store-list__empty p { font-size: var(--fs-sm); }

/* Map */
.store-locator__map {
  order: 1;
  min-height: 55vw;
  background: var(--color-off-white);
  /* Leaflet needs explicit dimensions */
  position: relative;
}

@media (min-width: 900px) {
  .store-locator__map {
    order: 2;
    min-height: 0;
    height: 100%;
  }
}

/* Leaflet popup custom */
.modeka-popup .leaflet-popup-content-wrapper {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  padding: 0;
  overflow: hidden;
}

.modeka-popup .leaflet-popup-content {
  margin: 0;
  font-family: var(--font-body);
}

.map-popup {
  padding: 1.25rem;
  min-width: 200px;
}

.map-popup__name {
  font-family: var(--font-display);
  font-size: var(--fs-base);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: -.01em;
  color: var(--color-black);
  margin-bottom: .375rem;
}

.map-popup__address,
.map-popup__phone,
.map-popup__hours {
  font-size: var(--fs-xs);
  color: var(--color-gray-dark);
  line-height: 1.5;
  margin-bottom: .25rem;
}

.map-popup__directions {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  margin-top: .75rem;
  font-size: var(--fs-xs);
  font-weight: var(--fw-semi);
  text-transform: uppercase;
  letter-spacing: var(--ls-wide);
  color: var(--color-black);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: .1rem;
}

/* Custom map markers */
.map-marker {
  width: 36px;
  height: 36px;
  background: var(--color-black);
  color: var(--color-white);
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-md);
  border: 2px solid var(--color-white);
  transition: transform var(--dur-base) ease, background var(--dur-base) ease;
}

.map-marker i {
  transform: rotate(45deg);
  font-size: .75rem;
}

.map-marker--official {
  background: var(--color-black);
  width: 40px;
  height: 40px;
}

/* Info strip */
.store-info-strip {
  background: var(--color-off-white);
  border-top: 1px solid var(--color-gray-ultra);
  padding-block: 2.5rem;
}

.store-info-strip__items {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}

@media (min-width: 768px) {
  .store-info-strip__items { grid-template-columns: repeat(4, 1fr); }
}

.store-info-strip__item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

.store-info-strip__item > i {
  font-size: 1.25rem;
  color: var(--color-black);
  margin-top: .2rem;
  flex-shrink: 0;
}

.store-info-strip__label {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--color-gray);
  margin-bottom: .25rem;
}

.store-info-strip__value {
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  color: var(--color-black);
}

.store-info-strip__value a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}

/* ─── Leaflet override ────────────────────────────────────────── */
.leaflet-container { font-family: var(--font-body); }
.leaflet-control-zoom a { font-family: var(--font-display); }
