/* D'Shop — elementos de WooCommerce con la marca: avisos, formularios, tablas y botones.
   (Los estilos propios de WooCommerce están desactivados: ver inc/carrito.php.) */

/* ── Avisos ── */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { list-style: none; margin: 0 0 var(--space-4); padding: 12px var(--space-4); border-radius: var(--radius-md); font-size: 15px; line-height: 22px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.woocommerce-error { display: block; background: color-mix(in srgb, var(--error) 7%, var(--fondo)); border: 1px solid var(--error); color: var(--error); }
.woocommerce-error li { margin: 2px 0; }
.woocommerce-error a { color: var(--error); font-weight: 600; }
.woocommerce-info { background: var(--lavanda-claro); color: var(--morado); font-weight: 600; }
.woocommerce-info a { color: var(--morado); }
/* El aviso de éxito es el "toast" oscuro del diseño */
.woocommerce-message { background: var(--tinta); color: var(--sobre-morado); box-shadow: var(--shadow-lg); }
.woocommerce-message::before { content: ""; flex: none; width: 28px; height: 28px; border-radius: var(--radius-full); background: var(--exito) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4L18 8'/%3E%3C/svg%3E") center / 18px no-repeat; }
.woocommerce-message a { color: var(--chispa); font-weight: 700; text-decoration: none; margin-left: auto; }
.woocommerce-message a:hover { text-decoration: underline; }
.woocommerce-message .aviso-texto { flex: 1; }
.woocommerce-message .button, .woocommerce-info .button { order: 3; }

/* ── Formularios ── */
.woocommerce form .form-row, .woocommerce-page form .form-row { margin: 0 0 var(--space-4); padding: 0; }
.form-row label, .woocommerce-form label { display: block; margin-bottom: 6px; font-size: 14px; line-height: 20px; font-weight: 600; color: var(--tinta); }
.form-row .required, .woocommerce-form .required { color: var(--error); text-decoration: none; border: 0; }
.form-row .optional { font-weight: 400; color: var(--tinta-suave); }
.woocommerce-input-wrapper { display: block; }
.woocommerce input.input-text, .woocommerce textarea, .woocommerce select,
.woocommerce-page input.input-text, .woocommerce-page textarea, .woocommerce-page select,
.select2-container--default .select2-selection--single {
	box-sizing: border-box; width: 100%; min-height: 44px; padding: 0 14px; font: 400 16px/24px var(--font-sans); color: var(--tinta);
	background: var(--fondo); border: 1px solid var(--borde-control); border-radius: var(--radius-sm); box-shadow: var(--shadow-sm);
}
.woocommerce textarea { padding: 10px 14px; min-height: 96px; }
.woocommerce select { appearance: auto; }
.woocommerce input.input-text:hover, .woocommerce textarea:hover, .woocommerce select:hover { border-color: var(--morado-medio); }
.woocommerce input.input-text:focus, .woocommerce textarea:focus, .woocommerce select:focus { outline: 2px solid transparent; border-color: var(--morado); box-shadow: var(--focus-ring); }
.woocommerce-invalid input.input-text, .woocommerce-invalid select, .woocommerce-invalid .select2-selection { border-color: var(--error); }
.woocommerce-invalid-required-field .required { color: var(--error); }
.select2-container--default .select2-selection--single { display: flex; align-items: center; }
.select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 24px; color: var(--tinta); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 42px; right: 8px; }
.select2-dropdown { border-color: var(--borde-control); border-radius: var(--radius-sm); }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--morado); }
.form-row-first, .form-row-last { width: calc(50% - 8px); display: inline-block; vertical-align: top; }
.woocommerce form .form-row.form-row-first, .woocommerce-page form .form-row.form-row-first { margin-right: 16px; }
.woocommerce form .form-row.form-row-last, .woocommerce-page form .form-row.form-row-last { margin-right: 0; }
.form-row-wide { clear: both; }
.woocommerce-form__label-for-checkbox { display: flex !important; gap: var(--space-2); align-items: flex-start; font-weight: 400; }
.woocommerce-form__label-for-checkbox input { margin-top: 4px; accent-color: var(--morado); }
.show-password-input { display: none; }
.clear { clear: both; }
@media (max-width: 600px) { .form-row-first, .form-row-last { width: 100%; margin-right: 0; display: block; } }

/* ── Envío contraentrega (aclaración) ── */
.envio-nota { margin: 0; padding: 12px 14px; border-radius: var(--radius-md); background: var(--lavanda-claro); color: var(--morado); font-size: 14px; line-height: 20px; font-weight: 600; }
.envio-nota--resumen { margin-top: calc(-1 * var(--space-2)); }
.envio-contraentrega { font-weight: 500; color: var(--tinta-suave); }
tr.envio-aclaracion td { padding: 0 0 12px !important; border-bottom: 0 !important; text-align: left !important; }
.woocommerce-order .envio-nota { margin-top: var(--space-4); }

/* ── Botones de WooCommerce (clase .button y envíos) ── */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .woocommerce button[type="submit"].alt, #place_order {
	display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-height: 44px; padding: 0 20px; border: 2px solid transparent; border-radius: var(--radius-md);
	background: var(--morado); color: var(--sobre-morado); font: 600 16px/24px var(--font-sans); cursor: pointer; text-decoration: none; transition: background-color .15s;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, #place_order:hover { background: var(--morado-profundo); }
.woocommerce a.button.alt, #place_order { background: var(--morado); }
.woocommerce a.button:focus-visible, .woocommerce button.button:focus-visible, #place_order:focus-visible { box-shadow: var(--focus-ring); outline: 2px solid transparent; }
.woocommerce button.button:disabled, .woocommerce button.button.disabled { background: var(--fondo-suave); color: var(--tinta-suave); cursor: not-allowed; }

/* ── Tablas ── */
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; margin: 0 0 var(--space-4); font-size: 15px; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 12px 8px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--linea); }
.woocommerce table.shop_table thead th { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--tinta-suave); }
.woocommerce table.shop_table td:last-child, .woocommerce table.shop_table th:last-child { text-align: right; }

/* ── Estrellas de reseñas ── */
.star-rating { position: relative; display: inline-block; overflow: hidden; width: 5.4em; height: 1.1em; line-height: 1; font-size: 15px; font-family: star; letter-spacing: 0; }
.star-rating::before { content: "\2606\2606\2606\2606\2606"; color: var(--lavanda); position: absolute; left: 0; top: 0; font-family: var(--font-sans); letter-spacing: .1em; }
.star-rating span { position: absolute; left: 0; top: 0; overflow: hidden; padding-top: 1.5em; height: 0; }
.star-rating span::before { content: "\2605\2605\2605\2605\2605"; color: var(--chispa); position: absolute; left: 0; top: 0; font-family: var(--font-sans); letter-spacing: .1em; padding-top: 0; height: 1.1em; }
