/* Native WooCommerce and Konsuelo form controls. Commerce state stays in WooCommerce. */

.woocommerce input.input-text,
.woocommerce input[type='text'],
.woocommerce input[type='email'],
.woocommerce input[type='tel'],
.woocommerce input[type='number'],
.woocommerce input[type='password'],
.woocommerce textarea,
.woocommerce select,
.k-lead-form input:not([type]),
.k-lead-form input[type='text'],
.k-lead-form input[type='email'],
.k-lead-form input[type='tel'],
.k-lead-form input[type='number'],
.k-lead-form textarea {
  width: 100%;
  min-height: 52px;
  border: 1.5px solid var(--border-default);
  border-radius: var(--radius-md);
  padding: 13px 15px;
  background: var(--surface-card);
  color: var(--text-primary);
  box-shadow: var(--shadow-inset);
  font: var(--type-body-md);
  transition: border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard);
}

.woocommerce input.input-text:hover,
.woocommerce textarea:hover,
.woocommerce select:hover,
.k-lead-form input:hover,
.k-lead-form textarea:hover { border-color: var(--border-strong); }

.woocommerce input.input-text:focus,
.woocommerce textarea:focus,
.woocommerce select:focus,
.k-lead-form input:focus,
.k-lead-form textarea:focus {
  outline: 0;
  border-color: var(--color-primary-decorative);
  box-shadow: var(--shadow-focus);
}

.woocommerce textarea,
.k-lead-form textarea { min-height: 144px; resize: vertical; }
.woocommerce form .form-row textarea.input-text {
  min-height: 144px;
  border: 1.5px solid var(--border-default);
  border-radius: var(--radius-md);
  padding: 13px 15px;
  background: var(--surface-card);
  box-shadow: var(--shadow-inset);
}
.woocommerce form .form-row textarea.input-text:hover { border-color: var(--border-strong); }
.woocommerce form .form-row textarea.input-text:focus {
  outline: 0;
  border-color: var(--color-primary-decorative);
  box-shadow: var(--shadow-focus);
}
.woocommerce ::placeholder,
.k-lead-form ::placeholder { color: var(--text-tertiary); opacity: 1; }
.woocommerce form .form-row { margin: 0 0 20px; padding: 0; }
.woocommerce form .form-row label,
.k-field label { margin-bottom: 7px; color: var(--text-primary); font: var(--type-label); }
.woocommerce form .form-row .required { color: var(--color-danger); }

/* Fully branded native checkbox and radio controls. */
.woocommerce input[type='checkbox'],
.woocommerce input[type='radio'],
.k-lead-form input[type='checkbox'],
.k-lead-form input[type='radio'] {
  appearance: none;
  -webkit-appearance: none;
  display: inline-grid;
  flex: 0 0 auto;
  width: 22px !important;
  height: 22px !important;
  min-height: 22px;
  margin: 0;
  place-content: center;
  border: 1.5px solid var(--border-strong);
  background: var(--surface-card);
  box-shadow: none;
  cursor: pointer;
  transition: border-color var(--duration-fast) var(--ease-standard), background var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);
}

.woocommerce input[type='checkbox'],
.k-lead-form input[type='checkbox'] { border-radius: 7px; }
.woocommerce input[type='radio'],
.k-lead-form input[type='radio'] { border-radius: 50%; }
.woocommerce input[type='checkbox']::before,
.k-lead-form input[type='checkbox']::before {
  width: 11px;
  height: 7px;
  border: solid var(--neutral-25);
  border-width: 0 0 2px 2px;
  content: '';
  opacity: 0;
  transform: translateY(-1px) rotate(-45deg) scale(.7);
  transition: opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-bounce);
}
.woocommerce input[type='checkbox']:checked,
.k-lead-form input[type='checkbox']:checked {
  border-color: var(--color-primary);
  background: var(--color-primary);
}
.woocommerce input[type='checkbox']:checked::before,
.k-lead-form input[type='checkbox']:checked::before { opacity: 1; transform: translateY(-1px) rotate(-45deg) scale(1); }
.woocommerce input[type='radio']:checked,
.k-lead-form input[type='radio']:checked {
  border-color: var(--color-primary);
  background: var(--color-primary);
  box-shadow: inset 0 0 0 5px var(--surface-card);
}
.woocommerce input[type='checkbox']:focus-visible,
.woocommerce input[type='radio']:focus-visible,
.k-lead-form input[type='checkbox']:focus-visible,
.k-lead-form input[type='radio']:focus-visible { outline: 0; box-shadow: var(--shadow-focus); }
.woocommerce input[type='radio']:checked:focus-visible,
.k-lead-form input[type='radio']:checked:focus-visible { box-shadow: inset 0 0 0 5px var(--surface-card), var(--shadow-focus); }

.woocommerce-form__label-for-checkbox,
.woocommerce-form__label-for-radio,
.woocommerce-shipping-fields__field-wrapper label,
.woocommerce-terms-and-conditions-wrapper label,
.k-checkbox {
  display: flex !important;
  align-items: flex-start;
  gap: 11px;
  color: var(--text-primary);
  font: var(--type-body-sm);
  cursor: pointer;
}

/* Select2 is WooCommerce's accessible enhanced select; this removes its default skin. */
.select2-container { width: 100% !important; }
.select2-container--default .select2-selection--single {
  height: 52px;
  border: 1.5px solid var(--border-default);
  border-radius: var(--radius-md);
  background: var(--surface-card);
  box-shadow: var(--shadow-inset);
  transition: border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);
}
.select2-container--default .select2-selection--single:hover { border-color: var(--border-strong); }
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--color-primary-decorative);
  box-shadow: var(--shadow-focus);
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  padding: 0 46px 0 15px;
  color: var(--text-primary);
  font: var(--type-body-md);
  line-height: 49px;
}
.select2-container--default .select2-selection--single .select2-selection__placeholder { color: var(--text-tertiary); }
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 0; right: 12px; width: 28px; height: 50px; }
.select2-container--default .select2-selection--single .select2-selection__arrow b {
  width: 9px;
  height: 9px;
  margin: -7px 0 0 -5px;
  border: solid var(--text-secondary);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  transition: transform var(--duration-fast) var(--ease-standard);
}
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b { margin-top: -2px; transform: rotate(225deg); }
.select2-dropdown {
  overflow: hidden;
  border: 1.5px solid var(--border-default);
  border-radius: var(--radius-md);
  background: var(--surface-card);
  box-shadow: var(--shadow-lg);
}
.select2-search--dropdown { padding: 10px; background: var(--surface-sunken); }
.select2-container--default .select2-search--dropdown .select2-search__field {
  min-height: 44px;
  border: 1.5px solid var(--border-default);
  border-radius: var(--radius-sm);
  padding: 9px 12px;
  background: var(--surface-card);
}
.select2-results__options { padding: 6px; }
.select2-container--default .select2-results__option { border-radius: 9px; padding: 10px 12px; color: var(--text-primary); font: var(--type-body-sm); }
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--color-primary); color: var(--text-inverse); }
.select2-container--default .select2-results__option[aria-selected='true'],
.select2-container--default .select2-results__option[data-selected='true'] { background: var(--color-primary-subtle); color: var(--color-primary); }

/* Cart: keep coupon, remove manual update and redundant pre-checkout calculations. */
.woocommerce-cart form.woocommerce-cart-form,
.woocommerce-cart .cart-collaterals .cart_totals {
  overflow: hidden;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-xl);
  background: var(--surface-card);
  box-shadow: var(--shadow-card);
}
.woocommerce-cart table.shop_table { margin: 0; border: 0; border-radius: 0; background: transparent; }
.woocommerce-cart table.shop_table thead { background: var(--surface-sunken); }
.woocommerce-cart table.shop_table th { padding: 14px 16px; font: var(--type-label); letter-spacing: var(--tracking-wide); text-transform: uppercase; }
.woocommerce-cart table.shop_table td { padding: 18px 16px; border-color: var(--border-subtle); vertical-align: middle; }
.woocommerce-cart td.product-thumbnail img { width: 76px; border-radius: var(--radius-md); background: var(--surface-sunken); }
.woocommerce-cart td.product-name a { color: var(--text-primary); font: var(--type-heading-sm); text-decoration: none; }
.woocommerce-cart td.product-price,
.woocommerce-cart td.product-subtotal { color: var(--color-primary); font: var(--type-mono); }
.woocommerce-cart .quantity .qty { min-height: 44px; border-radius: var(--radius-pill); text-align: center; font-family: var(--font-mono); }
.woocommerce-cart a.remove {
  display: inline-grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid var(--border-subtle);
  border-radius: 50%;
  background: var(--surface-card);
  color: var(--text-tertiary) !important;
  font-size: 21px;
  line-height: 1;
}
.woocommerce-cart a.remove:hover { border-color: var(--color-danger); background: var(--color-danger-subtle); color: var(--color-danger) !important; }
.woocommerce-cart td.actions { padding: 18px !important; }
.woocommerce-cart td.actions .coupon { display: grid; grid-template-columns: minmax(170px, 1fr) auto; gap: 10px; width: min(100%, 470px); }
.woocommerce-cart td.actions .coupon label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.woocommerce-cart td.actions .coupon .input-text { width: 100% !important; min-height: 48px; margin: 0; border-radius: var(--radius-pill); padding-inline: 18px; }
.woocommerce-cart td.actions .coupon .button { min-height: 48px; border-color: var(--color-primary); color: var(--color-primary); }
.woocommerce-cart td.actions .coupon .button:hover { background: var(--color-primary-subtle); }
.woocommerce-cart .actions button[name='update_cart'] { display: none !important; }
.woocommerce-cart .cart-subtotal,
.woocommerce-cart .woocommerce-shipping-totals { display: none !important; }
.woocommerce-cart .cart-collaterals .cart_totals { float: none; width: 100%; padding: clamp(22px, 3vw, 32px); }
.woocommerce-cart .cart_totals h2 { margin: 0 0 18px; font-size: clamp(1.55rem, 2.5vw, 2.1rem); }
.woocommerce-cart .cart_totals .shop_table { margin-bottom: 18px; }
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td { border: 0; padding: 12px 0; font-size: 1rem; }
.woocommerce-cart .cart_totals .order-total td { text-align: right; font-size: 1.2rem; }
.woocommerce-cart .wc-proceed-to-checkout { padding: 0; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { width: 100%; margin: 0; padding: 16px 22px; text-align: center; }
.woocommerce-cart .woocommerce.k-cart-updating { pointer-events: none; opacity: .58; transition: opacity var(--duration-fast) var(--ease-standard); }

/* Checkout: two stable cards, no browser-default form surfaces. */
.woocommerce-checkout .woocommerce-form-login,
.woocommerce-checkout .checkout_coupon {
  margin: 16px 0 26px;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  padding: 22px;
  background: var(--surface-card);
  box-shadow: var(--shadow-card);
}
.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(360px, .88fr);
  gap: 16px 48px;
  align-items: start;
}
.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 { float: none; width: 100%; }
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2,
.woocommerce-checkout #order_review {
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-xl);
  padding: clamp(22px, 3vw, 34px);
  background: var(--surface-card);
  box-shadow: var(--shadow-card);
}
.woocommerce-checkout #customer_details .col-2 { margin-top: 20px; }
.woocommerce-checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0; padding: 0 4px; font-size: clamp(1.55rem, 2.5vw, 2.1rem); }
.woocommerce-checkout #order_review { grid-column: 2; grid-row: 2; }
.woocommerce-checkout #order_review table.shop_table { margin: 0 0 24px; border: 0; border-radius: 0; background: transparent; }
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td { padding: 13px 0; border-color: var(--border-subtle); }
.woocommerce-checkout #order_review table.shop_table td { text-align: right; }
.woocommerce-checkout #payment { border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); background: var(--surface-sunken); }
.woocommerce-checkout #payment ul.payment_methods { padding: 18px; border-color: var(--border-subtle); }
.woocommerce-checkout #payment ul.payment_methods li { display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 0 11px; margin: 0; padding: 14px 0; border-bottom: 1px solid var(--border-subtle); }
.woocommerce-checkout #payment ul.payment_methods li:last-child { border-bottom: 0; }
.woocommerce-checkout #payment ul.payment_methods li > input { grid-column: 1; align-self: start; margin-top: 1px; }
.woocommerce-checkout #payment ul.payment_methods li > label { grid-column: 2; color: var(--text-primary); font: var(--type-heading-sm); cursor: pointer; }
.woocommerce-checkout #payment div.payment_box { grid-column: 1 / -1; margin: 12px 0 0; border-radius: var(--radius-md); padding: 16px; background: var(--surface-card); color: var(--text-secondary); box-shadow: var(--shadow-xs); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--surface-card); }
.woocommerce-checkout #payment .place-order { padding: 20px; }
.woocommerce-checkout #payment .woocommerce-privacy-policy-text { color: var(--text-secondary); font: var(--type-body-sm); }
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper { margin: 18px 0; }
.woocommerce-checkout #payment #place_order { width: 100%; min-height: 54px; font-size: 1rem; }
.woocommerce-checkout .woocommerce-shipping-fields h3 label { display: flex; align-items: center; gap: 11px; }

.k-lead-form { gap: 22px; border-radius: var(--radius-xl); padding: clamp(22px, 4vw, 40px); }
.k-lead-form__grid { gap: 20px 18px; }
.k-field { margin: 0; }
.k-checkbox { border-top: 1px solid var(--border-subtle); padding-top: 18px; }
.k-lead-form button[type='submit'] { min-height: 52px; padding-inline: 26px; }

@media (max-width: 980px) {
  .woocommerce-checkout form.checkout { grid-template-columns: 1fr; gap: 22px; }
  .woocommerce-checkout #customer_details,
  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout #order_review { grid-column: 1; grid-row: auto; }
}

@media (max-width: 720px) {
  .woocommerce-cart form.woocommerce-cart-form,
  .woocommerce-cart .cart-collaterals .cart_totals,
  .woocommerce-checkout #customer_details .col-1,
  .woocommerce-checkout #customer_details .col-2,
  .woocommerce-checkout #order_review { border-radius: var(--radius-lg); }
  .woocommerce-cart table.shop_table_responsive tr { border-bottom: 1px solid var(--border-subtle); padding: 15px; }
  .woocommerce-cart table.shop_table_responsive tr td { display: grid; grid-template-columns: minmax(100px, .8fr) minmax(0, 1.2fr); align-items: center; gap: 12px; padding: 10px 0; text-align: right !important; }
  .woocommerce-cart table.shop_table_responsive tr td.product-thumbnail { display: none; }
  .woocommerce-cart table.shop_table_responsive tr td.product-remove { display: block; }
  .woocommerce-cart td.actions { display: block !important; padding: 15px !important; }
  .woocommerce-cart td.actions .coupon { grid-template-columns: 1fr; width: 100%; }
  .woocommerce-cart td.actions .coupon .button { width: 100% !important; }
  .woocommerce-checkout #customer_details .col-1,
  .woocommerce-checkout #customer_details .col-2,
  .woocommerce-checkout #order_review { padding: 20px 16px; }
  .k-lead-form__grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .woocommerce-cart .woocommerce.k-cart-updating { transition: none; }
}
