/* Native WooCommerce classic templates and Cart / Checkout blocks. */
.woocommerce { --wc-primary:var(--doria-ink); --wc-primary-text:#fff; }
.woocommerce .woocommerce-breadcrumb { font-size:11px; margin-block-end:28px; color:var(--doria-muted); }
.woocommerce .woocommerce-products-header { max-width:700px; margin-block-end:40px; }
.woocommerce .woocommerce-products-header__title { margin-block-end:20px; }
.woocommerce .term-description { color:var(--doria-muted); }
.woocommerce .woocommerce-result-count,.woocommerce .woocommerce-ordering { font-size:12px; margin-block-end:30px; }
.woocommerce select { border:1px solid var(--doria-border); background:var(--doria-paper); padding:10px; color:var(--doria-ink); }
.woocommerce ul.products { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px 24px; clear:both; }
.woocommerce ul.products::before,.woocommerce ul.products::after { display:none; }
.woocommerce ul.products li.product,.woocommerce-page ul.products li.product { float:none; width:auto!important; margin:0!important; padding:0; min-width:0; }
.woocommerce ul.products li.product a img { width:100%; aspect-ratio:4/5; object-fit:cover; background:var(--doria-tint); margin-block-end:15px; transition:filter .2s; }
.woocommerce ul.products li.product a:hover img { filter:brightness(.97); }
.woocommerce ul.products li.product .woocommerce-loop-product__title,.woocommerce ul.products li.product .woocommerce-loop-category__title { font-family:var(--doria-serif); font-weight:400; font-size:22px; padding:0 0 8px; }
.woocommerce ul.products li.product .price,.woocommerce div.product p.price,.woocommerce div.product span.price { color:var(--doria-ink); font-size:15px; }
.woocommerce ul.products li.product .price del { opacity:.55; }
.woocommerce :is(a.button,button.button,input.button,#respond input#submit),.woocommerce :is(a.button.alt,button.button.alt,input.button.alt),.wc-block-components-button:not(.is-link) { background:var(--doria-ink); color:#fff; border:1px solid var(--doria-ink); border-radius:0; min-height:44px; padding:13px 20px; font-size:12px; line-height:1.5; font-weight:500; text-decoration:none; }
.woocommerce :is(a.button,button.button,input.button):hover,.woocommerce :is(a.button.alt,button.button.alt,input.button.alt):hover,.wc-block-components-button:not(.is-link):hover { background:var(--doria-accent); border-color:var(--doria-accent); color:white; }
.woocommerce button.button:disabled,.woocommerce button.button:disabled[disabled] { opacity:.5; }
.woocommerce span.onsale { border-radius:0; min-height:auto; min-width:auto; padding:5px 12px; line-height:1.8; background:var(--doria-ink); color:white; font-size:10px; font-weight:400; }
.woocommerce nav.woocommerce-pagination ul { border:0; display:flex; justify-content:center; gap:8px; }
.woocommerce nav.woocommerce-pagination ul li { border:1px solid var(--doria-border); }
.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span { padding:12px 16px; }
.woocommerce nav.woocommerce-pagination ul li span.current { background:var(--doria-ink); color:white; }
.woocommerce div.product .product_title { font-size:clamp(34px,4vw,55px); }
.woocommerce div.product div.images .woocommerce-product-gallery__image { background:var(--doria-tint); }
.woocommerce div.product .woocommerce-product-details__short-description { color:var(--doria-muted); margin-block:25px; }
.woocommerce div.product form.cart .variations td,.woocommerce div.product form.cart .variations th { padding-block:10px; text-align:start; }
.woocommerce div.product form.cart .variations select { min-width:0; }
.woocommerce .quantity .qty { width:75px; min-height:46px; border:1px solid var(--doria-border); background:transparent; color:inherit; }
.woocommerce div.product .product_meta { font-size:11px; border-block-start:1px solid var(--doria-border); padding-block-start:20px; }
.woocommerce div.product .product_meta > span { display:block; margin-block:7px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding:0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border:0; border-radius:0; background:transparent; margin:0; padding:0 25px 0 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display:none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background:transparent; border-block-end:2px solid var(--doria-ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { font-weight:400; font-size:13px; }
.woocommerce div.product .woocommerce-tabs .panel { padding-block:25px; }
.woocommerce .related h2,.woocommerce .upsells h2,.woocommerce .cart_totals h2,.woocommerce .woocommerce-billing-fields h3,.woocommerce .woocommerce-additional-fields h3 { font-family:var(--doria-serif); font-size:30px; font-weight:400; }
.woocommerce .woocommerce-message,.woocommerce .woocommerce-info,.woocommerce .woocommerce-error { background:var(--doria-tint); border-block-start-color:var(--doria-ink); color:var(--doria-ink); font-size:13px; }
.woocommerce .woocommerce-message::before,.woocommerce .woocommerce-info::before { color:var(--doria-ink); }
.woocommerce table.shop_table { border:1px solid var(--doria-border); border-radius:0; border-collapse:collapse; font-size:13px; }
.woocommerce table.shop_table :is(th,td) { padding:18px 14px; border-color:var(--doria-border); }
.woocommerce table.shop_table th { font-weight:500; }
.woocommerce table.cart img { width:70px; }
.woocommerce table.cart td.actions .input-text { width:160px; padding:12px; min-height:46px; }
.woocommerce form .form-row :is(input.input-text,textarea),.woocommerce form .form-row select { background:transparent; border:1px solid var(--doria-border); border-radius:0; padding:12px; color:var(--doria-ink); min-height:46px; }
.woocommerce form .form-row label { font-size:12px; margin-block-end:5px; }
.woocommerce form.checkout_coupon,.woocommerce form.login,.woocommerce form.register { border-radius:0; border-color:var(--doria-border); }
.woocommerce .woocommerce-MyAccount-navigation { border:1px solid var(--doria-border); padding:20px; }
.woocommerce .woocommerce-MyAccount-navigation ul { margin:0; padding:0; list-style:none; }
.woocommerce .woocommerce-MyAccount-navigation a { display:block; padding:12px; font-size:13px; text-decoration:none; }
.woocommerce .woocommerce-MyAccount-navigation .is-active a { background:var(--doria-tint); border-inline-start:2px solid var(--doria-ink); }
.woocommerce .woocommerce-MyAccount-content { overflow-wrap:anywhere; }
.woocommerce .woocommerce-customer-details address { border:1px solid var(--doria-border); border-radius:0; padding:20px; }
.woocommerce #payment { background:var(--doria-tint); border-radius:0; }
.woocommerce #payment div.payment_box { background:var(--doria-paper); color:var(--doria-ink); }
.woocommerce #payment div.payment_box::before { border-bottom-color:var(--doria-paper); }
.wc-block-cart,.wc-block-checkout { color:var(--doria-ink); font-family:var(--doria-sans); }
.wc-block-components-title,.wc-block-cart h2,.wc-block-checkout h2 { font-family:var(--doria-serif); font-weight:400; }
.wc-block-components-sidebar { background:var(--doria-tint); padding:24px!important; }
.wc-block-components-text-input input,.wc-block-components-combobox .components-combobox-control__input { border-radius:0!important; }
.wc-block-cart .wc-block-components-product-name { font-family:var(--doria-serif); font-size:20px; text-decoration:none; }
.wc-block-components-notice-banner { border-radius:0; }
/* Leave room for variation names and sale prices in the narrow tablet sidebar. */
@media (min-width:768px) and (max-width:1024px) {
    body.woocommerce-checkout .wc-block-checkout .wc-block-components-sidebar { padding:16px!important; }
    body.woocommerce-checkout .wc-block-checkout .wc-block-components-order-summary-item { display:grid; grid-template-columns:48px minmax(0,1fr); gap:12px; }
    body.woocommerce-checkout .wc-block-checkout .wc-block-components-order-summary-item__image { width:48px; }
    body.woocommerce-checkout .wc-block-checkout .wc-block-components-order-summary-item__image img { width:48px; max-width:100%; height:auto; }
    body.woocommerce-checkout .wc-block-checkout .wc-block-components-order-summary-item__description { width:auto; min-width:0; padding:0; }
    body.woocommerce-checkout .wc-block-checkout .wc-block-components-order-summary-item__total-price { grid-column:2; padding:0; justify-self:start; }
}
@media(max-width:1024px) { .woocommerce ul.products { grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px 18px; } }
@media(max-width:767px) {
.woocommerce ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 15px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size:19px; }
.woocommerce ul.products li.product a.button { font-size:11px; padding:10px 12px; }
.woocommerce .woocommerce-result-count,.woocommerce .woocommerce-ordering { float:none; margin-block-end:18px; }
.woocommerce .woocommerce-MyAccount-navigation { margin-block-end:30px; }
.woocommerce table.shop_table :is(th,td) { padding:12px 8px; }
.woocommerce table.cart td.actions .input-text { width:48%; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { padding-inline-end:15px; }
.wc-block-components-sidebar { padding:18px!important; }
}

/* Cart state indicator: reserved space prevents shifting the approved header. */
.doria-cart-link { position:relative; }
.doria-cart-count { position:absolute; inset-block-start:0; inset-inline-end:0; display:grid; place-items:center; min-width:16px; height:16px; padding-inline:3px; border-radius:50%; background:var(--doria-ink); color:white; font-size:9px; line-height:1; pointer-events:none; }
/* Fit WooCommerce's fixed mobile tracks and controls into narrow viewports. */
@media(max-width:399px) {
    body.woocommerce-cart .wc-block-cart table.wc-block-cart-items { border-spacing:0; table-layout:fixed; }
    body.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row { grid-template-columns:56px minmax(0,1fr) auto; column-gap:12px; }
    body.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-item__quantity { flex-wrap:wrap; gap:8px; }
    body.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-item__product { overflow-wrap:anywhere; }
}
