.page-layout {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
}

/* Left Main Content */
.main-content {
  flex: 1 1 700px;
}

.product-page {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
}

.product-image {
  flex: 1 1 350px;
  text-align: center;
}

.product-image img {
  max-width: 100%;
  border-radius: 5px;
}

.product-details {
  flex: 1 1 350px;
}

.product-title {
  line-height: 1.167;
  letter-spacing: inherit !important;
  font-weight: 700;
  margin-bottom: 10px;
}

.product-price {
  font-size: 36px;
  font-weight: 700;
  font-weight: bold;
  color: #222;
  margin-bottom: 5px;
}

.availability-panel {
    background: #e5e5e5;
    border-radius: 6px;
    padding: 10px;
    margin-top: 10px;
}
.availability-header {
    display: flex;
    align-items: center;
    cursor: pointer;
}
.checkmark {
    color: #6BCBB8;
    font-size: 1.5rem;
    margin-right: 10px;
}
.status-text {
    font-weight: 600;
    flex-grow: 1;
}
.arrow {
    font-size: 1.2rem;
    transition: transform 0.3s;
}
.availability-content {
    margin-top: 10px;
}
.locations-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 5px 20px;
}
.location-item {
    display: flex;
    justify-content: space-between;
}
.location-available {
    color: #6BCBB8;
    font-weight: 600;
}

.part-number,
.availability {
  font-size: 16px;
  margin-top: 10px;
  margin-bottom: 8px;
}

.availability span {
  color: green;
  font-weight: bold;
}

.qty-add {
  display: flex;
  align-items: center;
  margin: 15px 0;
  gap: 10px;
}

.qty-add input {
  width: 50px;
  text-align: center;
  padding: 5px;
}

.btn {
  color: #fff;
  border: none;
  padding: 10px 20px;
  cursor: pointer;
  font-weight: bold;
  border-radius: 3px;
}
.product-symtoms select {
  width: 100%;
  margin-top: 10px;
    border-radius: 6px;
    padding: 10px;
}
.product-symtoms{
  margin-top: 10px;
  margin-bottom: 10px;
  font-size: 16px;
  color: #000;


}



.social-share {
  margin-top: 10px;
  display: flex;
  background-color: #fff;
  color: #666;
  gap: 10px;
}

.social-share button {
  margin-right: 8px;
  padding: 5px 10px;
  border: 1px solid #333;
  cursor: pointer;
}
.social-share a i {
  padding-right: 5px;
}

/* WooCommerce-style Tabs */
.tabs-nav {
  display: flex;
  border-bottom: 2px solid #ddd;
  overflow-x: auto;
  list-style: none;
  padding: 0;
  margin: 20px 0 0 0;
}
.tabs-nav li {
  margin: 0;
}
.tabs-nav li a {
  display: block;
  padding: 10px 15px;
  background: #f8f8f8;
  text-decoration: none;
  color: #333;
  font-weight: bold;
  border: 1px solid #ddd;
  border-bottom: none;
}
.tabs-nav li.active a,
.tabs-nav li a:hover {
  background: #fff;
  border-bottom: 2px solid #fcb800;
}
.tab-content {
  border: 1px solid #ddd;
  padding: 20px;
  display: none;
  background: #fff;
}
.tab-content.active {
  display: block;
}
.product-metrics-grid {
  display: flex;
  gap: 20px;
}
.metric-item {
  display: flex;
  flex-direction: column;
}
.metric-label {
  font-weight: bold;
}
.brand-item {
  text-align: center;
}
.brand-item img {
  max-width: 100px;
  margin-bottom: 5px;
}
#models .product-tab-brands {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
#models .product-tab-brands .brand-item {
  width: calc(20% - 6px);
}

#models .product-tab-brands .brand-item:not(:last-child) {
  margin: 0;
}

#models .product-tab-brands .term-name {
  margin: 0px;
  word-break: break-all;
}

#models .product-tab-brands .brand-item>* {
  display: flex;
  vertical-align: middle;
  border: 1px solid var(--main-line);
  padding: 10px;
  text-align: start;
  font-size: 14px;
  width: 100%;
  align-items: center;
  justify-content: center;
  height: 100%;
}


/* Sidebar */
.sidebar {
  flex: 0 0 280px;
}

/* When the PDP sidebar renders real shop widgets (New Arrivals, Recently
   Viewed, etc.) give each widget spacing consistent with the WC PDP. */
.sidebar.widget-area .widget {
  margin-bottom: 30px;
}
.sidebar.widget-area .widget .widget-title,
.sidebar.widget-area .widget h2,
.sidebar.widget-area .widget h4 {
  font-size: 16px;
  margin-bottom: 15px;
  text-transform: uppercase;
}
.sidebar.widget-area img {
  max-width: 100%;
  height: auto;
}

.sidebar-box {
  border: 1px solid #eee;
  padding: 15px;
  margin-bottom: 20px;
  border-radius: 5px;
  background: #fafafa;
}

.sidebar-box h4 {
  font-size: 15px;
  margin-bottom: 10px;
  font-weight: bold;
}

.sidebar-box p {
  font-size: 12px;
  margin: 5px 0;
}

.bestsellers ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.bestsellers li {
  border-bottom: 1px solid #eee;
  padding: 8px 0;
  display: flex;
  justify-content: space-between;
  font-size: 0.9rem;
}

.bestsellers li:last-child {
  border-bottom: none;
}

/* Related Products Slider */
.related-products {
  width: 100%;
  margin: 40px 0;
}

.related-products h3 {
  font-size: 1.2rem;
  margin-bottom: 20px;
  border-bottom: 2px solid #fcb800;
  display: inline-block;
  padding-bottom: 5px;
}

.related-slider {
  display: flex;
  overflow-x: auto;
  gap: 20px;
  padding-bottom: 10px;
  scroll-behavior: smooth;
}

.related-item {
  min-width: 150px;
  border: 1px solid #eee;
  padding: 10px;
  text-align: center;
  border-radius: 5px;
  flex: 0 0 auto;
  background: #fff;
}

.related-item img {
  max-width: 100%;
  height: auto;
  margin-bottom: 10px;
}

.related-item h4 {
  font-size: 0.9rem;
  margin: 8px 0;
}

.related-item .price {
  font-size: 1rem;
  color: #d49a00;
  font-weight: bold;
}

/* Scrollbar hidden */
.related-slider::-webkit-scrollbar {
  display: none;
}

/* Position mini cart dropdown */
.block-myminicart {
  position: relative;
  display: inline-block;
}

/* Hide dropdown by default */
.block-myminicart .my-widget_shopping_cart {
  display: none;
  position: absolute;
  top: 100%;
  right: 0;
  width: 310px;
  color: var(--main-cl);
  box-shadow: var(--popup-sd);
  background-color: var(--popup-bg);
  padding: 24px 20px 30px;
  z-index: 9999;
  transition: all 0.2s ease;
  text-align: start;
  overflow: hidden;
  border-radius: var(--main-bora);
  border-top: 2px solid var(--main-color);
}

.block-myminicart .my-widget_shopping_cart > .widget-title{
    font-size: 20px;
    font-family: inherit;
    font-weight: 700;
    color: var(--default-color);
    padding-bottom: 19px;
    border-bottom: 1px solid var(--main-line);
    margin-bottom: 17px;
}


.block-myminicart > a .amount{
    font-family: inherit;
    color: inherit;
}
.cart-head{
    font-size: 13px;
    line-height: 20px;
    text-transform: var(--main-h-tt);
    margin-bottom: 30px;
}
.cart-head .count{
    text-decoration: underline;
}

.block-myminicart .woocommerce-mini-cart__empty-message{
    margin: 0;
    text-align: center;
}
.my-widget_shopping_cart .total {
    font-size: 14px;
    line-height: 24px;
    padding: 20px 0 0;
    border-top: 1px solid var(--main-line);
    margin: 30px 0 0;
}
.my-widget_shopping_cart .buttons .button {
    --button-padding: 8px;
    --button-padding-h: 15px;
    width: calc(50% - 3px);
    margin: 6px 0 0;
}


table {
  border-collapse: collapse;
  width: 100%;
  margin: 20px auto;
}
th, td {
  border: 1px solid #ccc;
  padding: 8px;
  text-align: center;
}
#pagination {
  text-align: center;  
  float: right;
  margin: 15px;
  float: right !important;
}
#pagination button {
  margin: 0 5px;
  padding: 5px 10px;
  color: #000;
  cursor: pointer;
}
#pagination button.active {
  background: #fcc81d ;
  color: #fff;
}
/* Pagination Styling */
.pagination {
  display: flex;
  float: right !important;
  margin: 15px;
  list-style: none;
  padding: 0;
}
.pagination li {
  margin: 0 3px;
}
.pagination button {
  border: 1px solid #ccc;
  padding: 6px 12px;
  color: #000;
  cursor: pointer;
}
.pagination button.active {
  background: #fcc81d;
  font-weight: bold;
  color: #fff;
}
.pagination button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}


/* Featured Brands*/
.featured-brands {
  margin: 40px 0;
}
.featured-brands h2 {
  font-size: 22px;
  margin-bottom: 8px;
}
.featured-brands p {
  margin-bottom: 20px;
  color: #444;
  font-size: 14px;
}
.featured-brands .brand-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 20px;
}
.featured-brands .grid-item {
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 6px;
  padding: 15px;
  text-align: center;
  transition: box-shadow 0.3s ease;
}
.featured-brands .grid-item:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.featured-brands .grid-item img {
  max-width: 120px;
  height: auto;
}
.featured-brands .see-all {
  margin-top: 15px;
  text-align: center;
}
.featured-brands .see-all a {
  font-weight: 600;
  color: #000;
  text-decoration: none;
}


/** home appliance */

.featured-appliances h2 {
  font-size: 22px;
  margin-bottom: 8px;
}
.featured-appliances p {
  margin-bottom: 20px;
  color: #444;
  font-size: 14px;
}
.featured-appliances .appliance-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 10px;
}
.featured-appliances .grid-item {
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 6px;
  padding: 15px;
  text-align: center;
  transition: box-shadow 0.3s ease;
}
.featured-appliances .appliance-grid .grid-item a {
  display: flex;
  flex-direction: column;
}
.featured-appliances .grid-item:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.featured-appliances .grid-item img {
  max-width: 120px;
  height: auto;
}
.featured-appliances .see-all {
  margin-top: 15px;
  text-align: center;
}
.featured-appliances .see-all a {
  font-weight: 600;
  color: #000;
  text-decoration: none;
}

span.grid-item-name {
    text-align: center;
    margin-top: 10px;
    color: #000;
    font-weight: 600;
}

.featured-appliances .grid-item img {
    max-width: 100%;
    height: 100%;
    object-fit: contain;
}
.featured-appliances .appliance-grid .grid-item a {
    height: 100%;
}

/* check stock */
.disabled-link {
    pointer-events: none;
    text-decoration: none;
    cursor: not-allowed;
}

.enabled-link {
    pointer-events: auto;
    opacity: 1;
    cursor: pointer;
}


/* Responsive */
@media (max-width: 968px) {
    .checkout-container {
        grid-template-columns: 1fr;
    }

    .order-summary {
        order: -1;
    }
}

@media (max-width: 640px) {
    .checkout-form,
    .order-summary {
        padding: 20px;
    }

    .form-row {
        grid-template-columns: 1fr;
    }

    body {
        padding: 10px;
    }
}
/* Responsive */
@media (max-width: 992px) {
  .page-layout {
    flex-direction: column;
  }

  .sidebar {
    order: -1;
    flex: 1 1 100%;
  }
}
/* ==========================================================================
   Frequently Bought Together (Encompass PDP)
   ========================================================================== */
.fbt-section {
  margin-top: 40px;
  padding-top: 20px;
}
.fbt-title {
  font-size: 20px;
  font-weight: 700;
  border-bottom: 2px solid #fab006;
  display: inline-block;
  padding-bottom: 8px;
  margin-bottom: 25px;
}
.fbt-items {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0;
}
.fbt-item {
  position: relative;
  flex: 1 1 180px;
  max-width: 220px;
  border: 1px solid #e5e5e5;
  border-radius: 6px;
  padding: 15px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.fbt-item.fbt-oos { opacity: 0.6; }
.fbt-plus {
  align-self: center;
  font-size: 24px;
  color: #888;
  padding: 0 10px;
}
.fbt-check {
  position: absolute;
  top: 10px;
  right: 10px;
  cursor: pointer;
}
.fbt-check input { position: absolute; opacity: 0; width: 22px; height: 22px; margin: 0; cursor: pointer; }
.fbt-check-box {
  display: inline-block;
  width: 22px;
  height: 22px;
  border-radius: 4px;
  background: #ddd;
  position: relative;
}
.fbt-check input:checked + .fbt-check-box {
  background: #fab006;
}
.fbt-check input:checked + .fbt-check-box::after {
  content: '\2713';
  color: #fff;
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  font-size: 14px;
}
.fbt-thumb { display: block; margin-bottom: 12px; }
.fbt-thumb img { max-width: 110px; height: auto; }
.fbt-name {
  font-size: 13px;
  color: #333;
  line-height: 1.35;
  margin-bottom: 8px;
  min-height: 36px;
}
.fbt-price { font-weight: 700; font-size: 15px; margin-bottom: 6px; }
.fbt-stock { font-size: 12px; color: #888; margin-top: auto; }
.fbt-oos-label { color: #c00; font-weight: 600; }
.fbt-summary {
  margin-top: 25px;
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}
.fbt-total { font-size: 15px; }
.fbt-total-value { font-size: 20px; color: #1e154c; }
.fbt-add-selected {
  background: #fab006;
  color: #fff;
  border: none;
  padding: 12px 22px;
  border-radius: 4px;
  font-weight: 600;
  cursor: pointer;
}
.fbt-add-selected:hover { background: #fab006; }
.fbt-add-selected[disabled] { opacity: 0.6; cursor: default; }

@media (max-width: 768px) {
  .fbt-items { flex-direction: column; }
  .fbt-item { max-width: 100%; flex-basis: auto; }
  .fbt-plus { transform: rotate(90deg); padding: 8px 0; }
}

/* ==========================================================================
   Compatible Models — responsive grid
   ========================================================================== */
.compatible-models-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px 24px;
  margin-top: 10px;
}
.compatible-model {
  display: block;
  font-size: 14px;
  color: #333;
  padding: 4px 0;
  text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.compatible-model:hover { color: #fab006; }

@media (max-width: 600px) {
  .compatible-models-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ==========================================================================
   Unified search results — card grid layout
   ========================================================================== */
.shub-search { padding-top: 20px; }
.shub-search-title { font-size: 26px; font-weight: 800; color: #f57c1f; margin: 0 0 6px; }
.shub-search-sub { color: #666; font-size: 14px; margin: 0 0 24px; }

.shub-search-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 16px;
}
.shub-tabs { display: flex; gap: 22px; }
.shub-tab {
  font-size: 15px;
  color: #333;
  text-decoration: none;
  padding-bottom: 6px;
  border-bottom: 2px solid transparent;
}
.shub-tab.active { color: #fab006; border-bottom-color: #fab006; font-weight: 600; }

.shub-controls { display: flex; gap: 16px; flex-wrap: wrap; }
.shub-control { display: flex; flex-direction: column; font-size: 12px; color: #777; }
.shub-control-label { margin-bottom: 4px; }
.shub-control select {
  min-width: 190px;
  height: 42px;
  padding: 6px 12px;
  border: 1px solid #d0d0d0;
  border-radius: 4px;
  background: #fff;
  font-size: 14px;
}

.shub-filterbox { position: relative; margin-bottom: 24px; }
.shub-filter-input {
  width: 100% !important;
  height: 48px;
  padding: 10px 44px 10px 16px;
  border: 1px solid #f0a878;
  border-radius: 4px;
  font-size: 15px;
  outline: none;
}
.shub-filter-input:focus { border-color: #f57c1f; }
.shub-filter-icon { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); color: #000; }

.shub-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
}
.shub-card {
  position: relative;
  border: 1px solid #eaeaea;
  border-radius: 8px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: #fff;
  transition: box-shadow 0.2s;
}
.shub-card:hover { box-shadow: 0 4px 14px rgba(0,0,0,0.08); }
.shub-card-tag {
  align-self: flex-start;
  background: #e8f1fb;
  color: #2b6cb0;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 4px;
  margin-bottom: 8px;
}
.shub-card-tag.shub-tag-model { background: #eef7ee; color: #2f855a; }
.shub-card-thumb { display: block; margin-bottom: 12px; }
.shub-card-thumb img { max-width: 130px; height: auto; }
.shub-card-body { flex: 1 1 auto; margin-bottom: 12px; }
.shub-card-brand { font-size: 13px; color: #333; }
.shub-card-part { font-size: 13px; font-weight: 700; color: #1a1a1a; }
.shub-card-desc { font-size: 13px; color: #555; }
.shub-card-meta { font-size: 12px; color: #888; margin-top: 4px; }
.shub-card-stock { font-size: 13px; margin-bottom: 12px; }
.shub-card-stock .in-stock { color: #2f855a; }
.shub-card-stock .in-stock i { color: #2f855a; }
.shub-card-stock .not-stock { color: #999; font-weight: 600; }
.shub-card-price { font-weight: 700; color: #1a1a1a; margin-top: 2px; }
.shub-card-btn {
  display: block;
  width: 100%;
  background: #fab006;
  color: #fff;
  text-align: center;
  padding: 9px 0;
  border-radius: 4px;
  text-decoration: none;
  font-weight: 600;
  font-size: 13px;
}
.shub-card-btn:hover { background: #e29e00; color: #fff; }

.shub-noresults { text-align: center; color: #777; padding: 40px 0; }

.shub-pagination {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin: 32px 0;
  flex-wrap: wrap;
}
.shub-page {
  min-width: 38px;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  text-align: center;
  line-height: 38px;
}
.shub-page:hover { background: #000; color: #fff;}
.shub-page.active { background: #fab006; color: #fff; border-color: #fab006; font-size: 14px; font-weight: 700;}
.shub-page[disabled] { cursor: default; font-size: 14px; font-weight: 700; text-align: center;  }

@media (max-width: 1100px) { .shub-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 860px)  { .shub-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px)  {
  .shub-grid { grid-template-columns: repeat(2, 1fr); }
  .shub-search-toolbar { align-items: stretch; }
  .shub-control select { min-width: 0; width: 100%; }
}
@media (max-width: 400px)  { .shub-grid { grid-template-columns: 1fr; } }

.assembly-list { position: relative; padding: 10px 40px; }
.exploded-slider .thumbnail-card {
  margin: 10px;
  background: #fff;
  border: 1px solid #eee;
  border-radius: 10px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.08);
  transition: box-shadow 0.2s, transform 0.2s;
  overflow: hidden;
}
.exploded-slider .thumbnail-card:hover {
  box-shadow: 0 8px 22px rgba(0,0,0,0.14);
  transform: translateY(-2px);
}
.exploded-slider .assembly-link {
  display: block;
  text-decoration: none;
  color: #333;
  padding: 16px 12px;
  text-align: center;
}
.exploded-slider .assembly-link img {
  max-width: 100%;
  height: 150px;
  object-fit: contain;
  margin: 0 auto 12px;
  display: block;
}
.exploded-slider .assembly-link p {
  margin: 0;
  font-weight: 600;
  font-size: 14px;
  color: #333;
}
/* Active assembly card */
.exploded-slider .thumbnail-card.is-active,
.exploded-slider .assembly-link.is-active {
  border-color: #1a1a1a;
  box-shadow: 0 0 0 2px #1a1a1a inset;
}

/* Slick circular prev/next arrows (match live site). */
.exploded-slider .slick-prev,
.exploded-slider .slick-next {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid #ddd;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
  z-index: 5;
}
.exploded-slider .slick-prev { left: -6px; }
.exploded-slider .slick-next { right: -6px; background: #1a1a1a; border-color: #1a1a1a; }
.exploded-slider .slick-prev:before,
.exploded-slider .slick-next:before {
  font-family: 'slick';
  font-size: 18px;
  opacity: 1;
  color: #555;
  line-height: 1;
}
.exploded-slider .slick-next:before { color: #fff; }
.exploded-slider .slick-prev:hover,
.exploded-slider .slick-next:hover { background: #fab006; border-color: #fab006; }
.exploded-slider .slick-prev:hover:before,
.exploded-slider .slick-next:hover:before { color: #fff; }

/* Loader overlay + spinner (shown while an assembly's parts/diagram load). */
.loader-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.35);
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
}
.shub-spinner {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #fab006;
  position: relative;
  animation: shub-spin 0.9s linear infinite;
}
.shub-spinner::after {
  content: '';
  position: absolute;
  inset: 6px;
  border-radius: 50%;
  border: 4px solid transparent;
  border-top-color: #fff;
}
@keyframes shub-spin { to { transform: rotate(360deg); } }
/* ==========================================================================
   Exploded view — diagram map + parts list layout
   ========================================================================== */
/* Two-column: diagram (left) + parts list (right). */
.vector_image_part_list_section .assembly-details { display: flex; flex-wrap: wrap; gap: 24px; }
.vector_image_part_list_section .assembly-details .col-md-6 { flex: 1 1 45%; min-width: 320px; }

/* The Leaflet diagram needs an explicit height or it collapses to 0 (blank). */
#map-container {
  width: 100%;
  height: 520px;
  background: #fafafa;
  border: 1px solid #eee;
  border-radius: 8px;
  overflow: hidden;
}
#map { width: 100%; height: 100%; }
.leaflet-container { background: #fff; }

/* Parts panel: single-column list (image left, details right) — not a grid. */
.vector_image_part_list_section #product-search {
  width: 100%;
  height: 44px;
  padding: 10px 14px;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  margin-bottom: 16px;
  background: #f7f7f7;
}
.vector_image_part_list_section .product_list_widget {
  list-style: none;
  margin: 0;
  padding: 0;
}
.vector_image_part_list_section .product_list_widget li {
  display: flex !important;
  align-items: flex-start;
  gap: 14px;
  width: 100% !important;
  float: none !important;
  padding: 14px 0;
  border-bottom: 1px solid #eee;
}
.vector_image_part_list_section .product_list_widget li img {
  width: 64px !important;
  height: 64px !important;
  object-fit: contain;
  flex: 0 0 64px;
  border: 1px solid #f0f0f0;
  border-radius: 4px;
}
.vector_image_part_list_section .product_list_widget li .product-title {
  display: block;
  font-weight: 700;
  font-size: 14px;
  color: #1a1a1a;
  margin-bottom: 2px;
}
.vector_image_part_list_section .product_list_widget li .part-number {
  display: block;
  font-size: 13px;
  color: #555;
}
.vector_image_part_list_section .product_list_widget li ins {
  display: block;
  text-decoration: none;
  color: #d9480f;
  font-weight: 700;
  margin: 4px 0 6px;
}
.vector_image_part_list_section .product_list_widget li .btn-dark {
  background: #fab006;
  border: none;
  color: #fff;
  padding: 7px 16px;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.vector_image_part_list_section .product_list_widget li .btn-dark:hover { background: #e29e00; }

/* Client pagination for the parts list. */
.vector_image_part_list_section .page-numbers {
  list-style: none;
  display: flex;
  gap: 6px;
  padding: 0;
  margin: 18px 0 6px;
  flex-wrap: wrap;
}
.vector_image_part_list_section .page-numbers li a,
.vector_image_part_list_section .page-numbers li span {
  display: inline-block;
  min-width: 34px;
  text-align: center;
  padding: 6px 8px;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  cursor: pointer;
  font-size: 13px;
}
.vector_image_part_list_section .page-numbers li .current { background: #fab006; color: #fff; border-color: #fab006; }

@media (max-width: 900px) {
  .vector_image_part_list_section .assembly-details .col-md-6 { flex: 1 1 100%; }
  #map-container { height: 380px; }
}

/* Exploded parts list — active hotspot-filter bar */
.shub-filter-active {
  background: #fff8e6;
  border: 1px solid #fab006;
  border-radius: 4px;
  padding: 8px 12px;
  margin-bottom: 14px;
  font-size: 13px;
  color: #555;
}
.shub-filter-active .shub-clear-filter {
  float: right;
  color: #d9480f;
  font-weight: 600;
  text-decoration: none;
}
.shub-filter-active .shub-clear-filter:hover { text-decoration: underline; }

/* Force-hide paginated-out parts list items (overrides any theme display rule). */
.product_list_widget li.shub-hidden { display: none !important; }

/* ---------------------------------------------------------------------------
   Exploded-view right panel: compact horizontal part rows (thumbnail left,
   part# / description / stock / price + Add-to-Cart|More-Info on the right).
   Theme override: encompass-engine/parts/assembly-parts-view.php.
   Scoped to #part-results so it beats the legacy list styling that targets
   `#part-results .product_list_widget li`.
   --------------------------------------------------------------------------- */
#part-results .shub-explode-search {
  width: 100%;
  margin: 0 0 16px;
  padding: 10px 14px;
  border: 1px solid #e2e2e2;
  border-radius: 6px;
  font-size: 14px;
}
#part-results .product_list_widget.shub-explode-grid {
  display: block;
  margin: 0;
  padding: 0;
  list-style: none;
}
/* One compact ROW per part (override legacy float/list rules). */
#part-results .product_list_widget.shub-explode-grid li.shub-erow {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 16px 4px;
  margin: 0;
  border: 0;
  border-bottom: 1px solid #ececec;
  background: transparent;
  float: none;
  width: auto;
  min-height: auto;
  list-style: none;
}
#part-results .product_list_widget.shub-explode-grid li.shub-erow::before,
#part-results .product_list_widget.shub-explode-grid li.shub-erow::after {
  content: none;
}
#part-results .shub-erow-thumb {
  flex: 0 0 84px;
  width: 84px;
  display: block;
}
#part-results .shub-erow-thumb img {
  width: 84px;
  height: 84px;
  object-fit: contain;
  border: 1px solid #eee;
  border-radius: 6px;
  float: none;
  margin: 0;
  background: #fff;
}
#part-results .shub-erow-info {
  flex: 1 1 auto;
  min-width: 0;
  text-align: left;
}
#part-results .shub-erow-tag {
  display: inline-block;
  background: #fff5d6;
  color: #7a5b00;
  border: 1px solid #e6cf7a;
  font-size: 11px;
  font-weight: 700;
  padding: 1px 7px;
  border-radius: 10px;
  margin: 0 0 4px;
}
#part-results .shub-erow-part {
  display: block;
  font-weight: 700;
  color: #7a5b00;
  text-decoration: none;
  font-size: 15px;
  margin: 0 0 2px;
}
#part-results .shub-erow-part:hover { text-decoration: underline; }
#part-results .shub-erow-desc {
  color: #6b7280;
  font-size: 13px;
  margin: 0 0 6px;
}
#part-results .shub-erow-stock { font-size: 12px; font-weight: 600; margin: 0 0 2px; }
#part-results .shub-erow-stock.in-stock { color: #1a7f37; }
#part-results .shub-erow-stock.not-stock { color: #9ca3af; }
#part-results .shub-erow-price {
  font-size: 16px;
  font-weight: 700;
  color: #111827;
  margin: 0 0 10px;
}
#part-results .shub-erow-atc { margin: 0; }
#part-results .shub-erow-btn {
  display: inline-block;
  padding: 9px 20px;
  border: 0;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  line-height: 1.2;
}
#part-results .shub-erow-btn--cart { background: #fab006; color: #fff; }
#part-results .shub-erow-btn--cart:hover { background: #fab006; }
#part-results .shub-erow-btn--info { background: #fab006; color: #fff; }
#part-results .shub-erow-btn--info:hover { background: #fab006; }

/* Keep hidden (paginated-out) rows hidden. */
#part-results .product_list_widget.shub-explode-grid li.shub-erow.shub-hidden {
  display: none !important;
}

@media (max-width: 480px) {
  #part-results .shub-erow-thumb,
  #part-results .shub-erow-thumb img { flex-basis: 64px; width: 64px; height: 64px; }
}

/* Model-detail parts-list pagination buttons */
#pagination-parts-table {
  display: flex;
  justify-content: center;
  gap: 6px;
  list-style: none;
  padding: 0;
  margin: 24px 0;
  flex-wrap: wrap;
}
#pagination-parts-table li { list-style: none; }
#pagination-parts-table button {
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  border: 1px solid #e0e0e0;
  background: #fff;
  border-radius: 4px;
  cursor: pointer;
  font-size: 14px;
}
#pagination-parts-table button.active { background: #fab006; color: #fff; border-color: #fab006; }
#pagination-parts-table button[disabled] { opacity: 0.45; cursor: default; }
#pagination-parts-table button:not([disabled]):hover { border-color: #fab006; }

/* ==========================================================================
   Brands listing ("Browse by Manufacturers")
   ========================================================================== */
.shub-brands { max-width: 1200px; margin: 0 auto; padding: 10px 0 40px; }
.shub-brands-alpha {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px;
  margin-bottom: 24px;
}
.shub-brands-alpha .shub-alpha {
  min-width: 30px;
  text-align: center;
  padding: 5px 8px;
  border: 1px solid #0000007c;
  border-radius: 3px;
  font-size: 13px;
  color: #000;
  text-decoration: none;
  background: #fab10600;
}
.shub-brands-alpha .shub-alpha:hover { border-color: #fab006; }
.shub-brands-alpha .shub-alpha.active { background: #fab006; color: #000 !important; border-color: #e0e0e0; }
.shub-brands-alpha .shub-alpha.is-empty { color: #ccc; cursor: default; }
.shub-brands-alpha .shub-alpha.is-empty:hover { border-color: #e0e0e0; }

.shub-brands-title {
  font-size: 22px;
  font-weight: 700;
  border-bottom: 1px solid #eee;
  padding-bottom: 10px;
  margin: 0 0 20px;
}

.shub-brands-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  border-top: 1px solid #eee;
  border-left: 1px solid #eee;
}
.shub-brand-item {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 110px;
  padding: 16px;
  border-right: 1px solid #eee;
  border-bottom: 1px solid #eee;
  text-decoration: none;
  transition: background 0.15s;
}
.shub-brand-item:hover { background: #fafafa; }
.shub-brand-item img { max-width: 100%; max-height: 46px; object-fit: contain; }
.shub-brand-name { font-size: 14px; font-weight: 600; color: #333; text-align: center; }
.shub-brands-empty { text-align: center; color: #777; padding: 30px 0; }

@media (max-width: 992px) { .shub-brands-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 640px) { .shub-brands-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 420px) { .shub-brands-grid { grid-template-columns: repeat(2, 1fr); } }


.shub-brands {
    max-width: 1520px;
    margin: 0 auto;
    padding: 10px 0 40px;
}
.alpha-text{
  padding-top: 20px;
  padding-bottom: 20px;
  max-width: 1024px;
  margin: 0 auto;
  text-align: center;
}

form.checkout.woocommerce-checkout .form-row {
    flex-direction: column;
}
.woocommerce-checkout-review-order-table th , .woocommerce-checkout-review-order-table td  {
  border: 1px solid #cccccc63 !important;
    text-align: left;
    padding-left: 8px !important;
}
form.checkout.woocommerce-checkout .place-order #place_order{margin-right:auto;}

/* ==========================================================================
   Home widget — "Shop Appliance Parts"
   ========================================================================== */

.featured-appliances h2 { font-size: 24px; font-weight: 700; margin: 0 0 12px; }
.featured-appliances .intro-text { max-width: 900px; margin: 0 0 24px; color: #555; font-size: 14px; line-height: 1.6; }

.appliance-grid .grid-item {
  border: 1px solid #eee;
  border-radius: 8px;
  background: #fff;
  transition: box-shadow 0.2s, transform 0.2s;
  overflow: hidden;
}
.appliance-grid .grid-item:hover { box-shadow: 0 6px 18px rgba(0,0,0,0.1); transform: translateY(-2px); }
.appliance-grid .grid-item a {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 16px 10px;
  text-decoration: none;
  color: #333;
}
.appliance-grid .grid-item-image {
  width: 100%;
  height: 110px;
  object-fit: contain;
  margin-bottom: 10px;
}
.appliance-grid .grid-item-name { font-size: 13px; font-weight: 600; }
.featured-appliances .see-all { text-align: center; margin-top: 28px; }
.featured-appliances .see-all .button {
  display: inline-block;
  background: #fab006;
  color: #fff;
  padding: 12px 26px;
  border-radius: 4px;
  text-decoration: none;
  font-weight: 600;
}
.featured-appliances .see-all .button:hover { background: #e29e00; }

@media (max-width: 992px) { .appliance-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 640px) { .appliance-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 420px) { .appliance-grid { grid-template-columns: repeat(2, 1fr); } }

button.wp-block-search__button.wp-element-button {
 right: 20px;
 top: 10px;
width: fit-content;
font-size: 0px;
}
 
/* ---- Module 5B: location capture ---- */
/* Native browser geolocation prompt is used on arrival — no custom modal. */
.shub-location-label {
	cursor: pointer;
}

/* PDP delivery-location control */
.shub-deliver {
	margin: 14px 0;
	border: 1px solid #e3e8ef;
	border-radius: 10px;
	background: #fff;
	position: relative;
}
.shub-deliver-bar {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
}
.shub-deliver-pin {
	font-size: 20px;
	line-height: 1;
	flex: 0 0 auto;
}
.shub-deliver-info {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-width: 0;
}
.shub-deliver-caption {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: #8a94a6;
}
.shub-deliver-label {
	font-size: 15px;
	font-weight: 700;
	color: #1f2327;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.shub-deliver-open {
	flex: 0 0 auto;
	background: #fff;
	border: 1px solid #2874f0;
	color: #2874f0;
	font-weight: 600;
	font-size: 13px;
	padding: 7px 14px;
	border-radius: 6px;
	cursor: pointer;
	transition: background .15s, color .15s;
}
.shub-deliver-open:hover { background: #2874f0; color: #fff; }

.shub-deliver-panel {
	border-top: 1px solid #eef1f5;
	padding: 14px;
}
.shub-deliver-panel-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 12px;
}
.shub-deliver-panel-head h4 { margin: 0; font-size: 15px; }
.shub-deliver-close {
	background: none; border: 0; font-size: 22px; line-height: 1;
	color: #9aa4b2; cursor: pointer; padding: 0 4px;
}

.shub-place-search {
	display: flex;
	align-items: center;
	gap: 8px;
	border: 1px solid #d4dae3;
	border-radius: 8px;
	padding: 10px 12px;
	transition: border-color .15s, box-shadow .15s;
}
.shub-place-search:focus-within {
	border-color: #2874f0;
	box-shadow: 0 0 0 3px rgba( 40, 116, 240, .12 );
}
.shub-place-icon { color: #9aa4b2; font-size: 15px; }
.shub-place-input {
	border: 0; outline: none; flex: 1; font-size: 14px; background: transparent;
}
.shub-place-spinner {
	width: 16px; height: 16px; flex: 0 0 auto;
	border: 2px solid #e3e8ef; border-top-color: #2874f0; border-radius: 50%;
	animation: shub-spin .7s linear infinite;
}
@keyframes shub-spin { to { transform: rotate( 360deg ); } }

.shub-place-results {
	list-style: none;
	margin: 8px 0 0;
	padding: 0;
	max-height: 260px;
	overflow-y: auto;
	border-radius: 8px;
}
.shub-place-item {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	padding: 11px 8px;
	cursor: pointer;
	border-bottom: 1px solid #f2f4f7;
	border-radius: 6px;
}
.shub-place-item:last-child { border-bottom: 0; }
.shub-place-item:hover,
.shub-place-item:focus { background: #f4f8ff; outline: none; }
.shub-place-pin { color: #e0554e; margin-top: 1px; font-size: 15px; flex: 0 0 auto; }
.shub-place-txt { display: flex; flex-direction: column; min-width: 0; }
.shub-place-main { font-weight: 600; font-size: 14px; color: #1f2327; }
.shub-place-sub { color: #8a94a6; font-size: 12px; }

.shub-geo-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: none;
	border: 0;
	color: #2874f0;
	font-weight: 600;
	cursor: pointer;
	padding: 12px 0 0;
	font-size: 14px;
}
.shub-geo-link:hover { text-decoration: underline; }
.shub-geo-dot { font-size: 15px; }

.shub-place-msg {
	display: block;
	margin-top: 10px;
	font-size: 13px;
	color: #1a7f37;
}
.shub-place-msg.is-error { color: #d63638; }

/* Module 5C: nearest-warehouse panel on the PDP */
.shub-nearest {
	margin: 12px 0;
	padding: 12px 14px;
	background: #f6faf6;
	border: 1px solid #d7e8d7;
	border-radius: 6px;
	font-size: 14px;
}
.shub-nearest .shub-nearest-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 12px;
}
.shub-nearest .shub-nearest-stock.in {
	color: #1a7f37;
	font-weight: 700;
}
.shub-nearest .shub-nearest-stock.out {
	color: #d63638;
	font-weight: 700;
}
.shub-nearest .shub-nearest-delivery {
	color: #555;
	width: 100%;
}

/* Login (left) + Register (right) — checkout & My Account.
   Applies to the shared .u-columns.col2-set markup used by both
   woocommerce/checkout/form-login.php and woocommerce/myaccount/form-login.php. */
.u-columns.col2-set {
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
	margin: 20px 0 30px;
	width: 100%;
	align-items: flex-start;
}
.u-columns.col2-set .col-1,
.u-columns.col2-set .col-2 {
	/* Exactly half each (minus half the 30px gap) so both columns are equal
	   width with no dead space in the middle — regardless of the page's own
	   container (checkout vs My Account). */
	flex: 1 1 calc(50% - 15px);
	max-width: calc(50% - 15px);
	min-width: 280px;
	margin: 0;
	padding: 24px;
	border: 1px solid #e5e5e5;
	border-radius: 8px;
	background: #fafafa;
	box-sizing: border-box;
}
.u-columns.col2-set h2 {
	margin: 0 0 16px;
	font-size: 20px;
}
.u-columns.col2-set .form-row {
	margin-bottom: 14px;
}
.u-columns.col2-set label {
	display: block;
	margin-bottom: 5px;
	font-weight: 600;
}
.u-columns.col2-set input[type="text"],
.u-columns.col2-set input[type="email"],
.u-columns.col2-set input[type="password"] {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #ccc;
	border-radius: 4px;
	box-sizing: border-box;
}
.u-columns.col2-set .button {
	background: #f5a623;
	color: #1f2327;
	border: 0;
	padding: 11px 24px;
	border-radius: 5px;
	font-weight: 700;
	cursor: pointer;
}
.u-columns.col2-set .woocommerce-form-login__rememberme {
	font-weight: 400;
}
.u-columns.col2-set .lost_password {
	margin: 8px 0 14px;
	font-size: 13px;
}
@media (max-width: 600px) {
	.u-columns.col2-set { flex-direction: column; }
	.u-columns.col2-set .col-1,
	.u-columns.col2-set .col-2 {
		flex-basis: 100%;
		max-width: 100%;
	}
}

/* Checkout login/register toggle bar (coupon-bar style) */
.shub-auth-toggle {
	margin: 0 0 24px;
}
.shub-auth-toggle .shub-auth-bar {
	background: #eaeaea;
	border-top: 3px solid #f5a623;
	padding: 14px 18px;
	margin: 0;
	font-size: 15px;
	color: #333;
	border-radius: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px;
}
/* Neutralize the default woocommerce-info icon/styles on this bar. */
.shub-auth-toggle .shub-auth-bar::before { display: none; }
.shub-auth-toggle .shub-auth-bar-text { color: #333; }
.shub-auth-toggle .shub-auth-link {
	font-weight: 700;
	color: #1f2327;
	text-decoration: underline;
	cursor: pointer;
}
.shub-auth-toggle .shub-auth-link:hover,
.shub-auth-toggle .shub-auth-link.is-active {
	color: #f5a623;
}
.shub-auth-toggle .shub-auth-sep { color: #aaa; }

.shub-auth-toggle .shub-auth-panels {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin-top: 16px;
}
.shub-auth-toggle .shub-auth-panel {
	flex: 1 1 calc(50% - 12px);
	max-width: calc(50% - 12px);
	min-width: 280px;
	border: 1px solid #e5e5e5;
	background: #fafafa;
	border-radius: 8px;
	padding: 22px;
	box-sizing: border-box;
}
.shub-auth-toggle .shub-auth-panel h3 {
	margin: 0 0 14px;
	font-size: 17px;
}
@media (max-width: 600px) {
	.shub-auth-toggle .shub-auth-panel {
		flex-basis: 100%;
		max-width: 100%;
	}
}
.shub-auth-toggle .shub-auth-panel .form-row { margin-bottom: 14px; }
.shub-auth-toggle .shub-auth-panel label {
	display: block;
	margin-bottom: 5px;
	font-weight: 600;
}
.shub-auth-toggle .shub-auth-panel input[type="text"],
.shub-auth-toggle .shub-auth-panel input[type="email"],
.shub-auth-toggle .shub-auth-panel input[type="password"] {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #ccc;
	border-radius: 4px;
	box-sizing: border-box;
}
.shub-auth-toggle .shub-auth-panel .button {
	background: #f5a623;
	color: #1f2327;
	border: 0;
	padding: 11px 24px;
	border-radius: 5px;
	font-weight: 700;
	cursor: pointer;
}
.shub-auth-toggle .lost_password { margin: 6px 0 14px; font-size: 13px; }
.shub-auth-toggle .woocommerce-form-login__rememberme { font-weight: 400; }

/* Checkout billing-address autocomplete dropdown */
.shub-ac-list {
	list-style: none;
	margin: 2px 0 0;
	padding: 0;
	position: absolute;
	z-index: 9999;
	left: 0;
	right: 0;
	background: #fff;
	border: 1px solid #d4dae3;
	border-radius: 6px;
	box-shadow: 0 8px 24px rgba(0,0,0,.12);
	max-height: 240px;
	overflow-y: auto;
	display: none;
}
.shub-ac-item {
	padding: 10px 12px;
	cursor: pointer;
	font-size: 14px;
	border-bottom: 1px solid #f2f4f7;
}
.shub-ac-item:last-child { border-bottom: 0; }
.shub-ac-item:hover { background: #f4f8ff; }

/* ---- PDP out-of-stock banner (Encompass runtime PDP) ---- */
.shub-oos-banner {
	display: flex;
	align-items: center;
	gap: 12px;
	background: #fffce6;
	border-radius: 10px;
	padding: 16px 20px;
	margin: 16px 0;
}
.shub-oos-banner .shub-oos-icon {
	flex: 0 0 auto;
	line-height: 0;
}
.shub-oos-banner .shub-oos-text {
	color: #caa300;
	font-weight: 600;
	font-size: 15px;
	line-height: 1.4;
}
