/* SAGE product layout fixes */
body.single-product.swc-has-configurator .entry-summary > .price,
body.single-product.swc-has-configurator .summary > .price,
body.single-product.swc-has-configurator p.price,
body.single-product.swc-has-configurator .posted-on,
body.single-product.swc-has-configurator .entry-date,
body.single-product.swc-has-configurator time.entry-date { display: none !important; }

.woocommerce div.product form.cart .button{
        margin-bottom: 1rem!important;
            border-radius: 8px!important;
}
.woocommerce .quantity .qty {
    width: 6rem!important;
    text-align: center!important;
    min-height: 35px!important;
    padding: 8px 10px!important;
    border: 1px solid #d8d8d8!important;
    border-radius: 8px!important;
    background: #fff!important;
}

table tbody>tr:nth-child(odd)>td, table tbody>tr:nth-child(odd)>th {
    background-color: hsla(0, 0%, 50%, .0);
}
.swc-delivery-badges {
    display: flex;
    gap: 24px;
    align-items: center;
    flex-wrap: wrap;
    margin: 0 0 18px;
}

.swc-delivery-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.swc-delivery-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #f3f3f3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
}

.swc-delivery-text {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.swc-delivery-text strong {
    font-size: 15px;
    font-weight: 500;
}

.swc-delivery-text small {
    font-size: 13px;
    color: #333;
}


.swc-configurator {
  margin: 18px 0 12px;
  max-width: 640px;
}
.swc-configurator-head h3 {
  margin: 0 0 6px;
  font-size: 1.2rem;
}
.swc-configurator-head p {
  margin: 0 0 14px;
  color: #555;
  line-height: 1.45;
}
.swc-config-card {
  padding: 16px;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.swc-config-card h4 {
  margin: 0 0 14px;
  font-size: 1rem;
}
.swc-fields {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
.swc-field {
  display: grid;
  gap: 6px;
}
.swc-label {
  font-weight: 700;
  font-size: .94rem;
}
.swc-select {
  width: 100%;
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid #d8d8d8;
  border-radius: 8px;
  background: #fff;
}
.swc-info-box {
  margin-top: 14px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  color: #444;
  font-size: .94em;
}
.swc-info-box span { color: #666; }

.swc-price-panel {
  clear: both;
  margin: 16px 0 0;
  padding: 16px;
  max-width: 640px;
  border: 1px solid #d7e3f8;
  border-radius: 14px;
  background: #f8fbff;
}
.swc-price-line,
.swc-price-extra {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 14px;
  padding: 6px 0;
}
.swc-price-line span,
.swc-price-extra span { color: #333; }
.swc-price-extra {
  font-size: .92rem;
  color: #555;
}
.swc-unit-price {
  font-size: 1.9rem;
  line-height: 1;
  color: #111;
}
.swc-grand-total {
  margin-top: 8px;
  padding-top: 12px;
  border-top: 1px solid #dbeafe;
}
.swc-total-order-price {
  font-size: 1.35rem;
  color: #111;
}

body.single-product.swc-has-configurator form.cart .quantity {
  margin-top: 8px;
}
body.single-product.swc-has-configurator form.cart .button {
  margin-top: 8px;
}


@media (min-width: 700px) {
  .swc-fields { grid-template-columns: 1fr 1fr; }
  .swc-field-qty-tier { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .swc-config-card,
  .swc-price-panel { padding: 14px; }
  .swc-price-line,
  .swc-price-extra { align-items: flex-start; flex-direction: column; gap: 4px; }
}


/* v0.8 configurator UX fixes */
body.single-product.swc-has-configurator .summary > p.price,
body.single-product.swc-has-configurator .entry-summary > p.price,
body.single-product.swc-has-configurator .summary .woocommerce-variation-price,
body.single-product.swc-has-configurator .entry-summary .woocommerce-variation-price,
body.single-product.swc-has-configurator .product .summary > .price,
body.single-product.swc-has-configurator .product .entry-summary > .price { display: none !important; }

body.single-product.swc-has-configurator .posted-on,
body.single-product.swc-has-configurator .byline,
body.single-product.swc-has-configurator .entry-meta,
body.single-product.swc-has-configurator .product_meta .posted_in + .posted-on { display: none !important; }

.swc-native-variations-slot { margin-bottom: 12px; }
.swc-native-variations-slot table.variations,
.swc-native-variations-slot table.variations tbody,
.swc-native-variations-slot table.variations tr,
.swc-native-variations-slot table.variations th,
.swc-native-variations-slot table.variations td {
  display: block;
  width: 100%;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}
.swc-native-variations-slot table.variations tr { margin-bottom: 12px !important; }
.swc-native-variations-slot table.variations .label label,
.swc-native-variations-slot table.variations th label {
  display: block;
  margin-bottom: 6px;
  font-weight: 700;
  font-size: .94rem;
}
.swc-native-variations-slot table.variations select { width: 100%; min-height: 42px; }
.swc-native-variations-slot .reset_variations { display: inline-block; margin-top: 6px; font-size: .9rem; }

body.single-product.swc-has-configurator form.cart {
  display: block !important;
}
body.single-product.swc-has-configurator form.cart .quantity,
body.single-product.swc-has-configurator form.cart .single_add_to_cart_button {
  vertical-align: middle;
}
.swc-price-panel {
  display: block;
  width: 100%;
}
.swc-configurator .swc-fields { margin-top: 0; }
.swc-config-card h4 { color: #111; }

/* v0.9 debug/layout fixes */
body.single-product.swc-has-configurator .posted-on,
body.single-product.swc-has-configurator .published,
body.single-product.swc-has-configurator .post-date,
body.single-product.swc-has-configurator .entry-date,
body.single-product.swc-has-configurator .date,
body.single-product.swc-has-configurator time { display: none !important; }

.swc-config-card .swc-fields {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}
.swc-native-variations-slot { order: 1; margin-bottom: 0; }
.swc-field-qty-tier { order: 2; }
.swc-fields .swc-field:not(.swc-native-variations-slot):not(.swc-field-qty-tier) { order: 3; }
.swc-native-variations-slot:empty { display: none; }
.swc-native-variations-slot .reset_variations { margin-left: 8px; }
.swc-price-panel { margin-top: 18px; margin-bottom: 18px; }
.swc-price-line span { font-weight: 700; }

body.single-product.swc-has-configurator .summary > p.price,
body.single-product.swc-has-configurator .summary > .price,
body.single-product.swc-has-configurator .entry-summary > p.price,
body.single-product.swc-has-configurator .entry-summary > .price { display:none !important; }
.swc-configurator .swc-fields { display:grid; grid-template-columns:1fr; gap:12px; /*max-width:520px; */max-width:100%;}

.swc-configurator .swc-field { margin:0; }
.swc-configurator .swc-label { display:block; font-weight:600; margin-bottom:4px; }
.swc-configurator select.swc-select, .swc-configurator table.variations select { width:100%; max-width:100%; }
.swc-price-panel { margin-top:14px; padding:14px; border:1px solid #e5e7eb; border-radius:10px; /*max-width:520px; */max-width:auto; }

.swc-price-line { display:flex; justify-content:space-between; gap:16px; align-items:center; margin:6px 0; }
.swc-unit-price, .swc-total-order-price { font-size:1.25rem; }

/****/

.swc-color-select-hidden {
  display: none !important;
}

.swc-color-swatches {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(42px, 1fr));
  gap: 10px;
  margin: 8px 0 12px;
}

.swc-color-option {
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  position: relative;
  text-align: center;
}

.swc-color-option input {
  display: none;
}

.swc-color-circle {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: block;
  background: var(--swc-color, #ccc);
  border: 1.5px solid #d1d5db;
  box-shadow: 0 1px 3px rgba(0,0,0,.18);
  transition: transform .15s ease, box-shadow .15s ease;
}

.swc-color-option:hover .swc-color-circle {
  transform: scale(1.15);
  box-shadow: 0 3px 8px rgba(0,0,0,.22);
}

.swc-color-option input:checked + .swc-color-circle {
  outline: 3px solid #352f8f;
  outline-offset: 3px;
  transform: scale(1.1);
}

/* Tooltip con nombre al hacer hover */
.swc-color-option::after {
  content: attr(title);
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  background: #222;
  color: #fff;
  font-size: 11px;
  white-space: nowrap;
  padding: 4px 8px;
  border-radius: 5px;
  pointer-events: none;
  opacity: 0;
  transition: opacity .15s ease;
  z-index: 99;
  box-shadow: 0 2px 6px rgba(0,0,0,.25);
}
.swc-color-option::before {
  content: '';
  position: absolute;
  bottom: calc(100% + 3px);
  left: 50%;
  transform: translateX(-50%);
  border: 5px solid transparent;
  border-top-color: #222;
  pointer-events: none;
  opacity: 0;
  transition: opacity .15s ease;
  z-index: 99;
}
.swc-color-option:hover::after,
.swc-color-option:hover::before {
  opacity: 1;
}

/* Nombre debajo del círculo (visible siempre, pequeño) */
.swc-color-text {
  font-size: 9px;
  line-height: 1.2;
  color: #555;
  max-width: 42px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.swc-color-option input:checked ~ .swc-color-text {
  color: #352f8f;
  font-weight: 600;
}

/* Borde visible para colores blancos/claros */
.swc-color-circle[style*="#ffffff"],
.swc-color-circle[style*="#FFFFFF"],
.swc-color-circle[style*="#fff"],
.swc-color-circle[style*="#FFF"] {
  border: 1.5px solid #aaa;
}

/****/

.swc-price-tier-select-hidden {
  display: none !important;
}

.swc-price-tier-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 8px 0 14px;
}

.swc-price-tier-option {
  cursor: pointer;
  display: inline-flex;
}

.swc-price-tier-option input {
  display: none;
}

.swc-price-tier-text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 8px 14px;
  border: 1px solid #d1d5db;
  border-radius: 999px;
  background: #fff;
  color: #222;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
  box-shadow: 0 1px 2px rgba(0,0,0,.08);
}

.swc-price-tier-option input:checked + .swc-price-tier-text {
  border-color: #352f8f;
  outline: 3px solid rgba(53, 47, 143, .18);
  color: #352f8f;
}


/****/


.swc-imprint-select-hidden {
  display: none !important;
}

.swc-imprint-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 8px 0 14px;
}

.swc-imprint-option {
  cursor: pointer;
}

.swc-imprint-option input {
  display: none;
}

.swc-imprint-text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 8px 14px;
  border: 1px solid #d1d5db;
  border-radius: 999px;
  background: #fff;
  font-size: 13px;
  font-weight: 600;
}

.swc-imprint-option input:checked + .swc-imprint-text {
  border-color: #352f8f;
  outline: 3px solid rgba(53, 47, 143, .2);
  color: #352f8f;
} 
/****/

.woocommerce div.product form.cart .reset_variations {
    visibility: hidden;
    font-size: .83em;
    border: 1px solid;
    padding: 0 15px;
    border-radius: 6px;
}

/***/
/* ── Fix v4.2.0: Cuando el Designer plugin está activo, mostrar el
   Add to Cart nativo de WooCommerce. El botón de Designer es adicional,
   no un reemplazo. ──────────────────────────────────────────────────── */
body.single-product.swc-has-configurator.swc-designer-active form.cart .single_add_to_cart_button,
body.single-product.swc-has-configurator.swc-designer-active form.cart .quantity {
  display: block !important;
  visibility: visible !important;
}

/* ── Delivery badges desde Other Settings ─────────────────────────── */
.swc-delivery-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 14px;
}
.swc-delivery-badge {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  font-size: 12px;
  line-height: 1.4;
  color: #444;
}
.swc-delivery-icon { font-size: 16px; flex-shrink: 0; }
.swc-delivery-text { display: flex; flex-direction: column; }
.swc-delivery-text strong { font-size: 12px; font-weight: 700; }
.swc-delivery-text small { font-size: 11px; color: #777; }


/* ── Modo Designer activo: color section standalone ─────────────── */
.swc-designer-color-section .swc-native-variations-slot { margin: 0; }
.swc-designer-color-section .swc-color-swatches { margin-top: 0; }

/* ── Decoration Locations Panel ─────────────────────────────────────────────
   Method selector → filtered location cards on the WooCommerce product page.
   ───────────────────────────────────────────────────────────────────────── */
.swc-deco-panel {
  margin: 28px 0 8px;
  padding: 22px 24px 20px;
  background: #f5f8fc;
  border: 1px solid #d5e2ef;
  border-radius: 8px;
}
.swc-deco-panel__head {
  margin-bottom: 14px;
}
.swc-deco-panel__title {
  font-size: 14px !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  color: #0d2b52 !important;
  text-transform: uppercase !important;
  margin: 0 0 3px !important;
  padding: 0 !important;
  border: none !important;
}
.swc-deco-panel__subtitle {
  font-size: 12px;
  color: #64748b;
  margin: 0 0 10px;
}
.swc-deco-method-select {
  padding: 7px 14px;
  border: 1.5px solid #bed4e8;
  border-radius: 5px;
  font-size: 13px;
  min-width: 220px;
  max-width: 100%;
  cursor: pointer;
  background: #fff;
  color: #0d2b52;
  font-weight: 600;
  transition: border-color .15s;
}
.swc-deco-method-select:focus {
  outline: none;
  border-color: #1a6496;
  box-shadow: 0 0 0 3px rgba(26,100,150,.12);
}

/* Cards grid */
.swc-deco-locs {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 14px;
  margin-top: 14px;
}
.swc-deco-locs__empty {
  grid-column: 1 / -1;
  font-size: 13px;
  color: #94a3b8;
  text-align: center;
  padding: 20px 0 4px;
  margin: 0;
}
.swc-deco-loc-card {
  background: #fff;
  border: 1px solid #dce8f3;
  border-radius: 6px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  transition: border-color .15s, box-shadow .15s;
}
.swc-deco-loc-card:hover {
  border-color: #1a6496;
  box-shadow: 0 2px 8px rgba(26,100,150,.10);
}
.swc-deco-loc-card--primary {
  border-color: #1a6496;
  background: linear-gradient(135deg,#f0f7ff 0%,#fff 100%);
}
.swc-deco-loc-card__name {
  font-size: 12px;
  font-weight: 700;
  color: #0d2b52;
  line-height: 1.35;
  margin-bottom: 6px;
  display: block;
}
.swc-deco-loc-card__dim-label {
  font-size: 11px;
  color: #64748b;
  display: block;
  margin-top: 2px;
}
.swc-deco-loc-card__dim {
  font-size: 12px;
  font-weight: 700;
  color: #1a6496;
  display: block;
}
.swc-deco-loc-card__badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  color: #fff;
  background: #1a6496;
  border-radius: 3px;
  padding: 2px 7px;
  margin-top: 8px;
  align-self: flex-start;
}

/* Mobile: single column */
@media (max-width: 600px) {
  .swc-deco-locs {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .swc-deco-panel {
    padding: 16px;
  }
}

/* ── Inline Decoration Method filter in configurator ───────────────────────
   The method <select> appears as a normal configurator field immediately
   above the Imprint Location dropdown. Same visual style as other fields.
   ───────────────────────────────────────────────────────────────────────── */
.swc-field-deco-method {
  border-left: 3px solid #1a6496;
  padding-left: 10px;
}
.swc-deco-method-filter {
  /* inherits .swc-select styles */
  font-weight: 600;
}
