/*
Theme Name: Pura y Cristalina V2
Theme URI: https://puraycristalina.com
Author: Álvaro Serrano
Description: Tema a medida de Pura y Cristalina. La ciudad del todo. Reproduce el diseño de la web Next.js (mismo CSS, fuentes, imágenes y libro 3D) con WooCommerce nativo para tienda, carrito, pago y cuenta.
Version: 2.0.0
Requires at least: 6.5
Requires PHP: 7.4
Text Domain: pura-y-cristalina
WC requires at least: 8.0
*/

/* El diseño completo está en assets/css/site.css (CSS compilado de la web original).
   Aquí solo van los estados de JavaScript y la integración con WooCommerce. */

/* ── Estados controlados por JavaScript ───────────────────────── */
html.pyc-menu-open { overflow: hidden; }

/* ── WooCommerce: base ───────────────────────────────────────── */
.pyc-woo { color: var(--color-ivory); }
.pyc-woo a { color: var(--color-gold); }
.pyc-woo a:hover { color: var(--color-ivory); }
.pyc-woo h2, .pyc-woo h3 { font-family: var(--font-display); font-weight: 400; color: var(--color-ivory); }
.pyc-woo h2 { font-size: 2rem; margin: 1.5rem 0 1rem; }
.pyc-woo h3 { font-size: 1.5rem; margin: 1.25rem 0 .75rem; }
.pyc-woo p { margin: .5rem 0; }
/* Solo tablas clásicas de WooCommerce: los bloques (carrito/pago) traen su propia maquetación responsive. */
.pyc-woo table.shop_table, .pyc-woo table.woocommerce-table { width: 100%; border-collapse: collapse; }
.pyc-woo .shop_table th, .pyc-woo .shop_table td, .pyc-woo .woocommerce-table th, .pyc-woo .woocommerce-table td { border-bottom: 1px solid var(--color-ash); padding: .85rem .5rem; text-align: left; vertical-align: top; }
.pyc-woo .wc-block-cart-items th, .pyc-woo .wc-block-cart-items td { border-color: var(--color-ash); }
.pyc-woo .shop_table th, .pyc-woo .woocommerce-table th { font-family: var(--font-inscription); font-size: .62rem; letter-spacing: .2em; text-transform: uppercase; color: var(--color-gold); font-weight: 400; }

/* Campos */
.pyc-woo input[type="text"], .pyc-woo input[type="email"], .pyc-woo input[type="tel"], .pyc-woo input[type="password"],
.pyc-woo input[type="number"]:not(.wc-block-components-quantity-selector__input), .pyc-woo input[type="search"], .pyc-woo select, .pyc-woo textarea,
.pyc-woo .select2-container .select2-selection,
.wc-block-components-text-input input, .wc-block-components-textarea, .wc-blocks-components-select__select,
.wc-block-components-combobox .wc-block-components-combobox-control input {
  background: transparent !important; color: var(--color-ivory) !important;
  border: 1px solid color-mix(in oklab, var(--color-ivory) 15%, transparent) !important;
  border-radius: 0 !important; min-height: 3rem; padding: .6rem .9rem;
}
.pyc-woo input:focus, .pyc-woo select:focus, .pyc-woo textarea:focus,
.wc-block-components-text-input input:focus { border-color: var(--color-gold) !important; outline: none; box-shadow: none !important; }
.pyc-woo select option { background: var(--color-night); }
.pyc-woo label, .wc-block-components-text-input label, .wc-block-components-checkbox__label { color: var(--color-smoke) !important; font-size: .9rem; }
.pyc-woo .form-row { margin-bottom: 1rem; display: block; }
.pyc-woo .required { color: var(--color-ember-bright); text-decoration: none; }

/* Botones */
.pyc-woo .button, .pyc-woo button.button, .pyc-woo input.button, .pyc-woo #place_order,
.single_add_to_card_button, .pyc-woo .single_add_to_cart_button, .pyc-woo .checkout-button,
.wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
  background: var(--color-ember) !important; color: var(--color-ivory) !important; border: 0 !important; border-radius: 0 !important;
  min-height: 3rem; padding: .85rem 1.75rem !important; font-family: var(--font-sans); font-size: .78rem !important;
  letter-spacing: .22em; text-transform: uppercase; cursor: pointer; transition: background-color .3s;
  box-shadow: 0 0 0 1px rgba(214,166,109,.35), 0 10px 40px -10px rgba(166,79,43,.8);
}
.pyc-woo .button:hover, .pyc-woo #place_order:hover, .wc-block-components-button:not(.is-link):hover { background: var(--color-ember-bright) !important; }
.pyc-woo .button.alt { background: var(--color-ember) !important; }
.pyc-woo .button:disabled, .pyc-woo .button.disabled { opacity: .5; }
a.added_to_cart { display: inline-flex; align-items: center; min-height: 2.75rem; margin-left: 1rem; color: var(--color-gold); font-size: .9rem; }

/* Cantidad */
.pyc-woo .quantity .qty { width: 5rem; text-align: center; }

/* Avisos */
.pyc-woo .woocommerce-message, .pyc-woo .woocommerce-info, .pyc-woo .woocommerce-error,
.wc-block-components-notice-banner {
  list-style: none; border: 1px solid color-mix(in oklab, var(--color-gold) 40%, transparent) !important;
  background: color-mix(in oklab, var(--color-night) 95%, transparent) !important; color: var(--color-ivory) !important;
  padding: 1rem 1.25rem !important; margin: 0 0 1.5rem !important; border-radius: 0 !important;
}
.pyc-woo .woocommerce-error, .wc-block-components-notice-banner.is-error { border-color: color-mix(in oklab, var(--color-ember-bright) 60%, transparent) !important; }
.pyc-woo .woocommerce-message .button, .pyc-woo .woocommerce-info .button { float: right; margin-left: 1rem; }

/* Carrito y resumen */
.pyc-woo .cart_totals, .pyc-woo .woocommerce-checkout-review-order, .wc-block-components-sidebar,
.wc-block-cart__sidebar, .wc-block-checkout__sidebar {
  border: 1px solid var(--color-ash); background: linear-gradient(180deg,#120909,#080606); padding: 1.75rem;
}
.pyc-woo .product-thumbnail img { width: 4.5rem; height: auto; }
.pyc-woo .product-remove a { color: var(--color-smoke) !important; font-size: 1.4rem; text-decoration: none; }
.pyc-woo .order-total .amount, .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-family: var(--font-display); font-size: 1.8rem; color: var(--color-ivory); }

/* Bloques de WooCommerce (carrito y pago) */
.wc-block-components-title, .wc-block-components-checkout-step__title { font-family: var(--font-display) !important; font-weight: 400 !important; color: var(--color-ivory) !important; }
.wc-block-components-panel, .wc-block-components-totals-wrapper, .wc-block-components-checkout-step,
.wc-block-components-order-summary-item { border-color: var(--color-ash) !important; }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option { border-color: color-mix(in oklab, var(--color-ivory) 15%, transparent) !important; }
.wc-block-components-product-name, .wc-block-components-product-price, .wc-block-components-totals-item { color: var(--color-ivory) !important; }
.wc-block-components-product-metadata, .wc-block-components-checkout-step__description { color: var(--color-smoke) !important; }
.wc-block-components-quantity-selector { border-color: color-mix(in oklab, var(--color-ivory) 20%, transparent) !important; }
.wc-block-components-quantity-selector input { color: var(--color-ivory) !important; background: transparent !important; padding: 0 !important; min-height: 0; border: 0 !important; }

/* Mi cuenta */
.pyc-woo .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; border-left: 1px solid var(--color-ash); }
.pyc-woo .woocommerce-MyAccount-navigation li a { display: block; padding: .75rem 1rem; margin-left: -1px; border-left: 1px solid transparent; color: color-mix(in oklab, var(--color-ivory) 80%, transparent); text-decoration: none; }
.pyc-woo .woocommerce-MyAccount-navigation li.is-active a, .pyc-woo .woocommerce-MyAccount-navigation li a:hover { color: var(--color-gold); border-color: var(--color-gold); }
@media (min-width: 1024px) {
  .pyc-woo .woocommerce-account .woocommerce, .pyc-woo.woocommerce-account .woocommerce { display: grid; grid-template-columns: 14rem 1fr; gap: 3rem; }
}
.pyc-woo .woocommerce-form-login, .pyc-woo .woocommerce-form-register { border: 1px solid var(--color-ash); padding: 2rem; }
.pyc-woo .u-columns.col2-set { display: grid; gap: 2rem; }
@media (min-width: 768px) { .pyc-woo .u-columns.col2-set { grid-template-columns: 1fr 1fr; } }
.pyc-woo .col2-set { display: grid; gap: 2rem; }
@media (min-width: 768px) { .pyc-woo .col2-set { grid-template-columns: 1fr 1fr; } }

/* Ficha de producto: formulario nativo de añadir al carrito */
.pyc-product form.cart { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1rem; margin: 0; }
.pyc-product form.cart .quantity .qty { width: 5rem; min-height: 3rem; background: transparent; color: var(--color-ivory); border: 1px solid color-mix(in oklab, var(--color-ivory) 20%, transparent); text-align: center; }
.pyc-product form.cart .single_add_to_cart_button {
  background: var(--color-ember); color: var(--color-ivory); border: 0; min-height: 3rem; padding: 0 1.75rem;
  font-size: .78rem; letter-spacing: .22em; text-transform: uppercase; cursor: pointer;
  box-shadow: 0 0 0 1px rgba(214,166,109,.35), 0 10px 40px -10px rgba(166,79,43,.8); transition: background-color .3s;
}
.pyc-product form.cart .single_add_to_cart_button:hover { background: var(--color-ember-bright); }
.pyc-product form.cart input[type="number"]:not(.qty) { background: transparent; color: var(--color-ivory); border: 1px solid color-mix(in oklab, var(--color-ivory) 20%, transparent); min-height: 3rem; padding: 0 .75rem; }
.pyc-product .stock { display: none; }
.pyc-product .woocommerce-product-details__short-description em { font-style: italic; }

/* Paginación */
.pyc-woo .woocommerce-pagination ul { display: flex; gap: .5rem; list-style: none; padding: 0; }
.pyc-woo .woocommerce-pagination a, .pyc-woo .woocommerce-pagination span { display: inline-flex; min-width: 2.75rem; min-height: 2.75rem; align-items: center; justify-content: center; border: 1px solid var(--color-ash); }

/* Barra de administración de WordPress (solo con sesión iniciada) */
body.admin-bar header.fixed { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { body.admin-bar header.fixed { top: 0; } }

/* ── V2: confirmación de compra por AJAX ───────────────────────── */
a.added_to_cart { display: none !important; }
a.add_to_cart_button.loading { opacity: .6; cursor: wait; }
