body[data-site-page^="shop"]{
  margin:0;
  color:#0f172a;
  background:#fff;
  font-family: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:#fff;
  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;
}
.shop-loading,
.shop-section{
  padding:1.6rem 0 2.2rem;
}
.shop-hero{
  background:#fff;
  border-bottom:1px solid #dbe4f0;
  padding:1.5rem 0;
}
.shop-hero-inner{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:1.2rem;
  align-items:center;
}
.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;
}
.shop-hero p{
  max-width:760px;
  margin:0;
  color:#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 #c8d5e6;
  border-radius:8px;
  background:#fff;
  color:#0f1a66;
  font-size:.9rem;
  font-weight:900;
  text-decoration:none;
  box-shadow:0 8px 20px rgba(15,23,42,.06);
}
.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:#0d6efd;
  color:#fff;
  box-shadow:0 16px 34px 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:#0b5ed7;
  transform:translateY(-2px);
  box-shadow:0 18px 38px 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(205px, 1fr));
  gap:.7rem;
  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: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-head strong{
  color:#0f172a;
  font-size:1rem;
}
.shop-filter-head span{
  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{
  display:grid;
  gap:.45rem;
  padding-top:.15rem;
}
.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-nav{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.45rem;
  margin-bottom:1rem;
}
.shop-category-nav a{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  min-height:36px;
  padding:.45rem .72rem;
  border:1px solid #c8d5e6;
  border-radius:999px;
  background:#fff;
  color:#0f1a66;
  font-size:.86rem;
  font-weight:900;
  text-decoration:none;
}
.shop-category-nav a.active{
  border-color:#2f5aae;
  background:#2f5aae;
  color:#fff;
}
.shop-category-nav small{
  min-width:1.35rem;
  height:1.35rem;
  display:inline-grid;
  place-items:center;
  border-radius:999px;
  background:rgba(47,90,174,.12);
  color:inherit;
  font-size:.74rem;
}
.shop-category-nav a.active small{
  background:rgba(255,255,255,.2);
}
.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;
}
.shop-detail-image{
  position:relative;
  aspect-ratio:4 / 3;
  max-height:380px;
  border:1px solid #dbe4f0;
  border-radius:8px;
}
.shop-detail-image.is-magnifying{
  cursor:zoom-in;
}
.shop-product-image img,
.shop-detail-image img{
  width:100%;
  height:100%;
  display:block;
}
.shop-product-image img{
  object-fit:contain;
}
.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-magnifier[hidden]{
  display:none !important;
}
.shop-image-magnifier{
  position:absolute;
  z-index:3;
  left:50%;
  top:50%;
  width:168px;
  height:168px;
  border:3px solid rgba(255,255,255,.96);
  border-radius:999px;
  background-color:#fff;
  background-repeat:no-repeat;
  box-shadow:0 18px 42px rgba(15,23,42,.24), 0 0 0 1px rgba(15,23,42,.14);
  pointer-events:none;
  transform:translate(-50%, -50%);
}
.shop-image-zoom-button{
  position:absolute;
  z-index:4;
  right:.65rem;
  bottom:.65rem;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border:1px solid rgba(15,23,42,.14);
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:#0f1a66;
  box-shadow:0 8px 22px rgba(15,23,42,.14);
  cursor:pointer;
  transition:background .16s ease, color .16s ease, box-shadow .16s ease;
}
.shop-image-zoom-button.active{
  background:#0d6efd;
  color:#fff;
  box-shadow:0 12px 28px rgba(13,110,253,.28);
}
.shop-image-zoom-button svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.3;
  stroke-linecap:round;
}
@media (max-width: 480px){
  .shop-image-magnifier{
    width:132px;
    height:132px;
  }
}
.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-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-actions,
.shop-detail-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.35rem;
  align-items:center;
}
.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:#16a34a;
  border-color:#16a34a;
  color:#fff;
}
.shop-product-card .shop-button.primary{
  background:#0d6efd;
  border-color:#0d6efd;
}
.shop-button.secondary{
  background:#fff;
  color:#0f1a66;
}
.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;
}
.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-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-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 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 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:flex-start;
  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 span{
  display:grid;
  gap:.14rem;
}
.shop-empty,
.shop-thankyou{
  padding:1.3rem;
  color:#526179;
  font-weight:800;
}
.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 (max-width: 820px){
  .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-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;
  }
}
@media (max-width: 640px){
  .shop-filter-groups,
  .shop-filter-price{
    grid-template-columns:1fr;
  }
  .shop-product-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:.55rem;
  }
  .shop-product-image{
    margin:.45rem .45rem 0;
  }
  .shop-product-body{
    padding:.55rem;
  }
  .shop-product-actions .shop-button{
    flex:1 1 100%;
  }
  .shop-product-actions .shop-favorite-button{
    margin-left:0;
  }
  .shop-favorites-head{
    align-items:flex-start;
    flex-direction:column;
  }
}
