/* ODO Commerce OS v2.9.0 — Final Premium Storefront UX
 * Presentation-only. Elementor remains the visual authority; WooCommerce remains commerce truth.
 */
:root{
  --odo-ux-ink:#111111;
  --odo-ux-paper:#f7f5f0;
  --odo-ux-surface:#ffffff;
  --odo-ux-line:#e5e1d9;
  --odo-ux-muted:#6f6b65;
  --odo-ux-accent:#c9ff2e;
  --odo-ux-shadow:0 24px 70px rgba(17,17,17,.12);
  --odo-ux-radius:18px;
}

/* Keyboard/accessibility language */
body.odo-commerce-ui :where(a,button,input,select,textarea,summary):focus-visible{
  outline:2px solid #111!important;
  outline-offset:3px!important;
}
body.odo-commerce-ui :where(button,a){-webkit-tap-highlight-color:transparent}
body.odo-cart-open,body.odo-size-guide-open,body.odo-facets-sheet-open{overflow:hidden!important}

/* --------------------------------------------------------------------------
 * Mini cart drawer — native Woo mini-cart content, no parallel cart truth.
 * -------------------------------------------------------------------------- */
.odo-mini-cart[hidden]{display:none!important}
.odo-mini-cart{position:fixed;z-index:100090;inset:0;display:grid;grid-template-columns:1fr minmax(340px,470px)}
.odo-mini-cart__backdrop{grid-column:1;grid-row:1;border:0;background:rgba(13,13,13,.46);backdrop-filter:blur(4px);cursor:default}
.odo-mini-cart__panel{grid-column:2;grid-row:1;display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;height:100%;background:#fff;box-shadow:-20px 0 70px rgba(17,17,17,.16);animation:odo-v290-slide-left .28s cubic-bezier(.2,.72,.2,1)}
@keyframes odo-v290-slide-left{from{transform:translateX(36px);opacity:.5}to{transform:none;opacity:1}}
.odo-mini-cart__panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:28px 28px 20px;border-bottom:1px solid var(--odo-ux-line)}
.odo-mini-cart__panel>header h2{margin:5px 0 0;font-size:30px;line-height:1;letter-spacing:-.045em}.odo-mini-cart__panel>header h2 b{font-size:.46em;vertical-align:top;margin-left:4px;color:#6d6a64}
.odo-mini-cart__panel>header>button,.odo-size-guide__panel>header>button{width:42px;height:42px;border:1px solid var(--odo-ux-line);border-radius:999px;background:#fff;color:#111;font-size:24px;cursor:pointer}
.odo-mini-cart__content{min-height:0;overflow:auto;padding:6px 28px 18px}
.odo-mini-cart .widget_shopping_cart_content{min-height:100%}
.odo-mini-cart .woocommerce-mini-cart{display:grid;gap:0;margin:0!important;padding:0!important;list-style:none!important}
.odo-mini-cart .woocommerce-mini-cart-item{position:relative;display:grid!important;grid-template-columns:84px minmax(0,1fr);gap:14px;padding:18px 26px 18px 0!important;margin:0!important;border-bottom:1px solid var(--odo-ux-line)!important}
.odo-mini-cart .woocommerce-mini-cart-item>a:not(.remove){display:grid!important;grid-template-columns:84px minmax(0,1fr);grid-column:1/-1;gap:14px;align-items:start;color:#111!important;text-decoration:none!important;font-size:13px;font-weight:650;line-height:1.35}
.odo-mini-cart .woocommerce-mini-cart-item img{grid-column:1;width:84px!important;height:104px!important;margin:0!important;object-fit:cover;border-radius:10px;background:#eeeae2}
.odo-mini-cart .woocommerce-mini-cart-item .remove{position:absolute;z-index:2;top:18px;right:0!important;left:auto!important;display:grid!important;place-items:center;width:24px!important;height:24px!important;border-radius:50%!important;background:#f1eee8!important;color:#111!important;font-size:17px!important;text-decoration:none!important}
.odo-mini-cart .woocommerce-mini-cart-item .quantity{grid-column:2;display:block;margin-top:-48px;color:var(--odo-ux-muted);font-size:11px}
.odo-mini-cart .woocommerce-mini-cart__total{display:flex;align-items:center;justify-content:space-between;margin:20px 0 0!important;padding:18px 0 0!important;border-top:1px solid var(--odo-ux-line);font-size:13px}.odo-mini-cart .woocommerce-mini-cart__total strong{text-transform:uppercase;font-size:9px;letter-spacing:.12em}.odo-mini-cart .woocommerce-mini-cart__total .amount{font-size:20px;font-weight:760}
.odo-mini-cart .woocommerce-mini-cart__buttons{display:none!important}.odo-mini-cart .woocommerce-mini-cart__empty-message{display:grid;place-items:center;min-height:260px;margin:0;text-align:center;color:var(--odo-ux-muted)}
.odo-mini-cart__panel>footer{display:grid;grid-template-columns:1fr 1.2fr;gap:8px;padding:18px 28px calc(20px + env(safe-area-inset-bottom));border-top:1px solid var(--odo-ux-line);background:#fbfaf7}
.odo-mini-cart__panel>footer>a{display:flex;align-items:center;justify-content:center;min-height:48px;border:1px solid #111;border-radius:10px;color:#111!important;text-decoration:none!important;font-size:11px;font-weight:760}.odo-mini-cart__panel>footer>a.is-primary{background:#111;color:#fff!important}.odo-mini-cart__panel>footer>small{grid-column:1/-1;color:#77736d;font-size:9px;line-height:1.5}

/* Saved drawer receives the same premium rhythm while keeping v2.1 JS/data source. */
body.odo-commerce-ui .odo-saved-drawer__panel{border-radius:0!important;box-shadow:-20px 0 70px rgba(17,17,17,.16)!important}
body.odo-commerce-ui .odo-saved-drawer__panel>header{padding:28px!important}
body.odo-commerce-ui .odo-saved-drawer__content{padding:18px 28px!important}
body.odo-commerce-ui .odo-product-grid-v2--drawer{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:22px 10px!important}

/* --------------------------------------------------------------------------
 * Product fit assist + service confidence layer.
 * -------------------------------------------------------------------------- */
.odo-product-fit{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 18px;align-items:start;margin-top:26px;padding:20px;border:1px solid var(--odo-ux-line);border-radius:14px;background:#fbfaf7}
.odo-product-fit>div:first-child{min-width:0}.odo-product-fit strong{display:block;margin-top:6px;font-size:18px;letter-spacing:-.025em}.odo-product-fit p{max-width:540px;margin:7px 0 0;color:var(--odo-ux-muted);font-size:11px;line-height:1.6}
.odo-product-fit>button{display:none;align-self:center;min-height:42px;padding:0 15px;border:1px solid #111;border-radius:9px;background:#fff;color:#111;font-size:10px;font-weight:760;cursor:pointer}
.odo-ux-v290-ready .odo-product-fit>button{display:block}.odo-product-fit__sizes{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;padding-top:3px}.odo-product-fit__sizes span{display:grid;place-items:center;min-width:34px;height:30px;padding:0 8px;border:1px solid #ddd8cf;border-radius:8px;background:#fff;font-size:9px;font-weight:740}
.odo-product-service-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.odo-product-service-strip>div{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;padding:13px;border:1px solid var(--odo-ux-line);border-radius:12px;background:#fff}.odo-product-service-strip>div>b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#eef7d0;color:#111;font-size:9px}.odo-product-service-strip span{display:grid;gap:3px}.odo-product-service-strip strong{font-size:10px}.odo-product-service-strip small{color:#77736d;font-size:8px;line-height:1.45}

.odo-size-guide[hidden]{display:none!important}.odo-size-guide{position:fixed;z-index:100100;inset:0;display:grid;grid-template-columns:1fr minmax(360px,520px)}.odo-size-guide__backdrop{grid-column:1;grid-row:1;border:0;background:rgba(13,13,13,.48);backdrop-filter:blur(4px)}.odo-size-guide__panel{grid-column:2;grid-row:1;display:flex;flex-direction:column;height:100%;background:#fff;box-shadow:-20px 0 70px rgba(17,17,17,.16);animation:odo-v290-slide-left .28s cubic-bezier(.2,.72,.2,1)}.odo-size-guide__panel>header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:30px;border-bottom:1px solid var(--odo-ux-line)}.odo-size-guide__panel h2{max-width:340px;margin:6px 0 0;font-size:34px;line-height:1;letter-spacing:-.05em}.odo-size-guide__body{overflow:auto;padding:28px 30px 36px;color:#34322f}.odo-size-guide__body>p{margin:0 0 22px;color:var(--odo-ux-muted);font-size:12px;line-height:1.65}.odo-size-guide__available{padding:18px;border-radius:14px;background:#f4f1ea}.odo-size-guide__available small{display:block;margin-bottom:10px;font-size:9px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.odo-size-guide__available>div{display:flex;flex-wrap:wrap;gap:7px}.odo-size-guide__available span{display:grid;place-items:center;min-width:40px;height:36px;padding:0 9px;border-radius:8px;background:#fff;font-size:11px;font-weight:760}.odo-size-guide__body ol{display:grid;gap:12px;margin:28px 0;padding-left:18px;font-size:12px;line-height:1.55}.odo-size-guide__note{padding-top:18px;border-top:1px solid var(--odo-ux-line)}

/* --------------------------------------------------------------------------
 * Mobile faceted-commerce sheet. Query engine/form stays unchanged.
 * -------------------------------------------------------------------------- */
.odo-faceted-mobilebar,.odo-facets__mobile-head,.odo-facets-sheet-backdrop{display:none}

/* --------------------------------------------------------------------------
 * Mobile purchase bar and bottom navigation.
 * -------------------------------------------------------------------------- */
.odo-mobile-bottom-nav,.odo-mobile-purchase{display:none}

/* --------------------------------------------------------------------------
 * Woo tabs progressive mobile accordion.
 * -------------------------------------------------------------------------- */
.odo-mobile-tab-trigger{display:none}

/* Micro polish */
body.odo-commerce-ui .odo-tb-product .summary .price{letter-spacing:-.02em}
body.odo-commerce-ui .odo-premium-product__summary form.cart{padding-top:6px}
body.odo-commerce-ui .odo-premium-product__summary .variations{margin-bottom:12px!important}
body.odo-commerce-ui .odo-premium-product__summary .single_add_to_cart_button{min-height:52px!important;border-radius:10px!important;transition:transform .18s ease,background .18s ease!important}
body.odo-commerce-ui .odo-premium-product__summary .single_add_to_cart_button:not(:disabled):hover{transform:translateY(-1px)}
body.odo-commerce-ui .odo-product-card-v280 .odo-product-card-v2__media-wrap{isolation:isolate}

@media(max-width:780px){
  /* Drawers become bottom sheets on phones. */
  .odo-mini-cart,.odo-size-guide{grid-template-columns:1fr;align-items:end}.odo-mini-cart__backdrop,.odo-size-guide__backdrop{grid-column:1;grid-row:1}.odo-mini-cart__panel,.odo-size-guide__panel{grid-column:1;grid-row:1;align-self:end;width:100%;max-height:min(88vh,760px);height:auto;border-radius:20px 20px 0 0;animation:odo-v290-sheet-up .3s cubic-bezier(.2,.72,.2,1);overflow:hidden}.odo-mini-cart__content{max-height:55vh}.odo-size-guide__body{max-height:66vh}.odo-mini-cart__panel>header,.odo-size-guide__panel>header{padding:20px}.odo-mini-cart__content{padding-inline:20px}.odo-mini-cart__panel>footer{padding-inline:20px}.odo-size-guide__body{padding:22px 20px 30px}.odo-size-guide__panel h2{font-size:28px}
  @keyframes odo-v290-sheet-up{from{transform:translateY(36px);opacity:.5}to{transform:none;opacity:1}}

  .odo-product-fit{grid-template-columns:1fr;padding:16px}.odo-product-fit>button{width:100%}.odo-product-service-strip{grid-template-columns:1fr}.odo-product-service-strip>div{grid-template-columns:24px minmax(0,1fr)}

  /* Faceted shop becomes a controlled bottom sheet rather than a permanently tall form. */
  .odo-ux-v290-ready .odo-faceted-shop--sheet .odo-faceted-mobilebar{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 14px}.odo-faceted-mobilebar button{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:46px;padding:0 14px;border:1px solid var(--odo-ux-line);border-radius:10px;background:#fff;color:#111;font-size:11px;font-weight:760}.odo-faceted-mobilebar button b{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#111;color:#fff;font-size:8px}.odo-faceted-mobilebar button small{color:#77736d;font-size:9px;font-weight:600}
  .odo-ux-v290-ready .odo-faceted-shop--sheet .odo-facets-sheet-backdrop{position:fixed;z-index:100070;inset:0;display:block;border:0;background:rgba(13,13,13,.45);backdrop-filter:blur(3px)}.odo-faceted-shop--sheet .odo-facets-sheet-backdrop[hidden]{display:none!important}
  .odo-ux-v290-ready .odo-faceted-shop--sheet .odo-facets[data-odo-facet-sheet]{position:fixed!important;z-index:100080;left:0;right:0;bottom:0;display:grid!important;grid-template-columns:1fr!important;gap:0!important;width:100%!important;max-width:none!important;max-height:88vh!important;margin:0!important;padding:0!important;border:0!important;border-radius:20px 20px 0 0!important;background:#fff!important;box-shadow:0 -20px 60px rgba(17,17,17,.18)!important;overflow:auto!important;overscroll-behavior:contain;transform:translateY(110%);visibility:hidden;transition:transform .28s cubic-bezier(.2,.72,.2,1),visibility 0s linear .28s}
  .odo-ux-v290-ready .odo-faceted-shop--sheet .odo-facets[data-odo-facet-sheet].is-open{transform:none;visibility:visible;transition:transform .28s cubic-bezier(.2,.72,.2,1)}
  .odo-ux-v290-ready .odo-faceted-shop--sheet .odo-facets__mobile-head{position:sticky;z-index:4;top:0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 18px 15px;border-bottom:1px solid var(--odo-ux-line);background:rgba(255,255,255,.97);backdrop-filter:blur(10px)}.odo-facets__mobile-head strong{display:block;margin-top:4px;font-size:20px;letter-spacing:-.025em}.odo-facets__mobile-head>button{width:38px;height:38px;border:1px solid var(--odo-ux-line);border-radius:50%;background:#fff;font-size:22px}
  .odo-ux-v290-ready .odo-faceted-shop--sheet .odo-facets fieldset{padding:18px;border-bottom:1px solid var(--odo-ux-line)}.odo-faceted-shop--sheet .odo-facets fieldset legend{margin-bottom:12px}.odo-faceted-shop--sheet .odo-facets__checks{max-height:none!important;overflow:visible!important}.odo-faceted-shop--sheet .odo-facets__actions{position:sticky;z-index:4;bottom:0;display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:14px 18px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--odo-ux-line);background:rgba(255,255,255,.98);backdrop-filter:blur(10px)}.odo-faceted-shop--sheet .odo-facets__actions .odo-btn{order:2;width:100%;min-height:48px}.odo-faceted-shop--sheet .odo-facets__actions>a{order:1;padding:12px 4px}

  /* Bottom navigation: native app-like access on ordinary pages. */
  .odo-mobile-bottom-nav{position:fixed;z-index:100040;left:10px;right:10px;bottom:10px;display:grid;grid-template-columns:repeat(5,1fr);min-height:62px;padding:6px 6px calc(6px + env(safe-area-inset-bottom));border:1px solid rgba(229,225,217,.9);border-radius:18px;background:rgba(255,255,255,.94);box-shadow:0 12px 40px rgba(17,17,17,.14);backdrop-filter:blur(16px) saturate(135%)}.odo-mobile-bottom-nav--four{grid-template-columns:repeat(4,1fr)!important}.odo-mobile-bottom-nav>a{position:relative;display:grid;place-items:center;align-content:center;gap:3px;min-width:0;color:#111!important;text-decoration:none!important}.odo-mobile-bottom-nav>a>span{font-size:18px;line-height:1}.odo-mobile-bottom-nav>a>small{font-size:7px;font-weight:760;white-space:nowrap}.odo-mobile-bottom-nav>a>b{position:absolute;top:3px;right:calc(50% - 19px);display:grid;place-items:center;min-width:15px;height:15px;padding:0 3px;border-radius:999px;background:var(--odo-ux-accent);font-size:7px;color:#111}
  body.odo-commerce-ui.odo-has-mobile-nav:not(.single-product){padding-bottom:86px}
  body.odo-commerce-ui.single-product .odo-mobile-bottom-nav{display:none}

  /* Product page gets a dedicated sticky purchase bar. */
  body.odo-commerce-ui.single-product .odo-mobile-purchase{position:fixed;z-index:100050;left:8px;right:8px;bottom:8px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 10px 10px 14px;border:1px solid rgba(229,225,217,.92);border-radius:16px;background:rgba(255,255,255,.96);box-shadow:0 14px 44px rgba(17,17,17,.17);backdrop-filter:blur(16px) saturate(140%)}.odo-mobile-purchase>div{min-width:0}.odo-mobile-purchase small{display:block;max-width:48vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#77736d;font-size:7px;text-transform:uppercase;letter-spacing:.06em}.odo-mobile-purchase strong{display:block;margin-top:3px;font-size:13px}.odo-mobile-purchase button{min-height:44px;padding:0 17px;border:0;border-radius:10px;background:#111;color:#fff;font-size:10px;font-weight:780}.odo-mobile-purchase button:active{transform:scale(.98)}
  body.odo-commerce-ui.single-product.odo-has-mobile-purchase{padding-bottom:88px}

  /* Product tabs => accordion on small screens, native desktop tabs stay intact. */
  html.odo-ux-v290-ready body.odo-commerce-ui.single-product .woocommerce-tabs>ul.tabs{display:none!important}html.odo-ux-v290-ready .odo-mobile-tab-trigger{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;padding:17px 0;border:0;border-top:1px solid var(--odo-ux-line);background:transparent;color:#111;text-align:left;font-size:12px;font-weight:760}.odo-mobile-tab-trigger:after{content:'+';font-size:18px;font-weight:400}.odo-mobile-tab-trigger.is-active:after{content:'−'}html.odo-ux-v290-ready .odo-mobile-tab-trigger+.woocommerce-Tabs-panel{display:none!important;margin:0!important;padding:0 0 22px!important}html.odo-ux-v290-ready .odo-mobile-tab-trigger+.woocommerce-Tabs-panel.is-odo-mobile-active{display:block!important}
}

@media(max-width:480px){
  .odo-mini-cart__panel>footer{grid-template-columns:1fr}.odo-mini-cart__panel>footer>small{grid-column:1}.odo-product-grid-v2--drawer{grid-template-columns:1fr 1fr!important}
}

@media(prefers-reduced-motion:reduce){
  .odo-mini-cart__panel,.odo-size-guide__panel{animation:none!important}.odo-faceted-shop--sheet .odo-facets[data-odo-facet-sheet]{transition:none!important}
}
