/* ==========================================================================
   Laboratorio Freelance — WooCommerce
   Pago (bloque y clásico), Mi cuenta, acceso, avisos y página de gracias.
   No hay tienda ni carrito: redirigen a Planes o al pago.
   ========================================================================== */

.woocommerce,.woocommerce-page,.wc-block-checkout,.wc-block-cart{ font-family:var(--lf-fuente); color:var(--lf-texto); }

/* ---------- Avisos ---------- */
.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-notices-wrapper > *,.wc-block-components-notice-banner{
	list-style:none; margin:0 0 20px!important; padding:14px 18px 14px 20px!important;
	border:0!important; border-left:5px solid var(--lf-acento)!important; border-radius:4px 12px 12px 4px!important;
	background:var(--lf-fondo)!important; color:var(--lf-texto)!important; font-size:1rem;
}
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before{ display:none!important; }
.woocommerce-error,.wc-block-components-notice-banner.is-error{ border-left-color:var(--lf-primario)!important; }
.woocommerce-message .button,.woocommerce-info .button{ float:right; margin-left:12px; }
.wc-block-components-notice-banner > svg{ fill:var(--lf-texto)!important; background:transparent!important; }

/* ---------- Botones ---------- */
.woocommerce :is(a.button,button.button,input.button,#respond input#submit),
.woocommerce :is(a.button.alt,button.button.alt,input.button.alt),
.woocommerce-page #place_order,
.wc-block-components-button:not(.is-link),
.wc-block-components-checkout-place-order-button{
	display:inline-flex!important; align-items:center; justify-content:center; gap:6px;
	padding:12px 24px!important; min-height:48px;
	border:2px solid var(--lf-primario)!important; border-radius:999px!important;
	background:var(--lf-primario)!important; color:#fff!important;
	font-family:var(--lf-fuente)!important; font-weight:700!important; font-size:1.06rem!important; line-height:1.2!important;
	text-decoration:none!important; box-shadow:none!important; text-transform:none; letter-spacing:0;
}
.woocommerce :is(a.button,button.button,input.button):hover,
.wc-block-components-button:not(.is-link):hover,
.woocommerce-page #place_order:hover{ background:color-mix(in srgb,var(--lf-primario) 86%,#000)!important; border-color:color-mix(in srgb,var(--lf-primario) 86%,#000)!important; color:#fff!important; }
.woocommerce :is(a.button,button.button):disabled,.woocommerce :is(a.button,button.button).disabled{ opacity:.55; }
.wc-block-components-button.is-link,.woocommerce a.button.wc-forward.lf-secundario{ color:var(--lf-texto)!important; }
.woocommerce .woocommerce-button--previous,.woocommerce .woocommerce-button--next{ background:transparent!important; color:var(--lf-texto)!important; border-color:var(--lf-texto)!important; }

/* ---------- Campos ---------- */
.woocommerce form .form-row{ margin:0 0 16px; padding:0; }
.woocommerce form .form-row label{ font-weight:700; margin-bottom:6px; display:block; line-height:1.3; }
.woocommerce form .form-row .required{ color:var(--lf-primario); text-decoration:none; }
.woocommerce form .form-row :is(input.input-text,textarea,select),
.woocommerce :is(input.input-text,select),
.select2-container--default .select2-selection--single{
	font-family:var(--lf-fuente); font-size:1rem; color:var(--lf-texto); background:#fff;
	padding:11px 14px; min-height:48px; border:1.5px solid color-mix(in srgb,var(--lf-texto) 30%,transparent)!important; border-radius:10px!important; box-shadow:none;
}
.select2-container--default .select2-selection--single .select2-selection__rendered{ line-height:24px; padding:0; color:var(--lf-texto); }
.select2-container--default .select2-selection--single .select2-selection__arrow{ height:46px; right:8px; }
.select2-dropdown{ border:1.5px solid var(--lf-rosa)!important; border-radius:10px!important; overflow:hidden; font-family:var(--lf-fuente); }
.select2-container--default .select2-results__option--highlighted[aria-selected]{ background:var(--lf-primario)!important; }
.woocommerce form .form-row.woocommerce-invalid :is(input.input-text,select){ border-color:var(--lf-primario)!important; }
.woocommerce form .form-row.woocommerce-validated :is(input.input-text,select){ border-color:var(--lf-acento)!important; }
.woocommerce form .form-row :is(input.input-text,textarea,select):focus{ outline:0; border-color:var(--lf-primario)!important; box-shadow:0 0 0 4px color-mix(in srgb,var(--lf-primario) 22%,transparent); }

/* Campos del pago en bloque */
.wc-block-components-text-input input,.wc-block-components-text-input textarea,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
.wc-block-components-form .wc-block-components-text-input input,
.wc-blocks-components-select .wc-blocks-components-select__select{
	font-family:var(--lf-fuente)!important; color:var(--lf-texto)!important; background:#fff!important;
	border:1.5px solid color-mix(in srgb,var(--lf-texto) 30%,transparent)!important; border-radius:10px!important;
}
.wc-block-components-text-input input:focus,.wc-blocks-components-select .wc-blocks-components-select__select:focus,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input:focus{
	border-color:var(--lf-primario)!important; box-shadow:0 0 0 3px color-mix(in srgb,var(--lf-primario) 22%,transparent)!important; outline:0!important;
}
.wc-block-components-text-input label,.wc-blocks-components-select__label{ color:var(--lf-suave)!important; font-family:var(--lf-fuente)!important; }
.wc-block-components-text-input.has-error input,.wc-block-components-validation-error{ border-color:var(--lf-primario)!important; color:var(--lf-primario)!important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]{ border-color:color-mix(in srgb,var(--lf-texto) 40%,transparent)!important; border-radius:5px!important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked{ background:var(--lf-primario)!important; border-color:var(--lf-primario)!important; }
.wc-block-components-checkbox .wc-block-components-checkbox__mark{ fill:#fff!important; }
.wc-block-components-radio-control__input{ border-color:color-mix(in srgb,var(--lf-texto) 40%,transparent)!important; }
.wc-block-components-radio-control__input:checked{ border-color:var(--lf-primario)!important; }
.wc-block-components-radio-control__input:checked::before{ background:var(--lf-primario)!important; }

/* ---------- Pago (bloque) ---------- */
.wc-block-checkout{ margin-top:4px; }
.wc-block-components-title.wc-block-components-title,
.wc-block-components-checkout-step__title{ font-family:var(--lf-fuente)!important; font-weight:700!important; text-transform:uppercase; letter-spacing:.04em; font-size:1rem!important; color:var(--lf-texto)!important; }
.wc-block-components-checkout-step__description{ color:var(--lf-suave); }
.wc-block-components-checkout-step{ padding-bottom:8px; }
.wc-block-checkout__form .wc-block-components-checkout-step__container::after{ display:none; }
.wc-block-components-checkout-step__heading-container::before,.wc-block-components-checkout-step::after{ display:none!important; }
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option,
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option{ border-radius:14px; }
.wc-block-components-radio-control--highlight-checked::after{ border-color:var(--lf-rosa)!important; border-radius:14px!important; }
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted{ box-shadow:inset 0 0 0 2px var(--lf-primario)!important; background:var(--lf-fondo); border-radius:14px!important; }
.wc-block-checkout__sidebar,.wp-block-woocommerce-checkout-order-summary-block{ background:var(--lf-fondo); border-radius:16px; }
.wp-block-woocommerce-checkout-order-summary-block{ border:0!important; padding:6px 4px; }
.wc-block-components-order-summary-item__quantity{ background:var(--lf-primario)!important; color:#fff!important; border-color:#fff!important; box-shadow:none!important; }
.wc-block-components-order-summary-item__image img{ border-radius:10px; }
.wc-block-components-totals-item__label,.wc-block-components-totals-item__value{ color:var(--lf-texto); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label{ font-weight:700; font-size:1.15rem; }
.wc-block-components-totals-wrapper{ border-top-color:color-mix(in srgb,var(--lf-texto) 14%,transparent)!important; }
.wc-block-components-checkout-return-to-cart-button{ display:none!important; }
/* Acceso digital: sin notas de pedido (el pago en bloque ignora el ajuste clásico). */
.wc-block-checkout__add-note{ display:none!important; }
.wc-block-checkout__terms{ font-size:.92rem; }
.wc-block-components-panel__button{ color:var(--lf-texto)!important; font-weight:700; }
.wc-block-components-product-name{ font-weight:700; color:var(--lf-texto)!important; text-decoration:none; }
.wc-block-components-product-metadata{ color:var(--lf-suave); }

/* ---------- Pago (clásico, por si usas el shortcode) ---------- */
.woocommerce-checkout .col2-set,.woocommerce-checkout #order_review{ margin-bottom:24px; }
.woocommerce-checkout #order_review_heading,.woocommerce-billing-fields h3,.woocommerce-additional-fields h3,.woocommerce-order-details__title,.woocommerce-column__title,.woocommerce-customer-details h2{
	text-transform:uppercase; letter-spacing:.04em; font-size:1.05rem!important; margin:0 0 14px;
}
.woocommerce-checkout #order_review{ background:var(--lf-fondo); border-radius:16px; padding:20px; }
.woocommerce-checkout #payment{ background:#fff!important; border-radius:14px!important; }
.woocommerce-checkout #payment ul.payment_methods{ border-bottom:2px solid var(--lf-fondo)!important; padding:16px!important; }
.woocommerce-checkout #payment div.payment_box{ background:var(--lf-fondo)!important; color:var(--lf-texto)!important; border-radius:10px; }
.woocommerce-checkout #payment div.payment_box::before{ border-bottom-color:var(--lf-fondo)!important; }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info{ font-size:.95rem; }

/* ---------- Tablas (pedidos, suscripciones, totales) ---------- */
.woocommerce table.shop_table{ border:0!important; border-collapse:collapse!important; border-radius:0!important; margin:0 0 24px!important; width:100%; font-size:.98rem; }
.woocommerce table.shop_table :is(th,td){ border:0!important; border-bottom:1px solid var(--lf-linea)!important; padding:12px 10px!important; vertical-align:middle; }
.woocommerce table.shop_table thead th{ font-weight:700; text-transform:uppercase; letter-spacing:.04em; font-size:.82rem; color:var(--lf-suave); }
.woocommerce table.shop_table tfoot :is(th,td){ font-weight:700; }
.woocommerce table.my_account_orders .button,.woocommerce table.shop_table .button{ padding:7px 14px!important; min-height:0; font-size:.9rem!important; margin:2px 4px 2px 0; }
.woocommerce-orders-table__cell-order-status,.subscription-status{ font-weight:700; }
.woocommerce-orders-table__cell-order-number a,.woocommerce-orders-table__cell-subscription-id a{ font-weight:700; }
@media (max-width:768px){
	.woocommerce table.shop_table_responsive tr{ display:block; padding:10px 0; border-bottom:2px solid var(--lf-fondo); }
	.woocommerce table.shop_table_responsive tr td{ border:0!important; padding:6px 0!important; }
	.woocommerce table.shop_table_responsive tr td::before{ color:var(--lf-suave); }
}

/* ---------- Mi cuenta ---------- */
/* WooCommerce añade «clearfix» con ::before/::after; en rejilla ocuparían una celda. */
.woocommerce-account .woocommerce::before,.woocommerce-account .woocommerce::after,.woocommerce-account .u-columns::before,.woocommerce-account .u-columns::after{ display:none!important; }
.woocommerce-account .woocommerce{ display:grid; grid-template-columns:240px minmax(0,1fr); gap:32px; align-items:start; }
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper{ grid-column:1/-1; }
.woocommerce-account .woocommerce-MyAccount-navigation,.woocommerce-account .woocommerce-MyAccount-content{ float:none!important; width:auto!important; }
.woocommerce-MyAccount-navigation ul{ list-style:none; margin:0; padding:8px; border:2px solid var(--lf-fondo); border-radius:16px; position:sticky; top:calc(var(--lf-cabecera-alto) + 20px); }
.woocommerce-MyAccount-navigation li a{ display:block; padding:10px 14px; border-radius:10px; font-weight:700; text-decoration:none; color:var(--lf-texto); }
.woocommerce-MyAccount-navigation li a:hover{ background:var(--lf-fondo); color:var(--lf-texto); }
.woocommerce-MyAccount-navigation li.is-active a{ background:var(--lf-primario); color:#fff; }
.woocommerce-MyAccount-navigation-link--lf-ficha{ margin-top:8px; padding-top:8px; border-top:2px solid var(--lf-fondo); }
.woocommerce-MyAccount-navigation-link--customer-logout{ margin-top:8px; padding-top:8px; border-top:2px solid var(--lf-fondo); }
.woocommerce-MyAccount-navigation-link--customer-logout a{ color:var(--lf-suave); font-weight:400; }
.woocommerce-MyAccount-content h2,.woocommerce-MyAccount-content h3,.woocommerce-MyAccount-content legend{ text-transform:uppercase; letter-spacing:.04em; font-size:1.05rem; }
.woocommerce-MyAccount-content fieldset{ border:0; padding:0; margin:24px 0 0; }
.woocommerce-Addresses{ display:block; }
.woocommerce-Addresses .woocommerce-Address{ width:auto!important; float:none!important; padding:20px; background:var(--lf-fondo); border-radius:16px; max-width:520px; }
.woocommerce-Address-title{ display:flex; justify-content:space-between; align-items:center; gap:12px; }
.woocommerce-Address-title h2{ margin:0; }
.woocommerce-Address-title .edit{ font-weight:700; }
.woocommerce-Address address{ font-style:normal; margin-top:10px; }
@media (max-width:820px){
	.woocommerce-account .woocommerce{ grid-template-columns:1fr; gap:20px; }
	.woocommerce-MyAccount-navigation ul{ position:static; display:flex; gap:4px; overflow-x:auto; scrollbar-width:none; padding:6px; }
	.woocommerce-MyAccount-navigation li{ flex:none; }
	.woocommerce-MyAccount-navigation li a{ white-space:nowrap; padding:8px 12px; }
	.woocommerce-MyAccount-navigation-link--lf-ficha,.woocommerce-MyAccount-navigation-link--customer-logout{ margin:0; padding:0; border:0; }
}

/* Resumen de Mi cuenta (plantilla del tema) */
.lf-cuenta-resumen__hola{ font-size:clamp(1.4rem,1.1rem + 1vw,1.9rem); font-weight:700; text-transform:uppercase; letter-spacing:.02em; margin:0 0 14px; }
.lf-cuenta-resumen__plan{ padding:16px 20px; margin:0 0 20px; background:var(--lf-fondo); border-left:5px solid var(--lf-acento); border-radius:4px 12px 12px 4px; }
.lf-cuenta-resumen__plan p{ margin:0; font-weight:700; }
.lf-cuenta-resumen__plan--fin{ border-left-color:var(--lf-primario); }
.lf-cuenta-resumen__plan--fin .lf-boton{ margin-top:12px; }
.lf-cuenta-resumen__accesos{ list-style:none; padding:0; margin:18px 0 22px; display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:12px; }
.lf-cuenta-resumen__accesos a{ display:block; height:100%; padding:16px 18px; border:2px solid var(--lf-fondo); border-radius:14px; text-decoration:none; color:var(--lf-texto); }
.lf-cuenta-resumen__accesos a:hover{ border-color:var(--lf-rosa); color:var(--lf-texto); }
.lf-cuenta-resumen__accesos strong{ display:block; margin-bottom:4px; }
.lf-cuenta-resumen__accesos span{ font-size:.93rem; color:var(--lf-suave); }
.lf-cuenta-resumen__salir{ font-size:.93rem; color:var(--lf-suave); }

/* ---------- Acceso y registro en Mi cuenta ---------- */
.woocommerce-account:not(.logged-in) .woocommerce{ display:block; max-width:520px; margin-inline:auto; }
.woocommerce-account:not(.logged-in) .u-columns{ display:grid; gap:24px; }
.woocommerce-account:not(.logged-in) .u-column1,.woocommerce-account:not(.logged-in) .u-column2{ width:auto!important; float:none!important; }
.woocommerce form.login,.woocommerce form.register,.woocommerce form.lost_reset_password{
	border:2px solid var(--lf-fondo)!important; border-radius:18px!important; padding:24px!important; margin:0 0 20px!important;
}
.woocommerce-account:not(.logged-in) h2{ text-transform:uppercase; letter-spacing:.04em; font-size:1.2rem; margin:0 0 14px; }
.woocommerce form.login .woocommerce-form-login__rememberme{ display:flex; align-items:center; gap:8px; font-weight:400; margin:4px 0 14px; }
.woocommerce form.login .woocommerce-form-login__submit{ width:100%; margin:0!important; }
.woocommerce-LostPassword{ margin-top:14px; }
.woocommerce-LostPassword a{ font-weight:700; }
.woocommerce form .show-password-input{ top:12px!important; }

/* ---------- Pedido recibido ---------- */
.woocommerce-order{ max-width:820px; }
.lf-gracias-escuela{ padding:24px 26px; margin:0 0 28px; background:var(--lf-fondo); border-left:6px solid var(--lf-primario); border-radius:4px 16px 16px 4px; }
.lf-gracias-escuela h2{ margin:0 0 6px; text-transform:uppercase; letter-spacing:.03em; font-size:1.3rem; }
.lf-gracias-escuela__acciones{ display:flex; flex-wrap:wrap; gap:10px; margin:16px 0 0; }
.woocommerce-order .woocommerce-notice--success{ font-weight:700; font-size:1.1rem; }
.woocommerce ul.order_details{ list-style:none; padding:0; margin:0 0 28px; display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:10px; }
.woocommerce ul.order_details::before,.woocommerce ul.order_details::after{ display:none; }
.woocommerce ul.order_details li{ float:none; margin:0; padding:14px 16px; border:2px solid var(--lf-fondo)!important; border-radius:14px; font-size:.82rem; text-transform:uppercase; letter-spacing:.04em; color:var(--lf-suave); }
.woocommerce ul.order_details li strong{ display:block; margin-top:4px; font-size:1rem; text-transform:none; letter-spacing:0; color:var(--lf-texto); }
.woocommerce .woocommerce-customer-details address{ border:2px solid var(--lf-fondo)!important; border-radius:14px!important; padding:16px!important; font-style:normal; }

/* ---------- Red de seguridad: tienda y producto (redirigen a Planes) ---------- */
.lf-woo .woocommerce-products-header__title{ text-transform:uppercase; }
.woocommerce ul.products li.product .price,.woocommerce div.product p.price{ color:var(--lf-primario); font-weight:700; }
.woocommerce span.onsale{ background:var(--lf-primario); }
.woocommerce .star-rating span::before{ color:var(--lf-primario); }
