.vestech-gallery { width: 100%; }
.vestech-gallery__frame { position: relative; display: block; width: 100%; }
.vestech-gallery__image-wrap { border: 0; background: #fff; padding: 0; cursor: zoom-in; width: 100%; aspect-ratio: 3 / 2; overflow: hidden; border-radius: 8px; }
.vestech-gallery__image { width: 100%; height: 100%; display: block; border-radius: 8px; object-fit: cover; }
.vestech-gallery__nav { position: absolute; top: 50%; transform: translateY(-50%); border: 0; background: rgba(255,255,255,.55); color: #111827; font-size: 16px; line-height: 1; width: 32px; height: 32px; border-radius: 999px; cursor: pointer; z-index: 4; }
.vestech-gallery__nav--prev { left: 10px; }
.vestech-gallery__nav--next { right: 10px; }
.vestech-gallery__dots { display: flex; justify-content: center; gap: 8px; margin-top: 12px; }
.vestech-gallery__dot { width: 10px; height: 10px; border-radius: 999px; border: 0; background: #d1d5db; cursor: pointer; }
.vestech-gallery__dot.is-active { background: #111827; }
.vestech-gallery__lightbox { position: fixed; inset: 0; z-index: 99999; background: rgba(0, 0, 0, 0.96); }
.vestech-gallery__lightbox[hidden] { display: none; }
.vestech-gallery__lightbox-stage { position: absolute; inset: 0; display: grid; place-items: center; overflow: hidden; touch-action: none; }
.vestech-gallery__lightbox-image { max-width: 100vw; max-height: 100vh; object-fit: contain; transform-origin: center center; transition: transform 120ms ease; user-select: none; -webkit-user-drag: none; }
.vestech-gallery__close, .vestech-gallery__zoom-in, .vestech-gallery__zoom-out { position: absolute; top: 16px; border: 0; color: #fff; background: rgba(255, 255, 255, 0.16); width: 44px; height: 44px; border-radius: 999px; font-size: 24px; cursor: pointer; }
.vestech-gallery__close, .vestech-gallery__zoom-in, .vestech-gallery__zoom-out { z-index: 3; }
.vestech-gallery__lightbox-nav { position: absolute; top: 50%; transform: translateY(-50%); border: 0; background: rgba(255,255,255,.22); color: #fff; font-size: 22px; line-height: 1; width: 42px; height: 42px; border-radius: 999px; cursor: pointer; z-index: 3; }
.vestech-gallery__lightbox-nav--prev { left: 16px; }
.vestech-gallery__lightbox-nav--next { right: 16px; }
.vestech-gallery__lightbox-stage { z-index: 1; }
.vestech-gallery__close { right: 16px; font-size: 30px; line-height: 1; }
.vestech-gallery__zoom-in { right: 120px; }
.vestech-gallery__zoom-out { right: 68px; }
.vestech-gallery-no-scroll { overflow: hidden; }

.vestech-specs { margin-top: 20px; border: 1px solid #e5e7eb; border-radius: 12px; background: #fff; overflow: hidden; }
.vestech-specs__tabs { display: flex; border-bottom: 1px solid #e5e7eb; background: #f9fafb; }
.vestech-specs__tab { border: 0; background: transparent; padding: 12px 16px; cursor: pointer; font-weight: 600; color: #374151; }
.vestech-specs__tab.is-active { color: #b91c1c; box-shadow: inset 0 -2px 0 #b91c1c; }
.vestech-specs__panel { padding: 16px; }
.vestech-specs__panel[hidden] { display: none; }
.vestech-specs__table { width: 100%; border-collapse: collapse; }
.vestech-specs__table th, .vestech-specs__table td { padding: 10px 8px; border-bottom: 1px solid #e5e7eb; text-align: left; vertical-align: top; }
.vestech-specs__table th { width: 220px; color: #111827; background: #f9fafb; }
.vestech-specs__link { color: #b91c1c; text-decoration: none; font-weight: 600; }
.vestech-specs__link:hover { text-decoration: underline; }
.vestech-specs__download { display: inline-block; background: #b91c1c; color: #fff; text-decoration: none; padding: 10px 14px; border-radius: 8px; font-weight: 600; }
.vestech-specs__download:hover { background: #991b1b; color: #fff; }
.vestech-specs__download-wrap { display: inline-block; }
.vestech-specs__file-name { margin-top: 8px; margin-bottom: 0; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: .85rem; color: #4b5563; }
.vestech-specs__description p:first-child { margin-top: 0; }
.vestech-specs__description p:last-child { margin-bottom: 0; }
@media (max-width: 680px) {
  .vestech-specs__tabs { flex-direction: row; flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; gap: 8px; padding: 8px; }
  .vestech-specs__tab { flex: 0 0 auto; white-space: nowrap; }
  .vestech-specs__tabs::-webkit-scrollbar { height: 6px; }
  .vestech-specs__table th { width: auto; }
}

.vestech-products-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.vestech-products-filters__title { font-size: 1.2rem; font-weight: 700; margin: 0 0 10px; }
.vestech-products-filters { display: flex; gap: 12px; align-items: center; margin-bottom: 16px; flex-wrap: wrap; }
.vestech-filter { position: relative; }
.vestech-filter__toggle { list-style: none; background: #fff; border: 1px solid #00000026; border-radius: 4px; padding: 10px 20px; font-size: 1rem; font-weight: 700; width: auto; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; }
.vestech-filter__toggle::-webkit-details-marker { display: none; }
.vestech-filter__toggle::after { content: "▾"; font-size: .85em; opacity: .8; transform: translateY(-1px); }
.vestech-filter[open] .vestech-filter__toggle::after { transform: rotate(180deg) translateY(1px); }
.vestech-filter__toggle--checkbox::after { content: none; }
.vestech-filter__toggle--checkbox input { margin: 0; }
.vestech-filter__reset { background: #fff; border: 1px solid #00000026; border-radius: 4px; padding: 10px 20px; font-size: 1rem; font-weight: 700; cursor: pointer; }
.vestech-filter__menu { display: none; position: absolute; top: calc(100% + 6px); left: 0; background: #fff; border: 1px solid #00000026; border-radius: 4px; padding: 10px; min-width: 220px; z-index: 20; box-shadow: 0 8px 20px rgba(0,0,0,.08); }
.vestech-filter[open] .vestech-filter__menu { display: block; }
.vestech-filter__menu label { display: block; font-size: .95rem; margin-bottom: 8px; }
.vestech-filter__menu label:last-child { margin-bottom: 0; }
.vestech-product-card { border: 1px solid #e5e7eb; border-radius: 8px; background: #fff; overflow: hidden; padding: 0 0 16px; cursor: pointer; display: flex; flex-direction: column; position: relative; }
.vestech-product-card.is-hidden { display: none; }
.vestech-product-card__thumb,
.vestech-product-card__thumb-placeholder { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; background: #f3f4f6; }
.vestech-product-card__title { margin: 14px 14px 8px; font-size: 1.2rem; font-weight: 600; line-height: 1.35; color: #111827; }
.vestech-product-card__short { margin: 0 14px 14px; font-size: 1rem; font-weight: 600; color: #374151; line-height: 1.5; }
.vestech-product-card__cta { margin: auto 14px 0; display: inline-block; background: #b91c1c; color: #fff; text-decoration: none; font-size: 1rem; font-weight: 600; padding: 10px 20px; border-radius: 4px; }
.vestech-product-card__cta:hover { background: #991b1b; color: #fff; }
.vestech-product-card__stock { position: absolute; top: 10px; right: 10px; background: #fff; border-radius: 999px; padding: 6px 10px; font-size: .9rem; font-weight: 600; display: inline-flex; align-items: center; gap: 7px; box-shadow: 0 4px 14px rgba(0,0,0,.12); }
.vestech-product-card__stock-dot { width: 8px; height: 8px; border-radius: 999px; display: inline-block; }
.vestech-product-card__stock.is-in-stock { background: #16a34a; color: #fff; }
.vestech-product-card__stock.is-in-stock .vestech-product-card__stock-dot { background: #fff; }
.vestech-product-card__stock.is-almost-out { background: #f59e0b; color: #fff; animation: none; }
.vestech-product-card__stock.is-almost-out .vestech-product-card__stock-dot { background: #fff; }
.vestech-product-card__stock.is-out-of-stock .vestech-product-card__stock-dot { background: transparent; width: auto; height: auto; border-radius: 0; }
.vestech-product-card__stock.is-out-of-stock .vestech-product-card__stock-dot::before { content: "!"; color: #fff; font-weight: 800; font-size: 12px; line-height: 1; display: inline-block; transform: translateY(-1px); }
.vestech-product-card__stock.is-out-of-stock { color: #fff; background: #dc2626; }
.vestech-stock-shortcode__bubble { position: static; top: auto; right: auto; display: inline-flex; vertical-align: middle; box-shadow: 0 4px 14px rgba(0,0,0,.12); }
.vestech-products-list__actions { margin-top: 18px; text-align: center; }
.vestech-products-list__load-more { background: #b91c1c; color: #fff; border: 0; font-size: 1rem; font-weight: 600; padding: 10px 20px; border-radius: 4px; cursor: pointer; }
.vestech-products-list__load-more:hover { background: #991b1b; }

@keyframes vestech-pulse-soft {
  0% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.18); opacity: .72; }
  100% { transform: scale(1); opacity: 1; }
}

.vestech-related-products__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 768px) {
  .vestech-related-products__grid {
    display: flex;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 12px;
    padding: 0 0 6px 0;
    scroll-snap-type: x proximity;
  }
  .vestech-related-products__grid .vestech-product-card {
    width: 80vw;
    min-width: 80vw;
    max-width: 80vw;
    flex: 0 0 auto;
    scroll-snap-align: start;
  }
  .vestech-related-products__grid .vestech-product-card__thumb,
  .vestech-related-products__grid .vestech-product-card__thumb-placeholder {
    width: 100%;
    aspect-ratio: 3 / 2;
    height: auto;
    object-fit: cover;
  }
}

@media (max-width: 960px) { .vestech-products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 768px) { .vestech-products-grid { grid-template-columns: 1fr; } }
@media (max-width: 768px) {
  .vestech-products-filters {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 10px;
    padding-bottom: 4px;
  }
  .vestech-products-filters > * {
    flex: 0 0 auto;
  }
  .vestech-products-filters::-webkit-scrollbar {
    height: 6px;
  }
}

.vestech-inquiry__open,
.vestech-inquiry__submit { background: #b91c1c; color: #fff; border: 0; font-weight: 600; padding: 10px 20px; border-radius: 4px; cursor: pointer; }
.vestech-inquiry__open:hover,
.vestech-inquiry__submit:hover { background: #991b1b; }
.vestech-inquiry__explore { display: inline-block; background: #b91c1c; color: #fff; text-decoration: none; font-weight: 600; padding: 10px 20px; border-radius: 4px; }
.vestech-inquiry__explore:hover { background: #991b1b; color: #fff; }
.vestech-inquiry__modal[hidden] { display: none; }
.vestech-inquiry__modal { position: fixed; inset: 0; z-index: 99999; display: flex; justify-content: center; align-items: flex-start; overflow: hidden; overscroll-behavior: contain; padding: 28px 14px 34px; }
.vestech-inquiry__backdrop { position: absolute; inset: 0; background: rgba(15,23,42,.28); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.vestech-inquiry__dialog { position: relative; width: min(520px, 100%); margin: 0; background: #fff; border-radius: 10px; padding: 18px; z-index: 2; max-height: calc(100dvh - 62px); overflow-y: auto; box-shadow: 0 22px 50px rgba(2,6,23,.25); }
.vestech-inquiry__close { position: sticky; top: 0; margin-left: auto; display: block; border: 0; background: rgba(255,255,255,.96); font-size: 26px; cursor: pointer; z-index: 5; padding: 2px 6px; border-radius: 6px; }
.vestech-inquiry__form { display: grid; gap: 8px; }
.vestech-inquiry__form input,
.vestech-inquiry__form select,
.vestech-inquiry__form textarea { width: 100%; border: 1px solid #d1d5db; border-radius: 6px; padding: 9px 10px; }
.vestech-inquiry__form input,
.vestech-inquiry__form select,
.vestech-inquiry__form textarea { font-size: 16px !important; line-height: 1.3; }
.vestech-inquiry__form input[type="date"] { min-width: 0; max-width: 100%; box-sizing: border-box; -webkit-appearance: none; appearance: none; }
.vestech-inquiry__notice { padding: 10px; border-radius: 6px; }
.vestech-inquiry__notice.is-success { background: #ecfdf3; color: #166534; }
.vestech-inquiry__notice.is-error { background: #fef2f2; color: #991b1b; }
.vestech-inquiry__hp { position: absolute !important; left: -9999px !important; top: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none !important; }
body.vestech-modal-open { overflow: hidden; height: 100dvh; }
html.vestech-modal-open { overflow: hidden; }
body.vestech-modal-open { position: fixed; left: 0; right: 0; width: 100%; }
.vestech-inquiry__stock-warning { background: #fff7ed; border: 1px solid #fdba74; border-radius: 6px; padding: 10px; }
.vestech-inquiry__stock-warning-text { margin: 0 0 8px; color: #9a3412; font-size: .95rem; }
.vestech-inquiry__ack-label { display: flex; gap: 8px; align-items: flex-start; font-size: .92rem; color: #7c2d12; }
.vestech-inquiry__ack-label input[type="checkbox"] { width: auto; margin-top: 2px; }
.vestech-inquiry__oos-warning { background: #fef2f2; border: 1px solid #fca5a5; border-radius: 8px; padding: 10px 12px; margin: 6px 0 12px; }
.vestech-inquiry__oos-warning p { margin: 0; color: #991b1b; font-size: .94rem; }

.vestech-inquiry__product-card { display: flex; gap: 12px; background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 10px; margin: 6px 0 12px; align-items: flex-start; }
.vestech-inquiry__product-card-image { width: 140px; max-width: 38%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 6px; flex: 0 0 auto; }
.vestech-inquiry__product-card-content { min-width: 0; }
.vestech-inquiry__product-card-title { margin: 0 0 8px; font-size: 1rem; font-weight: 700; color: #111827; line-height: 1.35; }
.vestech-inquiry__product-card-link-wrap { margin: 0; }
.vestech-inquiry__product-card-link { color: #b91c1c; text-decoration: none; font-size: .9rem; font-weight: 600; }
.vestech-inquiry__product-card-link:hover { text-decoration: underline; }
