/**
 * Estilos del configurador.
 *
 * Neutros y discretos a propósito: heredan tipografía y colores del tema
 * (Astra) usando variables de WooCommerce/tema cuando existen, para que el
 * configurador se integre visualmente sin imponer un diseño propio.
 */

.pp-configurator {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-width: 32rem;
}

.pp-fields {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.pp-field {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.pp-field__label {
  font-weight: 600;
  font-size: 0.95em;
}

.pp-field__control {
  width: 100%;
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--ast-border-color, #d4d4d4);
  border-radius: var(--ast-border-radius, 4px);
  background: #fff;
  font: inherit;
  color: inherit;
}

.pp-field__control:focus {
  outline: none;
  border-color: var(--ast-global-color-0, #2563eb);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}

.pp-summary {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--ast-border-color, #e2e2e2);
  border-radius: var(--ast-border-radius, 4px);
  background: rgba(0, 0, 0, 0.02);
}

.pp-doc-status {
  font-size: 0.9em;
  opacity: 0.85;
}

.pp-price {
  font-size: 1.5em;
  font-weight: 700;
  white-space: nowrap;
}

.pp-configurator .single_add_to_cart_button[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}

.pp-field__checkbox {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  cursor: pointer;
}

.pp-field--checkbox {
  flex-direction: row;
}

.pp-price-table {
  border-collapse: collapse;
  margin: 0.75rem 0;
  font-size: 0.95em;
}

.pp-price-table th,
.pp-price-table td {
  border: 1px solid var(--ast-border-color, #e2e2e2);
  padding: 0.4rem 0.8rem;
  text-align: left;
}

.pp-price-table th {
  background: rgba(0, 0, 0, 0.03);
}

/* Precio del configurador: neto pequeño arriba, total con IVA grande abajo. */
.pp-price {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  line-height: 1.2;
}

.pp-price-net {
  font-size: 0.8em;
  font-weight: 400;
  opacity: 0.7;
}

.pp-price-gross {
  font-size: 1.5em;
  font-weight: 700;
}

/* Tablas de tarifas desglosadas en la descripción del producto. */
.pp-price-tables {
  margin: 1.5rem 0;
}

.pp-price-table-block {
  margin-bottom: 1.25rem;
}

.pp-price-table-block h4 {
  margin: 0 0 0.4rem;
}

.pp-price-tables .pp-price-table {
  border-collapse: collapse;
  width: 100%;
  max-width: 28rem;
}

.pp-price-tables .pp-price-table th,
.pp-price-tables .pp-price-table td {
  border: 1px solid var(--ast-border-color, #e2e2e2);
  padding: 0.45rem 0.8rem;
  text-align: left;
}

.pp-price-tables .pp-price-table th {
  background: rgba(0, 0, 0, 0.03);
}

.pp-price-note {
  font-size: 0.9em;
  font-style: italic;
  margin: 0.35rem 0 0;
  opacity: 0.85;
}
