/* Totai shop: WooCommerce restyled as plates and cells. */

.tt-shop { padding-block: clamp(1.6rem, 3vw, 2.6rem) clamp(4rem, 6vw, 6rem); }
.tt-shopcrumbs { font: 600 .86rem/1.3 var(--f-cond); letter-spacing: .04em; color: var(--ink-3); margin-bottom: 1.2rem; }
.tt-shopcrumbs a { color: var(--ink-2); text-decoration: none; }
.tt-shop .woocommerce-products-header__title, .tt-shop .product_title { font: 800 var(--t-h1)/.92 var(--f-display); margin: 0 0 1rem; }
.tt-shop .term-description { max-width: 64ch; color: var(--ink-2); }

.tt-shelves { margin: 0 0 1.6rem; overflow-x: auto; scrollbar-width: none; border-block: 1px solid var(--enamel-3); }
.tt-shelves::-webkit-scrollbar { display: none; }
.tt-shelves ul { list-style: none; margin: 0; padding: 0; display: flex; gap: .2rem; width: max-content; }
.tt-shelves a { display: inline-flex; align-items: center; gap: .4rem; min-height: 48px; padding: 0 .9rem; color: var(--ink-2); text-decoration: none; font: 700 .95rem/1 var(--f-cond); white-space: nowrap; position: relative; }
.tt-shelves a span { color: var(--ink-3); font-weight: 600; font-size: .82rem; }
.tt-shelves a:hover { color: var(--ink); }
.tt-shelves a[aria-current] { color: var(--red-deep); }
.tt-shelves a[aria-current]::after { content: ""; position: absolute; left: .9rem; right: .9rem; bottom: 0; height: 3px; background: var(--red); }

.tt-shop .woocommerce-result-count { color: var(--ink-3); font-size: .9rem; margin: .8rem 0; float: none; }
.tt-shop .woocommerce-ordering { float: none; margin: 0 0 1rem; }
.tt-shop .woocommerce-ordering select { min-height: 44px; padding: .4rem 2.2rem .4rem .8rem; border: 1px solid var(--steel); border-radius: var(--r-sm); background: #fff; font: 600 16px var(--f-body); appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23554c47' stroke-width='1.6'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .6rem center; background-size: 16px; }
.tt-shop .tt-shop-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .6rem; }

.woocommerce .tt-shop ul.products, .tt-shop ul.products { list-style: none; margin: 0 !important; padding: 0; display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--enamel-3); border-block: 1px solid var(--enamel-3); }
.tt-shop ul.products::before, .tt-shop ul.products::after { display: none !important; }
.woocommerce .tt-shop ul.products li.product, .tt-shop ul.products li.product { float: none !important; width: auto !important; margin: 0 !important; padding: 1rem 1rem 1.2rem !important; background: var(--enamel); display: flex; flex-direction: column; gap: .5rem; position: relative; }
.tt-shop ul.products li.product a.woocommerce-LoopProduct-link { display: grid; gap: .5rem; color: var(--ink); text-decoration: none; }
.tt-shop ul.products li.product img { width: 100% !important; aspect-ratio: 1; object-fit: contain; background: #fff; border-radius: var(--r-sm); padding: 8%; margin: 0 0 .4rem !important; transition: transform .6s var(--ease); }
.tt-shop ul.products li.product:hover img { transform: scale(1.03); }
.tt-shop ul.products li.product .woocommerce-loop-product__title { font: 700 1.02rem/1.25 var(--f-cond) !important; padding: 0 !important; margin: 0; color: var(--ink); }
.tt-shop ul.products li.product .price { font: 800 1.4rem/1 var(--f-display) !important; color: var(--red-deep) !important; margin: 0 !important; }
.tt-shop ul.products li.product .price del { color: var(--ink-3); font-size: .9em; }
.tt-shop ul.products li.product .price ins { text-decoration: none; }
.tt-shop .tt-por { font: 700 .95rem/1.2 var(--f-cond); color: var(--ink-2); }
.woocommerce .tt-shop ul.products li.product .button, .tt-shop ul.products li.product .button { display: inline-flex; align-items: center; justify-content: center; margin-top: auto !important; min-height: 44px; padding: .55rem 1rem; border: 0; border-radius: 3px; background: var(--ink); color: #fff; font: 750 .95rem/1 var(--f-cond); text-decoration: none; transition: background-color .2s; }
.tt-shop ul.products li.product .button:hover { background: var(--red); }
.tt-shop ul.products li.product .added_to_cart { font: 700 .9rem var(--f-cond); color: var(--red-deep); }
.tt-shop .onsale { position: absolute; top: 1.4rem; left: 1.4rem; z-index: 2; min-height: 0 !important; min-width: 0 !important; margin: 0 !important; padding: .2rem .6rem !important; border-radius: 2px !important; background: var(--red) !important; color: #fff; font: 700 .76rem/1.4 var(--f-cond) !important; letter-spacing: .1em; text-transform: uppercase; }
@media (max-width: 1080px) { .tt-shop ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .tt-shop ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } .woocommerce .tt-shop ul.products li.product { padding: .7rem !important; } }

.tt-shop .woocommerce-pagination ul { display: flex; gap: .4rem; border: 0 !important; margin-top: 2rem !important; }
.tt-shop .woocommerce-pagination ul li { border: 0 !important; }
.tt-shop .woocommerce-pagination ul li a, .tt-shop .woocommerce-pagination ul li span { display: inline-grid !important; place-items: center; min-width: 44px; height: 44px; border: 1px solid var(--steel) !important; border-radius: 6px; font: 700 1rem/1 var(--f-cond); color: var(--ink); }
.tt-shop .woocommerce-pagination ul li span.current { background: var(--ink); color: #fff; border-color: var(--ink) !important; }

/* single product */
.tt-shop div.product { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(1.6rem, 4vw, 4rem); align-items: start; }
.tt-shop div.product div.images.woocommerce-product-gallery { width: 100% !important; float: none !important; margin: 0 !important; position: relative; background: #fff; border-radius: var(--r); padding: 4%; }
.tt-shop div.product div.images img { object-fit: contain; }
.tt-shop div.product .summary { width: 100% !important; float: none !important; margin: 0 !important; }
.tt-shop div.product .product_title { font-size: clamp(2.2rem, 1.6rem + 2.4vw, 3.6rem) !important; }
.tt-shop div.product p.price { font: 800 clamp(2.2rem, 1.8rem + 1.6vw, 3rem)/1 var(--f-display) !important; color: var(--red-deep) !important; margin: .4rem 0 1.2rem; }
.tt-shop div.product .woocommerce-product-details__short-description { color: var(--ink-2); }
.tt-shop div.product form.cart { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; margin: 1.4rem 0; }
.tt-shop div.product form.cart .qty { width: 80px; min-height: 50px; border: 1px solid var(--steel); border-radius: var(--r-sm); text-align: center; font: 700 1.1rem var(--f-body); }
.tt-shop div.product form.cart .button, .woocommerce .tt-shop div.product form.cart .button { min-height: 50px; padding: .7rem 1.6rem; border: 0; border-radius: 3px; background: var(--red) !important; color: #fff !important; font: 750 1.05rem/1 var(--f-cond); transform: skewX(var(--lean)); }
.tt-shop div.product .product_meta { font-size: .88rem; color: var(--ink-3); border-top: 1px solid var(--enamel-3); padding-top: 1rem; margin-top: 1rem; display: grid; gap: .3rem; }
.tt-shop div.product .product_meta a { color: var(--ink-2); }
.tt-pd-acts { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1rem 0; }
.tt-pd-note { display: flex; gap: .5rem; align-items: flex-start; font-size: .9rem; color: var(--ink-2); max-width: 52ch; }
.tt-pd-note .tt-ic { flex: none; width: 20px; height: 20px; color: var(--red-deep); }
.tt-shop div.product .woocommerce-tabs { grid-column: 1 / -1; }
.tt-shop div.product .woocommerce-tabs ul.tabs { display: flex; gap: .2rem; padding: 0 !important; margin: 0 0 1.4rem !important; border-bottom: 1px solid var(--enamel-3); }
.tt-shop div.product .woocommerce-tabs ul.tabs::before, .tt-shop div.product .woocommerce-tabs ul.tabs li::before, .tt-shop div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.tt-shop div.product .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; border-radius: 0 !important; }
.tt-shop div.product .woocommerce-tabs ul.tabs li a { display: block; padding: .8rem 1rem !important; font: 750 1rem/1 var(--f-cond); color: var(--ink-3) !important; }
.tt-shop div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ink) !important; box-shadow: inset 0 -3px 0 var(--red); }
.tt-shop div.product .woocommerce-tabs .panel { max-width: 72ch; }
.tt-shop div.product .woocommerce-tabs .panel h2 { display: none; }
.tt-spec { padding: clamp(1.2rem, 2.6vw, 2rem); max-width: 760px; }
.tt-spec .tt-stamp-row span:first-child { white-space: normal; overflow-wrap: anywhere; min-width: 0; flex: 1 1 60%; }
.tt-spec__list { margin: 1.2rem 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--enamel-3); border-block: 1px solid var(--enamel-3); }
.tt-spec__list dd { margin: 0; padding: .65rem .8rem .7rem; background: #fbf9f6; font-size: .97rem; }
.tt-spec__head { grid-column: 1 / -1; padding: 1rem 0 .35rem; background: #fbf9f6; font: 650 var(--t-micro)/1.2 var(--f-cond); letter-spacing: .16em; text-transform: uppercase; color: var(--red-deep); }
@media (max-width: 560px) { .tt-spec__list { grid-template-columns: minmax(0, 1fr); } }
.tt-shop .related.products, .tt-shop .upsells.products { grid-column: 1 / -1; margin-top: 2rem; }
.tt-shop .related.products > h2 { font: 800 var(--t-h2)/.92 var(--f-display); margin-bottom: 1.4rem; }
@media (max-width: 860px) { .tt-shop div.product { grid-template-columns: minmax(0, 1fr); } }

/* notices, cart, checkout basics */
.tt-shop .woocommerce-message, .tt-shop .woocommerce-info, .tt-shop .woocommerce-error { border-top-color: var(--red) !important; background: #fff; border-radius: var(--r-sm); }
.tt-shop .woocommerce-message::before, .tt-shop .woocommerce-info::before { color: var(--red) !important; }
.tt-shop .button, .woocommerce .tt-shop a.button, .woocommerce .tt-shop button.button { border-radius: 3px; background: var(--ink); color: #fff; font-family: var(--f-cond); font-weight: 750; }
.tt-shop .button.alt, .woocommerce .tt-shop .button.alt { background: var(--red) !important; color: #fff !important; }
.tt-empty { padding: 3rem 0; }
.tt-empty .tt-h2 { margin-bottom: .8rem; }
