/* ==========================================================================
   AlphaBuds theme — My Account, Cart and Checkout (WooCommerce default markup)
   ========================================================================== */

.woocommerce-account .os-shop,
.woocommerce-cart .os-shop,
.woocommerce-checkout .os-shop{padding-top:26px;}

/* Shared page heading for the Woo flows */
.woocommerce-account .os-page__t,
.woocommerce-cart .os-page__t,
.woocommerce-checkout .os-page__t{margin-bottom:20px;}

/* --------------------------------------------------------------------------
   Form controls — one definition for every Woo form
   -------------------------------------------------------------------------- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single,
.woocommerce-page form .form-row input.input-text,
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="password"],
.woocommerce input[type="number"]{
  width:100%;
  height:50px;
  border:1.5px solid var(--os-line);
  border-radius:var(--os-r);
  background:#fff;
  padding:0 15px;
  font-size:.95rem;
  font-family:var(--os-font);
  color:var(--os-ink);
  box-shadow:none;
  transition:border-color .16s ease,box-shadow .16s ease;
}
.woocommerce form .form-row textarea{height:auto;min-height:96px;padding:13px 15px;line-height:1.5;}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce input:focus{
  border-color:var(--os-green);
  box-shadow:0 0 0 4px rgba(23,117,60,.1);
  outline:none;
}
.woocommerce form .form-row label,
.woocommerce-checkout label{
  display:block;
  font-size:.85rem;font-weight:650;color:var(--os-ink-2);
  margin-bottom:6px;
}
.woocommerce form .form-row label .required{color:var(--os-red);text-decoration:none;}
.woocommerce form .form-row{margin-bottom:16px;padding:0;}
.woocommerce .select2-container--default .select2-selection--single{
  height:50px;border:1.5px solid var(--os-line);border-radius:var(--os-r);
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered{
  line-height:47px;padding-left:15px;color:var(--os-ink);
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow{height:48px;}

/* Checkboxes */
.woocommerce input[type="checkbox"],
.woocommerce input[type="radio"]{
  accent-color:var(--os-green);width:17px;height:17px;margin-right:7px;vertical-align:middle;
}

/* --------------------------------------------------------------------------
   Buttons — Woo prints a lot of `.button`; give them the house look
   -------------------------------------------------------------------------- */
.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button,
.woocommerce button[type="submit"]{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:50px;padding:14px 26px;
  border:1.5px solid transparent;border-radius:var(--os-r-pill);
  background:var(--os-green);color:#fff;
  font-family:var(--os-font);font-size:.95rem;font-weight:720;
  letter-spacing:0;text-transform:none;text-decoration:none;
  box-shadow:none;transition:background .16s ease,color .16s ease,border-color .16s ease;
}
.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button:hover{background:var(--os-green-600);color:#fff;}

/* Secondary treatment for the quieter actions */
.woocommerce a.button.wc-backward,
.woocommerce button[name="update_cart"],
.woocommerce .cart .button[name="apply_coupon"]{
  background:#fff;color:var(--os-ink);border-color:var(--os-line);
}
.woocommerce a.button.wc-backward:hover,
.woocommerce button[name="update_cart"]:hover,
.woocommerce .cart .button[name="apply_coupon"]:hover{
  background:var(--os-surface-2);border-color:var(--os-ink);color:var(--os-ink);
}
.woocommerce button[name="update_cart"]:disabled{opacity:.45;}

/* --------------------------------------------------------------------------
   My Account — logged out (login / register)
   -------------------------------------------------------------------------- */
.woocommerce-account .u-columns{
  display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start;
  max-width:1000px;
}
.woocommerce-account .u-columns::before,
.woocommerce-account .u-columns::after{content:none !important;display:none !important;}
.woocommerce-account .u-columns .col-1,
.woocommerce-account .u-columns .col-2{width:auto;float:none;max-width:none;padding:0;}
.woocommerce-account .u-columns h2{
  font-size:1.25rem;font-weight:760;margin:0 0 14px;letter-spacing:-.02em;
}
.woocommerce-account form.login,
.woocommerce-account form.register{
  border:1px solid var(--os-line);border-radius:var(--os-r-lg);
  padding:24px;margin:0;background:#fff;
}
.woocommerce-account form.login .button,
.woocommerce-account form.register .button{width:100%;margin-top:4px;}
.woocommerce-account .woocommerce-form-login__rememberme{
  display:inline-flex;align-items:center;gap:6px;font-size:.88rem;
  color:var(--os-muted);font-weight:600;margin:14px 0 0;
}
.woocommerce-account .lost_password{margin:14px 0 0;font-size:.88rem;}
.woocommerce-account .lost_password a{color:var(--os-green);font-weight:650;}
.woocommerce-account .woocommerce-privacy-policy-text p{
  font-size:.83rem;line-height:1.55;color:var(--os-muted);
}
@media (max-width:820px){
  .woocommerce-account .u-columns{grid-template-columns:1fr;gap:18px;}
}

/* --------------------------------------------------------------------------
   My Account — logged in
   -------------------------------------------------------------------------- */
.woocommerce-account .woocommerce-MyAccount-navigation{
  float:none;width:auto;
}
.woocommerce-account .woocommerce{
  display:grid;grid-template-columns:250px minmax(0,1fr);gap:32px;align-items:start;
}
.woocommerce-account.logged-in .woocommerce > .u-columns{grid-column:1 / -1;}
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;}
.woocommerce-account .woocommerce-MyAccount-navigation li{margin:0 0 4px;}
.woocommerce-account .woocommerce-MyAccount-navigation li a{
  display:block;padding:12px 15px;border-radius:var(--os-r);
  color:var(--os-ink-2);font-weight:640;font-size:.94rem;text-decoration:none;
  transition:background .14s ease,color .14s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{
  background:var(--os-surface-2);color:var(--os-green);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{
  background:var(--os-green-050);color:var(--os-green-700);font-weight:720;
}
.woocommerce-account .woocommerce-MyAccount-content{
  float:none;width:auto;
  border:1px solid var(--os-line);border-radius:var(--os-r-lg);
  padding:24px;background:#fff;
}
.woocommerce-account .woocommerce-MyAccount-content > :first-child{margin-top:0;}
@media (max-width:860px){
  .woocommerce-account .woocommerce{grid-template-columns:1fr;gap:18px;}
  .woocommerce-account .woocommerce-MyAccount-navigation ul{
    display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;
    scrollbar-width:none;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation ul::-webkit-scrollbar{display:none;}
  .woocommerce-account .woocommerce-MyAccount-navigation li{margin:0;flex:none;}
  .woocommerce-account .woocommerce-MyAccount-navigation li a{
    white-space:nowrap;border:1.5px solid var(--os-line);border-radius:var(--os-r-pill);
    padding:10px 16px;font-size:.87rem;
  }
}

/* --------------------------------------------------------------------------
   Cart
   -------------------------------------------------------------------------- */
.woocommerce-cart .woocommerce{
  display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);
  gap:32px;align-items:start;
}
.woocommerce-cart .woocommerce-notices-wrapper,
.woocommerce-cart .woocommerce > form.woocommerce-cart-form{grid-column:1;}
.woocommerce-cart .cart-collaterals{grid-column:2;width:auto;float:none;}
.woocommerce-cart .cross-sells{grid-column:1 / -1;}
@media (max-width:940px){
  .woocommerce-cart .woocommerce{grid-template-columns:1fr;gap:22px;}
  .woocommerce-cart .cart-collaterals{grid-column:1;}
}

.woocommerce table.shop_table{
  border:1px solid var(--os-line);border-radius:var(--os-r-lg);
  border-collapse:separate;border-spacing:0;overflow:hidden;margin:0;
}
.woocommerce table.shop_table th{
  background:var(--os-surface-2);
  font-size:.74rem;font-weight:760;letter-spacing:.06em;text-transform:uppercase;
  color:var(--os-muted);padding:14px 16px;text-align:left;border:0;
}
.woocommerce table.shop_table td{
  padding:16px;border:0;border-top:1px solid var(--os-line-2);vertical-align:middle;
}
.woocommerce table.shop_table tbody tr:first-child td{border-top:1px solid var(--os-line);}
.woocommerce table.cart img{width:64px;border-radius:var(--os-r-sm);border:1px solid var(--os-line);background:#fff;}
.woocommerce table.cart .product-name a{color:var(--os-ink);font-weight:660;text-decoration:none;}
.woocommerce table.cart .product-name a:hover{color:var(--os-green);}
.woocommerce a.remove{
  color:var(--os-muted) !important;font-weight:700;
  width:26px;height:26px;line-height:24px;border-radius:50%;
}
.woocommerce a.remove:hover{background:var(--os-red-050);color:var(--os-red) !important;}

.woocommerce .cart .coupon{display:flex;gap:9px;align-items:center;}
.woocommerce .cart .coupon #coupon_code{max-width:230px;height:50px;}
.woocommerce .cart-collaterals .cart_totals{width:auto;float:none;}
.woocommerce .cart_totals h2{font-size:1.15rem;font-weight:760;margin:0 0 14px;}
.woocommerce .cart_totals table.shop_table td,
.woocommerce .cart_totals table.shop_table th{padding:13px 16px;font-size:.94rem;}
.woocommerce .cart_totals .order-total td,
.woocommerce .cart_totals .order-total th{
  font-size:1.05rem;font-weight:780;color:var(--os-ink);background:var(--os-surface-2);
}
.woocommerce .wc-proceed-to-checkout{padding:16px 0 0;}
.woocommerce .wc-proceed-to-checkout a.checkout-button{width:100%;min-height:54px;font-size:1rem;}

/* --------------------------------------------------------------------------
   Checkout
   -------------------------------------------------------------------------- */
.woocommerce-checkout form.checkout{
  display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  gap:34px;align-items:start;
}
.woocommerce-checkout form.checkout #customer_details{grid-column:1;}
.woocommerce-checkout form.checkout > h3#order_review_heading,
.woocommerce-checkout form.checkout > #order_review{grid-column:2;}
.woocommerce-checkout form.checkout .col2-set{width:auto;}
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2{width:auto;float:none;max-width:none;}
.woocommerce-checkout .col2-set::before,
.woocommerce-checkout .col2-set::after{content:none !important;display:none !important;}
@media (max-width:940px){
  .woocommerce-checkout form.checkout{grid-template-columns:1fr;gap:22px;}
  .woocommerce-checkout form.checkout > h3#order_review_heading,
  .woocommerce-checkout form.checkout > #order_review{grid-column:1;}
}

.woocommerce-checkout h3{font-size:1.15rem;font-weight:760;margin:0 0 16px;letter-spacing:-.02em;}
.woocommerce-checkout #order_review_heading{margin-top:0;}
.woocommerce-checkout #customer_details .woocommerce-billing-fields,
.woocommerce-checkout #customer_details .woocommerce-shipping-fields,
.woocommerce-checkout #customer_details .woocommerce-additional-fields{
  border:1px solid var(--os-line);border-radius:var(--os-r-lg);
  padding:22px;margin-bottom:18px;background:#fff;
}
.woocommerce-checkout #order_review{
  border:1px solid var(--os-line);border-radius:var(--os-r-lg);
  padding:22px;background:var(--os-surface-2);
  position:sticky;top:16px;
}
.woocommerce-checkout #order_review table.shop_table{background:#fff;}
.woocommerce-checkout #payment{background:transparent;border-radius:0;padding:0;margin-top:18px;}
.woocommerce-checkout #payment ul.payment_methods{
  border:0;padding:0;margin:0 0 14px;list-style:none;
}
.woocommerce-checkout #payment ul.payment_methods li{
  border:1.5px solid var(--os-line);border-radius:var(--os-r);
  background:#fff;padding:14px 16px;margin:0 0 9px;
}
.woocommerce-checkout #payment ul.payment_methods li label{
  display:inline;font-weight:680;color:var(--os-ink);font-size:.94rem;margin:0;
}
.woocommerce-checkout #payment div.payment_box{
  background:var(--os-green-050);border-radius:var(--os-r);
  margin:12px 0 0;padding:13px 15px;font-size:.88rem;line-height:1.55;color:var(--os-green-700);
}
.woocommerce-checkout #payment div.payment_box::before{display:none;}
.woocommerce-checkout #place_order{width:100%;min-height:56px;font-size:1.02rem;font-weight:760;}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper{
  font-size:.86rem;color:var(--os-muted);margin-bottom:14px;
}

/* Login / coupon prompts at the top of checkout */
.woocommerce-checkout .woocommerce-form-login,
.woocommerce-checkout .checkout_coupon{
  border:1px solid var(--os-line);border-radius:var(--os-r-lg);
  padding:22px;background:#fff;margin-bottom:18px;
}

/* Order received / thank-you */
.woocommerce ul.order_details{
  list-style:none;display:flex;flex-wrap:wrap;gap:20px;margin:0 0 26px;padding:20px;
  border:1px solid var(--os-line);border-radius:var(--os-r-lg);background:var(--os-surface-2);
}
.woocommerce ul.order_details li{
  border:0;padding:0;margin:0;font-size:.74rem;font-weight:760;
  letter-spacing:.06em;text-transform:uppercase;color:var(--os-muted);
}
.woocommerce ul.order_details li strong{
  display:block;margin-top:5px;font-size:1rem;font-weight:740;
  letter-spacing:-.01em;text-transform:none;color:var(--os-ink);
}

/* --------------------------------------------------------------------------
   WooCommerce's `.button.alt` ships its own brand purple (#7f54b3) at a higher
   specificity than our element-level button rules — it was colouring
   "Proceed to checkout" and "Place order".
   -------------------------------------------------------------------------- */
.woocommerce .button.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce .wc-proceed-to-checkout a.checkout-button{
  background:var(--os-green) !important;
  color:#fff !important;
  border-color:var(--os-green) !important;
}
.woocommerce .button.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover{
  background:var(--os-green-600) !important;
  border-color:var(--os-green-600) !important;
}
.woocommerce .button.alt:disabled,
.woocommerce .button.alt.disabled{background:#9bb3a2 !important;border-color:#9bb3a2 !important;}

/* --------------------------------------------------------------------------
   Coupon row — the input was rendering at ~80px because of its size attribute
   -------------------------------------------------------------------------- */
.woocommerce .cart .coupon{
  display:flex;gap:9px;align-items:center;flex-wrap:wrap;width:auto;
}
.woocommerce .cart .coupon #coupon_code,
.woocommerce .cart .coupon input.input-text{
  flex:1 1 190px;width:auto !important;min-width:170px;max-width:280px;height:50px;
}
.woocommerce .cart .coupon .button{flex:0 0 auto;}
.woocommerce table.cart td.actions{padding:16px;}
.woocommerce table.cart td.actions .button{margin-left:auto;}

/* --------------------------------------------------------------------------
   Delivery-type selector (pi-woocommerce-order-date-time-and-type-pro).
   The plugin paints the chosen option solid black; make it a brand chip.
   -------------------------------------------------------------------------- */
.pi_delivery_type{display:flex;gap:9px;flex-wrap:wrap;align-items:center;}
.pi_delivery_type .pi-single-type,
.woocommerce .pi_delivery_type label.pi-single-type{
  display:inline-flex;align-items:center;justify-content:center;
  width:auto !important;min-height:44px;padding:11px 22px;margin:0;
  background:#fff !important;color:var(--os-ink) !important;
  border:1.5px solid var(--os-line) !important;
  border-radius:var(--os-r-pill) !important;
  font-family:var(--os-font);font-size:.9rem;font-weight:700;
  cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease;
}
.pi_delivery_type .pi-single-type:hover{
  border-color:var(--os-green) !important;color:var(--os-green) !important;
}
.pi_delivery_type input[type="radio"]:checked + .pi-single-type,
.pi_delivery_type .pi-single-type.pi-selected,
.pi_delivery_type .pi-single-type.selected{
  background:var(--os-green) !important;color:#fff !important;
  border-color:var(--os-green) !important;
}
.pisol-dtt-cart-row td,
#pi_delivery_type_row{padding:14px 16px !important;}

/* Delivery date/time fields at checkout inherit the standard input look */
.pisol-delivery-date input,
.pisol-delivery-time select,
#pi_delivery_date,
#pi_delivery_time{height:50px;border:1.5px solid var(--os-line);border-radius:var(--os-r);background:#fff;}

/* --------------------------------------------------------------------------
   Checkout grid placement.
   #customer_details is very tall and occupied a single auto row, so the forced
   column-2 order review auto-placed into the NEXT row — i.e. 1,600px down the
   page, leaving the summary column blank. Let the details panel span the two
   rows the heading + review need beside it. Anything else the checkout prints
   before them (delivery type / date / time) spans the full width.
   -------------------------------------------------------------------------- */
.woocommerce-checkout form.checkout > *{grid-column:1 / -1;}
.woocommerce-checkout form.checkout #customer_details{grid-column:1;}
/* The separate <h3> heading forced a second grid row in column 2, and the two
   rows split the tall details panel's height — parking the summary ~430px
   below its own title. Fold the title into the panel so column 2 is one item. */
.woocommerce-checkout form.checkout > h3#order_review_heading{display:none;}
.woocommerce-checkout form.checkout > #order_review{
  grid-column:2;align-self:start;
}
.woocommerce-checkout #order_review::before{
  content:"Your order";
  display:block;margin:0 0 16px;
  font-size:1.15rem;font-weight:760;letter-spacing:-.02em;color:var(--os-ink);
}
@media (max-width:940px){
  .woocommerce-checkout form.checkout > *,
  .woocommerce-checkout form.checkout #customer_details,
  .woocommerce-checkout form.checkout > #order_review{
    grid-column:1;grid-row:auto;
  }
  .woocommerce-checkout #order_review{position:static;}
}

/* Paired form rows (first/last) stack on phones — the delivery Date field was
   truncating to "September 9, 20…" beside the Time select at 390px. */
@media (max-width:640px){
  .woocommerce form .form-row-first,
  .woocommerce form .form-row-last,
  .woocommerce-page form .form-row-first,
  .woocommerce-page form .form-row-last,
  #pi_delivery_date_field,
  #pi_delivery_time_field{
    width:100% !important;float:none !important;margin-right:0 !important;
  }
  .woocommerce form .form-row-first + .form-row-last{margin-top:16px;}
}
