/**
 * WS Checkout.
 * Scoped checkout styles with BEM aliases.
 */

body.page-template-page-ws-checkout{
  background:
    radial-gradient(140% 180% at 0% 0%, #ffffff 0, var(--checkout-page-bg, #f6f7f4) 42%, #f3f4ff 70%, var(--checkout-page-bg, #f6f7f4) 100%);
}

.checkout-page-notice{
  max-width:1100px;
  margin:60px auto;
  padding:0 16px;
}

.checkout-page-notice p,
.checkout-page-notice h2{
  margin:0 0 12px;
}

:where(.checkout-page, .wsco){
  --checkout-radius:16px;
  --checkout-line:var(--checkout-border, rgba(0, 0, 0, 0.14));
  --checkout-surface:var(--checkout-card-bg, #fff);
  --checkout-shadow:var(--checkout-card-shadow, 0 14px 48px rgba(0, 0, 0, 0.07));
  --checkout-focus-ring:var(--checkout-input-focus-ring, rgba(0, 0, 0, 0.12));
  --wsco-space-1:4px;
  --wsco-space-2:8px;
  --wsco-space-3:12px;
  --wsco-space-4:16px;
  --wsco-space-5:20px;
  --wsco-space-6:24px;
  color:var(--text, var(--ink, #000));
}

.page-template-page-ws-checkout :where(.checkout-page, .wsco){
  padding-top:96px;
}

body.admin-bar.page-template-page-ws-checkout :where(.checkout-page, .wsco){
  padding-top:120px;
}

:where(.checkout-page__grid, .wsco__grid){
  max-width:1400px;
  margin:28px auto 60px;
  padding:0 16px;
  display:grid;
  grid-template-columns:minmax(0, 800px) minmax(0, 560px);
  gap:32px;
  justify-content:center;
  align-items:start;
}

:where(.checkout-page__main, .wsco__left){
  min-width:0;
  padding-right:80px;
}

:where(.checkout-page__hero, .wsco__hero){
  margin-bottom:28px;
}

:where(.checkout-page__eyebrow, .wsco__eyebrow){
  margin:0 0 8px !important;
  font-family:var(--font-body) !important;
  font-weight:600 !important;
  font-size:12px !important;
  line-height:1.3 !important;
  letter-spacing:0.14em !important;
  text-transform:uppercase !important;
  color:var(--muted, #4a4a4a) !important;
}

:where(.checkout-page__title, .wsco__h1){
  margin:0 0 12px !important;
}

.page-template-page-ws-checkout :where(.checkout-page__hero, .wsco__hero) :where(.checkout-page__title, .wsco__h1){
  margin-top:0 !important;
}

:where(.checkout-page__lead, .wsco__lead){
  max-width:560px;
  margin:0 !important;
  font-family:var(--font-body) !important;
  color:var(--muted, #4a4a4a) !important;
}

:where(.checkout-page__card, .wsco__card){
  padding:24px;
  border:1px solid var(--checkout-line);
  border-radius:var(--checkout-radius);
  background:var(--checkout-surface);
  box-shadow:var(--checkout-shadow);
}

:where(.checkout-page__card--form, .wsco__card--form){
  border-top-width:3px;
  border-top-color:var(--accent, #000);
}

:where(.checkout-page__card, .wsco__card) + :where(.checkout-page__card, .wsco__card){
  margin-top:16px;
}

:where(.checkout-page__card-head, .wsco__card-head){
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:20px;
}

:where(.checkout-page__card-head--compact, .wsco__card-head--compact){
  margin-bottom:16px;
}

:where(.checkout-page__card-title, .wsco__card-title){
  margin:0 !important;
}

:where(.checkout-page__step, .wsco__step){
  flex:0 0 40px;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border:1px solid rgba(17, 18, 22, 0.25);
  border-radius:12px;
  background:#ffd152;
  box-shadow:0 8px 22px rgba(255, 209, 82, 0.28);
  color:#111216 !important;
  font-family:var(--font-body) !important;
  font-weight:700 !important;
  font-size:15px !important;
  line-height:1 !important;
}

:where(.checkout-page__step--soft, .wsco__step--soft){
  background:rgba(0, 0, 0, 0.04);
  box-shadow:none;
  color:var(--text, var(--ink, #000)) !important;
  font-size:18px !important;
}

:where(.checkout-page__step--icon, .wsco__step--icon){
  font-size:0 !important;
  line-height:0 !important;
}

:where(.checkout-page__step-icon, .wsco__step-icon){
  display:block;
  width:22px;
  height:22px;
  flex:0 0 22px;
  shape-rendering:geometricPrecision;
}

:where(.checkout-page__step-icon, .wsco__step-icon) *{
  vector-effect:non-scaling-stroke;
}

:where(.checkout-page__fields-grid, .wsco__grid-2){
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  column-gap:16px;
  row-gap:14px;
}

:where(.checkout-page__consent, .wsco__consent){
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin:16px 2px 20px;
  padding:14px 16px;
  border:1px solid var(--checkout-line);
  border-radius:14px;
  background:color-mix(in srgb, var(--checkout-surface) 92%, var(--checkout-page-bg, #f6f7f4));
  color:var(--muted, #4a4a4a) !important;
}

:where(.checkout-page__consent, .wsco__consent) input{
  margin-top:4px;
  accent-color:var(--accent, #000);
}

.page-template-page-ws-checkout label:where(.checkout-page__consent, .wsco__consent) .wsco__consent-text{
  font-family:var(--font-body) !important;
  font-size:13px !important;
  line-height:1.45 !important;
  font-weight:500 !important;
  color:var(--muted, #4a4a4a) !important;
}

.page-template-page-ws-checkout label:where(.checkout-page__consent, .wsco__consent) .wsco__consent-text a{
  color:var(--accent, #000) !important;
  text-decoration:underline;
  text-underline-offset:2px;
}

:where(.checkout-page__sidebar, .wsco__right){
  position:relative;
  min-width:0;
}

:where(.checkout-page__sticky, .wsco__sticky){
  position:sticky;
  top:100px;
  display:flex;
  flex-direction:column;
  gap:16px;
}

@media (min-width:981px){
  :where(.checkout-page__sidebar, .wsco__right){
    margin-top:120px;
  }
}

:where(.checkout-page__order-top, .wsco__order-top){
  display:flex;
  align-items:flex-start;
  gap:20px;
}

:where(.checkout-page__order-image, .wsco__order-img){
  width:152px;
  height:212px;
  flex:0 0 152px;
  overflow:hidden;
  border:1px solid var(--checkout-line);
  border-radius:12px;
  background:#f4f4f4;
  display:flex;
  align-items:center;
  justify-content:center;
}

:where(.checkout-page__order-image, .wsco__order-img) img{
  width:auto !important;
  height:auto !important;
  max-width:100% !important;
  max-height:100% !important;
  display:block;
  object-fit:contain !important;
  object-position:center center !important;
  transform:none !important;
  padding:2px;
}

.wsco__thumb{
  width:auto !important;
  height:auto !important;
  max-width:100% !important;
  max-height:100% !important;
  display:block;
  object-fit:contain !important;
  object-position:center center !important;
}

:where(.checkout-page__order-info, .wsco__order-info){
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:12px;
}

:where(.checkout-page__order-name, .wsco__order-name){
  color:var(--text, var(--ink, #000)) !important;
  font-family:var(--font-head) !important;
  font-weight:700 !important;
  font-size:var(--h5-size, 22px) !important;
  line-height:var(--h-lh, 1) !important;
  letter-spacing:var(--h-track, -0.025em) !important;
}

:where(.checkout-page__order-list, .wsco__order-list){
  margin:0;
}

:where(.checkout-page__order-list, .wsco__order-list) > div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 0;
  border-bottom:1px dashed var(--checkout-line);
}

:where(.checkout-page__order-list, .wsco__order-list) > div:last-child{
  border-bottom:0;
}

:where(.checkout-page__order-list, .wsco__order-list) dt{
  color:var(--muted, #4a4a4a) !important;
  font-family:var(--font-body) !important;
  font-weight:600 !important;
  font-size:var(--txt-size, 18px) !important;
}

:where(.checkout-page__order-list, .wsco__order-list) dd{
  margin:0;
  font-family:var(--font-body) !important;
  font-weight:500 !important;
  font-size:var(--txt-size, 18px) !important;
}

:where(.checkout-page__order-total, .wsco__order-total){
  margin-top:4px;
  padding-top:12px !important;
  border-top:2px solid var(--checkout-line) !important;
}

:where(.checkout-page__order-total, .wsco__order-total) dt,
:where(.checkout-page__order-total, .wsco__order-total) dd{
  font-weight:700 !important;
}

:where(.checkout-page__badge, .wsco__badge){
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  height:26px;
  padding:0 10px;
  border-radius:999px;
  background:var(--checkout-badge-bg, #c41e1a);
  color:var(--checkout-badge-color, #fff) !important;
  font-family:var(--font-body) !important;
  font-weight:700 !important;
  font-size:12px !important;
  line-height:1 !important;
}

:where(.checkout-page__mini, .wsco__mini){
  display:flex;
  justify-content:space-between;
  gap:8px;
  padding:8px 0;
  border-top:1px solid var(--checkout-line);
  font-family:var(--font-body) !important;
  font-size:var(--txt-size, 18px) !important;
}

:where(.checkout-page__mini, .wsco__mini):first-of-type{
  margin-top:12px;
}

:where(.checkout-page__delivery-intro, .wsco__delivery-intro){
  margin:0 0 16px !important;
  color:var(--muted, #4a4a4a) !important;
  font-family:var(--font-body) !important;
  font-size:var(--txt-size, 18px) !important;
  line-height:var(--txt-lh, 1.5) !important;
}

:where(.checkout-page__delivery-grid, .wsco__delivery-grid){
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

:where(.checkout-page__delivery-pill, .wsco__delivery-pill){
  padding:12px 14px;
  border:1px solid var(--checkout-line);
  border-radius:14px;
  background:color-mix(in srgb, var(--checkout-page-bg, #f6f7f4) 55%, #fff);
}

:where(.checkout-page__delivery-label, .wsco__delivery-label){
  display:block;
  margin-bottom:4px;
  color:var(--text, var(--ink, #000)) !important;
  font-family:var(--font-body) !important;
  font-weight:700 !important;
  font-size:14px !important;
}

:where(.checkout-page__delivery-value, .wsco__delivery-value){
  color:var(--muted, #4a4a4a) !important;
  font-family:var(--font-body) !important;
  font-weight:500 !important;
  font-size:14px !important;
  line-height:1.4 !important;
}

.page-template-page-ws-checkout .woocommerce-error,
.page-template-page-ws-checkout .woocommerce-info,
.page-template-page-ws-checkout .woocommerce-message{
  margin-top:12px;
}

.page-template-page-ws-checkout [id]{
  scroll-margin-top:96px;
}

.page-template-page-ws-checkout :where(.checkout-page, .wsco) abbr.required,
.page-template-page-ws-checkout :where(.checkout-page, .wsco) .woocommerce-required-mark,
.page-template-page-ws-checkout :where(.checkout-page, .wsco) .optional,
.page-template-page-ws-checkout :where(.checkout-page, .wsco) .checkout_coupon,
.page-template-page-ws-checkout :where(.checkout-page, .wsco) form.checkout_coupon{
  display:none !important;
}

.page-template-page-ws-checkout :where(.checkout-page__submit, .wsco__submit){
  position:relative;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:14px !important;
  min-width:220px;
  min-height:46px;
  margin:24px auto 0 !important;
  padding:5px 5px 5px 16px;
  border:1px solid #f3c847;
  border-radius:8px;
  background:#f3c847;
  box-shadow:0 8px 22px rgba(243, 200, 71, 0.18);
  color:#111216;
  cursor:pointer;
  text-decoration:none;
  white-space:nowrap;
  font-size:14px;
  line-height:1;
  font-weight:700;
  letter-spacing:-0.01em;
  transition:
    background-color 0.25s ease,
    color 0.25s ease,
    border-color 0.25s ease,
    box-shadow 0.25s ease,
    transform 0.25s ease;
}

.page-template-page-ws-checkout :where(.checkout-page__submit, .wsco__submit):hover,
.page-template-page-ws-checkout :where(.checkout-page__submit, .wsco__submit):focus-visible{
  transform:translateY(-1px);
  border-color:#10294a;
  background:#10294a;
  box-shadow:0 10px 24px rgba(16, 41, 74, 0.24);
  color:#fff;
}

:where(.checkout-page__submit-text, .wsco__submit-text){
  display:block;
}

:where(.checkout-page__submit-icon, .wsco__submit-icon){
  width:36px;
  height:36px;
  flex:0 0 36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:7px;
  background:#fff;
  transition:background-color 0.25s ease, transform 0.25s ease;
}

:where(.checkout-page__submit-icon, .wsco__submit-icon) svg{
  width:15px;
  height:15px;
  display:block;
  color:#111216;
}

.page-template-page-ws-checkout :where(.checkout-page__submit, .wsco__submit):hover :where(.checkout-page__submit-icon, .wsco__submit-icon),
.page-template-page-ws-checkout :where(.checkout-page__submit, .wsco__submit):focus-visible :where(.checkout-page__submit-icon, .wsco__submit-icon){
  background:#f3c847;
}

.page-template-page-ws-checkout :where(.checkout-page__submit, .wsco__submit):disabled,
.page-template-page-ws-checkout .woocommerce-checkout.processing #place_order:where(.checkout-page__submit, .wsco__submit){
  opacity:0.6;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}

.page-template-page-ws-checkout :where(.checkout-page, .wsco) .form-row,
.page-template-page-ws-checkout :where(.checkout-page__form-row, .wsco__form-row){
  margin-bottom:14px;
}

/* In field grids spacing should be controlled only by grid gaps. */
.page-template-page-ws-checkout :where(.checkout-page__fields-grid, .wsco__grid-2) .form-row,
.page-template-page-ws-checkout :where(.checkout-page__fields-grid, .wsco__grid-2) :where(.checkout-page__form-row, .wsco__form-row){
  width:100%;
  float:none;
  clear:none;
  margin-bottom:0 !important;
}

.page-template-page-ws-checkout :where(.checkout-page__fields-grid, .wsco__grid-2) .wsco__form-row--full{
  grid-column:1 / -1;
}

/* Keep label/input rhythm consistent across checkout sections. */
.page-template-page-ws-checkout :where(.checkout-page, .wsco) .form-row label,
.page-template-page-ws-checkout :where(.checkout-page__form-row, .wsco__form-row) label{
  display:block;
  margin-bottom:8px;
  line-height:1.3;
}

/* Avoid extra trailing gap on last field in each form card. */
.page-template-page-ws-checkout :where(.checkout-page__card--form, .wsco__card--form) .form-row:last-child,
.page-template-page-ws-checkout :where(.checkout-page__card--form, .wsco__card--form) :where(.checkout-page__form-row, .wsco__form-row):last-child{
  margin-bottom:0 !important;
}

.page-template-page-ws-checkout :where(.checkout-page__input, .wsco__input),
.page-template-page-ws-checkout .woocommerce form .form-row input.input-text,
.page-template-page-ws-checkout .woocommerce form .form-row select,
.page-template-page-ws-checkout .woocommerce form .form-row textarea{
  width:100%;
  height:48px;
  padding:0 14px;
  border:1px solid var(--checkout-line) !important;
  border-radius:12px !important;
  background:var(--checkout-surface) !important;
  box-shadow:none !important;
  color:var(--text, var(--ink, #000)) !important;
  outline:0 !important;
  appearance:none;
  -webkit-appearance:none;
  font-family:var(--font-body) !important;
  font-size:var(--txt-size, 18px) !important;
  line-height:var(--txt-lh, 1.5) !important;
}

.page-template-page-ws-checkout .woocommerce form .form-row textarea{
  height:auto;
  min-height:120px;
  padding-top:12px;
  padding-bottom:12px;
}

.page-template-page-ws-checkout :where(.checkout-page__input, .wsco__input):focus,
.page-template-page-ws-checkout .woocommerce form .form-row input.input-text:focus,
.page-template-page-ws-checkout .woocommerce form .form-row select:focus,
.page-template-page-ws-checkout .woocommerce form .form-row textarea:focus{
  border-color:var(--accent, #000) !important;
  box-shadow:0 0 0 3px var(--checkout-focus-ring) !important;
}

.page-template-page-ws-checkout .woocommerce form .form-row.woocommerce-invalid input.input-text,
.page-template-page-ws-checkout .woocommerce form .form-row.woocommerce-invalid select,
.page-template-page-ws-checkout .woocommerce form .form-row.woocommerce-invalid textarea,
.page-template-page-ws-checkout .woocommerce form .form-row.woocommerce-validated input.input-text,
.page-template-page-ws-checkout .woocommerce form .form-row.woocommerce-validated select,
.page-template-page-ws-checkout .woocommerce form .form-row.woocommerce-validated textarea{
  border-color:var(--checkout-line) !important;
}

.page-template-page-ws-checkout :where(.checkout-page__form-row--with-icon, .wsco__form-row--with-icon) .woocommerce-input-wrapper{
  position:relative;
}

.page-template-page-ws-checkout :where(.checkout-page__form-row--with-icon, .wsco__form-row--with-icon) :where(.checkout-page__input, .wsco__input){
  padding-left:44px !important;
}

:where(.checkout-page__input-icon, .wsco__input-icon){
  position:absolute;
  top:50%;
  left:16px;
  width:20px;
  height:20px;
  display:flex;
  align-items:center;
  justify-content:center;
  transform:translateY(-50%);
  pointer-events:none;
}

:where(.checkout-page__input-icon, .wsco__input-icon) img{
  width:100%;
  height:100%;
  display:block;
}

.page-template-page-ws-checkout .select2-container--default .select2-selection--single{
  height:48px !important;
  border:1px solid var(--checkout-line) !important;
  border-radius:12px !important;
  background:var(--checkout-surface) !important;
  font-family:var(--font-body) !important;
}

.page-template-page-ws-checkout .select2-container--default .select2-selection--single .select2-selection__rendered{
  line-height:48px !important;
  color:var(--text, var(--ink, #000)) !important;
}

.page-template-page-ws-checkout .select2-container--default .select2-selection--single .select2-selection__arrow{
  height:48px !important;
}

.page-template-page-ws-checkout :where(.checkout-page__hidden, .wsco__hidden){
  display:none !important;
}

.page-template-page-ws-checkout :where(.checkout-page, .wsco) .clear{
  display:none !important;
}

@media (max-width:980px){
  .page-template-page-ws-checkout .ws-bc-wrap{
    --ws-bc-bottom-offset:10px;
  }

  .page-template-page-ws-checkout :where(.checkout-page, .wsco){
    padding-top:0;
  }

  body.admin-bar.page-template-page-ws-checkout :where(.checkout-page, .wsco){
    padding-top:32px;
  }

  :where(.checkout-page__grid, .wsco__grid){
    grid-template-columns:1fr;
    margin-top:8px;
  }

  :where(.checkout-page__hero, .wsco__hero){
    margin-bottom:14px;
  }

  :where(.checkout-page__main, .wsco__left){
    padding-right:0;
  }

  :where(.checkout-page__sticky, .wsco__sticky){
    position:static;
  }
}

@media (max-width:680px){
  .page-template-page-ws-checkout .ws-bc-wrap{
    --ws-bc-bottom-offset:8px;
  }

  .page-template-page-ws-checkout :where(.checkout-page, .wsco){
    padding-top:0;
  }

  body.admin-bar.page-template-page-ws-checkout :where(.checkout-page, .wsco){
    padding-top:32px;
  }

  :where(.checkout-page__grid, .wsco__grid){
    margin:8px auto 28px;
    gap:16px;
    padding-left:16px;
    padding-right:16px;
  }

  :where(.checkout-page__sidebar, .wsco__right){
    order:2;
  }

  :where(.checkout-page__card, .wsco__card){
    padding:16px;
    border-radius:14px;
  }

  :where(.checkout-page__card, .wsco__card) + :where(.checkout-page__card, .wsco__card){
    margin-top:12px;
  }

  :where(.checkout-page__fields-grid, .wsco__grid-2),
  :where(.checkout-page__delivery-grid, .wsco__delivery-grid){
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:12px;
  }

  .page-template-page-ws-checkout :where(.checkout-page, .wsco) .form-row,
  .page-template-page-ws-checkout :where(.checkout-page__form-row, .wsco__form-row){
    margin-bottom:14px;
  }

  .page-template-page-ws-checkout :where(.checkout-page__input, .wsco__input),
  .page-template-page-ws-checkout .woocommerce form .form-row input.input-text,
  .page-template-page-ws-checkout .woocommerce form .form-row select,
  .page-template-page-ws-checkout .woocommerce form .form-row textarea,
  .page-template-page-ws-checkout .select2-container--default .select2-selection--single{
    height:48px;
    font-size:16px !important;
  }

  .page-template-page-ws-checkout .select2-container--default .select2-selection--single .select2-selection__rendered,
  .page-template-page-ws-checkout .select2-container--default .select2-selection--single .select2-selection__arrow{
    line-height:48px !important;
    height:48px !important;
  }

  .page-template-page-ws-checkout #place_order:where(.checkout-page__submit, .wsco__submit){
    width:100% !important;
    min-height:48px !important;
    margin:14px 0 0 !important;
  }

  :where(.checkout-page__order-image, .wsco__order-img){
    width:124px;
    height:176px;
    flex-basis:124px;
  }

  :where(.checkout-page__order-list, .wsco__order-list) > div{
    padding:6px 0;
  }

  :where(.checkout-page__badge, .wsco__badge){
    min-width:40px;
    height:24px;
    font-size:11px !important;
  }

  :where(.checkout-page__consent, .wsco__consent){
    margin:0;
  }
}

@media (max-width:520px){
  :where(.checkout-page__fields-grid, .wsco__grid-2),
  :where(.checkout-page__delivery-grid, .wsco__delivery-grid){
    grid-template-columns:1fr;
  }

  :where(.checkout-page__order-image, .wsco__order-img){
    width:116px;
    height:162px;
    flex-basis:116px;
  }
}
