/* Anatolia Commerce OS — cross-theme stability layer v1.7.1
   Loaded after each theme stylesheet. It fixes structure, responsive behavior,
   catalogue filters and common accessibility states without flattening theme identity. */

:where(.fx-theme,.roiser-native,.anvogue-native),
:where(.fx-theme,.roiser-native,.anvogue-native) *{box-sizing:border-box}
:where(.fx-theme,.roiser-native,.anvogue-native){margin:0;min-width:0;overflow-x:clip}
:where(.fx-theme,.roiser-native,.anvogue-native) main{display:block;min-width:0;overflow:clip}
:where(.fx-theme,.roiser-native,.anvogue-native) img{max-width:100%;height:auto}
:where(.fx-theme,.roiser-native,.anvogue-native) button,
:where(.fx-theme,.roiser-native,.anvogue-native) input,
:where(.fx-theme,.roiser-native,.anvogue-native) select,
:where(.fx-theme,.roiser-native,.anvogue-native) textarea{max-width:100%;font:inherit}
:where(.fx-shell,.rr-container,.av-container){min-width:0}
:where(.fx-builder-block,.rr-builder-block,.av-builder-block){min-width:0;overflow:clip}
:where(.fx-product-grid,.rr-product-grid,.av-product-grid)>*{min-width:0}

/* Header and footer safety guards */
:where(.fx-header-shell,.rr-header-middle-grid,.av-mainnav-inner){min-width:0}
:where(.fx-nav,.rr-main-menu,.av-nav,.fx-actions,.rr-header-actions,.av-actions){min-width:0}
:where(.fx-native-footer,.rr-native-footer,.av-footer){min-width:0;overflow:hidden}

/* Catalogue shell */
.catalog-layout-shell{position:relative;min-width:0;align-items:start}
.catalog-products-region{min-width:0;align-content:start}
.catalog-sort-form{margin:0;min-width:0}
.catalog-sort-form select{max-width:100%;cursor:pointer}
.catalog-sort-form input[type="hidden"]{display:none!important}
.catalog-filter-backdrop{display:none}
.catalog-filter-panel{min-width:0;align-self:start}
.catalog-filter-panel .catalog-filter{width:100%;min-width:0;color:inherit}
.catalog-filter__head{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding-bottom:20px;border-bottom:1px solid color-mix(in srgb,currentColor 13%,transparent)}
.catalog-filter__head h2{margin:0!important;font-size:clamp(25px,2.1vw,34px)!important;line-height:1.05!important;font-weight:500!important;letter-spacing:-.025em!important}
.catalog-filter__eyebrow{margin:0 0 5px!important;font-size:9px!important;font-weight:700!important;letter-spacing:.16em!important;text-transform:uppercase!important;opacity:.55}
.catalog-filter__count{display:grid;place-items:center;min-width:25px;height:25px;padding:0 7px;border-radius:999px;background:currentColor;color:var(--native-surface,#fff);font-size:10px;font-weight:700}
.fx-theme .catalog-filter__count{color:var(--fx-surface);background:var(--fx-text)}
.roiser-native .catalog-filter__count{color:#fff;background:var(--rr-color-theme-primary)}
.anvogue-native .catalog-filter__count{color:#fff;background:var(--av-primary)}
.catalog-filter__close{display:none;width:38px;height:38px;padding:0;border:1px solid color-mix(in srgb,currentColor 16%,transparent);border-radius:50%;background:transparent;color:inherit;font-size:24px;line-height:1;cursor:pointer}
.catalog-filter__form{display:grid!important;gap:0!important;margin:0!important}
.catalog-filter__section{display:grid!important;gap:8px!important;margin:0!important;padding:18px 0!important;border:0!important;border-bottom:1px solid color-mix(in srgb,currentColor 11%,transparent)!important;min-width:0}
.catalog-filter__field-grid{display:grid;grid-template-columns:1fr;gap:0;min-width:0}
.catalog-filter__label{display:block!important;margin:0!important;padding:0!important;color:inherit!important;font-size:10px!important;font-weight:700!important;line-height:1.25!important;letter-spacing:.09em!important;text-transform:uppercase!important}
.catalog-filter__search{position:relative;display:block;min-width:0}
.catalog-filter__search span{position:absolute;inset-inline-end:13px;top:50%;transform:translateY(-50%);pointer-events:none;opacity:.48;font-size:18px}
.catalog-filter :where(input[type="search"],select){display:block!important;width:100%!important;min-width:0!important;height:46px!important;margin:0!important;padding:0 40px 0 13px!important;border:1px solid color-mix(in srgb,currentColor 17%,transparent)!important;border-radius:var(--catalog-control-radius,6px)!important;background:var(--catalog-control-bg,#fff)!important;color:inherit!important;font-size:12px!important;font-weight:500!important;line-height:44px!important;letter-spacing:0!important;text-transform:none!important;outline:0!important;box-shadow:none!important;appearance:auto}
[dir="rtl"] .catalog-filter :where(input[type="search"],select){padding:0 13px 0 40px!important}
.catalog-filter :where(input[type="search"],select):focus{border-color:var(--catalog-accent,currentColor)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--catalog-accent,currentColor) 12%,transparent)!important}
.catalog-filter__group{margin:0!important;padding:0!important;border:0!important;border-bottom:1px solid color-mix(in srgb,currentColor 11%,transparent)!important;min-width:0}
.catalog-filter__group>summary{display:grid;grid-template-columns:minmax(0,1fr) auto 14px;align-items:center;gap:9px;min-height:57px;padding:16px 0;cursor:pointer;list-style:none;font-size:15px;font-weight:600;line-height:1.25}
.catalog-filter__group>summary::-webkit-details-marker{display:none}
.catalog-filter__group>summary b{display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:color-mix(in srgb,var(--catalog-accent,currentColor) 12%,transparent);color:var(--catalog-accent,currentColor);font-size:10px}
.catalog-filter__group>summary i{position:relative;width:12px;height:12px}
.catalog-filter__group>summary i:before,.catalog-filter__group>summary i:after{content:"";position:absolute;left:1px;top:5px;width:10px;height:1px;background:currentColor;transition:.2s}
.catalog-filter__group>summary i:after{transform:rotate(90deg)}
.catalog-filter__group[open]>summary i:after{transform:rotate(0)}
.catalog-filter__options{display:grid;gap:2px;padding:0 0 16px}
.catalog-filter__options--fields{gap:9px;padding-top:2px}
.catalog-filter__option{position:relative;display:grid!important;grid-template-columns:18px auto minmax(0,1fr) auto;align-items:center;gap:9px!important;min-height:40px;margin:0!important;padding:7px 2px!important;border:0!important;color:inherit!important;font-size:13px!important;font-weight:500!important;line-height:1.3!important;letter-spacing:0!important;text-transform:none!important;cursor:pointer}
.catalog-filter__option:hover{color:var(--catalog-accent,currentColor)}
.catalog-filter__option input{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;min-height:0!important;margin:0!important}
.catalog-filter__checkbox{display:grid;width:18px;height:18px;border:1px solid color-mix(in srgb,currentColor 32%,transparent);border-radius:4px;background:var(--catalog-control-bg,#fff);transition:.18s}
.catalog-filter__option input:checked+.catalog-filter__checkbox{border-color:var(--catalog-accent,currentColor);background:var(--catalog-accent,currentColor)}
.catalog-filter__option input:checked+.catalog-filter__checkbox:after{content:"";width:7px;height:4px;margin:auto;border-left:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:rotate(-45deg) translateY(-1px)}
[dir="ltr"] .catalog-filter__option input:checked+.catalog-filter__checkbox:after{transform:rotate(-45deg) translateY(-1px)}
.catalog-filter__swatch{width:14px;height:14px;border-radius:50%;border:1px solid color-mix(in srgb,currentColor 18%,transparent);background:var(--swatch)}
.catalog-filter__option-label{min-width:0;overflow-wrap:anywhere}
.catalog-filter__option small{justify-self:end;color:inherit!important;font-size:10px!important;font-weight:500!important;opacity:.55}
.catalog-filter__option--standalone{grid-template-columns:18px minmax(0,1fr);margin-top:4px!important}
.catalog-filter__actions{position:sticky;bottom:0;z-index:2;display:grid;grid-template-columns:1fr;gap:10px;padding:18px 0 2px;background:linear-gradient(to bottom,transparent,var(--catalog-panel-bg,#fff) 18%)}
.catalog-filter__apply{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:0 18px;border:1px solid var(--catalog-accent,currentColor);border-radius:var(--catalog-button-radius,4px);background:var(--catalog-accent,currentColor);color:#fff;font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;cursor:pointer}
.catalog-filter__clear{display:flex;align-items:center;justify-content:center;min-height:38px;color:inherit!important;font-size:11px!important;text-decoration:underline!important;text-underline-offset:4px;opacity:.7}

/* Engine color mapping */
.fx-theme{--catalog-accent:var(--fx-primary);--catalog-panel-bg:var(--fx-surface);--catalog-control-bg:#fff;--catalog-control-radius:var(--fx-radius);--catalog-button-radius:var(--fx-radius)}
.roiser-native{--catalog-accent:var(--rr-color-theme-primary);--catalog-panel-bg:var(--native-surface);--catalog-control-bg:#fff;--catalog-control-radius:var(--native-radius);--catalog-button-radius:var(--native-radius)}
.anvogue-native{--catalog-accent:var(--av-primary);--catalog-panel-bg:var(--av-surface);--catalog-control-bg:#fff;--catalog-control-radius:var(--av-radius);--catalog-button-radius:999px}

/* Desktop catalogue dimensions */
@media(min-width:1181px){
  .fx-catalog-layout{grid-template-columns:minmax(230px,270px) minmax(0,1fr)!important;gap:clamp(30px,3vw,56px)!important}
  .rr-catalog-layout{grid-template-columns:minmax(240px,285px) minmax(0,1fr)!important;gap:clamp(30px,3vw,52px)!important}
  .av-catalog-layout{grid-template-columns:minmax(240px,280px) minmax(0,1fr)!important;gap:clamp(30px,3vw,52px)!important}
  .catalog-filter-panel{position:relative!important;display:block!important;visibility:visible!important;transform:none!important;inset:auto!important;width:auto!important;height:auto!important;overflow:visible!important;background:transparent!important;box-shadow:none!important;z-index:auto!important}
  .catalog-filter-panel .catalog-filter{position:sticky;top:var(--catalog-sticky-top,150px);max-height:calc(100vh - var(--catalog-sticky-top,150px) - 24px);overflow:auto;padding-inline-end:13px;scrollbar-width:thin}
  .fx-filter-panel .catalog-filter{--catalog-sticky-top:175px}
  .rr-filter-panel .catalog-filter{--catalog-sticky-top:190px}
  .av-filter-panel .catalog-filter{--catalog-sticky-top:145px}
}

/* Prevent native package CSS from breaking our adapted layouts */
.roiser-native :where(.rr-section,.rr-product-main,.rr-catalog,.rr-cart-page,.rr-checkout-page),
.anvogue-native :where(.av-section,.av-product-main,.av-catalog,.av-cart-page,.av-checkout-page){clear:both;float:none;width:auto;max-width:none}
.roiser-native :where(.rr-product-grid,.rr-category-grid,.rr-blog-grid,.rr-footer-grid),
.anvogue-native :where(.av-product-grid,.av-category-grid,.av-blog-grid,.av-footer-grid){min-width:0}
.roiser-native :where(.rr-product-card,.rr-category-card,.rr-blog-card),
.anvogue-native :where(.av-product-card,.av-category-card,.av-blog-card){min-width:0;max-width:100%}
.roiser-native .rr-product-media img,.anvogue-native .av-product-media img{width:100%;height:100%;object-fit:contain}
.roiser-native :where(.rr-product-copy,.rr-product-summary,.rr-split-copy),
.anvogue-native :where(.av-product-copy,.av-product-summary,.av-split-copy){min-width:0;overflow-wrap:anywhere}

/* Variant-specific structural guardrails — identity remains distinct */
.roiser-fashion .rr-product-grid{gap:22px}
.roiser-grocery .rr-section{border-radius:0}
.roiser-grocery .rr-catalog-toolbar{border-radius:12px;padding-inline:14px;background:color-mix(in srgb,var(--native-surface-alt) 70%,transparent)}
.roiser-furniture .rr-section{padding-block:clamp(64px,7vw,112px)}
.roiser-furniture .rr-product-grid{gap:clamp(24px,3vw,46px)}
.anvogue-fashion .av-section{padding-block:clamp(64px,7vw,104px)}
.anvogue-organic .av-catalog-toolbar{border:0;border-radius:16px;padding-inline:18px;background:var(--av-surface-2)}
.anvogue-marketplace .av-catalog-layout{gap:26px!important}
.anvogue-marketplace .catalog-filter__head h2{font-family:inherit!important;font-size:24px!important;font-weight:700!important}

/* Tablet and mobile filter drawer */
@media(max-width:1180px){
  .fx-catalog-layout,.rr-catalog-layout,.av-catalog-layout{display:block!important;margin-top:24px!important}
  .fx-catalog-toolbar,.rr-catalog-toolbar,.av-catalog-toolbar{position:relative!important;top:auto!important;z-index:15;grid-template-columns:auto 1fr auto!important;gap:12px!important;padding:13px 0!important}
  .fx-catalog-toolbar>button,.rr-catalog-toolbar>button,.av-catalog-toolbar>button{display:inline-flex!important;align-items:center;min-height:42px;padding:0 14px!important;border:1px solid color-mix(in srgb,currentColor 16%,transparent)!important;border-radius:8px!important;background:var(--catalog-panel-bg,#fff)!important;cursor:pointer}
  .fx-catalog-toolbar span,.rr-catalog-toolbar>span,.av-catalog-toolbar>p{min-width:0;text-align:center!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .catalog-sort-form select{height:42px!important;padding:0 12px!important;border:1px solid color-mix(in srgb,currentColor 16%,transparent)!important;border-radius:8px!important;background:var(--catalog-panel-bg,#fff)!important}
  .catalog-filter-panel{position:fixed!important;inset:0 auto 0 0!important;z-index:1002!important;display:block!important;width:min(410px,92vw)!important;height:100dvh!important;padding:24px!important;background:var(--catalog-panel-bg,#fff)!important;box-shadow:0 24px 70px rgba(0,0,0,.2)!important;overflow:auto!important;overscroll-behavior:contain;transform:translateX(-105%)!important;visibility:hidden!important;transition:transform .28s ease,visibility .28s!important}
  [dir="rtl"] .catalog-filter-panel{left:auto!important;right:0!important;transform:translateX(105%)!important}
  .catalog-filter-panel.is-open,.catalog-filter-panel.open{transform:translateX(0)!important;visibility:visible!important}
  .catalog-filter-panel .catalog-filter{position:static!important;max-height:none!important;overflow:visible!important;padding:0 0 28px!important;border:0!important}
  .catalog-filter__close{display:grid;place-items:center}
  .catalog-filter-backdrop{position:fixed;inset:0;z-index:1001;display:block;border:0;background:rgba(13,17,14,.48);opacity:0;visibility:hidden;pointer-events:none;transition:.25s}
  body.catalog-filter-open .catalog-filter-backdrop{opacity:1;visibility:visible;pointer-events:auto}
  body.catalog-filter-open{overflow:hidden!important;touch-action:none}
  .catalog-filter__actions{bottom:-24px;margin-inline:-24px;padding:24px;background:var(--catalog-panel-bg,#fff);border-top:1px solid color-mix(in srgb,currentColor 12%,transparent)}
}

@media(max-width:760px){
  .fx-catalog-toolbar,.rr-catalog-toolbar,.av-catalog-toolbar{grid-template-columns:1fr auto!important}
  .fx-catalog-toolbar>span,.rr-catalog-toolbar>span,.av-catalog-toolbar>p{grid-column:1/-1;grid-row:2;text-align:start!important;font-size:11px}
  .catalog-filter__field-grid{grid-template-columns:1fr}
  .catalog-filter-panel{width:min(390px,96vw)!important;padding:20px!important}
  .catalog-filter__actions{bottom:-20px;margin-inline:-20px;padding:20px}
  .fx-product-grid,.rr-product-grid,.av-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:22px 12px!important}
}

@media(max-width:430px){
  .fx-product-grid,.rr-product-grid,.av-product-grid{grid-template-columns:1fr!important;gap:24px!important}
  .catalog-filter-panel{width:100vw!important}
  .catalog-filter__head h2{font-size:28px!important}
}

/* RTL refinements */
[dir="rtl"] .catalog-filter__search span{left:13px;right:auto}
[dir="rtl"] .catalog-filter__option small{justify-self:start}
[dir="rtl"] .catalog-filter__group>summary i:after{transform:rotate(90deg)}
[dir="rtl"] .catalog-filter__group[open]>summary i:after{transform:rotate(0)}
