/* assets/css/shop.css */

/* ── WRAPPER ── */
.soc-main { background: var(--c-bg); min-height: 60vh; }

.soc-shop-wrap {
  padding-top:    var(--sp-6);
  padding-bottom: var(--sp-16);
}

/* ── CATEGORY / SHOP HERO (fundo branco) ── */
.soc-shop-hero {
  background: var(--c-bg);
  padding:    var(--sp-5) 0 8px;
}

/* Breadcrumb no hero — texto escuro sobre branco (página actual coral por defeito) */
.soc-shop-hero__bc { margin-bottom: 22px; }
.soc-shop-hero__bc .woocommerce-breadcrumb,
.soc-shop-hero__bc .woocommerce-breadcrumb a {
  color: var(--c-text-muted);
  font-size: 11px;
}
.soc-shop-hero__bc .woocommerce-breadcrumb a:hover { color: var(--c-brand); }

@media (min-width: 768px)  { .soc-shop-hero { padding: var(--sp-6) 0 8px; } }
@media (min-width: 1024px) { .soc-shop-hero { padding: var(--sp-8) 0 10px; } }

.soc-shop-hero__inner {
  display:         flex;
  justify-content: space-between;
  align-items:     flex-end;
  gap:             var(--sp-6);
}

.soc-shop-hero__left { display: flex; flex-direction: column; flex: 1; }

/* Direita: Filtros + Ordenar */
.soc-shop-hero__right {
  display:     flex;
  align-items: center;
  gap:         10px;
  flex-shrink: 0;
}

.soc-shop-hero__btn {
  display:       flex;
  align-items:   center;
  gap:           8px;
  border:        0.5px solid rgba(255,255,255,.3);
  border-radius: var(--r-pill);
  padding:       10px 20px;
  font-size:     var(--text-xs);
  color:         rgba(255,255,255,.75);
  font-family:   var(--font-main);
  background:    transparent;
  cursor:        pointer;
  white-space:   nowrap;
  transition:    border-color var(--t-fast), color var(--t-fast);
}

.soc-shop-hero__btn:hover {
  border-color: rgba(255,255,255,.7);
  color:        var(--c-white);
}

/* "Sort" select in the hero — same style as the Filters button */
.soc-shop-hero__ordering .woocommerce-ordering {
  margin:  0;
  display: flex;
}

.soc-shop-hero__ordering .woocommerce-ordering select {
  background-color:    transparent !important;
  border:              0.5px solid rgba(255,255,255,.3) !important;
  border-radius:       var(--r-pill) !important;
  color:               rgba(255,255,255,.75) !important;
  padding:             10px 28px 10px 20px !important;
  font-size:           var(--text-xs) !important;
  font-family:         var(--font-main) !important;
  -webkit-appearance:  none !important;
  appearance:          none !important;
  cursor:              pointer !important;
  outline:             none !important;
  width:               auto !important;
  height:              auto !important;
  line-height:         1.2 !important;
  box-sizing:          border-box !important;
  background-image:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='rgba(255,255,255,0.5)' stroke-width='1' fill='none'/%3E%3C/svg%3E") !important;
  background-repeat:   no-repeat !important;
  background-position: right 10px center !important;
  transition:          border-color var(--t-fast), color var(--t-fast);
}

/* Dropdown option colour — white background, dark text */
.soc-shop-hero__ordering .woocommerce-ordering select option {
  color:            var(--c-text) !important;
  background-color: var(--c-white) !important;
}

.soc-shop-hero__ordering .woocommerce-ordering select:hover,
.soc-shop-hero__ordering .woocommerce-ordering select:focus {
  border-color: rgba(255,255,255,.7) !important;
  color:        var(--c-white) !important;
  outline:      none !important;
}

/* Mobile/tablet: hero in column — filters and sort visible */
@media (max-width: 767px) {
  .soc-shop-hero__inner {
    flex-direction: column;
    align-items:    flex-start;
    gap:            var(--sp-4);
  }
  .soc-shop-hero__right {
    display:   flex;
    flex-wrap: wrap;
    gap:       8px;
  }
}

.soc-shop-hero__label {
  font-size:      var(--text-xs);
  letter-spacing: .1em;
  text-transform: uppercase;
  color:          rgba(255,255,255,.38);
  margin-bottom:  8px;
}

.soc-shop-hero__title {
  font-family:    var(--font-display);
  font-size:      32px;
  font-weight:    var(--fw-bold);
  letter-spacing: var(--tracking-display);
  color:          var(--c-text);
  line-height:    1.05;
  margin:         0 0 10px;
}

@media (min-width: 768px)  { .soc-shop-hero__title { font-size: 40px; } }
@media (min-width: 1024px) { .soc-shop-hero__title { font-size: 52px; } }

.soc-shop-hero__desc,
.soc-shop-hero__desc p {
  font-size:   15px;
  color:       var(--c-text-muted);
  line-height: 1.55;
}
.soc-shop-hero__desc { margin: 0; width: 100%; }
.soc-shop-hero__desc p { margin: 0 0 6px; }
.soc-shop-hero__desc p:last-child { margin-bottom: 0; }

.soc-shop-hero__count {
  font-size: var(--text-xs);
  color:     rgba(255,255,255,.4);
}

/* ── TOOLBAR (Filtros + Ordenar) ── */
.soc-shop-toolbar { margin-top: 40px; }
.soc-shop-toolbar__row {
  display:         flex;
  align-items:     center;
  justify-content: flex-start;
  gap:             10px;
  padding:         18px 0;
  border-top:      var(--border);
  border-bottom:   var(--border);
}
.soc-shop-toolbar__right { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

/* Filtros e Ordenar — mesmo estilo, compacto e à esquerda em todos os ecrãs */
.soc-shop-toolbar__filters,
.soc-shop-toolbar__sort .woocommerce-ordering select {
  display:         inline-flex;
  align-items:     center;
  gap:             8px;
  height:          34px;
  padding:         0 16px !important;
  border:          0.5px solid var(--c-border-mid) !important;
  border-radius:   var(--r-pill) !important;
  background:      var(--c-white) !important;
  color:           var(--c-text) !important;
  font-family:     var(--font-main) !important;
  font-size:       10px !important;
  font-weight:     var(--fw-bold) !important;
  letter-spacing:  var(--tracking-label) !important;
  text-transform:  uppercase !important;
  cursor:          pointer;
  transition:      background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
}
.soc-shop-toolbar__filters:hover,
.soc-shop-toolbar__sort .woocommerce-ordering select:hover { border-color: var(--c-brand) !important; }
.soc-shop-toolbar__filters.is-active {
  background:   var(--c-brand) !important;
  border-color: var(--c-brand) !important;
  color:        var(--c-white) !important;
}
.soc-shop-toolbar__sort .woocommerce-ordering { margin: 0; }
.soc-shop-toolbar__sort .woocommerce-ordering select {
  display: inline-block !important;
  line-height: 34px !important;
  padding-right: 34px !important;
  -webkit-appearance: none !important; appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%230E434E' stroke-width='1.3' fill='none'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 13px center !important;
}

/* ── Filtros activos (chips) ── */
.soc-active-filters {
  display:     flex;
  flex-wrap:   wrap;
  gap:         8px;
  padding:     16px 0 0;
}
.soc-filter-chip {
  display:         inline-flex;
  align-items:     center;
  gap:             8px;
  padding:         7px 15px;
  border:          0.5px solid var(--c-border-mid);
  border-radius:   var(--r-pill);
  background:      var(--c-white);
  font-size:       12px;
  color:           var(--c-text);
  text-decoration: none;
  transition:      border-color var(--t-fast);
}
.soc-filter-chip:hover { border-color: var(--c-brand); }
.soc-filter-chip__x { color: var(--c-accent); font-size: 13px; line-height: 1; }
.soc-filter-chip--clear {
  border-style: dashed;
  color:        var(--c-text-muted);
}

/* ── SUBCATEGORY TABS ── */
.soc-shop-tabs {
  background:      var(--c-white);
  border-bottom:   var(--border-light);
  overflow-x:      auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.soc-shop-tabs::-webkit-scrollbar { display: none; }

.soc-shop-tabs__inner {
  display:     flex;
  white-space: nowrap;
}

.soc-shop-tab {
  display:         block;
  padding:         12px 16px;
  font-size:       var(--text-xs);
  color:           var(--c-text-xlight);
  text-decoration: none;
  border-bottom:   1.5px solid transparent;
  white-space:     nowrap;
  transition:      color var(--t-fast), border-color var(--t-fast);
}

.soc-shop-tab.is-active,
.soc-shop-tab:hover {
  color:        var(--c-brand);
  border-color: var(--c-brand);
  font-weight:  var(--fw-medium);
}

/* ── TOOLBAR (result count only) ── */
.soc-shop__toolbar {
  padding:       10px 0;
  border-bottom: var(--border-light);
  margin-bottom: var(--sp-6);
}

.woocommerce-result-count {
  font-size: var(--text-xs);
  color:     var(--c-text-xlight);
  margin:    0;
}

.woocommerce-ordering select {
  background:          var(--c-white) !important;
  border:              0.5px solid var(--c-border-mid) !important;
  border-radius:       var(--r-pill) !important;
  padding:             7px 32px 7px 12px !important;
  font-size:           var(--text-xs) !important;
  font-family:         var(--font-main) !important;
  color:               var(--c-text) !important;
  -webkit-appearance:  none !important;
  appearance:          none !important;
  cursor:              pointer;
  background-image:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23bbb' stroke-width='1' fill='none'/%3E%3C/svg%3E") !important;
  background-repeat:   no-repeat !important;
  background-position: right 12px center !important;
}

/* ── FILTER DRAWER ── */
.soc-filter-drawer {
  position:       fixed;
  top:            0; left: -380px;
  width:          340px;
  height:         100%;
  background:     var(--c-white);
  z-index:        var(--z-drawer);
  display:        flex;
  flex-direction: column;
  transition:     left var(--t-base);
  box-shadow:     var(--shadow-lg);
  overflow:       hidden;
}

.soc-filter-drawer.is-open { left: 0; }

.soc-filter-drawer__header {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  padding:         20px 24px;
  border-bottom:   var(--border-light);
  flex-shrink:     0;
}

.soc-filter-drawer__title { font-size: var(--text-base); font-weight: var(--fw-medium); }

.soc-filter-drawer__close {
  background: none; border: none;
  font-size: 22px; color: var(--c-text-light);
  cursor: pointer; font-family: var(--font-main); padding: 4px;
}

.soc-filter-drawer__body { flex: 1; overflow-y: auto; padding: 20px 24px; }

.soc-filter-drawer__empty {
  font-size:  var(--text-sm);
  color:      var(--c-text-muted);
  line-height: 1.6;
}

/* Widgets dentro do drawer */
.soc-filter-widget { margin-bottom: var(--sp-6); }

.soc-filter-widget__title {
  font-size:     var(--text-xs);
  font-weight:   var(--fw-medium);
  letter-spacing: .06em;
  text-transform: uppercase;
  color:         var(--c-text-xlight);
  margin-bottom: var(--sp-3);
}

.soc-filter-widget ul { list-style: none; padding: 0; margin: 0; }

.soc-filter-widget ul li { padding: 5px 0; font-size: var(--text-sm); }

.soc-filter-widget ul li a { color: var(--c-text-muted); text-decoration: none; }
.soc-filter-widget ul li a:hover { color: var(--c-brand); }

/* ── WC FILTER WIDGETS ── */

/* Price slider */
.soc-filter-drawer .price_slider_wrapper { padding: 4px 0 16px; }
.soc-price-filter-form .price_slider_wrapper { padding: 4px 0 16px; }

/* jQuery UI Slider base (previously provided by woocommerce-general.css) */
.soc-filter-drawer .ui-slider {
  position:      relative;     /* essential for absolute handles */
  text-align:    left;
  background:    var(--c-border-light);
  border:        none;
  border-radius: var(--r-pill);
  height:        4px;
  margin:        12px 8px 22px;
}

.soc-filter-drawer .ui-slider-range {
  position:   absolute;
  z-index:    1;
  display:    block;
  border:     0;
  background: var(--c-brand);
  top:        0;
  height:     100%;
}

.soc-filter-drawer .ui-slider-handle {
  position:      absolute !important;  /* handle needs absolute position */
  z-index:       2;
  background:    var(--c-brand) !important;
  border:        2px solid var(--c-brand) !important;
  border-radius: 50% !important;
  width:         16px !important;
  height:        16px !important;
  top:           -6px !important;
  margin-left:   -8px !important;
  cursor:        ew-resize !important;
  outline:       none !important;
  touch-action:  none;
}

/* Price line and button */
.soc-filter-drawer .price_slider_amount,
.soc-price-filter-form .price_slider_amount {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  font-size:       var(--text-xs);
  color:           var(--c-text-muted);
  margin-top:      4px;
}

.soc-filter-drawer .price_slider_amount .button,
.soc-price-filter-form .price_slider_amount .button {
  background:    var(--c-brand) !important;
  color:         var(--c-white) !important;
  border:        none !important;
  border-radius: var(--r-pill) !important;
  padding:       6px 14px !important;
  font-size:     var(--text-xs) !important;
  font-family:   var(--font-main) !important;
  cursor:        pointer !important;
  text-decoration: none;
  display:       inline-block;
}

.soc-filter-drawer .price_label,
.soc-price-filter-form .price_label {
  font-size: var(--text-xs);
  color:     var(--c-text-muted);
}

/* Layered nav — WC applies select2: <form> and <select> share the same class.
   Do not set background-image on the form to avoid a duplicate arrow. */
.soc-filter-drawer form.woocommerce-widget-layered-nav-dropdown {
  background: none !important;
  display:    block;
}

/* Submit button (no-JS fallback) — hide */
.soc-filter-drawer .woocommerce-widget-layered-nav-dropdown__submit,
.soc-filter-drawer .widget_layered_nav form::after,
.soc-filter-drawer .widget_layered_nav form::before { display: none !important; content: none !important; }

/* ── Select2 — all drawer widgets (correct selectors based on real HTML) ── */
/* WC uses .soc-filter-widget as container, NOT .widget_layered_nav */
.soc-filter-drawer .select2-container { width: 100% !important; }

.soc-filter-drawer .select2-selection--single {
  height:        40px !important;
  border:        0.5px solid var(--c-border-mid) !important;
  border-radius: var(--r-pill) !important;
  background:    var(--c-white) !important;
  box-shadow:    none !important;
  outline:       none !important;
  position:      relative !important;
}
.soc-filter-drawer .select2-container--open .select2-selection--single {
  border-color: var(--c-brand) !important;
}
.soc-filter-drawer .select2-selection__rendered {
  line-height:  40px !important;
  padding:      0 34px 0 13px !important;
  font-size:    13px !important;
  font-family:  var(--font-main) !important;
  color:        var(--c-text) !important;
}
.soc-filter-drawer .select2-selection__placeholder {
  color: var(--c-text-ghost) !important;
}
.soc-filter-drawer .select2-selection__arrow { display: none !important; }
.soc-filter-drawer .select2-selection--single::after {
  content:    '';
  position:   absolute;
  right:      12px;
  top:        50%;
  transform:  translateY(-50%);
  width:      10px;
  height:     6px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E") no-repeat center;
  pointer-events: none;
  transition: transform .15s ease;
}
.soc-filter-drawer .select2-container--open .select2-selection--single::after {
  transform: translateY(-50%) rotate(180deg);
}
.select2-dropdown {
  border:        0.5px solid var(--c-border-mid) !important;
  border-radius: var(--r-sm) !important;
  box-shadow:    0 4px 16px rgba(0,0,0,.08) !important;
  font-family:   var(--font-main) !important;
}
.select2-results__option {
  font-size:   13px !important;
  font-family: var(--font-main) !important;
  padding:     9px 13px !important;
  color:       var(--c-text) !important;
}
.select2-results__option--highlighted[aria-selected] {
  background: var(--c-brand-light) !important;
  color:      var(--c-text) !important;
}
.select2-results__option[aria-selected=true] {
  color:       var(--c-brand) !important;
  background:  transparent !important;
  font-weight: 500 !important;
}
.select2-search--dropdown .select2-search__field {
  border:        0.5px solid var(--c-border-mid) !important;
  border-radius: var(--r-sm) !important;
  outline:       none !important;
  font-family:   var(--font-main) !important;
  font-size:     12px !important;
  padding:       7px 10px !important;
}

/* Atributos / Layered nav */
.soc-filter-drawer .woocommerce-widget-layered-nav-list {
  list-style:  none;
  padding:     0;
  margin:      0;
}

.soc-filter-drawer .woocommerce-widget-layered-nav-list__item {
  display:     flex;
  align-items: center;
  justify-content: space-between;
  padding:     8px 0;
  border-bottom: var(--border-xlight);
  font-size:   var(--text-sm);
}

.soc-filter-drawer .woocommerce-widget-layered-nav-list__item a {
  color:           var(--c-text-muted);
  text-decoration: none;
  transition:      color var(--t-fast);
}

.soc-filter-drawer .woocommerce-widget-layered-nav-list__item a:hover,
.soc-filter-drawer .woocommerce-widget-layered-nav-list__item--chosen a {
  color: var(--c-brand);
}

.soc-filter-drawer .woocommerce-widget-layered-nav-list__item .count {
  font-size:  var(--text-xs);
  color:      var(--c-text-ghost);
}

/* Filtros activos */
.soc-filter-drawer .widget_layered_nav_filters ul {
  list-style:  none;
  padding:     0;
  margin:      0;
  display:     flex;
  flex-wrap:   wrap;
  gap:         6px;
}

.soc-filter-drawer .widget_layered_nav_filters ul li a {
  display:         flex;
  align-items:     center;
  gap:             4px;
  border:          0.5px solid var(--c-brand);
  padding:         5px 10px;
  font-size:       var(--text-xs);
  color:           var(--c-brand);
  text-decoration: none;
}

/* ── NO PRODUCTS ── */
.woocommerce-info {
  text-align: center;
  padding:    var(--sp-12) var(--sp-6) !important;
}


/* ── BOTTOM SECTION: LONG DESCRIPTION + FAQ ── */
.soc-cat-bottom {
  padding-top:    56px;
  padding-bottom: 72px;
  border-top:     .5px solid var(--c-border-light);
  margin-top:     40px;
}

.soc-cat-long-desc {
  font-size:     14px;
  line-height:   1.75;
  color:         var(--c-text-muted);
  margin-bottom: 48px;
}
.soc-cat-long-desc h2 { font-size: 18px; font-weight: var(--fw-medium); color: var(--c-text); margin: 24px 0 10px; }
.soc-cat-long-desc h3 { font-size: 15px; font-weight: var(--fw-medium); color: var(--c-text); margin: 18px 0 8px; }
.soc-cat-long-desc p  { margin-bottom: var(--sp-4); }
.soc-cat-long-desc ul,
.soc-cat-long-desc ol { padding-left: var(--sp-6); margin-bottom: var(--sp-4); }
.soc-cat-long-desc li { margin-bottom: var(--sp-2); }
.soc-cat-long-desc a  { color: var(--c-brand); text-decoration: underline; }

.soc-cat-faq         { max-width: 760px; }
.soc-cat-faq__title  { font-size: 18px; font-family: var(--font-display); letter-spacing: var(--tracking-display); font-weight: var(--fw-semibold); margin-bottom: 18px; color: var(--c-text); }

/* Accordion — identical to theme (page-faq.php) but scoped to .soc-cat-bottom */
.soc-cat-bottom .soc-about-faq                { border: .5px solid var(--c-border-mid); border-radius: var(--r-lg); overflow: hidden; }
.soc-cat-bottom .soc-accordion__item + .soc-accordion__item { border-top: .5px solid var(--c-border-light); }
.soc-cat-bottom .soc-accordion__trigger {
  width:           100%;
  background:      none;
  border:          none;
  padding:         16px 20px;
  display:         flex;
  justify-content: space-between;
  align-items:     center;
  font-size:       13px;
  cursor:          pointer;
  text-align:      left;
  font-family:     var(--font-main);
  color:           var(--c-text);
  line-height:     1.4;
}
.soc-cat-bottom .soc-accordion__icon  { color: var(--c-accent); font-size: 18px; flex-shrink: 0; margin-left: 12px; font-weight: var(--fw-regular); }
.soc-cat-bottom .soc-accordion__body  { display: none; padding: 0 20px 16px; font-size: 13px; color: var(--c-text-muted); line-height: 1.65; }
.soc-cat-bottom .soc-accordion__body.is-open { display: block; }

/* ── ATTRIBUTE SWATCH FILTERS ── */
.soc-filter-swatches {
  display:   flex;
  flex-wrap: wrap;
  gap:       8px;
}

.soc-filter-swatch {
  display:         flex;
  flex-direction:  column;
  align-items:     center;
  gap:             4px;
  text-decoration: none;
  cursor:          pointer;
}

.soc-filter-swatch__dot {
  width:         32px;
  height:        32px;
  border-radius: 50% !important;
  border:        0.5px solid var(--c-border);
  transition:    outline 0.1s ease;
}

.soc-filter-swatch:hover .soc-filter-swatch__dot,
.soc-filter-swatch.is-active .soc-filter-swatch__dot {
  outline:        1.5px solid var(--c-brand);
  outline-offset: 2px;
}

.soc-filter-swatch__label {
  font-size:     10px;
  color:         var(--c-text-muted);
  text-align:    center;
  max-width:     40px;
  white-space:   nowrap;
  overflow:      hidden;
  text-overflow: ellipsis;
}

.soc-filter-swatch.is-active .soc-filter-swatch__label {
  color:       var(--c-brand);
  font-weight: 500;
}

/* ── FILTRO DE COLECÇÕES ─────────────────────────────────────────────────────
   Um <select> nativo, desenhado para ficar igual ao select2 que o WooCommerce
   aplica ao filtro de categorias logo acima. Não se reaproveita o select2: ele é
   inicializado pelo JS do WooCommerce sobre a classe dos filtros dele, e herdaria
   o comportamento de submissão, que aqui não serve.

   ⚠️ `!important` e o selector qualificado são obrigatórios: em páginas de loja o
   <body> tem a classe .woocommerce, e a regra `.woocommerce select` do
   woocommerce.css apanha QUALQUER select da página com !important — incluindo
   este. Ela impõe padding:11px 13px, que dentro de uma caixa de 40px deixava 18px
   para a linha de texto e cortava-a a meio. */
.soc-filter-drawer .soc-filter-coll-select {
  width:               100% !important;
  height:              40px !important;
  padding:             0 34px 0 14px !important;
  border:              .5px solid var(--c-border) !important;
  border-radius:       var(--r-pill) !important;
  background-color:    #fff !important;
  color:               var(--c-text) !important;
  font-family:         var(--font-main) !important;
  font-size:           var(--text-sm) !important;
  line-height:         normal !important;
  cursor:              pointer;
  outline:             none !important;
  -webkit-appearance:  none;
  appearance:          none;
  background-image:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23556B70' stroke-width='1' fill='none'/%3E%3C/svg%3E") !important;
  background-repeat:   no-repeat !important;
  background-position: right 14px center !important;
  transition:          border-color var(--t-fast);
}

.soc-filter-drawer .soc-filter-coll-select:hover,
.soc-filter-drawer .soc-filter-coll-select:focus { border-color: var(--c-brand) !important; }
