/* WooCommerce components aligned with the Celestial Custom visual language. */

.header-cart{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:7px 8px 7px 15px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.58);
  color:var(--text);
  font-size:14px;
  font-weight:600;
  white-space:nowrap;
}
.header-cart:hover{background:rgba(255,255,255,.9); box-shadow:var(--shadow-soft)}
.header-cart__count{
  display:grid;
  place-items:center;
  min-width:27px;
  height:27px;
  padding:0 7px;
  border-radius:999px;
  background:var(--violet);
  color:#fff;
  font-size:13px;
}

.commerce-shell{max-width:1120px}
.woocommerce-page .prose{max-width:none}
.woocommerce-page .page-content > .woocommerce{width:100%}
.woocommerce .woocommerce-breadcrumb{margin:0 0 22px; color:var(--muted); font-size:14px}
.breadcrumbs{margin:0 0 22px}
.breadcrumbs ol{list-style:none; display:flex; flex-wrap:wrap; gap:7px; margin:0; padding:0}
.breadcrumbs li:not(:last-child)::after{content:"/"; margin-left:7px; color:rgba(23,23,23,.35)}
.breadcrumbs a{color:var(--muted)}
.breadcrumbs a:hover{color:var(--text)}

.woocommerce-products-header__title,
.woocommerce div.product .product_title,
.woocommerce-account .woocommerce-MyAccount-content h2{color:var(--night)}
.woocommerce .woocommerce-result-count{margin:12px 0 26px; color:var(--muted)}
.woocommerce .woocommerce-ordering{margin:0 0 24px}
.woocommerce .woocommerce-ordering select,
.woocommerce form .form-row select,
.woocommerce .select2-container--default .select2-selection--single{
  min-height:48px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.68);
  padding:11px 13px;
  color:var(--text);
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered{padding:0; line-height:24px}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow{height:46px; right:7px}

.woocommerce ul.products{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  clear:both;
  margin:0 0 40px;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after{display:none}
.woocommerce ul.products li.product{
  position:relative;
  display:flex;
  flex-direction:column;
  float:none !important;
  width:auto !important;
  margin:0 !important;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--glass);
  box-shadow:var(--shadow-soft);
  overflow:hidden;
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link{display:flex; flex:1; flex-direction:column}
.woocommerce ul.products li.product img{
  width:100%;
  aspect-ratio:1 / 1;
  object-fit:cover;
  margin:0;
  display:block;
  background:#fff;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{padding:20px 20px 7px; font-size:19px; color:var(--night)}
.woocommerce ul.products li.product .star-rating{margin:0 20px 11px; color:var(--violet)}
.woocommerce ul.products li.product .price{
  margin-top:auto;
  padding:0 20px 17px;
  color:var(--text);
  font-size:17px;
  font-weight:600;
}
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart{margin:0 20px 20px; text-align:center}
.woocommerce span.onsale{
  top:14px;
  left:14px;
  min-height:auto;
  min-width:auto;
  padding:7px 11px;
  border-radius:999px;
  background:var(--violet);
  line-height:1;
  font-size:13px;
}

.woocommerce div.product{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(330px,.92fr);
  gap:28px;
}
.woocommerce div.product div.images,
.woocommerce div.product div.summary{
  float:none;
  width:auto;
  margin:0 0 38px;
}
.woocommerce div.product div.images img{
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:#fff;
}
.woocommerce div.product div.images .flex-control-thumbs{display:flex; gap:10px; margin-top:10px}
.woocommerce div.product div.images .flex-control-thumbs li{float:none; flex:1}
.woocommerce div.product div.images .flex-control-thumbs img{border-radius:12px}
.woocommerce div.product .summary{
  align-self:start;
  padding:28px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--glass);
  box-shadow:var(--shadow-soft);
}
.woocommerce div.product .product_title{margin:0 0 12px; font-size:clamp(29px,3vw,38px)}
.woocommerce div.product .summary .price{margin:0 0 20px; color:var(--text); font-size:25px; font-weight:600}
.woocommerce div.product form.cart{display:flex; flex-wrap:wrap; gap:12px; margin:25px 0}
.woocommerce div.product form.cart .variations{margin-bottom:12px}
.woocommerce div.product form.cart .variations label{font-weight:600; color:var(--text)}
.woocommerce div.product form.cart .button{flex:1}
.woocommerce div.product .product_meta{padding-top:18px; border-top:1px solid var(--line); color:var(--muted); font-size:14px}
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells{grid-column:1 / -1; width:100%}
.woocommerce div.product .woocommerce-tabs ul.tabs{padding:0; margin:0 0 22px}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{border-color:var(--line)}
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  margin:0 6px 0 0;
  border-color:var(--line);
  border-radius:14px 14px 0 0;
  background:rgba(255,255,255,.42);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{background:var(--glass)}
.woocommerce div.product .woocommerce-tabs .panel{
  margin:0 0 42px;
  padding:25px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--glass);
}
.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2{margin:0 0 22px}

.woocommerce .quantity .qty{
  width:84px;
  min-height:49px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.72);
  padding:10px 8px;
}

.woocommerce table.shop_table{
  border:1px solid var(--line);
  border-collapse:separate;
  border-radius:var(--radius);
  background:var(--glass);
  overflow:hidden;
}
.woocommerce table.shop_table th{padding:16px 17px; color:var(--night)}
.woocommerce table.shop_table td{padding:15px 17px; border-color:var(--line)}
.woocommerce table.shop_table img{width:68px; border-radius:10px}
.woocommerce-cart table.cart .product-name a{color:var(--night); font-weight:600}
.woocommerce-cart table.cart td.actions .coupon{display:flex; gap:10px}
.woocommerce-cart table.cart td.actions .coupon .input-text{width:auto; min-width:185px}
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-checkout #customer_details,
.woocommerce-order .woocommerce-order-details,
.woocommerce-order .woocommerce-customer-details{
  padding:25px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--glass);
  box-shadow:var(--shadow-soft);
}
.woocommerce .cart-collaterals .cart_totals{float:right; width:min(100%,470px)}
.woocommerce .cart-collaterals .cart_totals h2,
.woocommerce-checkout h3{margin-top:0}

.woocommerce-checkout form.checkout{display:grid; grid-template-columns:minmax(0,1fr) minmax(340px,.86fr); gap:26px}
.woocommerce-checkout #customer_details{float:none; width:auto}
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2{float:none; width:100%}
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review{float:none; width:auto; grid-column:2}
.woocommerce-checkout #order_review_heading{grid-row:1; margin:0 0 -8px; align-self:end}
.woocommerce-checkout #order_review{grid-row:2; align-self:start}
.woocommerce-checkout #customer_details{grid-row:1 / span 2}
.woocommerce-checkout #payment{
  margin-top:20px;
  border-radius:16px;
  background:rgba(255,255,255,.52);
}
.woocommerce-checkout #payment div.payment_box{background:#fff}
.woocommerce-checkout #payment div.payment_box::before{border-bottom-color:#fff}

.woocommerce form .form-row{margin:0 0 17px}
.woocommerce form .form-row label{margin-bottom:7px; color:var(--text); font-weight:600}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea{
  min-height:48px;
  border:1px solid var(--line);
  border-radius:14px;
  padding:11px 13px;
  background:rgba(255,255,255,.68);
  color:var(--text);
}
.woocommerce form .form-row textarea{min-height:122px}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus{outline:2px solid rgba(123,92,255,.22); border-color:var(--violet)}

/* Account: a focused login card, then a stable sidebar/dashboard layout. */
.woocommerce-account .page-header{margin-bottom:34px}
.woocommerce-account .page-header .h2{margin:0; color:var(--night)}
.woocommerce-account:not(.logged-in) article.prose{
  max-width:590px;
  margin-right:auto;
  margin-left:auto;
}
.woocommerce-account:not(.logged-in) .woocommerce > h2{
  margin:0 0 18px;
  font-size:30px;
  color:var(--night);
}
.woocommerce-account:not(.logged-in) form.login,
.woocommerce-account:not(.logged-in) form.register,
.woocommerce-account:not(.logged-in) form.lost_reset_password{
  max-width:none;
  margin:0;
  padding:30px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--glass);
  box-shadow:var(--shadow-soft);
}
.woocommerce-account form.login .form-row:not(.form-row-wide){
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:14px;
}
.woocommerce-account form.login .woocommerce-form-login__rememberme{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin:0 auto 0 0;
  font-weight:400;
}
.woocommerce-account form.login .woocommerce-form-login__submit{margin:0}
.woocommerce-account form.login .lost_password{margin:18px 0 0}

body.logged-in.woocommerce-account .page-content > .woocommerce{
  display:grid;
  grid-template-columns:255px minmax(0,1fr);
  gap:24px 28px;
  align-items:start;
}
body.logged-in.woocommerce-account .woocommerce-notices-wrapper{
  grid-column:1 / -1;
}
body.logged-in.woocommerce-account .woocommerce-notices-wrapper:empty{display:none}
.woocommerce-account .woocommerce-MyAccount-navigation{
  float:none;
  width:100%;
  padding:10px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--glass);
  box-shadow:var(--shadow-soft);
}
body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation{
  grid-column:1;
  position:sticky;
  top:94px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none; display:grid; gap:4px; margin:0; padding:0}
.woocommerce-account .woocommerce-MyAccount-navigation li{margin:0}
.woocommerce-account .woocommerce-MyAccount-navigation a{
  display:block;
  padding:12px 14px;
  border-radius:12px;
  color:var(--muted);
  line-height:1.35;
}
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation a:hover{
  background:rgba(123,92,255,.1);
  color:var(--violet);
}
.woocommerce-account .woocommerce-MyAccount-content{float:none; width:100%; min-width:0}
body.logged-in.woocommerce-account .woocommerce-MyAccount-content{
  grid-column:2;
  min-height:280px;
  padding:30px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--glass);
  box-shadow:var(--shadow-soft);
}
.woocommerce-account .woocommerce-MyAccount-content > :first-child{margin-top:0}
.woocommerce-account .woocommerce-MyAccount-content > :last-child{margin-bottom:0}
.woocommerce-account .woocommerce-MyAccount-content p a:not(.button){color:var(--violet); text-decoration:underline; text-underline-offset:3px}
.woocommerce-account .woocommerce-MyAccount-content > p:first-child{
  max-width:620px;
  margin-bottom:26px;
  color:var(--muted);
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:26px;
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address{
  display:flex;
  flex-direction:column;
  float:none;
  width:100%;
  min-height:225px;
  padding:22px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(255,255,255,.44);
}
.woocommerce-account .woocommerce-Address-title.title{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin:0 0 18px;
  padding:0 0 16px;
  border-bottom:1px solid var(--line);
}
.woocommerce-account .woocommerce-Address-title.title::after{display:none}
.woocommerce-account .woocommerce-Address-title.title h2{
  float:none;
  margin:0;
  font-size:22px;
  line-height:1.25;
  color:var(--night);
}
.woocommerce-account .woocommerce-Address-title.title .edit{
  display:inline-flex;
  align-items:center;
  flex-shrink:0;
  float:none;
  min-height:37px;
  padding:7px 13px;
  border:1px solid rgba(123,92,255,.18);
  border-radius:999px;
  background:rgba(123,92,255,.08);
  color:var(--violet);
  font-size:14px;
  text-decoration:none;
}
.woocommerce-account .woocommerce-Address-title.title .edit:hover{background:rgba(123,92,255,.14)}
.woocommerce-account .woocommerce-Address address{
  margin:auto 0 0;
  color:var(--muted);
  font-style:normal;
  line-height:1.85;
}
.woocommerce-account .woocommerce-MyAccount-content form > h2{
  margin:0 0 24px;
  color:var(--night);
  font-size:30px;
}
.woocommerce-account .woocommerce-address-fields{
  max-width:720px;
}
.woocommerce-account .woocommerce-address-fields__field-wrapper{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:16px;
}
.woocommerce-account .woocommerce-address-fields__field-wrapper .form-row{
  float:none;
  clear:none;
  width:100%;
}
.woocommerce-account .woocommerce-address-fields__field-wrapper .form-row-wide{
  grid-column:1 / -1;
}
.woocommerce-account .woocommerce-address-fields .select2-container{
  width:100% !important;
}
.woocommerce-account .woocommerce-address-fields > p:last-child{
  margin:10px 0 0;
}

.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error{
  margin:0 0 25px;
  padding:18px 22px 18px 53px;
  border:1px solid var(--line);
  border-top:3px solid var(--violet);
  border-radius:var(--radius);
  background:var(--glass);
  box-shadow:var(--shadow-soft);
  color:var(--text);
}
.woocommerce .woocommerce-error{border-top-color:#b9415b}
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-message::before{color:var(--violet)}
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.added_to_cart,
.wc-block-components-button{
  min-height:47px;
  border:1px solid transparent;
  border-radius:999px;
  background:var(--violet);
  color:#fff;
  padding:13px 20px;
  font-weight:600;
  box-shadow:0 9px 22px rgba(123,92,255,.21);
  transition:transform .16s ease, box-shadow .16s ease;
}
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt{background:var(--violet)}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.wc-block-components-button:hover{
  transform:translateY(-1px);
  background:#6949ef;
  color:#fff;
  box-shadow:0 12px 26px rgba(123,92,255,.27);
}
.woocommerce a.added_to_cart{display:inline-flex; align-items:center; justify-content:center; background:transparent; border-color:var(--line); color:var(--text); box-shadow:none}

.wc-block-cart,
.wc-block-checkout{color:var(--text)}
.wc-block-components-sidebar{padding:24px; border:1px solid var(--line); border-radius:var(--radius); background:var(--glass)}
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input{border-radius:14px !important}

@media (max-width:980px){
  .woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}
  .woocommerce div.product{grid-template-columns:1fr}
  .woocommerce-checkout form.checkout{display:block}
  .woocommerce-checkout #order_review_heading{margin-top:30px}
  body.logged-in.woocommerce-account .page-content > .woocommerce{
    grid-template-columns:220px minmax(0,1fr);
    gap:20px;
  }
  body.logged-in.woocommerce-account .woocommerce-MyAccount-content{padding:23px}
}
@media (max-width:720px){
  .header-cart{padding-left:11px}
  .header-cart > span:first-child{display:none}
  .woocommerce ul.products{grid-template-columns:1fr}
  .woocommerce div.product .summary,
  .woocommerce .cart-collaterals .cart_totals,
  .woocommerce-checkout #order_review,
  .woocommerce-checkout #customer_details{padding:18px}
  .woocommerce-cart table.cart td.actions .coupon{display:grid; float:none; margin-bottom:12px}
  .woocommerce-cart table.cart td.actions .coupon .input-text{width:100%}
  .woocommerce-account:not(.logged-in) form.login,
  .woocommerce-account:not(.logged-in) form.register,
  .woocommerce-account:not(.logged-in) form.lost_reset_password{padding:22px 18px}
  body.logged-in.woocommerce-account .page-content > .woocommerce{display:block}
  body.logged-in.woocommerce-account .woocommerce-notices-wrapper{margin-bottom:18px}
  body.logged-in.woocommerce-account .woocommerce-MyAccount-navigation{
    position:static;
    margin-bottom:22px;
  }
  body.logged-in.woocommerce-account .woocommerce-MyAccount-content{padding:20px 18px}
  .woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses{grid-template-columns:1fr}
  .woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address{min-height:0; padding:18px}
  .woocommerce-account .woocommerce-Address-title.title{flex-direction:column}
  .woocommerce-account .woocommerce-address-fields__field-wrapper{grid-template-columns:1fr}
  .woocommerce-account .woocommerce-address-fields__field-wrapper .form-row{grid-column:1}
}
