
/*
 QP INDIA — CART + CHECKOUT v1.6
 UI polish:
 - Corrects input text/label vertical alignment
 - Makes Phone Number required and removes "(optional)" visually
 - Keeps the successful v1.5 left/right checkout layout
*/

:root{
 --qp-blue:#24488f;
 --qp-blue-2:#17386f;
 --qp-ink:#14213d;
 --qp-muted:#667085;
 --qp-soft:#f5f7fb;
 --qp-line:#e5e9f1;
 --qp-white:#fff;
 --qp-radius:20px;
 --qp-shadow:0 16px 45px rgba(22,37,63,.09);
}

body.woocommerce-cart,
body.woocommerce-checkout{
 background:
   radial-gradient(circle at 12% 0%,rgba(36,72,143,.07),transparent 28%),
   var(--qp-soft)!important;
}

body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-checkout .wp-block-woocommerce-checkout{
 width:100vw!important;
 max-width:none!important;
 margin-left:calc(50% - 50vw)!important;
 margin-right:calc(50% - 50vw)!important;
 box-sizing:border-box!important;
}

/* =========================
   CART — preserve v1.5
   ========================= */
body.woocommerce-cart .wp-block-woocommerce-cart{
 padding:48px 24px 80px!important;
}

body.woocommerce-cart .wc-block-cart{
 width:min(1180px,100%)!important;
 max-width:1180px!important;
 margin:0 auto!important;
 display:grid!important;
 grid-template-columns:minmax(0,1fr) 360px!important;
 gap:30px!important;
 align-items:start!important;
}

body.woocommerce-cart .wc-block-cart__main,
body.woocommerce-cart .wc-block-cart__sidebar{
 background:#fff!important;
 border:1px solid var(--qp-line)!important;
 border-radius:var(--qp-radius)!important;
 box-shadow:var(--qp-shadow)!important;
 box-sizing:border-box!important;
}

body.woocommerce-cart .wc-block-cart__main{
 min-width:0!important;
 width:100%!important;
 padding:30px!important;
}

body.woocommerce-cart .wc-block-cart__sidebar{
 min-width:0!important;
 width:100%!important;
 padding:25px!important;
 position:sticky!important;
 top:25px!important;
 align-self:start!important;
}

/* =========================
   CHECKOUT — preserve v1.5
   ========================= */
body.woocommerce-checkout .wp-block-woocommerce-checkout{
 padding:48px 24px 90px!important;
}

body.woocommerce-checkout .wc-block-checkout{
 width:1180px!important;
 max-width:1180px!important;
 margin:0 auto!important;
 padding:0!important;
 display:grid!important;
 grid-template-columns:minmax(0,790px) 360px!important;
 gap:30px!important;
 align-items:start!important;
 justify-content:center!important;
}

body.woocommerce-checkout .wc-block-checkout__main{
 grid-column:1!important;
 grid-row:1!important;
 width:790px!important;
 max-width:790px!important;
 min-width:0!important;
 background:#fff!important;
 border:1px solid var(--qp-line)!important;
 border-radius:var(--qp-radius)!important;
 box-shadow:var(--qp-shadow)!important;
 padding:38px!important;
 box-sizing:border-box!important;
}

body.woocommerce-checkout .wc-block-checkout__sidebar{
 grid-column:2!important;
 grid-row:1!important;
 width:360px!important;
 max-width:360px!important;
 min-width:360px!important;
 background:#fff!important;
 border:1px solid var(--qp-line)!important;
 border-radius:var(--qp-radius)!important;
 box-shadow:var(--qp-shadow)!important;
 padding:25px!important;
 box-sizing:border-box!important;
 position:sticky!important;
 top:25px!important;
 align-self:start!important;
 justify-self:end!important;
}

body.woocommerce-checkout .wc-block-checkout__main > *,
body.woocommerce-checkout .wc-block-checkout__main .wc-block-components-checkout-step,
body.woocommerce-checkout .wc-block-checkout__main .wc-block-components-checkout-step__container{
 width:100%!important;
 max-width:none!important;
 box-sizing:border-box!important;
}

/* =========================
   HEADER
   ========================= */
body.woocommerce-checkout .wc-block-checkout__main:before{
 content:"Secure checkout";
 display:block;
 color:var(--qp-ink);
 font-size:42px!important;
 line-height:1.05;
 font-weight:850;
 letter-spacing:-.045em;
 margin:0 0 8px!important;
}

body.woocommerce-checkout .wc-block-checkout__main:after{
 content:"Complete your order safely and securely.";
 display:block;
 color:var(--qp-muted);
 font-size:15px;
 line-height:1.55;
 margin:0 0 30px!important;
}

/* =========================
   CONTACT / BILLING
   ========================= */
body.woocommerce-checkout .wc-block-checkout__main .wc-block-components-checkout-step{
 width:100%!important;
 max-width:none!important;
 padding:0 0 26px!important;
 margin:0 0 26px!important;
 border-bottom:1px solid var(--qp-line);
}

body.woocommerce-checkout .wc-block-components-checkout-step__title{
 color:var(--qp-ink)!important;
 font-size:21px!important;
 font-weight:800!important;
}

body.woocommerce-checkout .wc-block-checkout__main .wc-block-components-text-input{
 width:100%!important;
 max-width:none!important;
}

body.woocommerce-checkout .wc-block-checkout__main .wc-block-components-address-form{
 width:100%!important;
 max-width:none!important;
 display:grid!important;
 grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
 column-gap:16px!important;
 row-gap:4px!important;
}

body.woocommerce-checkout .wc-block-checkout__main .wc-block-components-address-form > *{
 width:100%!important;
 max-width:none!important;
 min-width:0!important;
 box-sizing:border-box!important;
}

/* INPUT ALIGNMENT FIX
   Floating labels sit consistently near the top.
   Values sit on the same baseline across all fields.
*/
body.woocommerce-checkout .wc-block-components-text-input{
 position:relative!important;
}

body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-address-form input,
body.woocommerce-checkout .wc-block-components-address-form select,
body.woocommerce-checkout .wc-block-components-text-input textarea{
 width:100%!important;
 max-width:none!important;
 min-height:56px!important;
 height:56px!important;
 border:1px solid #d7deea!important;
 border-radius:12px!important;
 background:#fff!important;
 color:var(--qp-ink)!important;
 padding:20px 14px 8px!important;
 box-shadow:none!important;
 box-sizing:border-box!important;
 font-size:15px!important;
 line-height:1.25!important;
 vertical-align:middle!important;
}

body.woocommerce-checkout .wc-block-components-address-form select{
 padding:16px 38px 8px 14px!important;
 line-height:1.2!important;
}

/* Labels align at the same top position */
body.woocommerce-checkout .wc-block-components-text-input label,
body.woocommerce-checkout .wc-block-components-address-form label{
 color:#667085!important;
 font-size:12px!important;
 line-height:1!important;
 font-weight:650!important;
}

/* Keep entered values visually centered */
body.woocommerce-checkout .wc-block-components-text-input input:not(:placeholder-shown),
body.woocommerce-checkout .wc-block-components-address-form input:not(:placeholder-shown){
 padding-top:21px!important;
 padding-bottom:7px!important;
}

/* Guest message */
body.woocommerce-checkout .wc-block-components-checkout-step__content{
 width:100%!important;
}

/* =========================
   PHONE — REQUIRED
   ========================= */

/* Hide optional text from WooCommerce's generated label */
body.woocommerce-checkout .wc-block-components-address-form__phone label .optional,
body.woocommerce-checkout .wc-block-components-address-form__phone .optional,
body.woocommerce-checkout .wc-block-components-text-input__phone label .optional,
body.woocommerce-checkout .wc-block-components-text-input__phone .optional,
body.woocommerce-checkout label[for*="phone"] .optional{
 display:none!important;
}

/* If the theme/block renders "(optional)" as text, hide it without
   hiding the actual Phone label. */
body.woocommerce-checkout label[for="billing_phone"] .optional{
 display:none!important;
}

/* Required indicator */
body.woocommerce-checkout .wc-block-components-address-form__phone label:after,
body.woocommerce-checkout label[for="billing_phone"]:after{
 content:" *";
 color:#d92d20;
 font-weight:800;
}

/* =========================
   PAYMENT
   ========================= */
body.woocommerce-checkout .wc-block-components-radio-control{
 width:100%!important;
 border:1px solid var(--qp-line)!important;
 border-radius:14px!important;
 overflow:hidden!important;
 background:#fff!important;
}

body.woocommerce-checkout .wc-block-components-radio-control__option{
 padding:18px!important;
}

body.woocommerce-checkout .wc-block-components-radio-control__option-checked{
 background:#f5f8ff!important;
 box-shadow:inset 4px 0 0 var(--qp-blue);
}

body.woocommerce-checkout .wc-block-components-radio-control__label{
 color:var(--qp-ink)!important;
 font-weight:750!important;
}

body.woocommerce-checkout .wc-block-components-radio-control__description{
 color:var(--qp-muted)!important;
 line-height:1.5!important;
}

/* =========================
   RIGHT ORDER SUMMARY
   ========================= */
body.woocommerce-checkout .wc-block-checkout__sidebar > *,
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary,
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-wrapper{
 width:100%!important;
 max-width:none!important;
}

body.woocommerce-checkout .wc-block-components-order-summary__title{
 color:var(--qp-ink)!important;
 font-size:20px!important;
 font-weight:850!important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item{
 padding:15px 0!important;
 border-bottom:1px solid var(--qp-line)!important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__image{
 border-radius:12px!important;
 overflow:hidden!important;
 background:#f1f4f8!important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__quantity{
 background:var(--qp-blue)!important;
 color:#fff!important;
 border-color:#fff!important;
}

body.woocommerce-checkout .wc-block-components-totals-item{
 padding:12px 0!important;
 border-bottom:1px solid var(--qp-line)!important;
}

body.woocommerce-checkout .wc-block-components-totals-item__label{
 color:#526071!important;
}

body.woocommerce-checkout .wc-block-components-totals-item__value{
 color:var(--qp-ink)!important;
 font-weight:700!important;
}

body.woocommerce-checkout .wc-block-components-totals-footer-item{
 border-bottom:0!important;
 padding-top:18px!important;
}

body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
 color:var(--qp-ink)!important;
 font-size:21px!important;
 font-weight:850!important;
}

/* =========================
   PLACE ORDER
   ========================= */
body.woocommerce-checkout .wc-block-components-checkout-place-order-button{
 width:100%!important;
 min-height:58px!important;
 border:0!important;
 border-radius:13px!important;
 background:linear-gradient(135deg,var(--qp-blue),var(--qp-blue-2))!important;
 color:#fff!important;
 font-size:15px!important;
 font-weight:850!important;
 letter-spacing:.02em!important;
 box-shadow:0 10px 22px rgba(36,72,143,.23)!important;
}

/* =========================
   CLASSIC FALLBACK
   ========================= */
body.woocommerce-checkout form.checkout{
 width:1180px!important;
 max-width:1180px!important;
 margin:40px auto 80px!important;
 display:grid!important;
 grid-template-columns:minmax(0,790px) 360px!important;
 gap:30px!important;
 align-items:start!important;
}

body.woocommerce-checkout form.checkout > #customer_details{
 background:#fff!important;
 border:1px solid var(--qp-line)!important;
 border-radius:20px!important;
 box-shadow:var(--qp-shadow)!important;
 padding:38px!important;
}

body.woocommerce-checkout form.checkout > #order_review{
 background:#fff!important;
 border:1px solid var(--qp-line)!important;
 border-radius:20px!important;
 box-shadow:var(--qp-shadow)!important;
 padding:25px!important;
 position:sticky!important;
 top:25px!important;
}

/* =========================
   RESPONSIVE
   ========================= */
@media(max-width:900px){
 body.woocommerce-cart .wc-block-cart,
 body.woocommerce-checkout .wc-block-checkout,
 body.woocommerce-checkout form.checkout{
   width:min(720px,calc(100% - 28px))!important;
   grid-template-columns:1fr!important;
   gap:18px!important;
 }

 body.woocommerce-checkout .wc-block-checkout__main{
   grid-column:1!important;
   grid-row:1!important;
   width:100%!important;
 }

 body.woocommerce-checkout .wc-block-checkout__sidebar{
   grid-column:1!important;
   grid-row:2!important;
   width:100%!important;
   min-width:0!important;
   max-width:none!important;
   position:static!important;
 }
}

@media(max-width:620px){
 body.woocommerce-cart .wp-block-woocommerce-cart,
 body.woocommerce-checkout .wp-block-woocommerce-checkout{
   padding:24px 14px 55px!important;
 }

 body.woocommerce-cart .wc-block-cart__main,
 body.woocommerce-cart .wc-block-cart__sidebar,
 body.woocommerce-checkout .wc-block-checkout__main,
 body.woocommerce-checkout .wc-block-checkout__sidebar{
   padding:18px!important;
   border-radius:16px!important;
 }

 body.woocommerce-checkout .wc-block-checkout__main:before{
   font-size:30px!important;
 }

 body.woocommerce-checkout .wc-block-checkout__main .wc-block-components-address-form{
   grid-template-columns:1fr!important;
 }
}
