/* Shape catalogue and configuration pages. */ .shop-hero {
   padding: 30px 0 55px;
}
.shop-hero .breadcrumb-nav {
   margin-bottom: 28px;
}
.shop-hero h1 {
   font-size: clamp(48px, 5vw, 74px);
}
.shop-hero .eyebrow {
   font-size: 10px;
}
.shop-hero p {
   max-width: 620px;
}
.shop-section {
   padding-top: 65px;
}
.shop-collection-heading {
   display: flex;
   justify-content: space-between;
   align-items: center;
   gap: 25px;
   margin-bottom: 42px;
}
.shop-collection-heading h2 {
   font-size: 40px;
   margin-bottom: 0;
}
.shop-collection-heading .eyebrow {
   font-size: 9px;
   margin-bottom: 14px;
}
.shop-client-badge {
   display: inline-flex;
   align-items: center;
   border: 1px solid #ccdfc9;
   background: #f0f9ed;
   padding: 10px 15px;
   font-size: 11px;
   color: #286e30;
   border-radius: 30px;
}
.shop-layout {
   display: grid;
   grid-template-columns: 190px minmax(0, 1fr);
   gap: 45px;
   align-items: start;
}
.shop-filters {
   position: sticky;
   top: 135px;
}
.shop-filters h3 {
   font: 600 12px 'DM Sans', sans-serif;
   letter-spacing: .06em;
   text-transform: uppercase;
   margin-bottom: 22px;
}
.shop-categories {
   display: flex;
   flex-direction: column;
   gap: 7px;
}
.shop-categories a {
   display: flex;
   justify-content: space-between;
   gap: 15px;
   border-radius: 3px;
   padding: 11px 13px;
   font-size: 13px;
   color: #526157;
   border: 1px solid transparent;
   transition: background .25s, color .25s;
}
.shop-categories a:hover {
   background: #edf4e9;
}
.shop-categories a[aria-current] {
   background: var(--ink);
   color: white;
}
.shop-categories a span {
   font-size: 10px;
   opacity: .7;
   align-self: center;
}
.shop-filter-help {
   border-top: 1px solid var(--line);
   margin-top: 30px;
   padding: 25px 12px 0;
}
.shop-filter-help p {
   font-size: 12px;
   line-height: 1.7;
   margin: 8px 0 15px;
}
.shop-filter-help .text-link {
   font-size: 11px;
}
.shop-toolbar {
   display: flex;
   justify-content: space-between;
   align-items: center;
   gap: 25px;
   padding-bottom: 20px;
   border-bottom: 1px solid var(--line);
}
.shop-search {
   position: relative;
   flex: 1;
   max-width: 380px;
}
.shop-search input {
   width: 100%;
   background: #ffffffdb;
   border: 1px solid var(--line);
   border-radius: 3px;
   padding: 13px 45px 13px 15px;
   font-size: 13px;
   color: var(--ink);
}
.shop-search button {
   position: absolute;
   right: 5px;
   top: 5px;
   bottom: 5px;
   width: 35px;
   background: transparent;
   border: 0;
   color: #375941;
   font-size: 13px;
}
.shop-sort {
   display: flex;
   align-items: center;
   gap: 12px;
   font-size: 12px;
}
.shop-sort label {
   color: #788479;
   white-space: nowrap;
}
.shop-sort select {
   max-width: 190px;
   padding: 12px 30px 12px 12px;
   border: 1px solid var(--line);
   border-radius: 3px;
   background: #ffffffdb;
   font: inherit;
   color: var(--ink);
}
.shop-sort select:focus-visible {
   outline: 3px solid var(--green);
   outline-offset: 3px;
}
.shop-result-meta {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 20px;
   padding: 18px 0 24px;
   font-size: 11px;
}
.shop-result-meta p {
   margin: 0;
}
.shop-result-meta a {
   color: #297236;
   text-decoration: underline;
   text-underline-offset: 3px;
}
.shop-grid {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 38px 24px;
}
.shop-card {
   display: flex;
   flex-direction: column;
   min-width: 0;
   border: 1px solid #e2e8de;
   border-radius: 18px;
   background: #ffffffef;
   overflow: hidden;
   transition: box-shadow .4s, border-color .4s, translate .4s;
}
.shop-card:hover {
   box-shadow: 0 20px 45px #162e1712;
   border-color: #b7d8b3;
   translate: 0 -5px;
}
.shop-card-image {
   display: block;
   position: relative;
   aspect-ratio: 1.1;
   background: radial-gradient(ellipse at 50% 45%, #fcfdf9, #e9eee5);
   overflow: hidden;
}
.shop-card-image img {
   width: 100%;
   height: 100%;
   object-fit: contain;
   padding: 32px 24px;
   mix-blend-mode: multiply;
   transition: transform .8s var(--ease);
}
.shop-card:hover .shop-card-image img {
   transform: scale(1.055);
}
.shop-card-category {
   position: absolute;
   top: 15px;
   left: 15px;
   font-size: 9px;
   letter-spacing: .08em;
   text-transform: uppercase;
   background: #ffffffdf;
   border: 1px solid #e0e7dc;
   border-radius: 30px;
   padding: 5px 10px;
   color: #456249;
   max-width: calc(100% - 30px);
}
.shop-card-image .round-arrow {
   position: absolute;
   right: 15px;
   bottom: 15px;
   background: white;
   width: 36px;
   height: 36px;
   font-size: 20px;
}
.shop-card-body {
   padding: 22px;
   display: flex;
   flex-direction: column;
   flex: 1;
}
.shop-size-count {
   font-size: 10px;
   line-height: 1.7;
   color: #5b7455;
   margin-bottom: 10px;
}
.shop-card-body h3 {
   font-size: 22px;
   line-height: 1.3;
   letter-spacing: -.035em;
   margin-bottom: 11px;
}
.shop-card-body h3 a:hover { color: #237b30; }
.shop-card-action {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 15px;
   background: #f0f5ec;
   border: 1px solid #dee9d8;
   border-radius: 9px;
   padding: 13px 16px;
   margin-top: 20px;
   color: #254e2c;
   font-size: 12px;
   font-weight: 600;
   transition: color .25s, background .25s;
}
.shop-card-action:hover { background: var(--ink); color: white; }
.shop-card-action > span { font-size: 20px; line-height: 1; }
.shop-card-note { text-align: center; font-size: 10px; color: #74806d; margin-top: 10px; }
.shop-card-body > p {
   font-size: 12px;
   line-height: 1.75;
   color: #6d786a;
   margin-bottom: 20px;
   display: -webkit-box;
   -webkit-line-clamp: 2;
   -webkit-box-orient: vertical;
   overflow: hidden;
}
.shop-card-price {
   margin-top: auto;
   display: flex;
   align-items: flex-end;
   justify-content: space-between;
   gap: 10px;
   border-top: 1px solid var(--line);
   padding-top: 15px;
}
.shop-card-price > div > span {
   display: block;
   font-size: 10px;
   color: #798574;
   margin-bottom: 2px;
}
.shop-card-price strong {
   color: var(--ink);
   font-family: Manrope, sans-serif;
   font-size: 23px;
   font-weight: 650;
   letter-spacing: -.04em;
}
.shop-card-price del {
   font-size: 11px;
   color: #929c8b;
   padding-bottom: 4px;
}
.shop-empty {
   grid-column: 1 / -1;
   text-align: center;
   padding: 60px 20px;
   border: 1px solid var(--line);
   background: #ffffffa8;
   border-radius: 5px;
}
.shop-empty-icon {
   font-size: 65px;
   color: #68a360;
   display: block;
   margin-bottom: 20px;
}
.shop-empty h3 {
   font-size: 28px;
}
.shop-empty p {
   font-size: 14px;
   max-width: 440px;
   margin: 0 auto 25px;
}
.shop-pagination {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 20px;
   margin-top: 45px;
   padding-top: 25px;
   border-top: 1px solid var(--line);
   font-size: 12px;
}
.shop-pagination > div {
   display: flex;
   align-items: center;
   gap: 5px;
}
.shop-pagination > div a {
   width: 34px;
   height: 34px;
   display: grid;
   place-items: center;
   border: 1px solid transparent;
   border-radius: 50%;
}
.shop-pagination a:hover {
   color: #20802d;
}
.shop-pagination [aria-current] {
   background: var(--ink);
   color: white;
}
.shop-pagination [aria-disabled] {
   color: #a3aaa0;
}
.shop-detail {
   padding-top: 30px;
}
.shape-breadcrumb {
   display: flex;
   align-items: center;
   flex-wrap: wrap;
   gap: 12px;
   font-size: 11px;
   margin-bottom: 32px;
   color: #84907c;
}
.shape-breadcrumb a {
   color: #52624a;
}
.shape-breadcrumb a:hover {
   color: #20802d;
}
.shape-detail-layout {
   display: grid;
   grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
   gap: 65px;
   align-items: start;
}
.shape-gallery {
   position: sticky;
   top: 130px;
   min-width: 0;
}
.shape-main-image {
   display: block;
   position: relative;
   aspect-ratio: 1;
   overflow: hidden;
   background: #f0f3ed;
   border-radius: 5px;
   border: 1px solid #e1e8dc;
}
.shape-main-image > img {
   width: 100%;
   height: 100%;
   object-fit: contain;
   padding: 30px;
   mix-blend-mode: multiply;
   transition: opacity .25s, transform 1s var(--ease);
}
.shape-main-image:hover > img {
   transform: scale(1.035);
}
.shape-main-image.is-loading > img {
   opacity: .45;
}
.shape-main-image.is-loading::before {
   content: '';
   position: absolute;
   width: 28px;
   height: 28px;
   left: calc(50% - 14px);
   top: calc(50% - 14px);
   border-radius: 50%;
   border: 2px solid #ccdac6;
   border-top-color: #2c8f31;
   animation: shape-loading .7s linear infinite;
}
.shape-zoom {
   position: absolute;
   right: 22px;
   bottom: 22px;
   width: 40px;
   height: 40px;
   display: grid;
   place-items: center;
   border-radius: 50%;
   background: white;
   border: 1px solid var(--line);
   font-size: 23px;
   color: var(--ink);
}
.shape-thumbnails {
   display: flex;
   gap: 12px;
   overflow-x: auto;
   padding: 4px;
   margin: 15px -4px 0;
}
.shape-thumbnails button {
   width: 78px;
   height: 72px;
   flex: 0 0 78px;
   padding: 5px;
   border: 1px solid var(--line);
   border-radius: 3px;
   background: #f0f3ed;
}
.shape-thumbnails button[aria-pressed=true] {
   border: 2px solid var(--green);
   padding: 4px;
}
.shape-thumbnails img {
   width: 100%;
   height: 100%;
   object-fit: contain;
   mix-blend-mode: multiply;
}
.shape-image-note {
   margin-top: 22px;
   font-size: 11px;
   color: #7b8a74;
}
.shape-product > .eyebrow {
   font-size: 9px;
   margin: 5px 0 18px;
}
.shape-product h1 {
   font-size: clamp(34px, 3.8vw, 56px);
   line-height: 1.12;
   margin-bottom: 20px;
}
.shape-description {
   font-size: 14px;
   line-height: 1.85;
   color: #66725f;
   white-space: pre-line;
}
.shape-price-block {
   display: flex;
   align-items: flex-end;
   gap: 20px;
   margin: 25px 0 12px;
}
.shape-price-label {
   display: block;
   font-size: 11px;
   color: #788672;
   margin-bottom: 5px;
}
.shape-price-block strong {
   font: 650 35px Manrope, sans-serif;
   letter-spacing: -.045em;
   color: var(--ink);
}
.shape-price-block del {
   color: #9ba491;
   font-size: 14px;
   padding-bottom: 4px;
}
.shape-pricing-note {
   font-size: 11px;
   color: #2c7b32;
   margin-bottom: 18px;
}
.shape-option-group {
   border: 0;
   padding: 24px 0;
   margin: 0;
   border-top: 1px solid var(--line);
   min-width: 0;
}
.shape-option-group legend {
   float: left;
   width: 100%;
   padding: 0;
   font: 600 16px Manrope, sans-serif;
   letter-spacing: -.025em;
   color: var(--ink);
   margin-bottom: 10px;
}
.shape-option-group legend + * {
   clear: both;
}
.shape-option-group legend > span {
   margin-right: 12px;
   font: 500 10px 'DM Sans', sans-serif;
   color: #338339;
}
.shape-choice-label {
   font-size: 11px;
   color: #7c8975;
   margin-bottom: 14px;
}
.shape-color-options {
   display: flex;
   flex-wrap: wrap;
   gap: 12px;
   padding: 3px;
}
.shape-color-option {
   display: block;
   cursor: pointer;
   margin: 0;
}
.shape-swatch {
   display: block;
   background: var(--swatch);
   width: 34px;
   height: 34px;
   border: 1px solid #0002;
   border-radius: 50%;
   box-shadow: 0 0 0 4px white, 0 0 0 5px #dce5d6;
   transition: box-shadow .2s;
}
.shape-color-option input:checked + .shape-swatch {
   box-shadow: 0 0 0 4px white, 0 0 0 6px #2a8733;
}
.shape-color-option input:focus-visible + .shape-swatch {
   outline: 3px solid var(--green);
   outline-offset: 7px;
}
.shape-no-colors {
   font-size: 13px;
   color: #6e7967;
}
.shape-no-colors a {
   text-decoration: underline;
}
.shape-dimensions {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 10px;
   max-height: 330px;
   overflow-y: auto;
   padding: 3px;
   overscroll-behavior: contain;
}
.shape-dimension-option {
   display: block;
   cursor: pointer;
   margin: 0;
}
.shape-dimension {
   display: flex;
   flex-direction: column;
   justify-content: center;
   height: 100%;
   min-height: 76px;
   padding: 13px;
   background: #ffffffe8;
   border: 1px solid #dce4d7;
   border-radius: 3px;
   transition: border-color .2s, background .2s;
}
.shape-dimension strong {
   font-size: 12px;
   color: #34472d;
   font-weight: 600;
}
.shape-dimension small {
   font-size: 10px;
   color: #8a967f;
   margin-top: 5px;
   overflow-wrap: anywhere;
}
.shape-dimension-option input:checked + .shape-dimension {
   border-color: #2a8733;
   background: #f1f9ed;
   box-shadow: 0 0 0 1px #2a8733;
}
.shape-dimension-option:hover .shape-dimension {
   border-color: #80a279;
}
.shape-dimension-option input:focus-visible + .shape-dimension {
   outline: 3px solid var(--green);
   outline-offset: 2px;
}
.shape-order-row {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 25px;
   border-top: 1px solid var(--line);
   padding: 24px 0;
}
.shape-quantity {
   width: 115px;
   margin: 0;
}
.shape-quantity input {
   background: #ffffffdb;
}
.shape-total {
   text-align: right;
}
.shape-total > span {
   display: block;
   font-size: 11px;
   color: #7b8873;
   margin-bottom: 7px;
}
.shape-total strong {
   color: var(--ink);
   font: 600 27px Manrope, sans-serif;
   letter-spacing: -.035em;
}
.shape-submit {
   width: 100%;
   font-size: 14px;
   padding: 18px 25px;
}
.shape-product .form-note {
   font-size: 11px;
   line-height: 1.8;
}
.shape-purchase-actions { display: grid; gap: 12px; }
.shape-direct-quote { color: var(--ink); border: 1px solid #bacab2; background: #ffffffc9; }
.shape-direct-quote:hover { border-color: var(--ink); background: #edf4e8; }
.cart-added-actions { display: flex; flex-wrap: wrap; gap: 25px; align-items: center; padding: 0 0 30px; font-size: 13px; }
.cart-page { padding-top: 30px; }
.cart-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin: 35px 0 55px; }
.cart-heading h1 { font: 650 clamp(40px, 5vw, 68px)/1.08 Manrope, sans-serif; letter-spacing: -.055em; margin: 0; }
.cart-heading h1 em { color: #237b30; font-style: normal; }
.cart-heading .eyebrow { font-size: 10px; }
.cart-heading .text-link { flex-shrink: 0; margin-bottom: 8px; }
.cart-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; align-items: start; gap: 45px; }
.cart-items { min-width: 0; }
.cart-section-label { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 0 0 22px; border-bottom: 1px solid var(--line); }
.cart-section-label h2 { font-size: 21px; margin: 0; }
.cart-section-label > span { color: #75836d; font-size: 11px; }
.cart-item { display: grid; grid-template-columns: 140px minmax(0, 1fr) auto; gap: 24px; padding: 28px 0; border-bottom: 1px solid var(--line); }
.cart-item-image { display: grid; place-items: center; align-self: start; aspect-ratio: 1; overflow: hidden; border: 1px solid #dfe7d9; border-radius: 14px; background: radial-gradient(ellipse, #fcfdf9, #e9eee5); }
.cart-item-image img { width: 100%; height: 100%; object-fit: contain; padding: 15px; mix-blend-mode: multiply; transition: transform .5s var(--ease); }
.cart-item-image:hover img { transform: scale(1.06); }
.cart-item-details { min-width: 0; }
.cart-item-details > .eyebrow { font-size: 8px; margin: 0 0 8px; }
.cart-item-details h3 { font-size: 22px; line-height: 1.25; margin: 0 0 12px; overflow-wrap: anywhere; }
.cart-item-details h3 a:hover { color: #237b30; }
.cart-item-specs { display: flex; flex-wrap: wrap; gap: 8px 15px; font-size: 11px; color: #65765e; }
.cart-item-specs > span { display: inline-flex; align-items: center; gap: 7px; }
.cart-color-dot { display: inline-block; width: 15px; height: 15px; flex-shrink: 0; border-radius: 50%; background: var(--swatch); border: 1px solid #0003; }
.cart-item-unit { display: flex; flex-wrap: wrap; gap: 5px 10px; align-items: center; font-size: 11px; color: #67785f; margin: 10px 0 16px; }
.cart-item-unit del, .cart-item-unit > span { font-size: 10px; color: #7c8776; }
.cart-quantity-form { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.cart-quantity-control { display: flex; border: 1px solid #cfdcc7; border-radius: 8px; overflow: hidden; background: white; }
.cart-quantity-control button { width: 35px; min-height: 38px; border: 0; background: transparent; color: #385834; font-size: 18px; }
.cart-quantity-control button:hover { background: #edf4e8; }
.cart-quantity-control input { width: 65px; min-width: 0; border: 0; background: transparent; text-align: center; color: var(--ink); font: 600 12px 'DM Sans', sans-serif; appearance: textfield; -moz-appearance: textfield; }
.cart-quantity-control input::-webkit-inner-spin-button, .cart-quantity-control input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.cart-update { border: 0; background: transparent; color: #52684a; padding: 10px 6px; font-size: 11px; text-decoration: underline; text-underline-offset: 4px; }
.is-changed .cart-update { color: #1f752a; font-weight: 700; }
.needs-update .cart-quantity-control { outline: 2px solid #31823b; outline-offset: 3px; }
.cart-item-end { display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; gap: 20px; }
.cart-item-end > strong { font: 650 20px Manrope, sans-serif; letter-spacing: -.04em; white-space: nowrap; }
.cart-remove { border: 0; padding: 8px 0 8px 8px; background: transparent; color: #798572; font-size: 11px; }
.cart-remove span { font-size: 17px; margin-left: 5px; }
.cart-remove:hover { color: #963a2f; }
.cart-bottom-note { display: flex; align-items: center; gap: 8px; font-size: 11px; margin: 22px 0; color: #77846f; }
.cart-summary { position: sticky; top: 125px; padding: 32px; border-radius: 18px; color: white; background: radial-gradient(ellipse at 100% 0, #29482b 0, #18241b 65%); box-shadow: 0 20px 50px #10211415; }
.cart-summary > .eyebrow { color: #a9bfa2; font-size: 8px; margin-bottom: 18px; }
.cart-summary h2 { font-size: 39px; letter-spacing: -.045em; line-height: 1.1; color: white; margin-bottom: 30px; }
.cart-page .cart-summary h2 em { font-style: normal; color: var(--green); }
.cart-summary-row { display: flex; justify-content: space-between; gap: 15px; font-size: 12px; color: #c4d1be; margin-bottom: 14px; }
.cart-summary-total { display: flex; flex-direction: column; gap: 8px; padding: 24px 0 20px; margin-top: 24px; border-top: 1px solid #ffffff25; }
.cart-summary-total > span { color: #c4d1be; font-size: 12px; }
.cart-summary-total strong { color: white; font: 600 clamp(25px, 3vw, 36px) Manrope, sans-serif; letter-spacing: -.04em; overflow-wrap: anywhere; }
.cart-discount-note { color: #b3e1a7; font-size: 11px; margin: 0 0 22px; }
.cart-summary .button { width: 100%; padding: 17px; gap: 10px; font-size: 12px; justify-content: space-between; }
.cart-signin-note { font-size: 10px; color: #bdcdb6; text-align: center; margin: 12px 0 0; }
.cart-summary-note { font-size: 11px; color: #b4c5ad; line-height: 1.85; margin: 22px 0; }
.cart-help { display: block; border-top: 1px solid #ffffff25; padding-top: 18px; font-size: 11px; color: white; }
.cart-summary-warning, .cart-unavailable-note { font-size: 12px; line-height: 1.8; }
.cart-summary-warning { color: #f6d4a6; }
.cart-unavailable-note { color: #8a4d29; }
.cart-empty { text-align: center; background: #ffffffba; border: 1px solid #dfe8d9; border-radius: 22px; padding: 65px 30px; }
.cart-empty-symbol { position: relative; display: grid; place-items: center; width: 88px; height: 88px; border: 1px solid #cfe0c4; border-radius: 24px; margin: 0 auto 28px; background: #f1f7ec; color: #3e713c; font-size: 32px; rotate: -7deg; }
.cart-empty-symbol > span { position: absolute; right: -8px; bottom: -8px; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; border: 3px solid white; background: var(--green); color: var(--ink); font-size: 20px; }
.cart-empty > .eyebrow { font-size: 9px; }
.cart-empty h2 { font-size: clamp(28px, 4vw, 40px); margin-bottom: 18px; }
.cart-empty p { max-width: 470px; margin: 0 auto 28px; font-size: 14px; color: #718068; line-height: 1.8; }
@media(max-width:1200px) {
   .cart-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 28px; }
   .cart-item { grid-template-columns: 110px minmax(0, 1fr); gap: 18px; }
   .cart-item-end { grid-column: 2; flex-direction: row; align-items: center; margin-top: -5px; }
   .cart-summary { padding: 28px; }
}
@media(max-width:900px) {
   .cart-layout { grid-template-columns: 1fr; }
   .cart-summary { position: static; }
   .cart-summary h2 br { display: none; }
   .cart-item { grid-template-columns: 130px minmax(0, 1fr) auto; }
   .cart-item-end { grid-column: auto; flex-direction: column; align-items: flex-end; margin: 0; }
}
@media(max-width:700px) {
   .cart-heading { display: block; margin: 25px 0 35px; }
   .cart-heading .text-link { margin-top: 24px; font-size: 12px; }
   .cart-heading > div > .eyebrow { font-size: 8px; }
   .cart-item { grid-template-columns: 95px minmax(0, 1fr); gap: 15px; padding: 24px 0; }
   .cart-item-end { grid-column: 2; flex-direction: row; align-items: center; }
   .cart-item-details h3 { font-size: 19px; }
   .cart-item-end > strong { font-size: 20px; }
   .cart-section-label { align-items: flex-start; }
   .cart-section-label > span { font-size: 10px; text-align: right; }
   .cart-section-label h2 { font-size: 19px; }
   .cart-summary { padding: 28px; }
   .cart-empty { padding: 45px 20px; }
   .shop-card-action { padding: 11px 12px; font-size: 11px; }
   .shop-card-note { font-size: 9px; }
}
@media(prefers-reduced-motion:reduce) {
   .shop-card:hover { translate: none; }
   .cart-item-image:hover img { transform: none; }
}
@keyframes shape-loading {
   to {
     transform: rotate(360deg);
  }
}
@media(max-width:1200px) {
   .shop-layout {
     grid-template-columns: 155px minmax(0, 1fr);
     gap: 28px;
  }
  .shop-grid {
     gap: 28px 18px;
  }
  .shop-card-body {
     padding: 18px;
  }
  .shop-card-body h3 {
     font-size: 20px;
  }
  .shop-card-price strong {
     font-size: 21px;
  }
  .shape-detail-layout {
     gap: 40px;
  }
}
@media(max-width:1000px) {
   .shop-layout {
     grid-template-columns: 1fr;
     gap: 25px;
  }
  .shop-filters {
     position: static;
  }
  .shop-filters h3 {
     margin-bottom: 15px;
  }
  .shop-categories {
     flex-direction: row;
     flex-wrap: wrap;
     gap: 8px;
  }
  .shop-categories a {
     border-color: var(--line);
     background: #ffffffd9;
     font-size: 12px;
  }
  .shop-filter-help {
     display: none;
  }
  .shop-collection-heading {
     margin-bottom: 30px;
  }
  .shape-detail-layout {
     grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
     gap: 30px;
  }
  .shape-main-image {
     aspect-ratio: .95;
  }
  .shape-main-image > img {
     padding: 18px;
  }
  .shape-product h1 {
     font-size: 34px;
  }
  .shape-dimensions {
     grid-template-columns: 1fr;
     max-height: 280px;
  }
}
@media(max-width:700px) {
   .shop-hero {
     padding: 25px 0 38px;
  }
  .shop-hero h1 {
     font-size: 48px;
  }
  .shop-hero p {
     font-size: 13px;
  }
  .shop-section {
     padding-top: 40px;
  }
  .shop-collection-heading {
     display: block;
  }
  .shop-collection-heading h2 {
     font-size: 34px;
  }
  .shop-client-badge {
     margin-top: 20px;
     font-size: 10px;
  }
  .shop-grid {
     grid-template-columns: repeat(2, minmax(0, 1fr));
     gap: 22px 12px;
  }
  .shop-card-image img {
     padding: 12px;
  }
  .shop-card-category {
     top: 10px;
     left: 10px;
     padding: 3px 6px;
     font-size: 8px;
  }
  .shop-card-image .round-arrow {
     width: 28px;
     height: 28px;
     font-size: 17px;
     right: 10px;
     bottom: 10px;
  }
  .shop-card-body {
     padding: 14px;
  }
  .shop-card-body h3 {
     font-size: 18px;
  }
  .shop-card-body > p {
     font-size: 11px;
  }
  .shop-card-price {
     flex-wrap: wrap;
     gap: 3px;
  }
  .shop-card-price strong {
     font-size: 20px;
  }
  .shop-card-price del {
     font-size: 10px;
  }
  .shop-toolbar {
     gap: 12px;
     flex-wrap: wrap;
  }
  .shop-search {
     flex-basis: 100%;
     max-width: none;
  }
  .shop-sort {
     justify-content: space-between;
     width: 100%;
  }
  .shop-sort select {
     flex: 1;
     max-width: none;
  }
  .shop-result-meta {
     font-size: 10px;
  }
  .shop-pagination {
     font-size: 10px;
     gap: 10px;
  }
  .shop-pagination > div {
     gap: 2px;
  }
  .shop-pagination > div a {
     width: 28px;
     height: 28px;
  }
  .shop-empty {
     padding: 40px 18px;
  }
  .shop-empty h3 {
     font-size: 25px;
  }
  .shop-detail {
     padding-top: 25px;
  }
  .shape-detail-layout {
     grid-template-columns: 1fr;
     gap: 35px;
  }
  .shape-gallery {
     position: static;
  }
  .shape-main-image {
     aspect-ratio: 1.1;
  }
  .shape-image-note {
     font-size: 10px;
  }
  .shape-product h1 {
     font-size: 38px;
  }
  .shape-dimensions {
     grid-template-columns: repeat(2, minmax(0, 1fr));
     max-height: 300px;
  }
  .shape-thumbnails button {
     width: 66px;
     height: 62px;
     flex-basis: 66px;
  }
  .shape-description {
     font-size: 13px;
  }
}
@media(max-width:370px) {
   .shop-grid {
     grid-template-columns: 1fr;
  }
  .shape-dimensions {
     grid-template-columns: 1fr;
  }
}
@media(prefers-reduced-motion:reduce) {
   .shop-card:hover .shop-card-image img, .shape-main-image:hover > img {
     transform: none;
  }
  .shape-main-image.is-loading::before {
     animation: none;
  }
}
