body[data-site-page^="shop"]{
  margin:0;
  color:var(--operis-text-color, #0f172a);
  background:var(--operis-page-bg, #fff);
  font-family:var(--operis-site-font, Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
body[data-site-page^="shop"] *,
body[data-site-page^="shop"] *::before,
body[data-site-page^="shop"] *::after{
  box-sizing:border-box;
}
body[data-site-page^="shop"] a{
  color:inherit;
  text-decoration:none;
}
body[data-site-page^="shop"] img{
  display:block;
  max-width:100%;
}
body[data-site-page^="shop"] button,
body[data-site-page^="shop"] input,
body[data-site-page^="shop"] textarea,
body[data-site-page^="shop"] select{
  font:inherit;
}
.operis-shop-page{
  background:var(--operis-page-bg, #fff);
  color:var(--operis-text-color, #0f172a);
  min-height:55vh;
}
.operis-shop-page *,
.operis-shop-page *::before,
.operis-shop-page *::after{
  box-sizing:border-box;
}
.operis-shop-page .container{
  width:min(1180px, calc(100% - 2rem));
  margin-inline:auto;
}
.operis-shop-page[data-shop-page="catalog"] .shop-section > .shop-catalog-layout{
  width:calc(100% - 2rem);
  max-width:none;
}
.shop-loading,
.shop-section{
  padding:1.6rem 0 2.2rem;
}
.shop-hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:var(--operis-surface-bg, #fff);
  border-bottom:1px solid var(--operis-card-border, #dbe4f0);
  padding:1.5rem 0;
}
.shop-hero.has-image{
  min-height:0;
  display:block;
  border-bottom:1px solid var(--operis-card-border, #dbe4f0);
  background:#fff;
  padding:0;
  line-height:0;
}
.shop-hero-background{
  position:static;
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
  object-position:center;
}
.shop-hero-inner{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:1.2rem;
  align-items:center;
}
.shop-hero-copy{
  min-width:0;
}
.shop-hero-copy.has-shop-back{
  display:grid;
  grid-template-columns:1fr;
  gap:.42rem;
  align-items:start;
}
.shop-hero-text{
  min-width:0;
}
.shop-back-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  justify-self:start;
  gap:.3rem;
  min-height:auto;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#526179;
  font-size:.82rem;
  font-weight:850;
  line-height:1.25;
  text-decoration:none;
  box-shadow:none;
  transition:color .16s ease, transform .16s ease;
}
.shop-back-link:hover,
.shop-back-link:focus-visible{
  color:#0f1a66;
  transform:translateX(-2px);
  text-decoration:underline;
  text-underline-offset:3px;
  outline:none;
}
.shop-back-link svg{
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.25;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.shop-back-link span{
  white-space:nowrap;
}
.shop-hero h1{
  max-width:860px;
  margin:.2rem 0 .45rem;
  font-size:clamp(1.85rem, 3.2vw, 2.85rem);
  line-height:1.08;
  letter-spacing:0;
  color:var(--operis-heading-color, #0f172a);
}
.operis-shop-page[data-shop-page="product"] .shop-hero h1{
  width:100%;
  max-width:none;
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  margin:.1rem 0 .35rem;
  font-size:clamp(1.05rem, 1.35vw, 1.35rem);
  line-height:1.25;
}
.shop-hero p{
  max-width:760px;
  margin:0;
  color:var(--operis-muted-text, #526179);
  font-size:.98rem;
  line-height:1.55;
}
.shop-hero-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:.5rem;
}
.shop-cart-link{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  min-height:38px;
  padding:.5rem .78rem;
  border:1px solid var(--operis-secondary-button-border, #c8d5e6);
  border-radius:8px;
  background:var(--operis-secondary-button-bg, #fff);
  color:var(--operis-secondary-button-text, #0f1a66);
  font-size:.9rem;
  font-weight:900;
  text-decoration:none;
  box-shadow:0 8px 20px rgba(15,23,42,.06);
}
.shop-cart-link:hover,
.shop-cart-link:focus-visible{
  background:var(--operis-secondary-button-hover-bg, #f4f8ff);
  color:var(--operis-secondary-button-text, #0f1a66);
}
.shop-cart-link svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.1;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.shop-favorites-link{
  color:#991b1b;
}
.shop-favorites-link svg{
  fill:rgba(239,35,60,.12);
  stroke:#ef233c;
}
.shop-favorites-link span{
  background:#ef233c;
}
.shop-cart-link span{
  min-width:1.35rem;
  height:1.35rem;
  display:inline-grid;
  place-items:center;
  border-radius:999px;
  background:#16a34a;
  color:#fff;
  font-size:.82rem;
}
.shop-floating-cart{
  position:fixed;
  right:1.15rem;
  bottom:1.15rem;
  z-index:120;
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  border:1px solid rgba(255,255,255,.7);
  border-radius:999px;
  background:var(--shop-floating-cart-bg, #0d6efd);
  color:#fff;
  box-shadow:0 16px 34px var(--shop-floating-cart-shadow, rgba(13,110,253,.32));
  text-decoration:none;
  touch-action:none;
  user-select:none;
  cursor:grab;
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.shop-floating-cart:hover,
.shop-floating-cart:focus-visible{
  background:var(--shop-floating-cart-bg, #0b5ed7);
  transform:translateY(-2px);
  filter:brightness(.94);
  box-shadow:0 18px 38px var(--shop-floating-cart-shadow-hover, rgba(13,110,253,.38));
}
.shop-floating-cart.is-dragging{
  cursor:grabbing;
  transition:none;
  transform:scale(1.03);
}
.shop-floating-cart svg{
  width:26px;
  height:26px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.15;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.shop-floating-cart span{
  position:absolute;
  top:-.25rem;
  right:-.18rem;
  min-width:1.42rem;
  height:1.42rem;
  display:inline-grid;
  place-items:center;
  padding:0 .22rem;
  border:2px solid #fff;
  border-radius:999px;
  background:#ef233c;
  color:#fff;
  font-size:.76rem;
  font-weight:950;
  line-height:1;
  box-shadow:0 8px 16px rgba(239,35,60,.28);
}
.shop-floating-cart span[hidden]{
  display:none !important;
}
.shop-product-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(270px, 1fr));
  gap:.85rem;
  align-items:stretch;
}
.operis-shop-products-widget,
.operis-shop-widget-body{
  display:grid;
  gap:.85rem;
}
.operis-builder-products .shop-product-grid{
  grid-template-columns:repeat(var(--shop-widget-columns, 3), minmax(0, 1fr));
}
@media (max-width: 820px){
  .operis-builder-products .shop-product-grid{
    grid-template-columns:repeat(var(--shop-widget-mobile-columns, 2), minmax(0, 1fr));
  }
}
@media (max-width: 480px){
  .operis-builder-products .shop-product-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}
.operis-shop-products-widget .shop-notice{
  margin:0;
}
.operis-shop-widget-placeholder{
  min-height:120px;
  display:grid;
  place-items:center;
  padding:1rem;
  border:1px dashed #c8d5e6;
  border-radius:8px;
  background:#f8fafc;
  color:#526179;
  font-weight:900;
  text-align:center;
}
.shop-catalog-layout{
  display:grid;
  grid-template-columns:minmax(220px, 265px) minmax(0, 1fr);
  gap:1rem;
  align-items:start;
}
.shop-catalog-results{
  min-width:0;
}
.shop-filter-form{
  position:sticky;
  top:1rem;
  display:grid;
  gap:.75rem;
  padding:.85rem;
  border:1px solid #dbe4f0;
  border-radius:8px;
  background:#fff;
  box-shadow:0 10px 26px rgba(15,23,42,.05);
}
.shop-filter-search{
  display:grid;
  gap:.55rem;
}
.shop-filter-search label,
.shop-filter-price label{
  display:grid;
  gap:.28rem;
  color:#25314d;
  font-size:.78rem;
  font-weight:900;
}
.shop-filter-search input,
.shop-filter-price input{
  width:100%;
  min-height:38px;
  border:1px solid #c8d5e6;
  border-radius:8px;
  padding:.48rem .6rem;
  background:#fff;
  color:#0f172a;
  font:inherit;
  font-size:.84rem;
  font-weight:800;
}
.shop-filter-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.65rem;
  padding-top:.1rem;
}
.shop-filter-dropdown{
  min-width:0;
  border-top:1px solid #edf2f7;
}
.shop-filter-dropdown > .shop-filter-head{
  min-height:46px;
  padding:.38rem .15rem;
  cursor:pointer;
  list-style:none;
}
.shop-filter-dropdown > .shop-filter-head::-webkit-details-marker{
  display:none;
}
.shop-filter-dropdown > .shop-filter-head::after{
  content:"";
  width:9px;
  height:9px;
  flex:0 0 auto;
  margin:0 .25rem 3px .1rem;
  border-right:2px solid #2f5aae;
  border-bottom:2px solid #2f5aae;
  transform:rotate(45deg);
  transition:transform .18s ease;
}
.shop-filter-dropdown[open] > .shop-filter-head::after{
  margin-bottom:-3px;
  transform:rotate(225deg);
}
.shop-filter-dropdown-body{
  display:grid;
  gap:.6rem;
  max-height:min(58vh, 620px);
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding:.05rem .28rem .15rem 0;
}
.shop-filter-dropdown:not([open]) > .shop-filter-dropdown-body{
  display:none;
}
.shop-filter-head strong{
  color:#0f172a;
  font-size:1rem;
}
.shop-filter-head span{
  margin-left:auto;
  color:#526179;
  font-size:.78rem;
  font-weight:900;
}
.shop-filter-groups{
  display:grid;
  gap:.5rem;
}
.shop-filter-group{
  border-top:1px solid #edf2f7;
  padding-top:.5rem;
}
.shop-filter-group summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:28px;
  color:#0f172a;
  font-size:.86rem;
  font-weight:950;
  cursor:pointer;
  list-style:none;
}
.shop-filter-group summary::-webkit-details-marker{
  display:none;
}
.shop-filter-group summary::after{
  content:"+";
  color:#2f5aae;
  font-weight:950;
}
.shop-filter-group[open] summary::after{
  content:"-";
}
.shop-filter-options{
  display:grid;
  gap:.3rem;
  margin-top:.45rem;
  max-height:180px;
  overflow:auto;
  padding-right:.15rem;
}
.shop-filter-option{
  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto;
  align-items:center;
  gap:.42rem;
  min-height:28px;
  color:#25314d;
  font-size:.82rem;
  font-weight:800;
  cursor:pointer;
}
.shop-filter-option input{
  width:15px;
  height:15px;
  accent-color:#0d6efd;
}
.shop-filter-option span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.shop-filter-option small{
  min-width:1.45rem;
  height:1.25rem;
  display:inline-grid;
  place-items:center;
  border-radius:999px;
  background:#eef4fb;
  color:#526179;
  font-size:.72rem;
  font-weight:950;
}
.shop-filter-price{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.45rem;
  margin-top:.45rem;
}
.shop-filter-actions{
  position:sticky;
  z-index:2;
  bottom:0;
  display:grid;
  gap:.45rem;
  padding:.6rem 0 .05rem;
  border-top:1px solid #edf2f7;
  background:#fff;
}
.shop-filter-actions .shop-button{
  width:100%;
}
.shop-filter-reset{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  border:1px solid #fecaca;
  border-radius:8px;
  background:#fff;
  color:#991b1b;
  font-size:.8rem;
  font-weight:950;
  text-decoration:none;
}
.shop-category-bar{
  position:relative;
  z-index:4;
  border-bottom:1px solid #e2e8f0;
  background:#f8fafc;
  box-shadow:none;
}
.shop-category-bar-inner{
  width:calc(100% - 2rem);
  margin-inline:auto;
  display:grid;
  grid-template-columns:125px minmax(0, 1fr);
  align-items:center;
  gap:.5rem;
  padding:.46rem 0;
}
.shop-category-nav-toggle{
  display:block;
  width:100%;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:default;
}
.shop-category-nav-copy{
  display:grid;
  gap:.08rem;
  padding-right:.85rem;
  border-right:1px solid #e2e8f0;
  white-space:nowrap;
}
.shop-category-nav-copy strong{
  color:#0f172a;
  font-size:.9rem;
  line-height:1.2;
}
.shop-category-nav-copy > span{
  color:#64748b;
  font-size:.68rem;
  font-weight:750;
}
.shop-category-nav-toggle-icon{
  display:none;
}
.shop-category-nav-links{
  display:grid;
  grid-template-columns:repeat(8, minmax(0, 1fr));
  align-items:stretch;
  gap:0;
  min-width:0;
  overflow:visible;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.shop-category-nav-links a{
  position:relative;
  min-width:0;
  display:grid;
  grid-template-columns:30px minmax(0, 1fr);
  align-items:center;
  gap:.55rem;
  min-height:56px;
  padding:.45rem .72rem;
  border:0;
  border-radius:0;
  background:transparent;
  color:#25314d;
  line-height:1.15;
  text-decoration:none;
  scroll-snap-align:start;
  transition:color .16s ease;
}
.shop-category-nav-links a + a::before{
  content:"";
  position:absolute;
  top:12px;
  bottom:12px;
  left:0;
  width:1px;
  display:block;
  background:#e2e8f0;
}
.shop-category-nav-links a:hover,
.shop-category-nav-links a:focus-visible{
  background:transparent;
  color:var(--operis-menu-active-color, #c2410c);
  box-shadow:none;
  outline:none;
}
.shop-category-nav-links a.active{
  background:transparent;
  color:var(--operis-menu-active-color, #c2410c);
  box-shadow:none;
}
.shop-category-nav-links a.active::after{
  content:"";
  position:absolute;
  right:.72rem;
  bottom:0;
  left:.72rem;
  height:2px;
  border-radius:999px;
  background:var(--operis-menu-active-color, #f97316);
}
.shop-category-nav-icon{
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  color:var(--operis-menu-active-color, #f97316);
}
.shop-category-nav-icon svg{
  width:100%;
  height:100%;
}
.shop-category-nav-icon.is-custom{
  overflow:hidden;
}
.shop-category-nav-icon.is-custom img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
}
.shop-category-nav-item-copy{
  display:grid;
  gap:.22rem;
  min-width:0;
}
.shop-category-nav-item-copy strong{
  overflow:hidden;
  color:#172033;
  font-size:.76rem;
  font-weight:900;
  line-height:1.15;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.shop-category-nav-item-copy small{
  overflow:hidden;
  color:#64748b;
  font-size:.62rem;
  font-weight:700;
  line-height:1.2;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.shop-category-nav-links a.active .shop-category-nav-item-copy strong{
  color:var(--operis-menu-active-color, #c2410c);
}
.shop-category-section{
  display:grid;
  gap:.75rem;
}
.shop-category-section + .shop-category-section{
  margin-top:1.6rem;
}
.shop-category-title{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1rem;
}
.shop-category-title h2{
  margin:0;
  color:#0f172a;
  font-size:1.28rem;
  line-height:1.15;
}
.shop-category-title p{
  margin:.35rem 0 0;
  color:#526179;
  font-size:.92rem;
  line-height:1.55;
}
.shop-category-title a{
  flex:0 0 auto;
  color:#0f1a66;
  font-weight:900;
  text-decoration:none;
}
.shop-product-card,
.shop-summary,
.shop-checkout-fields,
.shop-account-card,
.shop-account-panel,
.shop-thankyou,
.shop-empty,
.shop-cart-row{
  border:1px solid #dbe4f0;
  border-radius:8px;
  background:#fff;
  box-shadow:0 10px 26px rgba(15,23,42,.05);
}
.shop-product-card{
  min-width:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  min-height:100%;
  transition:box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.shop-product-card:hover{
  transform:translateY(-2px);
  border-color:#c8d5e6;
  box-shadow:0 16px 34px rgba(15,23,42,.10);
}
.shop-product-image,
.shop-detail-image{
  display:block;
  min-height:0;
  background:#f8fafc;
  overflow:hidden;
}
.shop-product-image{
  position:relative;
  aspect-ratio:4 / 3;
  margin:.55rem .55rem 0;
  border-radius:8px;
}
.operis-shop-products-widget .shop-product-image,
.operis-shop-products-widget .shop-product-image img{
  background:#fff;
}
.operis-shop-page[data-shop-page="catalog"] .shop-product-image,
.operis-shop-page[data-shop-page="catalog"] .shop-product-image img{
  background:#fff;
}
.shop-detail-image{
  position:relative;
  aspect-ratio:4 / 3;
  max-height:380px;
  border:1px solid #dbe4f0;
  border-radius:8px;
  background:#fff;
}
.shop-lightbox-trigger{
  width:100%;
  padding:0;
  appearance:none;
  cursor:pointer;
}
.shop-lightbox-trigger:focus-visible{
  outline:3px solid rgba(47,90,174,.32);
  outline-offset:3px;
}
.shop-product-image img,
.shop-detail-image img{
  width:100%;
  height:100%;
  display:block;
}
.operis-shop-page[data-shop-page="product"] .shop-detail-image img,
.operis-shop-page[data-shop-page="product"] .shop-gallery-thumb img{
  background:#fff;
}
.shop-product-image img{
  object-fit:contain;
  opacity:1;
  transition:opacity .18s ease;
}
.shop-product-image img.is-switching{
  opacity:.38;
}
.shop-product-badges{
  position:absolute;
  top:.45rem;
  left:.45rem;
  right:.45rem;
  z-index:2;
  display:flex;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:.25rem;
  pointer-events:none;
}
.shop-product-badges span{
  display:inline-grid;
  place-items:center;
  min-height:22px;
  padding:.22rem .44rem;
  border-radius:5px;
  background:#ef233c;
  color:#fff;
  font-size:.72rem;
  font-weight:950;
  line-height:1;
  box-shadow:0 7px 14px rgba(239,35,60,.22);
}
.shop-product-badges span:nth-child(2){
  background:#0d6efd;
  box-shadow:0 7px 14px rgba(13,110,253,.18);
}
.shop-product-badges span:nth-child(3){
  background:#16a34a;
  box-shadow:0 7px 14px rgba(22,163,74,.18);
}
.shop-detail-image img{
  object-fit:contain;
}
.shop-image-lightbox[hidden]{
  display:none !important;
}
.shop-lightbox-open{
  overflow:hidden;
}
.shop-image-lightbox{
  position:fixed;
  z-index:10050;
  inset:0;
  display:grid;
  place-items:center;
  padding:clamp(.55rem, 2vw, 1.5rem);
  background:rgba(15,23,42,.72);
  backdrop-filter:blur(2px);
}
.shop-image-lightbox-dialog{
  width:min(96vw, 1500px);
  height:min(92vh, 920px);
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(0, 1fr) auto;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.72);
  border-radius:12px;
  background:#fff;
  box-shadow:0 28px 80px rgba(15,23,42,.38);
}
.shop-image-lightbox-header,
.shop-image-lightbox-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.7rem 1rem;
  border-bottom:1px solid #e5ebf3;
  color:#0f172a;
}
.shop-image-lightbox-header strong{
  flex:1 1 auto;
  min-width:0;
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  white-space:normal;
  font-size:.92rem;
  line-height:1.35;
}
.shop-image-lightbox-footer{
  flex-wrap:wrap;
  border-top:1px solid #e5ebf3;
  border-bottom:0;
  background:#fff;
  color:#526179;
  font-size:.8rem;
  font-weight:800;
}
.shop-image-lightbox-close,
.shop-image-lightbox-nav{
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border:1px solid #dbe4f0;
  background:#fff;
  color:#526179;
  cursor:pointer;
  transition:color .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.shop-image-lightbox-close:hover,
.shop-image-lightbox-close:focus-visible,
.shop-image-lightbox-nav:hover,
.shop-image-lightbox-nav:focus-visible{
  border-color:#93c5fd;
  background:#eff6ff;
  color:#0d6efd;
  outline:none;
  box-shadow:0 8px 20px rgba(13,110,253,.14);
}
.shop-image-lightbox-close{
  width:40px;
  height:40px;
  align-self:center;
  border-radius:999px;
}
.shop-image-lightbox-close svg,
.shop-image-lightbox-nav svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.shop-image-lightbox-body{
  min-height:0;
  display:grid;
  grid-template-columns:116px minmax(0, 1fr);
  background:#fff;
}
.shop-image-lightbox-thumbs{
  min-height:0;
  display:grid;
  grid-auto-rows:92px;
  align-content:start;
  gap:.55rem;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:.85rem;
  border-right:1px solid #e5ebf3;
  background:#fff;
}
.shop-image-lightbox-thumb{
  width:100%;
  height:92px;
  min-width:0;
  padding:.25rem;
  overflow:hidden;
  border:1px solid #dbe4f0;
  border-radius:8px;
  background:#fff;
  cursor:pointer;
}
.shop-image-lightbox-thumb.active{
  border-color:#0d6efd;
  box-shadow:0 0 0 2px rgba(13,110,253,.15);
}
.shop-image-lightbox-thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
  background:#fff;
}
.shop-image-lightbox-stage{
  position:relative;
  min-width:0;
  min-height:0;
  display:block;
  padding:0;
  overflow:hidden;
  background:#fff;
}
.shop-image-lightbox-canvas{
  position:absolute;
  inset:1rem 4.5rem;
  overflow:auto;
  overscroll-behavior:contain;
  background:#fff;
}
.shop-image-lightbox-zoom-surface{
  width:100%;
  height:100%;
  min-width:100%;
  min-height:100%;
  display:grid;
  place-items:center;
  background:#fff;
}
.shop-image-lightbox-zoom-surface > img{
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  object-fit:contain;
  background:#fff;
}
.shop-image-lightbox-zoom-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.42rem;
  margin-inline:auto;
  padding:.25rem .45rem;
  border:1px solid #dbe4f0;
  border-radius:999px;
  background:#fff;
}
.shop-image-lightbox-zoom-icon{
  width:20px;
  height:20px;
  fill:none;
  stroke:#526179;
  stroke-width:1.9;
  stroke-linecap:round;
}
.shop-image-lightbox-zoom-controls button{
  display:grid;
  width:32px;
  height:32px;
  place-items:center;
  padding:0;
  border:1px solid #dbe4f0;
  border-radius:999px;
  background:#fff;
  color:#0f172a;
  font-size:1.15rem;
  font-weight:900;
  line-height:1;
  cursor:pointer;
}
.shop-image-lightbox-zoom-controls button:hover,
.shop-image-lightbox-zoom-controls button:focus-visible{
  border-color:#93c5fd;
  background:#eff6ff;
  color:#0d6efd;
  outline:none;
}
.shop-image-lightbox-zoom-controls input[type="range"]{
  width:clamp(120px, 18vw, 240px);
  accent-color:#0d6efd;
  cursor:pointer;
}
.shop-image-lightbox-zoom-controls output{
  min-width:42px;
  color:#0f172a;
  font-weight:900;
  text-align:right;
}
.shop-image-lightbox-nav{
  position:absolute;
  z-index:2;
  top:50%;
  width:48px;
  height:72px;
  border-radius:8px;
  transform:translateY(-50%);
}
.shop-image-lightbox-nav.previous{
  left:1rem;
}
.shop-image-lightbox-nav.next{
  right:1rem;
}
@media (max-width: 700px){
  .shop-image-lightbox{
    padding:.35rem;
  }
  .shop-image-lightbox-dialog{
    width:100%;
    height:min(96vh, 900px);
    border-radius:9px;
  }
  .shop-image-lightbox-body{
    grid-template-columns:1fr;
    grid-template-rows:minmax(0, 1fr) 78px;
  }
  .shop-image-lightbox-thumbs{
    grid-row:2;
    grid-auto-flow:column;
    grid-auto-columns:68px;
    grid-auto-rows:68px;
    overflow-x:auto;
    overflow-y:hidden;
    padding:.35rem .6rem;
    border-top:1px solid #e5ebf3;
    border-right:0;
  }
  .shop-image-lightbox-thumb{
    width:68px;
    height:68px;
  }
  .shop-image-lightbox-stage{
    grid-row:1;
  }
  .shop-image-lightbox-canvas{
    inset:.65rem 2.8rem;
  }
  .shop-image-lightbox-nav{
    width:38px;
    height:58px;
  }
  .shop-image-lightbox-nav.previous{
    left:.35rem;
  }
  .shop-image-lightbox-nav.next{
    right:.35rem;
  }
  .shop-image-lightbox-header,
  .shop-image-lightbox-footer{
    padding:.5rem .65rem;
  }
  .shop-image-lightbox-footer > span:last-child{
    display:none;
  }
  .shop-image-lightbox-zoom-controls{
    margin-right:0;
  }
  .shop-image-lightbox-zoom-controls input[type="range"]{
    width:min(36vw, 150px);
  }
}
.shop-product-placeholder{
  display:grid;
  place-items:center;
  min-height:100%;
  aspect-ratio:16 / 9;
  color:#2f5aae;
  font-size:4rem;
  font-weight:900;
}
.shop-product-body{
  display:grid;
  grid-template-rows:auto minmax(70px, 1fr) auto auto;
  gap:.42rem;
  flex:1;
  padding:.62rem .7rem .7rem;
}
.shop-product-copy{
  display:grid;
  align-content:start;
  gap:.18rem;
  min-width:0;
}
.shop-product-body h2{
  margin:0;
  font-size:.94rem;
  line-height:1.28;
}
.shop-product-body h2 a{
  color:#0f172a;
  text-decoration:none;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.shop-product-body p{
  margin:0;
  color:#526179;
  font-size:.8rem;
  line-height:1.38;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.shop-card-rating{
  display:flex;
  align-items:center;
  gap:.35rem;
  min-height:24px;
  color:#334155;
  font-size:.78rem;
  font-weight:900;
  white-space:nowrap;
}
.shop-card-rating .shop-stars{
  font-size:.92rem;
}
.shop-card-rating span:last-child{
  overflow:hidden;
  text-overflow:ellipsis;
}
.shop-card-rating.is-empty{
  color:#94a3b8;
}
.shop-card-rating.is-empty .shop-stars{
  color:#cbd5e1;
}
.shop-product-categories{
  display:flex;
  flex-wrap:wrap;
  gap:.25rem;
}
.shop-product-categories a{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:.2rem .42rem;
  border:1px solid #dbe4f0;
  border-radius:999px;
  background:#f8fafc;
  color:#2f5aae;
  font-size:.72rem;
  font-weight:900;
  text-decoration:none;
}
.shop-product-meta{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:.45rem;
}
.shop-price{
  color:#0f1a66;
  font-size:1.24rem;
  font-weight:950;
}
.shop-price-stack{
  display:grid;
  gap:.08rem;
}
.shop-price-stack del{
  color:#64748b;
  font-size:.78rem;
  font-weight:800;
}
.shop-price-stack strong{
  color:#ef233c;
  font-size:1.12rem;
  font-weight:950;
  line-height:1.05;
}
.shop-product-meta span,
.shop-stock{
  color:#16a34a;
  font-size:.78rem;
  font-weight:900;
  white-space:nowrap;
}
.shop-product-meta .shop-stock-status.is-unavailable,
.shop-stock.is-unavailable{
  color:#dc2626;
}
.shop-product-actions{
  display:grid;
  grid-template-columns:minmax(122px, 1fr) 38px;
  gap:.4rem;
  align-items:center;
}
.shop-product-actions.is-direct-add{
  grid-template-columns:42px 38px;
  justify-content:end;
}
.shop-product-actions .shop-button{
  width:100%;
  min-width:0;
  padding:.48rem .5rem;
  white-space:nowrap;
}
.shop-product-actions .shop-favorite-button{
  width:38px;
  height:38px;
  margin-left:0;
  justify-self:end;
}
.shop-card-cart-button{
  display:inline-grid;
  width:42px !important;
  height:38px;
  min-height:38px;
  place-items:center;
  justify-self:end;
  padding:0 !important;
}
.shop-card-cart-button svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.shop-detail-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.35rem;
  align-items:center;
}
.shop-product-share{
  display:grid;
  gap:.5rem;
  padding-top:.65rem;
  border-top:1px solid #edf2f7;
}
.shop-product-share > span{
  color:#526179;
  font-size:.78rem;
  font-weight:900;
}
.shop-product-share-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.38rem;
}
.shop-product-share-actions a,
.shop-product-share-actions button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.34rem;
  min-height:34px;
  padding:.42rem .58rem;
  border:1px solid #d7e4f3;
  border-radius:999px;
  background:#fff;
  color:#25314d;
  font:inherit;
  font-size:.78rem;
  font-weight:900;
  line-height:1;
  text-decoration:none;
  cursor:pointer;
  transition:color .16s ease, border-color .16s ease, background-color .16s ease, transform .16s ease;
}
.shop-product-share-actions a:hover,
.shop-product-share-actions a:focus-visible,
.shop-product-share-actions button:hover,
.shop-product-share-actions button:focus-visible{
  border-color:#2f5aae;
  color:#0f1a66;
  background:#f8fbff;
  transform:translateY(-1px);
  outline:none;
}
.shop-product-share-actions svg{
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.05;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.shop-product-payments{
  display:grid;
  gap:.62rem;
  padding-top:.72rem;
  border-top:1px solid #edf2f7;
}
.shop-product-payments-head{
  display:flex;
  align-items:center;
  gap:.52rem;
  color:#17213a;
}
.shop-product-payments-head > span:last-child,
.shop-product-payment-copy{
  display:grid;
  min-width:0;
  gap:.12rem;
}
.shop-product-payments-head strong{
  font-size:.84rem;
  font-weight:900;
}
.shop-product-payments-head small,
.shop-product-payment-copy small{
  color:#68758c;
  font-size:.7rem;
  line-height:1.35;
}
.shop-product-payments-lock,
.shop-product-payment-icon{
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  color:var(--shop-primary);
}
.shop-product-payments-lock{
  width:32px;
  height:32px;
  border-radius:50%;
  background:color-mix(in srgb, var(--shop-primary) 9%, #fff);
}
.shop-product-payments-lock svg,
.shop-product-payment-icon svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.shop-product-payment-list{
  display:grid;
  gap:.38rem;
}
.shop-product-payment-method{
  display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  align-items:center;
  gap:.5rem;
  min-width:0;
  padding:.52rem .58rem;
  border:1px solid #e2e8f0;
  border-radius:9px;
  background:#f8fafc;
}
.shop-product-payment-icon{
  width:30px;
  height:30px;
  border-radius:7px;
  background:#fff;
  box-shadow:inset 0 0 0 1px #e8edf4;
}
.shop-product-payment-copy strong{
  color:#17213a;
  font-size:.78rem;
  font-weight:900;
}
.shop-payment-brand-banner{
  display:block;
  width:auto;
  max-width:142px;
  max-height:34px;
  object-fit:contain;
  object-position:center;
  border-radius:5px;
  background:#fff;
}
.shop-favorite-button{
  position:relative;
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  width:36px;
  height:36px;
  margin-left:auto;
  padding:0;
  border:1px solid #c8d5e6;
  border-radius:999px;
  background:#fff;
  color:#64748b;
  cursor:pointer;
  transition:background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.shop-favorite-button:hover,
.shop-favorite-button:focus-visible{
  border-color:#fecaca;
  color:#ef233c;
  box-shadow:0 8px 20px rgba(239,35,60,.12);
  transform:translateY(-1px);
  outline:none;
}
.shop-favorite-button.is-active{
  border-color:#ef233c;
  background:#fff1f2;
  color:#ef233c;
}
.shop-favorite-button svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.1;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.shop-favorite-button.is-active svg{
  fill:currentColor;
}
.shop-favorite-button span{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}
.shop-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.4rem;
  min-height:34px;
  padding:.44rem .6rem;
  border-radius:8px;
  border:1px solid #c8d5e6;
  font-size:.8rem;
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
}
.shop-button.primary{
  background:var(--operis-button-bg, #16a34a);
  border-color:var(--operis-button-bg, #16a34a);
  color:var(--operis-button-text, #fff);
}
.shop-product-card .shop-button.primary{
  background:var(--operis-button-bg, #0d6efd);
  border-color:var(--operis-button-bg, #0d6efd);
}
.shop-button.primary:hover,
.shop-button.primary:focus-visible{
  background:var(--operis-button-hover-bg, #12833d);
  border-color:var(--operis-button-hover-bg, #12833d);
  color:var(--operis-button-hover-text, #fff);
}
.shop-button.secondary{
  background:var(--operis-secondary-button-bg, #fff);
  border-color:var(--operis-secondary-button-border, #c8d5e6);
  color:var(--operis-secondary-button-text, #0f1a66);
}
.shop-button.secondary:hover,
.shop-button.secondary:focus-visible{
  background:var(--operis-secondary-button-hover-bg, #f4f8ff);
}
.shop-button.full{
  width:100%;
}
.shop-button.compact{
  min-height:34px;
  padding:.42rem .62rem;
  font-size:.82rem;
}
.shop-button:disabled{
  opacity:.55;
  cursor:not-allowed;
}
.operis-shop-page .shop-product-card,
.operis-shop-page .shop-card,
.operis-shop-page .shop-panel,
.operis-shop-page .shop-summary,
.operis-shop-page .shop-auth-card,
.operis-shop-page .shop-account-panel,
.operis-shop-page .shop-checkout-panel{
  background:var(--operis-card-bg, #fff);
  border-color:var(--operis-card-border, #dbe4f0);
}
.operis-shop-page .shop-muted,
.operis-shop-page .shop-empty,
.operis-shop-page .shop-product-excerpt,
.operis-shop-page .shop-card-rating,
.operis-shop-page .shop-account-back{
  color:var(--operis-muted-text, #526179);
}
.operis-shop-page h1,
.operis-shop-page h2,
.operis-shop-page h3{
  color:var(--operis-heading-color, #0f172a);
}
.shop-notice{
  margin-bottom:1rem;
  padding:.7rem .85rem;
  border:1px solid #bbf7d0;
  border-radius:8px;
  background:#f0fdf4;
  color:#166534;
  font-weight:800;
}
.shop-notice.error{
  border-color:#fecaca;
  background:#fff1f2;
  color:#991b1b;
}
.shop-notice.warning{
  border-color:#fde68a;
  background:#fffbeb;
  color:#92400e;
}
.shop-product-detail,
.shop-cart-layout,
.shop-checkout{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(320px, 420px);
  gap:1rem;
  align-items:start;
}
.shop-product-detail{
  grid-template-columns:minmax(0, 560px) minmax(300px, 420px);
  justify-content:center;
}
.shop-detail-media,
.shop-detail-info{
  min-width:0;
}
.shop-detail-media{
  width:100%;
  max-width:560px;
}
.shop-detail-info{
  display:grid;
  gap:.85rem;
  padding:1rem;
  border:1px solid #dbe4f0;
  border-radius:8px;
  background:#fff;
}
.shop-detail-info .shop-price,
.shop-detail-info .shop-stock{
  margin:0;
}
.shop-option-selectors{
  display:grid;
  gap:.65rem;
  padding:.8rem 0;
  border-top:1px solid #edf2f7;
  border-bottom:1px solid #edf2f7;
}
.shop-info-attributes{
  display:grid;
  gap:.35rem;
  padding:.72rem;
  border:1px solid #dbe4f0;
  border-radius:8px;
  background:#f8fafc;
}
.shop-info-attributes p{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  margin:0;
  color:#526179;
  font-size:.9rem;
}
.shop-info-attributes strong{
  color:#0f172a;
  text-align:right;
}
.shop-option-selectors label{
  display:grid;
  gap:.32rem;
  color:#25314d;
  font-size:.9rem;
  font-weight:900;
}
.shop-option-selectors select{
  width:100%;
  min-height:40px;
  border:1px solid #c8d5e6;
  border-radius:8px;
  padding:.52rem .72rem;
  color:#0f172a;
  background:#fff;
  font:inherit;
  font-weight:800;
}
.shop-detail-actions input{
  width:72px;
  min-height:38px;
  border:1px solid #c8d5e6;
  border-radius:8px;
  padding:.5rem;
  font-weight:900;
}
.shop-detail-actions .shop-favorite-button{
  width:40px;
  height:40px;
}
.shop-gallery{
  display:flex;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:.45rem;
  margin-top:.55rem;
}
.shop-gallery-thumb{
  display:block;
  flex:0 0 78px;
  width:78px;
  height:78px;
  min-width:0;
  padding:0;
  border:1px solid #dbe4f0;
  border-radius:8px;
  background:#fff;
  overflow:hidden;
  cursor:pointer;
}
.shop-gallery-thumb.active{
  border-color:#2f5aae;
  box-shadow:0 0 0 2px rgba(47,90,174,.16);
}
.shop-gallery-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.shop-attributes{
  display:grid;
  gap:.5rem;
}
.shop-attributes p{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  margin:0;
  padding:.65rem 0;
  border-top:1px solid #edf2f7;
}
.shop-description{
  margin-top:1rem;
  padding:1.1rem;
  border:1px solid #dbe4f0;
  border-radius:8px;
  background:#fff;
  line-height:1.7;
}
.shop-description img,
.shop-description video{
  max-width:100%;
  height:auto;
}
.shop-product-tabs{
  margin-top:1.15rem;
  overflow:hidden;
  border:1px solid var(--operis-card-border, #dbe4f0);
  border-radius:12px;
  background:var(--operis-card-bg, #fff);
  box-shadow:0 8px 24px rgba(15,23,42,.04);
}
.shop-product-tab-list{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(1.5rem, 8vw, 7rem);
  overflow-x:auto;
  padding:.15rem 1rem 0;
  border-bottom:1px solid var(--operis-card-border, #dbe4f0);
  background:var(--operis-card-bg, #fff);
  scrollbar-width:none;
}
.shop-product-tab-list::-webkit-scrollbar{
  display:none;
}
.shop-product-tab-button{
  position:relative;
  flex:0 0 auto;
  min-height:48px;
  padding:.75rem .25rem .7rem;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--operis-muted-text, #526179);
  font-size:.96rem;
  font-weight:750;
  line-height:1.25;
  white-space:nowrap;
  cursor:pointer;
  transition:color .18s ease;
}
.shop-product-tab-button::after{
  content:"";
  position:absolute;
  right:50%;
  bottom:-1px;
  left:50%;
  height:3px;
  border-radius:999px 999px 0 0;
  background:var(--operis-menu-active-color, #f97316);
  transition:right .2s ease, left .2s ease;
}
.shop-product-tab-button:hover{
  color:var(--operis-heading-color, #0f172a);
}
.shop-product-tab-button.is-active{
  color:var(--operis-heading-color, #0f172a);
}
.shop-product-tab-button.is-active::after{
  right:calc(50% - 22px);
  left:calc(50% - 22px);
}
.shop-product-tab-button:focus-visible{
  outline:2px solid rgba(249,115,22,.35);
  outline-offset:3px;
  border-radius:4px;
}
.shop-product-tab-panels{
  padding:1.05rem 1.15rem 1.15rem;
}
.shop-product-tab-panel[hidden]{
  display:none;
}
.shop-product-tab-panel .shop-description,
.shop-product-tab-panel .shop-reviews{
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.shop-technical-specifications{
  overflow:hidden;
  gap:0;
  padding:0;
  border-radius:8px;
}
.shop-technical-specifications p{
  min-height:48px;
  padding:.7rem .85rem;
}
.shop-technical-specifications p + p{
  border-top:1px solid #e6edf6;
}
.shop-technical-specifications p:nth-child(even){
  background:#fff;
}
.shop-product-recommendations{
  display:grid;
  gap:1.35rem;
  margin-top:1.5rem;
}
.shop-product-carousel{
  min-width:0;
  padding:1.05rem 0 .15rem;
  border-top:1px solid var(--operis-card-border, #dbe4f0);
}
.shop-product-carousel-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:.85rem;
}
.shop-product-carousel-title{
  min-width:0;
}
.shop-product-carousel-title h2{
  margin:0;
  color:var(--operis-heading-color, #0f172a);
  font-size:clamp(1.22rem, 2vw, 1.55rem);
  line-height:1.2;
}
.shop-product-carousel-title p{
  max-width:720px;
  margin:.3rem 0 0;
  color:var(--operis-muted-text, #526179);
  font-size:.9rem;
  line-height:1.5;
}
.shop-product-carousel-controls{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:.4rem;
}
.shop-product-carousel.is-static .shop-product-carousel-controls{
  visibility:hidden;
}
.shop-product-carousel-button{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  padding:0;
  border:1px solid var(--operis-secondary-button-border, #c8d5e6);
  border-radius:999px;
  background:var(--operis-card-bg, #fff);
  color:var(--operis-secondary-button-text, #0f1a66);
  box-shadow:0 7px 18px rgba(15,23,42,.08);
  cursor:pointer;
  transition:border-color .16s ease, background-color .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.shop-product-carousel-button:hover:not(:disabled),
.shop-product-carousel-button:focus-visible{
  border-color:#0d6efd;
  background:#0d6efd;
  color:#fff;
  box-shadow:0 10px 24px rgba(13,110,253,.22);
  transform:translateY(-1px);
}
.shop-product-carousel-button:focus-visible{
  outline:3px solid rgba(13,110,253,.2);
  outline-offset:2px;
}
.shop-product-carousel-button:disabled{
  opacity:.35;
  cursor:default;
  box-shadow:none;
}
.shop-product-carousel-button svg{
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.shop-product-carousel-viewport{
  min-width:0;
  overflow:hidden;
}
.shop-product-carousel-track{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:calc((100% - 2.55rem) / 4);
  gap:.85rem;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scroll-behavior:smooth;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  padding:.15rem .08rem .8rem;
}
.shop-product-carousel-track::-webkit-scrollbar{
  display:none;
}
.shop-product-carousel-track:focus-visible{
  outline:3px solid rgba(13,110,253,.18);
  outline-offset:3px;
  border-radius:8px;
}
.shop-product-carousel-track .shop-product-card{
  scroll-snap-align:start;
  scroll-snap-stop:always;
}
.shop-reviews{
  display:grid;
  gap:.85rem;
  margin-top:1rem;
  padding:1rem;
  border:1px solid #dbe4f0;
  border-radius:8px;
  background:#fff;
  box-shadow:0 10px 26px rgba(15,23,42,.05);
}
.shop-reviews-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  padding-bottom:.75rem;
  border-bottom:1px solid #edf2f7;
}
.shop-reviews-head h2,
.shop-review-form h3,
.shop-review h3{
  margin:0;
  color:#0f172a;
}
.shop-reviews-head p,
.shop-review-form p{
  margin:.2rem 0 0;
  color:#526179;
  font-weight:800;
}
.shop-review-score{
  display:flex;
  align-items:center;
  gap:.5rem;
  color:#0f1a66;
  font-weight:950;
  white-space:nowrap;
}
.shop-stars{
  display:inline-flex;
  gap:.04rem;
  color:#f59e0b;
  font-size:1rem;
  letter-spacing:0;
}
.shop-review-list{
  display:grid;
  gap:.65rem;
}
.shop-review{
  display:grid;
  gap:.4rem;
  padding:.85rem;
  border:1px solid #dbe4f0;
  border-radius:8px;
  background:#fff;
}
.shop-review.own{
  border-color:#bfdbfe;
  background:#f8fbff;
}
.shop-review-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
}
.shop-review-top strong{
  color:#0f172a;
}
.shop-review-top span{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  color:#64748b;
  font-size:.82rem;
  font-weight:900;
}
.shop-review p{
  margin:0;
  color:#334155;
  line-height:1.55;
}
.shop-review-gate{
  padding:.8rem;
  border:1px solid #dbe4f0;
  border-radius:8px;
  background:#f8fafc;
  color:#526179;
  font-weight:900;
}
.shop-review-gate a{
  color:#0d6efd;
  font-weight:950;
}
.shop-reviews .shop-review-composer{
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
  max-width:960px;
  margin-top:.35rem;
  padding:0 1.1rem 1.1rem;
  border:1px solid #d9e2ef;
  border-radius:8px;
  background:#fff;
  box-shadow:0 18px 42px rgba(15,23,42,.10);
}
.shop-review-form-head,
.shop-review-form .full,
.shop-review-form .shop-notice,
.shop-review-policy,
.shop-review-submit{
  grid-column:1 / -1;
}
.shop-review-form-head{
  display:grid;
  grid-template-columns:72px minmax(0, 1fr);
  gap:1rem;
  align-items:center;
  padding:1.05rem 0;
  border-bottom:1px solid #e8eef7;
}
.shop-review-product-thumb{
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid #e5edf7;
  border-radius:8px;
  background:#f8fafc;
  color:#2f5aae;
  font-size:1.35rem;
  font-weight:950;
}
.shop-review-product-thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.shop-review-form-head span{
  color:#0f172a;
  font-size:.96rem;
  font-weight:950;
}
.shop-review-form-head h3{
  margin:.18rem 0 0;
  color:#0f172a;
  font-size:1.05rem;
  line-height:1.35;
}
.shop-review-form-head p{
  margin:.3rem 0 0;
  color:#526179;
  font-size:.88rem;
}
.shop-reviews .shop-review-composer label{
  display:grid;
  gap:.48rem;
  color:#15213a;
  font-weight:900;
}
.shop-review-rating-field{
  display:grid;
  justify-items:center;
  gap:.75rem;
  padding:.65rem 0 .25rem;
  text-align:center;
}
.shop-review-rating-field > span{
  color:#25314d;
  font-size:1.08rem;
  font-weight:950;
}
.shop-rating-picker{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
}
.shop-rating-picker input{
  display:none;
}
.shop-rating-picker button{
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid #e5e7eb;
  border-radius:8px;
  background:#fff;
  color:#cbd5e1;
  font-size:2rem;
  line-height:1;
  cursor:pointer;
  box-shadow:0 3px 10px rgba(15,23,42,.04);
  transition:background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.shop-rating-picker button:hover,
.shop-rating-picker button:focus-visible,
.shop-rating-picker button.is-active{
  border-color:#fde68a;
  background:#fffbeb;
  color:#f59e0b;
  outline:none;
}
.shop-rating-picker button:hover,
.shop-rating-picker button:focus-visible{
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(245,158,11,.16);
}
.shop-review-title-field > span,
.shop-review-composer label.full > span{
  color:#25314d;
  font-weight:950;
}
.shop-review-title-field em{
  color:#64748b;
  font-size:.84rem;
  font-style:normal;
  font-weight:800;
}
.shop-reviews .shop-review-composer input,
.shop-reviews .shop-review-composer textarea{
  width:100%;
  min-height:48px;
  padding:.78rem .9rem;
  border:1px solid #cfd8e6;
  border-radius:8px;
  background:#fff;
  color:#0f172a;
  font:inherit;
  font-size:.96rem;
  box-shadow:0 1px 0 rgba(15,23,42,.02);
}
.shop-reviews .shop-review-composer input:focus,
.shop-reviews .shop-review-composer textarea:focus{
  border-color:#93c5fd;
  box-shadow:0 0 0 3px rgba(59,130,246,.14);
  outline:none;
}
.shop-reviews .shop-review-composer textarea{
  min-height:155px;
  resize:vertical;
}
.shop-review-policy{
  margin:-.2rem 0 0;
  color:#64748b;
  font-size:.84rem;
  font-weight:800;
}
.shop-review-submit{
  display:flex;
  justify-content:flex-start;
}
.shop-review-submit .shop-button.primary{
  min-width:300px;
  min-height:46px;
  background:#0d6efd;
  border-color:#0d6efd;
  font-size:.94rem;
}
.shop-cart-list{
  display:grid;
  gap:.75rem;
}
.shop-cart-row{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto auto auto;
  gap:1rem;
  align-items:center;
  padding:.85rem;
}
.shop-cart-product{
  display:flex;
  gap:.75rem;
  align-items:center;
  min-width:0;
}
.shop-cart-product > div{
  display:grid;
  gap:.18rem;
}
.shop-cart-options{
  color:#64748b;
  font-weight:800;
}
.shop-cart-thumb{
  width:68px;
  height:68px;
  display:grid;
  overflow:hidden;
  border-radius:8px;
  background:#eef4fb;
}
.shop-cart-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.shop-quantity{
  display:inline-flex;
  align-items:center;
  border:1px solid #c8d5e6;
  border-radius:8px;
  overflow:hidden;
}
.shop-quantity button,
.shop-remove{
  min-height:36px;
  border:0;
  background:#f8fafc;
  color:#0f1a66;
  font-weight:900;
  cursor:pointer;
}
.shop-quantity button{
  width:36px;
}
.shop-quantity span{
  min-width:36px;
  text-align:center;
  font-weight:900;
}
.shop-remove{
  border:1px solid #fecaca;
  border-radius:8px;
  color:#991b1b;
  padding:.45rem .7rem;
}
.shop-summary{
  display:grid;
  gap:.62rem;
  padding:.85rem;
  position:sticky;
  top:1rem;
}
.shop-summary h2{
  margin:0;
  font-size:1.35rem;
  line-height:1.15;
}
.shop-summary p{
  display:flex;
  justify-content:space-between;
  gap:.75rem;
  margin:0;
  color:#526179;
  font-size:.92rem;
  line-height:1.25;
}
.shop-summary-total{
  padding-top:.62rem;
  border-top:1px solid #dbe4f0;
  color:#0f172a !important;
  font-size:1rem !important;
}
.shop-summary .shop-button.full{
  width:min(100%, 260px);
  min-height:38px;
  justify-self:start;
  padding:.52rem .75rem;
  font-size:.84rem;
}
.shop-checkout-fields{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.7rem .8rem;
  padding:1.1rem;
}
.shop-account-auth{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:1rem;
  align-items:start;
}
.shop-account-card,
.shop-account-panel{
  display:grid;
  gap:.85rem;
  padding:1.1rem;
}
.shop-account-card-head,
.shop-account-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}
.shop-account-card-head{
  display:grid;
  gap:.25rem;
}
.shop-account-card h2,
.shop-account-panel h2{
  margin:0;
  color:#0f172a;
  font-size:1.15rem;
  line-height:1.2;
}
.shop-account-card p,
.shop-account-panel p{
  margin:0;
  color:#526179;
  font-size:.9rem;
}
.shop-account-card label,
.shop-account-fields label{
  display:grid;
  gap:.32rem;
  color:#25314d;
  font-size:.9rem;
  line-height:1.2;
  font-weight:900;
}
.shop-account-card input,
.shop-account-fields input,
.shop-account-fields select,
.shop-account-fields textarea{
  width:100%;
  min-height:40px;
  border:1px solid #c8d5e6;
  border-radius:7px;
  padding:.56rem .68rem;
  font:inherit;
  font-size:.92rem;
  line-height:1.2;
}
.shop-account-fields textarea{
  min-height:84px;
  resize:vertical;
}
.shop-account-fields{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.7rem .8rem;
}
.shop-account-fields .full{
  grid-column:1 / -1;
}
.shop-account-dashboard{
  display:grid;
  gap:1rem;
}
.shop-account-note{
  padding:.72rem .8rem;
  border:1px solid #dbe4f0;
  border-radius:8px;
  background:#f8fafc;
  color:#25314d;
  font-size:.9rem;
  font-weight:800;
}
.shop-account-note a{
  color:#0d6efd;
  font-weight:950;
}
.shop-account-orders{
  display:grid;
  gap:.7rem;
}
.shop-account-order{
  display:grid;
  gap:.7rem;
  padding:.85rem;
  border:1px solid #dbe4f0;
  border-radius:8px;
  background:#fff;
}
.shop-account-order-head,
.shop-account-order-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  flex-wrap:wrap;
}
.shop-account-order-head strong{
  display:block;
  color:#0f172a;
  font-size:1rem;
}
.shop-account-order-head small,
.shop-account-order-foot,
.shop-account-order-item small{
  color:#526179;
  font-size:.82rem;
  font-weight:800;
}
.shop-account-order-head span{
  color:#0f1a66;
  font-size:1.05rem;
  font-weight:950;
}
.shop-account-order-items{
  display:grid;
  gap:.5rem;
  padding-top:.65rem;
  border-top:1px solid #e8eef7;
}
.shop-account-order-item{
  display:flex;
  align-items:center;
  gap:.65rem;
  min-width:0;
}
.shop-account-order-item > div{
  display:grid;
  gap:.1rem;
  min-width:0;
}
.shop-account-order-item strong{
  color:#0f172a;
  line-height:1.25;
}
.shop-account-back{
  margin:1rem 0 0;
}
.shop-account-required{
  display:grid;
  gap:.65rem;
  justify-items:start;
}
.shop-account-required h2{
  margin:0;
  font-size:1.2rem;
}
.shop-checkout-title{
  margin:.1rem 0 0;
  color:#0f172a;
  font-size:1.15rem;
  line-height:1.2;
}
.shop-checkout-fields label{
  display:grid;
  gap:.32rem;
  color:#25314d;
  font-size:.9rem;
  line-height:1.2;
  font-weight:900;
}
.shop-checkout-fields small{
  color:#64748b;
  font-size:.76rem;
  font-weight:700;
}
.shop-checkout-fields .full{
  grid-column:1 / -1;
}
.shop-checkout-fields input,
.shop-checkout-fields select,
.shop-checkout-fields textarea{
  width:100%;
  min-height:40px;
  border:1px solid #c8d5e6;
  border-radius:7px;
  padding:.56rem .68rem;
  font:inherit;
  font-size:.92rem;
  line-height:1.2;
}
.shop-checkout-fields textarea{
  min-height:88px;
  resize:vertical;
}
.shop-checkout{
  width:min(1120px, 100%);
  margin-inline:auto;
  grid-template-columns:minmax(0, 1fr) minmax(280px, 360px);
  gap:1rem;
}
.shop-checkout .shop-summary{
  position:static;
  gap:.65rem;
  padding:1rem;
}
.shop-checkout-fields > .shop-button{
  width:min(100%, 280px);
  min-height:42px;
  justify-self:start;
  padding:.62rem .9rem;
  font-size:.9rem;
}
.shop-billing-type{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.65rem .9rem;
  padding:.75rem;
  border:1px solid #dbe4f0;
  border-radius:8px;
  background:#f8fafc;
  color:#25314d;
}
.shop-billing-type strong{
  width:100%;
  color:#0f172a;
}
.shop-billing-type label{
  display:inline-flex !important;
  align-items:center;
  gap:.38rem !important;
  margin:0;
  font-size:.88rem;
}
.shop-billing-type input{
  width:auto;
  min-height:auto;
  padding:0;
  border:0;
  accent-color:#0d6efd;
}
.shop-payment-options{
  display:grid;
  gap:.42rem;
}
.shop-payment-card{
  display:flex !important;
  grid-template-columns:none !important;
  gap:.5rem !important;
  align-items:center;
  min-height:0;
  padding:.52rem .58rem;
  border:1px solid #dbe4f0;
  border-radius:7px;
  background:#f8fafc;
  font-size:.82rem;
  line-height:1.25;
}
.shop-payment-card input{
  width:auto;
  min-height:auto;
  padding:0;
  border:0;
  accent-color:#0d6efd;
  margin-top:.1rem;
}
.shop-payment-card-copy{
  display:grid;
  flex:1 1 auto;
  min-width:0;
  gap:.14rem;
}
.shop-payment-card .shop-payment-brand-banner{
  flex:0 1 142px;
  margin-left:auto;
}
.shop-empty,
.shop-thankyou{
  padding:1.3rem;
  color:#526179;
  font-weight:800;
}
.shop-empty.compact{
  padding:.85rem;
  border-style:dashed;
  box-shadow:none;
}
.shop-thankyou h2{
  margin-top:0;
}
.shop-favorites-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1rem;
  padding:.85rem 1rem;
  border:1px solid #dbe4f0;
  border-radius:8px;
  background:#f8fafc;
}
.shop-favorites-head p{
  margin:0;
  color:#526179;
  font-weight:900;
}
.shop-favorites-head strong{
  color:#0f172a;
}
@media (min-width:821px) and (max-width:1500px){
  .shop-category-nav-links{
    grid-template-columns:repeat(4, minmax(0, 1fr));
  }
  .shop-category-nav-links a:nth-child(4n + 1)::before{
    display:none;
  }
}
@media (min-width:1501px){
  .shop-category-nav-links a:nth-child(8n + 1)::before{
    display:none;
  }
}
@media (max-width: 820px){
  .shop-category-bar-inner{
    width:calc(100% - 1rem);
    grid-template-columns:1fr;
    gap:.5rem;
    padding:.55rem 0;
  }
  .shop-category-nav-toggle{
    min-height:52px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    padding:.58rem .75rem;
    border:1px solid #dbe4f0;
    border-radius:14px;
    background:#fff;
    box-shadow:0 6px 16px rgba(15,23,42,.045);
    cursor:pointer;
  }
  .shop-category-nav-toggle:focus-visible{
    border-color:#fdba74;
    outline:3px solid rgba(249,115,22,.16);
    outline-offset:2px;
  }
  .shop-category-nav-copy{
    display:grid;
    padding:0;
    border:0;
  }
  .shop-category-nav-toggle-icon{
    width:22px;
    height:18px;
    display:grid;
    align-content:space-between;
    flex:0 0 auto;
    color:#334155;
  }
  .shop-category-nav-toggle-icon i{
    width:100%;
    height:2px;
    display:block;
    border-radius:999px;
    background:currentColor;
    transform-origin:center;
    transition:transform .2s ease, opacity .16s ease;
  }
  .shop-category-bar.is-open .shop-category-nav-toggle-icon i:first-child{
    transform:translateY(8px) rotate(45deg);
  }
  .shop-category-bar.is-open .shop-category-nav-toggle-icon i:nth-child(2){
    opacity:0;
  }
  .shop-category-bar.is-open .shop-category-nav-toggle-icon i:last-child{
    transform:translateY(-8px) rotate(-45deg);
  }
  .shop-category-nav-links{
    display:grid;
    grid-template-columns:1fr;
    gap:0;
    max-height:0;
    overflow:hidden;
    padding:0;
    border-width:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    opacity:0;
    visibility:hidden;
    transition:max-height .28s ease, padding .2s ease, border-width .2s ease, opacity .18s ease, visibility 0s linear .28s;
  }
  .shop-category-bar.is-open .shop-category-nav-links{
    max-height:700px;
    overflow-y:auto;
    padding:.12rem 0;
    border-width:0;
    opacity:1;
    visibility:visible;
    transition:max-height .3s ease, padding .2s ease, border-width .2s ease, opacity .2s ease;
  }
  .shop-category-nav-links a{
    width:100%;
    grid-template-columns:32px minmax(0, 1fr);
    min-height:62px;
    gap:.62rem;
    padding:.5rem .7rem;
  }
  .shop-category-nav-links a + a::before{
    content:"";
    position:absolute;
    display:block;
    top:-1px;
    right:12px;
    bottom:auto;
    left:12px;
    width:auto;
    height:1px;
    background:#e2e8f0;
  }
  .shop-category-nav-links a.active::after{
    right:.7rem;
    left:.7rem;
  }
  .shop-category-nav-icon{
    width:31px;
    height:31px;
  }
  .shop-category-nav-item-copy strong{
    font-size:.78rem;
  }
  .shop-category-nav-item-copy small{
    font-size:.64rem;
  }
  .shop-catalog-layout{
    grid-template-columns:1fr;
  }
  .shop-filter-form{
    position:static;
  }
  .shop-filter-groups{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    align-items:start;
  }
  .shop-product-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .shop-category-title{
    align-items:flex-start;
    flex-direction:column;
  }
  .shop-hero-inner,
  .shop-product-detail,
  .shop-cart-layout,
  .shop-checkout,
  .shop-cart-row,
  .shop-checkout-fields,
  .shop-account-auth,
  .shop-account-fields{
    grid-template-columns:1fr;
  }
  .shop-hero-copy.has-shop-back{
    grid-template-columns:1fr;
    gap:.75rem;
  }
  .shop-back-link{
    justify-self:start;
  }
  .shop-account-panel-head,
  .shop-account-order-head,
  .shop-account-order-foot{
    align-items:flex-start;
    flex-direction:column;
  }
  .shop-account-fields .full{
    grid-column:auto;
  }
  .shop-hero-actions{
    justify-content:flex-start;
  }
  .shop-cart-link{
    justify-self:start;
  }
  .shop-floating-cart{
    width:54px;
    height:54px;
    right:.85rem;
    bottom:.85rem;
  }
  .shop-summary{
    position:static;
  }
  .shop-product-tab-panels{
    padding:.9rem;
  }
  .shop-product-carousel-track{
    grid-auto-columns:calc((100% - .85rem) / 2);
  }
}
@media (min-width: 821px) and (max-width: 1100px){
  .shop-product-carousel-track{
    grid-auto-columns:calc((100% - 1.7rem) / 3);
  }
}
@media (max-width: 640px){
  .shop-product-payment-method{
    grid-template-columns:30px minmax(0,1fr);
  }
  .shop-product-payment-method .shop-payment-brand-banner{
    grid-column:2;
    justify-self:start;
    max-width:min(142px, 52vw);
  }
  .shop-payment-card{
    flex-wrap:wrap;
  }
  .shop-payment-card .shop-payment-brand-banner{
    flex-basis:auto;
    max-width:min(142px, 48vw);
    margin-left:calc(1rem + .5rem);
  }
  .shop-product-tab-list{
    justify-content:flex-start;
    gap:1.35rem;
    padding:0 1rem;
  }
  .shop-product-tab-button{
    min-height:45px;
    padding:.65rem 0 .6rem;
    font-size:.82rem;
  }
  .shop-product-tab-panels{
    padding:.75rem;
  }
  .shop-product-recommendations{
    gap:1rem;
    margin-top:1.1rem;
  }
  .shop-product-carousel{
    padding-top:.85rem;
  }
  .shop-product-carousel-head{
    align-items:center;
    gap:.65rem;
    margin-bottom:.65rem;
  }
  .shop-product-carousel-title p{
    font-size:.8rem;
  }
  .shop-product-carousel-button{
    width:36px;
    height:36px;
  }
  .shop-product-carousel-track{
    grid-auto-columns:min(82vw, 285px);
    gap:.6rem;
    padding-bottom:.6rem;
  }
  .shop-technical-specifications p{
    align-items:flex-start;
    flex-direction:column;
    gap:.2rem;
  }
  .shop-technical-specifications strong{
    text-align:left;
  }
  .shop-filter-groups,
  .shop-filter-price{
    grid-template-columns:1fr;
  }
  .shop-product-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:.55rem;
  }
  .operis-builder-products .shop-product-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .shop-product-image{
    margin:.35rem .35rem 0;
  }
  .shop-product-body{
    grid-template-rows:auto minmax(58px, 1fr) auto auto;
    gap:.34rem;
    padding:.45rem;
  }
  .shop-product-categories a{
    min-height:20px;
    padding:.14rem .32rem;
    font-size:.64rem;
  }
  .shop-product-body h2{
    font-size:.78rem;
    line-height:1.22;
  }
  .shop-product-body p{
    font-size:.7rem;
    line-height:1.28;
  }
  .shop-card-rating{
    gap:.2rem;
    min-height:20px;
    font-size:.68rem;
  }
  .shop-card-rating .shop-stars{
    font-size:.72rem;
  }
  .shop-product-meta{
    align-items:flex-start;
    flex-direction:column;
    gap:.12rem;
  }
  .shop-price{
    font-size:.98rem;
  }
  .shop-price-stack del{
    font-size:.66rem;
  }
  .shop-price-stack strong{
    font-size:.92rem;
  }
  .shop-product-meta span,
  .shop-stock{
    font-size:.68rem;
  }
  .shop-product-actions{
    grid-template-columns:minmax(0, 1fr) 34px;
    gap:.32rem;
  }
  .shop-product-actions .shop-button{
    min-height:34px;
    padding:.36rem .32rem;
    font-size:.68rem;
  }
  .shop-product-actions .shop-button.primary{
    grid-column:1;
  }
  .shop-product-actions .shop-favorite-button{
    grid-column:2;
    grid-row:1;
    width:34px;
    height:34px;
  }
  .shop-product-actions.is-direct-add{
    grid-template-columns:34px 34px;
    justify-content:end;
  }
  .shop-product-actions.is-direct-add .shop-button.primary,
  .shop-product-actions.is-direct-add .shop-favorite-button{
    grid-column:auto;
    grid-row:auto;
  }
  .shop-product-actions.is-direct-add .shop-card-cart-button{
    width:34px !important;
    height:34px;
    min-height:34px;
  }
  .shop-reviews-head,
  .shop-review-top{
    align-items:flex-start;
    flex-direction:column;
  }
  .shop-review-score{
    white-space:normal;
  }
  .shop-review-form{
    grid-template-columns:1fr;
  }
  .shop-reviews .shop-review-composer{
    padding:0 .8rem .9rem;
  }
  .shop-review-form-head{
    grid-template-columns:56px minmax(0, 1fr);
    gap:.75rem;
  }
  .shop-review-product-thumb{
    width:54px;
    height:54px;
  }
  .shop-rating-picker{
    flex-wrap:wrap;
    justify-content:flex-start;
  }
  .shop-rating-picker button{
    width:44px;
    height:44px;
    font-size:1.6rem;
  }
  .shop-review-submit{
    justify-content:stretch;
  }
  .shop-review-submit .shop-button{
    width:100%;
  }
  .shop-favorites-head{
    align-items:flex-start;
    flex-direction:column;
  }
}
