/* ENVI Professional 2.7 — cart, checkout and account */
.envi-professional-theme.woocommerce-cart .site-main,
.envi-professional-theme.woocommerce-checkout .site-main,
.envi-professional-theme.woocommerce-account .site-main,
.envi-professional-theme.woocommerce-cart .ast-container,
.envi-professional-theme.woocommerce-checkout .ast-container,
.envi-professional-theme.woocommerce-account .ast-container {
  width: min(1180px, calc(100% - 48px));
  max-width: 1180px;
  margin-inline: auto;
}
.envi-professional-theme.woocommerce-cart .site-main,
.envi-professional-theme.woocommerce-checkout .site-main,
.envi-professional-theme.woocommerce-account .site-main { padding: 48px 0 86px; }
.envi-professional-theme .woocommerce h1,
.envi-professional-theme .woocommerce h2,
.envi-professional-theme .woocommerce h3 { color: var(--envi-ink); }
.envi-professional-theme .woocommerce h1,
.envi-professional-theme .woocommerce > h2 { font-family: var(--envi-font-display); font-weight: 500; }
.envi-professional-theme .woocommerce table.shop_table { border: 1px solid var(--envi-line); border-radius: 13px; border-collapse: separate; overflow: hidden; background: var(--envi-paper); }
.envi-professional-theme .woocommerce table.shop_table th { color: var(--envi-muted); font-size: 10px; font-weight: 800; letter-spacing: .05em; }
.envi-professional-theme .woocommerce table.shop_table td { color: var(--envi-ink-soft); font-size: 13px; }
.envi-professional-theme .woocommerce table.shop_table img { width: 70px; height: 70px; object-fit: contain; border-radius: 9px; background: #f6f2ee; }
.envi-professional-theme .woocommerce a.remove { color: var(--envi-muted) !important; font-weight: 400; }
.envi-professional-theme .woocommerce a.remove:hover { background: var(--envi-wine) !important; color: #fff !important; }
.envi-professional-theme .woocommerce .quantity .qty { min-height: 44px; border: 1px solid var(--envi-line-strong); border-radius: 9px; background: #fff; box-shadow: none; }
.envi-professional-theme .woocommerce button.button,
.envi-professional-theme .woocommerce a.button,
.envi-professional-theme .woocommerce input.button,
.envi-professional-theme .woocommerce #place_order {
  min-height: 44px;
  border: 1px solid var(--envi-ink) !important;
  border-radius: 9px !important;
  background: var(--envi-ink) !important;
  color: #fff !important;
  box-shadow: none !important;
  font-size: 12px !important;
  font-weight: 800 !important;
}
.envi-professional-theme .woocommerce button.button:hover,
.envi-professional-theme .woocommerce a.button:hover,
.envi-professional-theme .woocommerce input.button:hover,
.envi-professional-theme .woocommerce #place_order:hover { border-color: var(--envi-wine-dark) !important; background: var(--envi-wine-dark) !important; }
.envi-professional-theme .woocommerce form .form-row label { color: var(--envi-ink-soft); font-size: 12px; font-weight: 750; }
.envi-professional-theme .woocommerce form .form-row input.input-text,
.envi-professional-theme .woocommerce form .form-row textarea,
.envi-professional-theme .woocommerce form .form-row select,
.envi-professional-theme .select2-container .select2-selection--single {
  min-height: 46px;
  padding: 8px 11px;
  border: 1px solid var(--envi-line-strong);
  border-radius: 9px;
  background: #fff;
  color: var(--envi-ink);
  box-shadow: none;
}
.envi-professional-theme .select2-container .select2-selection--single .select2-selection__rendered { line-height: 28px; padding: 0; }
.envi-professional-theme .select2-container .select2-selection--single .select2-selection__arrow { height: 44px; }

.envi-delivery-progress { margin: 0 0 26px; padding: 15px 16px; border: 1px solid rgba(177,138,97,.35); border-radius: 11px; background: #fffaf5; }
.envi-delivery-progress > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; }
.envi-delivery-progress strong { color: var(--envi-ink); font-size: 12px; }
.envi-delivery-progress span { color: var(--envi-muted); font-size: 12px; }
.envi-delivery-progress-track { height: 3px; margin-top: 11px; overflow: hidden; border-radius: 999px; background: #eadfda; }
.envi-delivery-progress-track i { display: block; height: 100%; background: linear-gradient(90deg,var(--envi-wine),var(--envi-gold)); transition: width .25s ease; }

/* Cart */
.envi-professional-theme.woocommerce-cart .woocommerce:has(.woocommerce-cart-form) { display: grid; grid-template-columns: minmax(0,1fr) 350px; gap: 32px; align-items: start; }
.envi-professional-theme.woocommerce-cart .woocommerce:has(.woocommerce-cart-form) > .woocommerce-notices-wrapper,
.envi-professional-theme.woocommerce-cart .woocommerce:has(.woocommerce-cart-form) > .envi-delivery-progress { grid-column: 1/-1; }
.envi-professional-theme.woocommerce-cart .woocommerce-cart-form,
.envi-professional-theme.woocommerce-cart .cart-collaterals { float: none !important; width: auto !important; min-width: 0; }
.envi-professional-theme.woocommerce-cart .cart-collaterals { padding: 24px; border: 1px solid var(--envi-line); border-radius: 14px; background: var(--envi-paper); }
.envi-professional-theme.woocommerce-cart .cart-collaterals .cart_totals { float: none; width: 100%; }
.envi-professional-theme.woocommerce-cart .cart-collaterals h2 { margin: 0 0 15px; font-family: var(--envi-font-display); font-size: 28px; font-weight: 500; }
.envi-professional-theme.woocommerce-cart .wc-proceed-to-checkout { padding-bottom: 0; }
.envi-professional-theme.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { width: 100%; margin: 12px 0 0; }
.envi-empty-cart { max-width: 720px; margin: 0 auto; padding: 60px 30px; text-align: center; border: 1px solid var(--envi-line); border-radius: 20px; background: var(--envi-paper); }
.envi-empty-cart-mark { width: 64px; height: 64px; margin: 0 auto 22px; display: grid; place-items: center; border-radius: 50%; background: var(--envi-ink); color: #fff; }
.envi-empty-cart-mark svg { width: 25px; }
.envi-empty-cart .envi-eyebrow { justify-content: center; }
.envi-empty-cart h2 { margin: 0 auto 14px; font-family: var(--envi-font-display); font-size: clamp(34px,4vw,50px); font-weight: 500; }
.envi-empty-cart > p:not(.envi-eyebrow) { max-width: 540px; margin: 0 auto 24px; color: var(--envi-muted); }
.envi-empty-cart > div:last-child { display: flex; justify-content: center; gap: 18px; flex-wrap: wrap; }

/* Checkout — classic Woo markup retained for Grow compatibility. */
.envi-professional-theme.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0,1fr) 390px; gap: 0 38px; align-items: start; }
.envi-professional-theme.woocommerce-checkout form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; min-width: 0; }
.envi-professional-theme.woocommerce-checkout form.checkout #customer_details .col-1,
.envi-professional-theme.woocommerce-checkout form.checkout #customer_details .col-2 { float: none; width: 100%; }
.envi-professional-theme.woocommerce-checkout form.checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0; padding: 22px 22px 10px; border: 1px solid var(--envi-line); border-bottom: 0; border-radius: 14px 14px 0 0; background: var(--envi-paper); font-family: var(--envi-font-display); font-size: 26px; font-weight: 500; }
.envi-professional-theme.woocommerce-checkout form.checkout #order_review { grid-column: 2; grid-row: 2; min-width: 0; padding: 0 22px 22px; border: 1px solid var(--envi-line); border-top: 0; border-radius: 0 0 14px 14px; background: var(--envi-paper); }
.envi-professional-theme.woocommerce-checkout form.checkout h3 { margin-top: 0; font-family: var(--envi-font-display); font-size: 28px; font-weight: 500; }
.envi-professional-theme .woocommerce-checkout #payment { border-radius: 11px; background: var(--envi-blush-soft); }
.envi-professional-theme .woocommerce-checkout #payment ul.payment_methods { padding: 16px; border-bottom-color: var(--envi-line); }
.envi-professional-theme .woocommerce-checkout #payment div.payment_box { background: #fff; color: var(--envi-ink-soft); font-size: 11px; }
.envi-professional-theme .woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fff; }
.envi-professional-theme .woocommerce-checkout-payment img { max-width: 100%; height: auto; }
.envi-checkout-assurance { margin: 0 0 14px; padding: 12px 13px; border: 1px solid rgba(177,138,97,.34); border-radius: 9px; background: #fffaf5; }
.envi-checkout-assurance strong, .envi-checkout-assurance span { display: block; }
.envi-checkout-assurance strong { margin-bottom: 4px; font-size: 13px; }
.envi-checkout-assurance span { color: var(--envi-muted); font-size: 12px; line-height: 1.5; }

/* Account */
.envi-professional-theme.woocommerce-account .woocommerce { display: grid; grid-template-columns: 230px minmax(0,1fr); gap: 30px; align-items: start; }
.envi-professional-theme.woocommerce-account .woocommerce > h2,
.envi-professional-theme.woocommerce-account .woocommerce > form,
.envi-professional-theme.woocommerce-account #customer_login { grid-column: 1/-1; }
.envi-professional-theme.woocommerce-account .woocommerce-MyAccount-navigation,
.envi-professional-theme.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; min-width: 0; }
.envi-professional-theme.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; padding: 7px; list-style: none; border: 1px solid var(--envi-line); border-radius: 13px; background: var(--envi-paper); }
.envi-professional-theme.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 10px 11px; border-radius: 8px; color: var(--envi-ink-soft); font-size: 12px; }
.envi-professional-theme.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--envi-ink); color: #fff; }
.envi-professional-theme.woocommerce-account .woocommerce-MyAccount-content { padding: 25px; border: 1px solid var(--envi-line); border-radius: 14px; background: var(--envi-paper); }
.envi-account-benefits { margin: 0 0 28px; padding: 13px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; border: 1px solid rgba(177,138,97,.35); border-radius: 13px; background: #fffaf5; }
.envi-account-benefits > div { padding: 15px; display: flex; flex-direction: column; gap: 6px; border-radius: 9px; background: #fff; }
.envi-account-benefits span { color: var(--envi-muted); font-size: 10px; }
.envi-account-benefits strong { font-family: var(--envi-font-display); font-size: 22px; font-weight: 500; }
.envi-account-benefits > p { grid-column: 1/-1; margin: 2px 3px; color: var(--envi-muted); font-size: 11px; }
.envi-professional-theme.woocommerce-account #customer_login { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.envi-professional-theme.woocommerce-account #customer_login .u-column1,
.envi-professional-theme.woocommerce-account #customer_login .u-column2 { float: none; width: auto; padding: 25px; border: 1px solid var(--envi-line); border-radius: 14px; background: var(--envi-paper); }
.envi-professional-theme.woocommerce-account #customer_login form { margin: 0; padding: 0; border: 0; }
.envi-professional-theme.woocommerce-account .woocommerce-Addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.envi-professional-theme.woocommerce-account .woocommerce-Addresses .col-1,
.envi-professional-theme.woocommerce-account .woocommerce-Addresses .col-2 { float: none; width: auto; }

@media (max-width: 900px) {
  .envi-professional-theme.woocommerce-cart .woocommerce:has(.woocommerce-cart-form),
  .envi-professional-theme.woocommerce-checkout form.checkout,
  .envi-professional-theme.woocommerce-account .woocommerce { grid-template-columns: 1fr; gap: 24px; }
  .envi-professional-theme.woocommerce-checkout form.checkout #customer_details,
  .envi-professional-theme.woocommerce-checkout form.checkout #order_review_heading,
  .envi-professional-theme.woocommerce-checkout form.checkout #order_review { grid-column: 1; grid-row: auto; }
  .envi-professional-theme.woocommerce-account .woocommerce-MyAccount-navigation ul { display: flex; gap: 5px; overflow-x: auto; }
  .envi-professional-theme.woocommerce-account .woocommerce-MyAccount-navigation li { flex: 0 0 auto; }
  .envi-professional-theme.woocommerce-account .woocommerce-MyAccount-navigation li a { white-space: nowrap; }
  .envi-professional-theme.woocommerce-account .woocommerce-MyAccount-content { padding: 20px; }
}
@media (max-width: 620px) {
  .envi-professional-theme.woocommerce-cart .site-main,
  .envi-professional-theme.woocommerce-checkout .site-main,
  .envi-professional-theme.woocommerce-account .site-main,
  .envi-professional-theme.woocommerce-cart .ast-container,
  .envi-professional-theme.woocommerce-checkout .ast-container,
  .envi-professional-theme.woocommerce-account .ast-container { width: calc(100% - 28px); }
  .envi-delivery-progress > div:first-child { align-items: flex-start; flex-direction: column; gap: 4px; }
  .envi-professional-theme.woocommerce-cart .woocommerce-cart-form { overflow-x: auto; }
  .envi-professional-theme.woocommerce-cart .cart-collaterals,
  .envi-professional-theme.woocommerce-checkout form.checkout #order_review,
  .envi-professional-theme.woocommerce-checkout form.checkout #order_review_heading { padding-inline: 15px; }
  .envi-professional-theme.woocommerce-account #customer_login,
  .envi-professional-theme.woocommerce-account .woocommerce-Addresses,
  .envi-account-benefits { grid-template-columns: 1fr; }
  .envi-account-benefits > p { grid-column: 1; }
  .envi-professional-theme.woocommerce-account .woocommerce-MyAccount-navigation ul { display: grid; grid-template-columns: 1fr 1fr; overflow: visible; }
  .envi-professional-theme.woocommerce-account .woocommerce-MyAccount-navigation li a { height: 100%; display: grid; place-items: center; text-align: center; white-space: normal; }
  .envi-empty-cart { padding: 44px 18px; }
}
/* Transactional pages should be compact and task-focused. */
.envi-professional-theme .envi-transactional-hero { padding-top: 38px; padding-bottom: 30px; }
.envi-professional-theme .envi-transactional-hero h1 { font-size: clamp(32px,4vw,44px); }
.envi-professional-theme .envi-transactional-hero > p:last-child { font-size: 13px; }
.envi-professional-theme .envi-transactional-content { padding-top: 38px; }
