/* ===========================================================================
   OG SCENTS — CART & CHECKOUT  (complete, standalone)
   Written against the real markup in woocommerce/cart/cart.php,
   checkout/form-checkout.php and checkout/review-order.php.

   INSTALL — pick one:

   A) Theme file (preferred)
      Save to:  OGSCENTSNEW/assets/css/modules/ogs-cart-checkout.css
      In inc/ogs-modules.php add 'ogs-cart-checkout' as the LAST entry
      of $styles. Then delete these four — this file replaces them:
        'cart-checkout-final', 'cart-checkout-mobile',
        'mobile-final-fix', 'zz-cart-structure'

   B) Paste the whole thing into Appearance > Customize > Additional CSS,
      replacing what's there now.

   HOW IT OVERRIDES: every cart/checkout rule is prefixed with
   body.woocommerce-cart / body.woocommerce-checkout. That beats the theme
   modules AND the footer <style> blocks injected by ogs-cart-detail.php
   and ogs-pricing-copy.php, which load later in the document and were
   winning against equal-specificity rules.

   No fixed pixel widths. Every grid track is minmax(0,1fr) or auto, every
   flex child has min-width:0, so nothing can be forced wider than its
   container at any viewport.
   =========================================================================== */


/* ===========================================================================
   0. FIXED CHROME — the 17px overflow
   NOT scoped to cart/checkout on purpose: this affects every page.

   The old rule was  .ogs-header, .ogs-ticker { width: 100dvw }  with a
   comment claiming dvw excludes the scrollbar. It does not. dvw is the
   DYNAMIC viewport unit — it accounts for mobile browser chrome
   retracting on scroll, not for scrollbars. Both vw and dvw include the
   scrollbar, so 100dvw = 447px against a 430px content area = 17px of
   overflow, created by the rule meant to prevent it.

   Because .ogs-header is position:fixed, that inflates
   documentElement.scrollWidth while leaving body.scrollWidth clean —
   which is why every overflow-x lock missed it.

   Fix: % resolves against the content box, and left/right:0 sizes a fixed
   element to the content box too. Neither counts the scrollbar.
   =========================================================================== */
.ogs-header,
header.ogs-header,
#masthead,
#masthead.ogs-header {
  width: auto !important;
  max-width: none !important;
  left: 0 !important;
  right: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}
.ogs-header__inner {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
}
.ogs-ticker {
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  left: auto !important;
  right: auto !important;
  margin: 0 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
/* the track is a flex CHILD of .ogs-ticker, so default flex-shrink was
   squashing width:max-content back to the container width — which also
   broke the -50% marquee loop, since 50% of a shrunk track is wrong. */
.ogs-ticker__track {
  flex: 0 0 auto !important;
  width: max-content !important;
  will-change: transform;
}

/* full-screen overlays: same story — left/right:0, never 100dvw */
.ogs-search-overlay,
.ogs-cartd__scrim,
.ogsbk-scrim,
.ogs-tray__scrim,
.ogslive-search,
.ogs-club,
.ogslive-modal,
.ogs-curtain {
  width: auto !important;
  max-width: none !important;
  left: 0 !important;
  right: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

/* off-canvas panels are parked off-screen right by transform when closed,
   which no overflow rule can clip. Take them out of layout instead. */
.ogs-cartd:not(.is-open),
.ogsbk-tray:not(.on),
.ogs-tray:not(.on) {
  display: none !important;
}
.ogs-cartd.is-open,
.ogsbk-tray.on,
.ogs-tray.on {
  display: flex !important;
  transform: none !important;
  pointer-events: auto !important;
}


/* ===========================================================================
   1. TOKENS
   =========================================================================== */
body.woocommerce-cart,
body.woocommerce-checkout {
  --oc-paper:  #FCFBF8;
  --oc-panel:  #F5F2EC;
  --oc-ink:    #0F0E0C;
  --oc-ink2:   #2A2723;
  --oc-ash:    #6B665E;
  --oc-rule:   rgba(15, 14, 12, .12);
  --oc-seal:   #E8788E;
  --oc-seal2:  #C4506A;
  --oc-fd:     "Fraunces", Georgia, serif;
  --oc-fb:     "Inter Tight", system-ui, sans-serif;
  --oc-radius: 12px;
  --oc-gutter: 18px;
  --oc-chrome: 78px;   /* fixed header + ticker height */
}
@media (min-width: 700px) {
  body.woocommerce-cart,
  body.woocommerce-checkout { --oc-gutter: 32px; }
}
@media (min-width: 1100px) {
  body.woocommerce-cart,
  body.woocommerce-checkout { --oc-gutter: 56px; --oc-chrome: 118px; }
}


/* ===========================================================================
   2. CONTAINMENT
   =========================================================================== */
body.woocommerce-cart,
body.woocommerce-checkout {
  max-width: 100% !important;
  overflow-x: hidden !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.woocommerce-cart .ogs-page,
body.woocommerce-checkout .ogs-page,
body.woocommerce-cart .ogs-page__wrap,
body.woocommerce-checkout .ogs-page__wrap,
body.woocommerce-cart .ogs-page__content,
body.woocommerce-checkout .ogs-page__content,
body.woocommerce-cart .ogs-cartpg,
body.woocommerce-checkout .ogs-co {
  overflow-x: hidden !important;
  max-width: 100% !important;
}
body.woocommerce-cart img,
body.woocommerce-checkout img,
body.woocommerce-cart table,
body.woocommerce-checkout table,
body.woocommerce-cart iframe,
body.woocommerce-checkout iframe {
  max-width: 100% !important;
}

/* floating furniture off these pages */
body.woocommerce-cart .ogs-tray__toggle,
body.woocommerce-checkout .ogs-tray__toggle,
body.woocommerce-cart .ogs-seal,
body.woocommerce-checkout .ogs-seal,
body.woocommerce-cart .ogsbk-launch,
body.woocommerce-checkout .ogsbk-launch,
body.woocommerce-cart .ogslive-offer,
body.woocommerce-checkout .ogslive-offer,
body.woocommerce-cart .ogslive-kcap,
body.woocommerce-checkout .ogslive-kcap,
body.woocommerce-cart .ogs-cursor,
body.woocommerce-checkout .ogs-cursor,
body.woocommerce-cart .ogs-mist-layer,
body.woocommerce-checkout .ogs-mist-layer {
  display: none !important;
}

/* native cursor back on interactive elements */
body.woocommerce-cart, body.woocommerce-checkout,
body.woocommerce-cart *, body.woocommerce-checkout * { cursor: auto !important; }
body.woocommerce-cart a, body.woocommerce-checkout a,
body.woocommerce-cart button, body.woocommerce-checkout button,
body.woocommerce-cart label, body.woocommerce-checkout label,
body.woocommerce-cart select, body.woocommerce-checkout select { cursor: pointer !important; }
body.woocommerce-cart textarea, body.woocommerce-checkout textarea,
body.woocommerce-cart input:not([type=checkbox]):not([type=radio]),
body.woocommerce-checkout input:not([type=checkbox]):not([type=radio]) { cursor: text !important; }


/* ===========================================================================
   3. PAGE FRAME
   page.php renders .ogs-page > .ogs-page__wrap > (__head, __content).
   __wrap owns the cap and the ONLY horizontal gutter.
   =========================================================================== */
body.woocommerce-cart .ogs-page,
body.woocommerce-checkout .ogs-page {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.woocommerce-cart .ogs-page__wrap,
body.woocommerce-checkout .ogs-page__wrap {
  width: 100% !important;
  max-width: 1400px !important;
  margin: 0 auto !important;
  padding: calc(var(--oc-chrome) + 26px) var(--oc-gutter) 72px !important;
  box-sizing: border-box !important;
}
body.woocommerce-cart .ogs-page__head,
body.woocommerce-checkout .ogs-page__head,
body.woocommerce-cart .ogs-page__content,
body.woocommerce-checkout .ogs-page__content,
body.woocommerce-cart .woocommerce,
body.woocommerce-checkout .woocommerce,
body.woocommerce-cart form.woocommerce-cart-form,
body.woocommerce-checkout form.checkout {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  float: none !important;
  transform: none !important;
  box-sizing: border-box !important;
}
body.woocommerce-cart .ogs-page__head,
body.woocommerce-checkout .ogs-page__head { padding: 0 0 20px !important; }
body.woocommerce-cart .ogs-page__head h1,
body.woocommerce-checkout .ogs-page__head h1 {
  font-family: var(--oc-fd);
  font-weight: 300;
  letter-spacing: -.03em;
  line-height: 1;
  font-size: clamp(34px, 9vw, 72px) !important;
  margin: 0 !important;
  overflow-wrap: break-word;
  word-break: normal !important;
  hyphens: none !important;
}
body.woocommerce-cart .ogs-page__content *,
body.woocommerce-checkout .ogs-page__content * {
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: none !important;
  min-width: 0;
}


/* ===========================================================================
   4. SHARED PANEL + PRIMARY BUTTON
   =========================================================================== */
body.woocommerce-cart .ogs-cartpg__totals .cart_totals,
body.woocommerce-checkout .ogs-co__step--order {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  background: var(--oc-panel) !important;
  border: 1px solid var(--oc-rule) !important;
  border-radius: var(--oc-radius) !important;
  padding: 22px 18px !important;
  margin: 0 !important;
  overflow: visible !important;
}
body.woocommerce-cart .ogs-cartpg__totals .cart-collaterals {
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  width: 100% !important;
}
body.woocommerce-cart .ogs-cartpg__totals .checkout-button,
body.woocommerce-checkout #place_order {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  background: var(--oc-seal) !important;
  border: 1px solid var(--oc-seal) !important;
  color: #fff !important;
  border-radius: 9999px !important;
  padding: 18px 16px !important;
  font-family: var(--oc-fb) !important;
  font-size: 11.5px !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  text-align: center !important;
  line-height: 1.3 !important;
  white-space: normal !important;
  cursor: pointer !important;
  margin: 16px 0 0 !important;
}
body.woocommerce-cart .ogs-cartpg__totals .checkout-button:hover,
body.woocommerce-checkout #place_order:hover {
  background: var(--oc-seal2) !important;
  border-color: var(--oc-seal2) !important;
}
body.woocommerce-cart .ogs-cartpg__totals .wc-proceed-to-checkout,
body.woocommerce-checkout #payment .place-order {
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  clear: both !important;
}


/* ===========================================================================
   5. TOTALS ROWS  (cart page + checkout order panel)
   ogs-cart-detail.php appends explanatory .ogs-tnote sentences INSIDE the
   <th>. white-space inherits, so any nowrap on th made them unbreakable
   single lines — that was the visible overflow in the first screenshots.
   Labels wrap; amounts never do.
   =========================================================================== */
body.woocommerce-cart .ogs-cartpg__totals table,
body.woocommerce-cart .ogs-cartpg__totals tbody,
body.woocommerce-checkout .ogs-review,
body.woocommerce-checkout .ogs-review tbody,
body.woocommerce-checkout .ogs-review tfoot {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  border: 0 !important;
  margin: 0 !important;
  table-layout: auto !important;
  border-collapse: collapse !important;
}
body.woocommerce-cart .ogs-cartpg__totals h2 {
  font-family: var(--oc-fd) !important;
  font-weight: 400 !important;
  font-size: 21px !important;
  margin: 0 0 14px !important;
}
body.woocommerce-cart .ogs-cartpg__totals tr,
body.woocommerce-checkout .ogs-review tfoot tr {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 14px !important;
  width: 100% !important;
  padding: 13px 0 !important;
  border-bottom: 1px solid rgba(15, 14, 12, .08) !important;
}
body.woocommerce-cart .ogs-cartpg__totals th,
body.woocommerce-checkout .ogs-review tfoot th {
  display: block !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  width: auto !important;
  border: 0 !important;
  padding: 0 !important;
  background: none !important;
  font-family: var(--oc-fb) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  text-align: left !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
  color: var(--oc-ink2) !important;
}
body.woocommerce-cart .ogs-cartpg__totals td,
body.woocommerce-checkout .ogs-review tfoot td {
  display: block !important;
  flex: 0 0 auto !important;
  width: auto !important;
  border: 0 !important;
  padding: 0 !important;
  background: none !important;
  font-family: var(--oc-fb) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  text-align: right !important;
  white-space: nowrap !important;
}
body.woocommerce-cart .ogs-cartpg__totals .ogs-tnote,
body.woocommerce-checkout .ogs-review .ogs-tnote {
  display: block !important;
  margin-top: 4px !important;
  font-family: var(--oc-fb) !important;
  font-size: 11px !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  font-weight: 400 !important;
  color: var(--oc-ash) !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
}
body.woocommerce-cart .ogs-cartpg__totals .ogs-tnote ~ .ogs-tnote,
body.woocommerce-checkout .ogs-review .ogs-tnote ~ .ogs-tnote { display: none !important; }
body.woocommerce-cart .ogs-cartpg__totals .order-total,
body.woocommerce-checkout .ogs-review tfoot .order-total {
  border-bottom: 0 !important;
  padding-top: 16px !important;
}
body.woocommerce-cart .ogs-cartpg__totals .order-total th,
body.woocommerce-cart .ogs-cartpg__totals .order-total td,
body.woocommerce-checkout .ogs-review tfoot .order-total th,
body.woocommerce-checkout .ogs-review tfoot .order-total td {
  font-family: var(--oc-fd) !important;
  font-size: 22px !important;
  color: var(--oc-ink) !important;
}
body.woocommerce-cart .ogs-totals-note,
body.woocommerce-checkout .ogs-totals-note { display: none !important; }


/* ===========================================================================
   6. KIT CONTENTS — the 8 scents, shown in full
   =========================================================================== */
body.woocommerce-cart .ogs-cartpg__meta dl.variation,
body.woocommerce-checkout .ogs-review__name dl.variation {
  display: block !important;
  margin: 7px 0 0 !important;
  max-height: none !important;
  overflow: visible !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
  position: static !important;
}
body.woocommerce-cart .ogs-cartpg__meta dl.variation::after,
body.woocommerce-checkout .ogs-review__name dl.variation::after {
  content: none !important;
  display: none !important;
}
body.woocommerce-cart .ogs-cartpg__meta dl.variation dt,
body.woocommerce-checkout .ogs-review__name dl.variation dt {
  display: block !important;
  float: none !important;
  clear: both !important;
  margin: 8px 0 2px !important;
  padding: 0 !important;
  font-family: var(--oc-fb) !important;
  font-size: 9.5px !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  color: var(--oc-seal2) !important;
}
body.woocommerce-cart .ogs-cartpg__meta dl.variation dd,
body.woocommerce-cart .ogs-cartpg__meta dl.variation dd p,
body.woocommerce-checkout .ogs-review__name dl.variation dd,
body.woocommerce-checkout .ogs-review__name dl.variation dd p {
  display: block !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--oc-fb) !important;
  font-size: 12.5px !important;
  line-height: 1.6 !important;
  color: var(--oc-ink2) !important;
  overflow-wrap: break-word !important;
}
body.woocommerce-cart .ogs-cartpg__kitflag,
body.woocommerce-checkout .ogs-review__kitflag {
  display: inline-block !important;
  font-style: normal !important;
  font-size: 8.5px !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  background: var(--oc-seal) !important;
  color: #fff !important;
  padding: 3px 9px !important;
  border-radius: 9999px !important;
  white-space: nowrap !important;
}


/* ===========================================================================
   7. CART PAGE
   =========================================================================== */
body.woocommerce-cart .ogs-cartpg {
  width: 100% !important;
  max-width: 100% !important;
}
body.woocommerce-cart .ogs-cartpg__layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 30px !important;
  width: 100% !important;
  align-items: start !important;
}
body.woocommerce-cart .ogs-cartpg__items,
body.woocommerce-cart .ogs-cartpg__totals {
  grid-column: 1 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  float: none !important;
  margin: 0 !important;
}
body.woocommerce-cart .ogs-cartpg__cols { display: none !important; }

/* ---- CART ROW ----
   Every breakpoint declares grid-template-areas containing EVERY area a
   child is assigned to. A child placed in a missing named area gets an
   implicit track outside the explicit grid — an invisible extra column on
   every row. That was the structural bug across the old module files. */
body.woocommerce-cart .ogs-cartpg__item {
  display: grid !important;
  grid-template-columns: 84px minmax(0, 1fr) !important;
  grid-template-areas:
    "thumb meta"
    "thumb qty"
    "line  line" !important;
  gap: 6px 14px !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  align-items: start !important;
  padding: 18px 0 !important;
  border-bottom: 1px solid rgba(15, 14, 12, .1) !important;
}
body.woocommerce-cart .ogs-cartpg__item > * {
  min-width: 0 !important;
  max-width: 100% !important;
}
body.woocommerce-cart .ogs-cartpg__item.is-kit {
  background: rgba(232, 120, 142, .06) !important;
  border-radius: var(--oc-radius) !important;
  padding: 18px 14px !important;
  margin-bottom: 6px !important;
}
body.woocommerce-cart .ogs-cartpg__thumb {
  grid-area: thumb !important;
  width: 84px !important;
  display: block !important;
}
body.woocommerce-cart .ogs-cartpg__thumb img {
  width: 84px !important;
  height: auto !important;
  aspect-ratio: 3 / 4;
  object-fit: cover !important;
  border-radius: 6px !important;
  display: block !important;
  mix-blend-mode: multiply;
  background: var(--oc-panel);
}
body.woocommerce-cart .ogs-cartpg__meta {
  grid-area: meta !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 5px !important;
  min-width: 0 !important;
}
body.woocommerce-cart .ogs-cartpg__name {
  display: block !important;
  font-family: var(--oc-fd) !important;
  font-size: 17px !important;
  line-height: 1.25 !important;
  color: var(--oc-ink) !important;
  text-decoration: none !important;
  white-space: normal !important;
  max-width: 100% !important;
}
body.woocommerce-cart .ogs-cartpg__unit {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 13px !important;
  color: var(--oc-ash) !important;
}
body.woocommerce-cart .ogs-cartpg__remove {
  display: inline-block !important;
  margin-top: 8px !important;
  font-size: 10px !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: var(--oc-ash) !important;
  border-bottom: 1px solid var(--oc-rule) !important;
  padding-bottom: 2px !important;
  text-decoration: none !important;
}
body.woocommerce-cart .ogs-cartpg__qty,
body.woocommerce-cart .ogs-qty {
  grid-area: qty !important;
  justify-self: start !important;
  align-self: start !important;
  margin: 8px 0 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  border: 1px solid var(--oc-rule) !important;
  border-radius: 9999px !important;
  background: #fff !important;
  overflow: hidden !important;
  max-width: 100% !important;
}
body.woocommerce-cart .ogs-qty__btn {
  width: 40px; height: 42px;
  font-size: 17px; color: var(--oc-ash);
  background: none; border: 0; cursor: pointer;
  flex: 0 0 auto;
}
body.woocommerce-cart .ogs-qty .qty,
body.woocommerce-cart .ogs-qty input.qty,
body.woocommerce-cart .ogs-cartpg__qty input {
  width: 44px !important;
  min-width: 0 !important;
  border: 0 !important;
  background: none !important;
  text-align: center !important;
  font-size: 15px !important;
  padding: 0 !important;
  -moz-appearance: textfield;
  appearance: textfield;
}
body.woocommerce-cart .ogs-qty .qty::-webkit-inner-spin-button,
body.woocommerce-cart .ogs-qty .qty::-webkit-outer-spin-button {
  -webkit-appearance: none; margin: 0;
}
body.woocommerce-cart .ogs-qty__fixed {
  padding: 0 16px; height: 42px;
  display: inline-flex; align-items: center;
  font-size: 15px; color: var(--oc-ink);
}
body.woocommerce-cart .ogs-cartpg__line {
  grid-area: line !important;
  justify-self: stretch !important;
  text-align: right !important;
  font-family: var(--oc-fd) !important;
  font-size: 18px !important;
  white-space: nowrap !important;
  margin-top: 12px !important;
  padding-top: 12px !important;
  border-top: 1px dashed var(--oc-rule) !important;
}

/* ---- COUPON + ACTIONS ---- */
body.woocommerce-cart .ogs-cartpg__actions {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  width: 100% !important;
  padding-top: 22px !important;
}
body.woocommerce-cart .ogs-cartpg__coupon {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  width: 100% !important;
  min-width: 0 !important;
  flex: 0 1 auto !important;
}
body.woocommerce-cart .ogs-cartpg__coupon .input-text,
body.woocommerce-cart .ogs-cartpg__coupon .ogs-btn,
body.woocommerce-cart .ogs-cartpg__actions .ogs-btn {
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  padding: 14px 18px !important;
  font-family: var(--oc-fb) !important;
  font-size: 14px !important;
  border: 1px solid var(--oc-rule) !important;
  border-radius: 9999px !important;
  background: #fff !important;
  text-align: center !important;
}
body.woocommerce-cart .ogs-cartpg__update { display: none !important; }
body.woocommerce-cart .ogs-cartpg__crosssell { margin-top: 48px !important; }


/* ===========================================================================
   8. CHECKOUT
   =========================================================================== */
body.woocommerce-checkout .ogs-co__grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 30px !important;
  width: 100% !important;
  align-items: start !important;
}
body.woocommerce-checkout .ogs-co__details,
body.woocommerce-checkout .ogs-co__aside,
body.woocommerce-checkout #customer_details,
body.woocommerce-checkout .ogs-co__fields,
body.woocommerce-checkout .ogs-co__fieldwrap,
body.woocommerce-checkout .woocommerce-billing-fields,
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields,
body.woocommerce-checkout .woocommerce-additional-fields {
  grid-column: 1 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  float: none !important;
  position: static !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}
body.woocommerce-checkout .ogs-co__aside { order: 0 !important; }
body.woocommerce-checkout .ogs-co__hidden-shipping { display: none !important; }
body.woocommerce-checkout .ogs-co__fields::after,
body.woocommerce-checkout .ogs-co__fieldwrap::after,
body.woocommerce-checkout form .form-row::after {
  content: ""; display: table; clear: both;
}
body.woocommerce-checkout .ogs-co__step { margin: 0 0 30px !important; }
body.woocommerce-checkout .ogs-co__stephead {
  display: flex !important;
  align-items: baseline !important;
  gap: 12px !important;
  margin: 0 0 18px !important;
  padding-bottom: 14px !important;
  border-bottom: 1px solid var(--oc-rule) !important;
}
body.woocommerce-checkout .ogs-co__num {
  font-family: var(--oc-fd); font-style: italic;
  color: var(--oc-seal2); font-size: 15px;
  flex: 0 0 auto;
}
body.woocommerce-checkout .ogs-co__stephead h3 {
  font-family: var(--oc-fd) !important;
  font-weight: 400 !important;
  font-size: 22px !important;
  margin: 0 !important;
  min-width: 0 !important;
}
body.woocommerce-checkout .woocommerce-billing-fields > h3 { display: none !important; }
body.woocommerce-checkout .woocommerce-additional-fields > h3 {
  font-family: var(--oc-fd) !important;
  font-weight: 400 !important;
  font-size: 18px !important;
  margin: 24px 0 14px !important;
}

/* ---- FORM FIELDS ---- */
body.woocommerce-checkout form .form-row,
body.woocommerce-checkout form .form-row-first,
body.woocommerce-checkout form .form-row-last,
body.woocommerce-checkout form .form-row-wide {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  float: none !important;
  clear: both !important;
  margin: 0 0 16px !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}
body.woocommerce-checkout form .form-row label {
  display: block !important;
  margin: 0 0 7px !important;
  font-family: var(--oc-fb) !important;
  font-size: 10px !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--oc-ash) !important;
}
body.woocommerce-checkout form .form-row label .required {
  color: var(--oc-seal2); text-decoration: none;
}
body.woocommerce-checkout .form-row .woocommerce-input-wrapper,
body.woocommerce-checkout .form-row .select2-container {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}
body.woocommerce-checkout .form-row input.input-text,
body.woocommerce-checkout .form-row textarea,
body.woocommerce-checkout .form-row select,
body.woocommerce-checkout .form-row .select2-selection {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  font-family: var(--oc-fb) !important;
  font-size: 16px !important;   /* 16px prevents iOS zoom-on-focus */
  color: var(--oc-ink) !important;
  background: #fff !important;
  border: 1px solid var(--oc-rule) !important;
  border-radius: 10px !important;
  padding: 14px 16px !important;
  height: auto !important;
  min-height: 0 !important;
  box-shadow: none !important;
  outline: none !important;
}
body.woocommerce-checkout .form-row .select2-selection { padding: 10px 16px !important; }
body.woocommerce-checkout .form-row .select2-selection__rendered {
  padding-left: 0 !important;
  line-height: 1.5 !important;
}
body.woocommerce-checkout .form-row input.input-text:focus,
body.woocommerce-checkout .form-row textarea:focus,
body.woocommerce-checkout .form-row select:focus {
  border-color: var(--oc-seal) !important;
  box-shadow: 0 0 0 3px rgba(232, 120, 142, .15) !important;
}

/* ---- ORDER REVIEW ROWS ---- */
body.woocommerce-checkout .ogs-review thead { display: none !important; }
body.woocommerce-checkout .ogs-review tbody tr {
  display: grid !important;
  grid-template-columns: 58px minmax(0, 1fr) auto !important;
  gap: 14px !important;
  align-items: start !important;
  width: 100% !important;
  padding: 15px 0 !important;
  border-bottom: 1px solid rgba(15, 14, 12, .1) !important;
}
body.woocommerce-checkout .ogs-review td {
  display: block !important;
  min-width: 0 !important;
  border: 0 !important;
  padding: 0 !important;
  background: none !important;
}
body.woocommerce-checkout .ogs-review__thumb { width: 58px !important; }
body.woocommerce-checkout .ogs-review__imgwrap {
  position: relative !important;
  display: block !important;
  width: 58px !important;
}
body.woocommerce-checkout .ogs-review__imgwrap img {
  width: 58px !important;
  height: 75px !important;
  object-fit: cover !important;
  border-radius: 6px !important;
  display: block !important;
  margin: 0 !important;
  mix-blend-mode: multiply;
  background: #fff;
}
body.woocommerce-checkout .ogs-review__qtybubble {
  position: absolute !important;
  top: -7px !important;
  right: -7px !important;
  width: 21px !important;
  height: 21px !important;
  display: grid !important;
  place-items: center !important;
  background: var(--oc-ink) !important;
  color: #fff !important;
  border-radius: 50% !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  z-index: 2;
}
body.woocommerce-checkout .ogs-review__name { min-width: 0 !important; }
body.woocommerce-checkout .ogs-review__name > span {
  display: block !important;
  font-family: var(--oc-fd) !important;
  font-size: 15px !important;
  line-height: 1.3 !important;
  color: var(--oc-ink) !important;
  white-space: normal !important;
}
body.woocommerce-checkout .ogs-review__total {
  align-self: center !important;
  text-align: right !important;
  white-space: nowrap !important;
  font-family: var(--oc-fd) !important;
  font-size: 15px !important;
}

/* ---- PAYMENT ---- */
body.woocommerce-checkout #payment,
body.woocommerce-checkout #payment ul.payment_methods,
body.woocommerce-checkout #payment ul.payment_methods li {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}
body.woocommerce-checkout #payment {
  background: none !important;
  margin-top: 20px !important;
}
body.woocommerce-checkout #payment ul.payment_methods {
  border: 0 !important;
  padding: 0 !important;
  margin: 0 0 16px !important;
  list-style: none !important;
}
body.woocommerce-checkout #payment ul.payment_methods li {
  list-style: none !important;
  background: #fff !important;
  border: 1px solid var(--oc-rule) !important;
  border-radius: 10px !important;
  padding: 15px 16px !important;
  margin: 0 0 10px !important;
}
body.woocommerce-checkout #payment .payment_box {
  background: var(--oc-panel) !important;
  border-radius: 8px !important;
  padding: 14px 16px !important;
  margin: 10px 0 0 !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
}
body.woocommerce-checkout #payment .payment_box::before { display: none !important; }
body.woocommerce-checkout .woocommerce-privacy-policy-text,
body.woocommerce-checkout .woocommerce-privacy-policy-text p,
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  font-size: 11.5px !important;
  line-height: 1.55 !important;
  text-align: left !important;
}
body.woocommerce-checkout .ogs-co__trust {
  margin: 16px 0 0 !important;
  text-align: center !important;
  font-family: var(--oc-fb) !important;
  font-size: 9.5px !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--oc-ash) !important;
}

/* BNPL widgets never overlap the button */
body.woocommerce-checkout [class*="afterpay"],
body.woocommerce-checkout [id*="afterpay"],
body.woocommerce-checkout [class*="affirm"],
body.woocommerce-checkout [class*="clearpay"],
body.woocommerce-checkout .klarna-placement,
body.woocommerce-cart [class*="afterpay"],
body.woocommerce-cart [class*="affirm"] {
  position: static !important;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  clear: both !important;
  margin: 6px 0 14px !important;
  z-index: 1 !important;
  font-size: 12px !important;
  text-align: left !important;
  box-sizing: border-box !important;
}


/* ===========================================================================
   9. NOTICES + COUPON PROMPT
   =========================================================================== */
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-error,
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-message,
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 0 20px !important;
  padding: 14px 16px !important;
  font-family: var(--oc-fb) !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
  text-align: left !important;
  border-radius: 10px !important;
  background: var(--oc-panel) !important;
  border: 1px solid var(--oc-rule) !important;
  border-left: 3px solid var(--oc-seal) !important;
  color: var(--oc-ink) !important;
  list-style: none !important;
}
body.woocommerce-cart .woocommerce-info::before,
body.woocommerce-cart .woocommerce-message::before,
body.woocommerce-cart .woocommerce-error::before,
body.woocommerce-checkout .woocommerce-info::before,
body.woocommerce-checkout .woocommerce-message::before,
body.woocommerce-checkout .woocommerce-error::before { display: none !important; }

body.woocommerce-checkout form.checkout_coupon {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 0 24px !important;
  padding: 18px !important;
  border: 1px solid var(--oc-rule) !important;
  border-radius: var(--oc-radius) !important;
  background: var(--oc-panel) !important;
}
body.woocommerce-checkout form.checkout_coupon .form-row {
  width: 100% !important;
  float: none !important;
}


/* ===========================================================================
   10. TABLET  —  >= 820px   (iPad portrait)
   Still one column; the cart row gets a real four-track layout.
   =========================================================================== */
@media (min-width: 820px) {
  body.woocommerce-cart .ogs-cartpg__totals .cart_totals,
  body.woocommerce-checkout .ogs-co__step--order { padding: 28px 24px !important; }

  body.woocommerce-cart .ogs-cartpg__item {
    grid-template-columns: 96px minmax(0, 1fr) auto auto !important;
    grid-template-areas: "thumb meta qty line" !important;
    gap: 20px !important;
    align-items: center !important;
    padding: 24px 0 !important;
  }
  body.woocommerce-cart .ogs-cartpg__item.is-kit { padding: 24px 16px !important; }
  body.woocommerce-cart .ogs-cartpg__thumb,
  body.woocommerce-cart .ogs-cartpg__thumb img { width: 96px !important; }
  body.woocommerce-cart .ogs-cartpg__qty,
  body.woocommerce-cart .ogs-qty { justify-self: center !important; margin: 0 !important; }
  body.woocommerce-cart .ogs-cartpg__line {
    justify-self: end !important;
    margin: 0 !important;
    padding: 0 !important;
    border-top: 0 !important;
  }
  body.woocommerce-cart .ogs-cartpg__name { font-size: 18px !important; }

  body.woocommerce-cart .ogs-cartpg__actions {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
  }
  body.woocommerce-cart .ogs-cartpg__coupon {
    flex-direction: row !important;
    flex: 1 1 320px !important;
  }
  body.woocommerce-cart .ogs-cartpg__coupon .input-text {
    flex: 1 1 auto !important;
    text-align: left !important;
  }
  body.woocommerce-cart .ogs-cartpg__coupon .ogs-btn {
    width: auto !important;
    flex: 0 0 auto !important;
  }

  body.woocommerce-checkout form .form-row-first,
  body.woocommerce-checkout form .form-row-last {
    width: 48.5% !important;
    float: left !important;
    clear: none !important;
  }
  body.woocommerce-checkout form .form-row-first { margin-right: 3% !important; }
  body.woocommerce-checkout form .form-row-wide { clear: both !important; }

  body.woocommerce-checkout .ogs-review tbody tr {
    grid-template-columns: 64px minmax(0, 1fr) auto !important;
  }
  body.woocommerce-checkout .ogs-review__thumb,
  body.woocommerce-checkout .ogs-review__imgwrap,
  body.woocommerce-checkout .ogs-review__imgwrap img { width: 64px !important; }
  body.woocommerce-checkout .ogs-review__imgwrap img { height: 83px !important; }
}


/* ===========================================================================
   11. DESKTOP  —  >= 1100px
   Two columns, summary on the right, sticky.
   =========================================================================== */
@media (min-width: 1100px) {
  body.woocommerce-cart .ogs-page__head h1,
  body.woocommerce-checkout .ogs-page__head h1 { font-size: clamp(56px, 5vw, 76px) !important; }

  body.woocommerce-cart .ogs-cartpg__layout {
    grid-template-columns: minmax(0, 1fr) 380px !important;
    gap: 60px !important;
  }
  body.woocommerce-cart .ogs-cartpg__items { grid-column: 1 !important; }
  body.woocommerce-cart .ogs-cartpg__totals { grid-column: 2 !important; }
  body.woocommerce-cart .ogs-cartpg__totals .cart_totals {
    position: sticky !important;
    top: calc(var(--oc-chrome) + 20px) !important;
  }

  body.woocommerce-checkout .ogs-co__grid {
    grid-template-columns: minmax(0, 1fr) 420px !important;
    gap: 60px !important;
  }
  body.woocommerce-checkout .ogs-co__details { grid-column: 1 !important; }
  body.woocommerce-checkout .ogs-co__aside {
    grid-column: 2 !important;
    order: 0 !important;
  }
  body.woocommerce-checkout .ogs-co__step--order {
    position: sticky !important;
    top: calc(var(--oc-chrome) + 20px) !important;
  }

  body.woocommerce-cart .ogs-cartpg__cols {
    display: grid !important;
    grid-template-columns: 96px minmax(0, 1fr) auto auto !important;
    gap: 20px !important;
    font-family: var(--oc-fb);
    font-size: 10px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--oc-ash);
    padding-bottom: 14px;
    border-bottom: 1px solid var(--oc-rule);
  }
  body.woocommerce-cart .ogs-cartpg__cols span:nth-child(1) { grid-column: 1 / 3; }
  body.woocommerce-cart .ogs-cartpg__cols span:nth-child(2) { text-align: center; }
  body.woocommerce-cart .ogs-cartpg__cols span:nth-child(3) { text-align: right; }

  body.woocommerce-cart .ogs-cartpg__totals .cart_totals,
  body.woocommerce-checkout .ogs-co__step--order { padding: 30px !important; }
  body.woocommerce-checkout .ogs-co__stephead h3 { font-size: 26px !important; }
  body.woocommerce-cart .ogs-cartpg__totals h2 { font-size: 24px !important; }
  body.woocommerce-cart .ogs-cartpg__totals .order-total th,
  body.woocommerce-cart .ogs-cartpg__totals .order-total td,
  body.woocommerce-checkout .ogs-review tfoot .order-total th,
  body.woocommerce-checkout .ogs-review tfoot .order-total td { font-size: 26px !important; }
}


/* ===========================================================================
   12. PRINT
   =========================================================================== */
@media print {
  body.woocommerce-cart .ogs-page__wrap,
  body.woocommerce-checkout .ogs-page__wrap { padding-top: 0 !important; }
}

body.woocommerce-checkout .ogs-co__grid .ogs-co__details { order: 1 !important; }
body.woocommerce-checkout .ogs-co__grid .ogs-co__aside   { order: 2 !important; }