.shop-page [hidden] { display:none!important; }
.shop-page .site-header a[aria-current="page"] { text-decoration:underline; text-underline-offset:5px; }
.shop-page .skip-link { z-index:8; }
.product-card-link { display:block; color:var(--ink); text-decoration:none; }
.product-card-link:focus-visible { outline:2px solid var(--red); outline-offset:6px; }
.product-card-link:hover h2 { color:var(--red); }
.card-color-options { padding:0; border:0; margin:.75rem 0 0; min-width:0; color:var(--ink); }
.card-color-options legend { padding:0; margin:0 0 .25rem; font-size:.875rem; line-height:1.5; }
.card-swatches { display:flex; flex-wrap:wrap; gap:2px; }
.card-color { display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid transparent; border-radius:50%; background:transparent; cursor:pointer; }
.card-swatches .product-swatch { width:20px; height:20px; }
.card-color[aria-pressed="true"] { border-color:var(--red); }
.card-color:hover:not(:disabled) { background:#bb3e260b; }
.card-color:focus-visible { outline:2px solid var(--red); outline-offset:2px; }
.card-color:disabled { opacity:.3; cursor:not-allowed; }
.card-stock { color:var(--muted); font-size:.875rem; margin:.75rem 0 0; }
.shop-main { padding:0 var(--gutter); }
.shop-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; padding:2.75rem 0 2.5rem; border-bottom:1px solid var(--red); }
.shop-eyebrow { margin:0 0 1.1rem; font:500 .8125rem/1.5 var(--mono); letter-spacing:.04em; }
.shop-intro h1 { margin:0; font:400 clamp(4rem,8.5vw,8rem)/1 'Anton',sans-serif; letter-spacing:-.02em; }
.shop-cart-trigger { display:flex; align-items:center; gap:1.15rem; flex:none; min-height:48px; padding:.8rem 1rem; margin-bottom:.15rem; background:var(--red); color:var(--paper); border:1px solid var(--red); cursor:pointer; font:500 .875rem/1.3 var(--mono); }
.shop-cart-trigger:hover,.shop-button:hover:not(:disabled) { background:var(--red); }
#cart-count { display:flex; align-items:center; justify-content:center; min-width:1.65rem; min-height:1.65rem; padding:.1rem .3rem; border:1px solid #fffefa70; }
.shop-catalog { padding:2rem 0 0; }
.shop-tools { color:var(--ink); margin:0 0 2rem; }
.shop-tools-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(200px,260px); gap:1.5rem; align-items:end; }
.shop-tools label { display:block; margin:0 0 .55rem; font-size:.875rem; font-weight:500; line-height:1.5; }
.shop-tools input[type="search"],.shop-tools select { display:block; width:100%; min-width:0; min-height:48px; padding:.7rem .85rem; border:1px solid #c9c5bd; border-radius:0; background:var(--paper); color:var(--ink); font:400 1rem/1.4 var(--sans); accent-color:var(--red); }
.shop-tools input[type="search"]:focus-visible,.shop-tools input[type="checkbox"]:focus-visible { outline:2px solid var(--red); outline-offset:3px; }
.shop-tools input::placeholder { color:var(--muted); }
.shop-search-field { max-width:36rem; }
.shop-filters { margin-top:1rem; border-bottom:1px solid var(--line); }
.shop-filters summary { width:fit-content; cursor:pointer; padding:.75rem .25rem .75rem 0; font-size:.9375rem; min-height:44px; }
.shop-filters summary:focus-visible { outline:2px solid var(--red); outline-offset:3px; }
#filter-count { color:var(--red); }
.shop-filter-fields { display:grid; grid-template-columns:minmax(0,240px) minmax(0,200px) auto; gap:1.5rem; align-items:end; padding:.5rem 0 1.5rem; }
.shop-tools .shop-stock-field { display:flex; align-items:center; gap:.65rem; min-height:48px; margin:0; cursor:pointer; font-weight:400; font-size:1rem; }
.shop-stock-field input { width:18px; height:18px; flex:none; margin:0; accent-color:var(--red); }
.shop-results-row { display:flex; justify-content:space-between; align-items:center; gap:1rem; min-height:48px; margin-top:.5rem; }
.shop-results-row p { margin:0; font-size:.875rem; color:var(--muted); }
#shop-clear { padding:.5rem 0 .5rem 1rem; min-height:44px; background:none; border:0; color:var(--red); font-size:.875rem; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
#shop-clear:disabled { color:var(--muted); opacity:.65; text-decoration:none; cursor:default; }
.product-page .shop-tools { display:none; }
@media(max-width:600px) {
  .shop-tools-row { grid-template-columns:1fr; gap:1rem; }
  .shop-search-field { max-width:none; }
  .shop-filter-fields { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
  .shop-stock-field { grid-column:1/-1; }
}
.shop-products { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4rem var(--gutter); align-items:start; }
.shop-product { min-width:0; }
.product-photo { position:relative; aspect-ratio:1/1; background:#f1f0ec; display:grid; place-items:center; overflow:hidden; }
/* Anchor the image box to the tile so intrinsic portrait dimensions cannot overflow it. */
.product-photo>img { position:absolute; inset:0; margin:auto; display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
.product-photo-fallback { position:absolute; margin:0; padding:1rem; color:var(--muted); font-size:.875rem; text-align:center; }
.product-photo-fallback[hidden] { display:none; }
.product-photo>img.product-image-pending { opacity:0; }
.product-photo-retry { background:none; border:0; color:var(--red); font:inherit; text-decoration:underline; text-underline-offset:3px; cursor:pointer; padding:.5rem 0; }
.product-thumbnails { display:flex; gap:.5rem; overflow-x:auto; padding:1rem 2px .35rem; scrollbar-width:thin; scrollbar-color:var(--line) transparent; }
.product-thumbnail { flex:0 0 58px; padding:0; aspect-ratio:1/1; border:1px solid transparent; background:#f1f0ec; cursor:pointer; }
.product-thumbnail[aria-pressed="true"] { border-color:var(--red); outline:1px solid var(--red); outline-offset:2px; }
.product-thumbnail img { display:block; height:100%; width:100%; object-fit:contain; }
.product-title-row { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; margin:1.5rem 0 .7rem; }
.product-title-row h2 { font-size:clamp(1.5rem,2.4vw,2.15rem); letter-spacing:-.045em; font-weight:500; line-height:1.15; margin:0; overflow-wrap:anywhere; }
.product-price { margin:0; white-space:nowrap; color:var(--ink); font:500 1rem/1.5 var(--mono); }
.product-description { color:var(--ink); font-size:1rem; line-height:1.6; margin:0 0 1.5rem; white-space:pre-wrap; overflow-wrap:anywhere; }
.product-options { display:grid; grid-template-columns:minmax(0,1fr) minmax(8rem,.5fr); column-gap:1.5rem; row-gap:1rem; align-items:start; margin:1.5rem 0 1.2rem; }
.product-colors { border:0; padding:0; margin:0; min-width:0; }
.product-colors legend,.product-size label { display:block; padding:0; margin:0 0 .65rem; color:var(--ink); font-size:.875rem; font-weight:500; line-height:1.5; }
.product-color-list { display:flex; flex-wrap:wrap; gap:.6rem; }
.product-color { display:flex; align-items:center; gap:.55rem; min-height:46px; padding:.6rem .75rem; border:1px solid #c9c5bd; color:var(--ink); background:transparent; font-size:.875rem; cursor:pointer; }
.product-color[aria-pressed="true"] { border-color:var(--red); box-shadow:inset 0 0 0 1px var(--red); color:var(--red); }
.product-color:disabled { opacity:.45; cursor:not-allowed; }
.product-swatch { flex:none; width:15px; height:15px; border-radius:50%; box-shadow:inset 0 0 0 1px #0003; background:var(--swatch,var(--paper)); }
.product-size select { width:100%; min-height:46px; padding:.65rem .65rem; color:var(--ink); border:1px solid #c9c5bd; background:var(--paper); border-radius:0; font:400 1rem/1.4 var(--sans); accent-color:var(--red); }
.shop-page select:focus-visible { outline:2px solid var(--red); outline-offset:3px; }
.shop-page select option:checked,.shop-page select option:hover,.shop-page select option:focus { background:var(--red); color:var(--paper); }
@supports (appearance:base-select) {
  .shop-page select,.shop-page select::picker(select) { appearance:base-select; }
  .shop-page select { align-items:center; cursor:pointer; }
  .shop-tools select { display:flex; align-items:center; justify-content:space-between; }
  .shop-page select::picker(select) { background:var(--paper); color:var(--ink); border:1px solid var(--line); padding:.25rem; font:400 1rem/1.4 var(--sans); max-height:20rem; }
  .shop-page select::picker-icon { color:var(--red); }
  .shop-page select option { padding:.65rem; min-height:44px; }
}
.shop-button { display:flex; align-items:center; justify-content:center; min-height:52px; width:100%; padding:1rem; background:var(--red); color:var(--paper); border:1px solid var(--red); cursor:pointer; text-align:center; font:500 .875rem/1.4 var(--mono); letter-spacing:.02em; }
.shop-button:disabled { background:#ece9e3; border-color:#d8d4cb; color:#6c6761; cursor:not-allowed; }
.shop-button-outline { background:transparent; color:var(--red); }
.shop-button-outline:hover:not(:disabled) { color:var(--paper); }
.shop-button[hidden] { display:none; }
.product-status { margin:.6rem 0 0; color:var(--red); font-size:.875rem; line-height:1.5; }
.product-status:empty { display:none; }
.product-information { margin-top:1.25rem; border-top:1px solid var(--line); color:var(--ink); }
.product-information details { border-bottom:1px solid var(--line); }
.product-information summary { cursor:pointer; padding:1rem 0; font-size:.875rem; font-weight:500; }
.product-information summary:focus-visible { outline:2px solid var(--red); outline-offset:2px; }
.product-information details p { font-size:.9375rem; line-height:1.65; margin:0 0 1rem; white-space:pre-wrap; overflow-wrap:anywhere; }
.product-more { display:inline-block; margin-top:1.1rem; font-size:.875rem; line-height:1.5; text-decoration:underline; text-underline-offset:4px; color:var(--muted); }
.shop-catalog-state { color:var(--ink); padding:3rem 0 4rem; min-height:14rem; }
.shop-catalog-state[hidden] { display:none; }
.shop-catalog-state p { font-size:1.125rem; line-height:1.5; margin:0 0 1.5rem; }
.shop-catalog-state button { max-width:12rem; }
.shop-noscript { color:var(--ink); line-height:1.6; }
.shop-noscript a { text-decoration:underline; }
.shop-checkout-note { margin:3rem 0 0; padding:1.5rem 0 2rem; border-bottom:1px solid var(--line); color:var(--muted); font-size:.8125rem; line-height:1.5; }
.shop-cart { inset:0 0 0 auto; margin:0; width:min(100%,34rem); height:100%; height:100dvh; max-height:100%; max-width:100%; padding:0; border:0; background:var(--paper); color:var(--ink); box-shadow:-8px 0 40px #26231f20; }
.shop-cart::backdrop { background:#26231f73; backdrop-filter:blur(3px); }
.cart-shell { min-height:100%; display:flex; flex-direction:column; padding:1.5rem 1.75rem; }
.cart-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; color:var(--red); border-bottom:1px solid var(--red); padding:0 0 1.3rem; }
.cart-heading h2 { margin:0; font:400 clamp(2.2rem,4vw,3rem)/1.1 'Anton',sans-serif; }
.cart-close { min-width:44px; min-height:44px; border:1px solid var(--line); color:var(--red); background:transparent; font-size:1.85rem; font-weight:400; cursor:pointer; }
.cart-close:hover { border-color:var(--red); }
.cart-body { flex:1; }
#cart-empty { margin:3rem 0; font-size:1rem; line-height:1.6; }
.cart-items { padding:0; margin:0; list-style:none; }
.cart-item { display:grid; grid-template-columns:86px minmax(0,1fr); gap:1rem; padding:1.5rem 0; border-bottom:1px solid var(--line); }
.cart-item-image { aspect-ratio:4/5; background:#f1f0ec; display:block; width:100%; object-fit:contain; }
.cart-item-info { min-width:0; }
.cart-item h3 { font-size:1.125rem; line-height:1.3; font-weight:500; letter-spacing:-.025em; color:var(--red); margin:0 0 .5rem; overflow-wrap:anywhere; }
.cart-item-variant { color:var(--muted); font-size:.875rem; line-height:1.4; margin:0 0 .6rem; }
.cart-item-price { font:500 .875rem/1.5 var(--mono); margin:0; }
.cart-item-actions { display:flex; align-items:flex-end; flex-wrap:wrap; justify-content:space-between; gap:.75rem; margin-top:.8rem; }
.cart-item-actions label { display:block; font-size:.8125rem; margin-bottom:.35rem; }
.cart-item-actions select { min-width:66px; min-height:40px; padding:.45rem; border:1px solid #c9c5bd; border-radius:0; color:var(--ink); background:var(--paper); font:400 1rem/1.3 var(--sans); }
.cart-remove { min-height:40px; padding:.35rem 0; color:var(--red); background:none; border:0; text-decoration:underline; text-underline-offset:4px; font-size:.875rem; cursor:pointer; }
.cart-item-warning { font-size:.8125rem; line-height:1.5; color:var(--red); margin:.75rem 0 0; }
.cart-summary { margin-top:1.75rem; }
.cart-summary[hidden] { display:none; }
.cart-subtotal { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; font-size:1.125rem; }
.cart-subtotal strong { font:500 1.125rem/1.5 var(--mono); }
.cart-note { color:var(--muted); margin:.5rem 0 1.25rem; font-size:.875rem; line-height:1.5; }
.cart-provider { text-align:center; font-size:.8125rem; margin:.8rem 0 0; }
.cart-status { color:var(--red); font-size:.875rem; line-height:1.6; overflow-wrap:anywhere; margin:0 0 1rem; }
.cart-status:empty { display:none; }
.cart-continue { display:block; align-self:center; min-height:48px; margin:1rem 0 0; padding:.75rem; border:0; background:none; color:var(--red); cursor:pointer; font:500 .8125rem/1.4 var(--mono); text-decoration:underline; text-underline-offset:5px; }
.shop-cart button:focus-visible,.shop-cart select:focus-visible { outline-color:var(--red); }
.shop-cart button:disabled { cursor:not-allowed; opacity:.6; }
.shop-cart-open { overflow:hidden; }
@media(min-width:1700px) { .shop-products { gap:4rem; } .shop-main { max-width:1800px; margin:auto; } }
@media(max-width:950px) { .product-options { grid-template-columns:1fr; } }
@media(max-width:760px) { .shop-page .site-header { grid-template-columns:1fr; gap:12px; } .shop-page .site-header nav { justify-content:space-between; } }
@media(max-width:760px) { .shop-intro { padding-top:2rem; padding-bottom:1.75rem; gap:1rem; } .shop-intro h1 { font-size:clamp(3.5rem,12vw,5.5rem); } .shop-eyebrow { font-size:.75rem; } .shop-page .site-header nav { column-gap:18px; } .shop-products { grid-template-columns:1fr; row-gap:3.25rem; } .shop-catalog { padding-top:1.5rem; } .product-options { grid-template-columns:minmax(0,1fr) minmax(7.5rem,.5fr); } .product-title-row h2 { font-size:1.8rem; } .shop-cart-trigger { padding:.65rem; gap:.6rem; font-size:.8125rem; } .shop-checkout-note { margin-top:2.25rem; } }
@media(max-width:420px) { .shop-intro { align-items:flex-end; } .shop-eyebrow { max-width:12rem; } .product-title-row { gap:.75rem; } .product-title-row h2 { font-size:1.5rem; } .product-options { grid-template-columns:1fr; } .cart-shell { padding:1.25rem; } .cart-item { grid-template-columns:70px minmax(0,1fr); gap:.8rem; } }

/* Published layout settings affect the catalog; checkout keeps its readable dimensions. */
.shop-page {
  --store-margin:var(--store-desktop-margin,48px);
  --store-width:var(--store-desktop-width,1800px);
}
.shop-page > .site-header,
.shop-page > footer {
  padding-inline:max(var(--store-margin),calc((100% - var(--store-width)) / 2 + var(--store-margin)));
}
/* The desktop header stays on the shared page edge during shop transitions. */
@media(min-width:761px) {
  .shop-page > .site-header { padding-inline:var(--gutter); }
}
.shop-main {
  --store-columns:var(--store-desktop-columns,2);
  --store-gap:var(--store-desktop-gap,48px);
  --store-row-gap:var(--store-desktop-rowGap,64px);

  --store-image:var(--store-desktop-imageScale,100%);
  --store-min-card:260px;
  width:100%; max-width:var(--store-width); padding-inline:var(--store-margin); margin-inline:auto;
}
.shop-products { gap:var(--store-row-gap) var(--store-gap); grid-template-columns:repeat(auto-fill,minmax(min(100%,max(var(--store-min-card),calc((100% - (var(--store-columns) - 1) * var(--store-gap)) / var(--store-columns)))),1fr)); }
.shop-product { container-type:inline-size; }
.product-photo>img { width:var(--store-image); height:var(--store-image); }
.product-title-row { flex-wrap:wrap; }
.product-title-row h2 { min-width:0; }
.product-options { grid-template-columns:1fr; }
.product-size { min-width:0; }
.product-color { max-width:100%; overflow-wrap:anywhere; }
.product-price { font-size:1rem; }
@container(min-width:420px) { .product-options { grid-template-columns:minmax(0,1fr) minmax(8rem,.5fr); } }
@container(max-width:260px) {
  .product-title-row { display:block; margin-top:1rem; }
  .product-title-row h2 { font-size:1.125rem; letter-spacing:-.02em; }
  .product-price { margin-top:.5rem; font-size:.875rem; }
  .product-thumbnail { flex-basis:44px; }
  .product-description { font-size:1rem; }
  .product-color-list { gap:.4rem; }
  .product-color { padding:.55rem; min-height:44px; }
  .shop-button { padding:.8rem .4rem; }
}
@media(max-width:760px) {
  .shop-page {
    --store-margin:var(--store-mobile-margin,24px);
    --store-width:var(--store-mobile-width,760px);
  }
  .shop-main {
    --store-columns:var(--store-mobile-columns,1);
    --store-gap:var(--store-mobile-gap,16px);
    --store-row-gap:var(--store-mobile-rowGap,52px);

    --store-image:var(--store-mobile-imageScale,100%);
    --store-min-card:140px;
  }
  .shop-intro { flex-wrap:wrap; }
}

/* The collection stays quiet; full product information lives on its own page. */
.product-card-link .product-title-row { display:block; margin:1rem 0 .5rem; }
.product-card-link .product-title-row h2 { color:var(--ink); font-size:1.125rem; font-weight:500; line-height:1.4; letter-spacing:-.015em; }
.product-card-link .product-price { margin:.4rem 0 0; font-family:var(--sans); font-weight:400; }

.product-page .shop-intro { align-items:center; padding:1.5rem 0; border-bottom:1px solid var(--line); }
.shop-back { color:var(--ink); font-size:.9375rem; text-decoration:underline; text-underline-offset:5px; padding:.75rem 0; }
.shop-products.shop-products-detail { display:block; }
.product-detail { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:clamp(32px,5vw,80px); align-items:start; }
.product-gallery,.product-purchase { min-width:0; }
.product-gallery { position:sticky; top:calc(var(--header-height) + 24px); }
.product-detail .product-photo>img { width:100%; height:100%; }
.product-detail .product-title-row { display:block; margin:0 0 1.5rem; }
.product-title-row h1 { color:var(--ink); font:400 clamp(2rem,3.2vw,3.5rem)/1.1 'Anton',sans-serif; text-transform:uppercase; letter-spacing:-.015em; margin:0 0 1rem; overflow-wrap:anywhere; }
.product-detail .product-price { font:400 1.25rem/1.5 var(--sans); }
.product-detail .product-description { margin-bottom:2rem; }
.product-detail .product-options { grid-template-columns:1fr; gap:1.5rem; margin:0 0 1.5rem; }
.product-detail .product-color { padding:.6rem .85rem; }
.product-detail .product-swatch { width:18px; height:18px; }
.product-detail .product-size select { max-width:100%; }
.product-document { display:block; width:fit-content; margin:0 0 1rem; color:var(--red); text-decoration:underline; text-underline-offset:4px; font-size:.9375rem; line-height:1.5; overflow-wrap:anywhere; }
.product-detail .product-information { margin-top:2rem; }
.product-detail .product-information summary { font-size:1rem; padding:1.25rem 0; }
@media(max-width:760px) {
  .product-detail { grid-template-columns:1fr; gap:2rem; }
  .product-gallery { position:static; }
  .product-page .shop-catalog { padding-top:1.5rem; }
  .product-title-row h1 { font-size:2.4rem; }
}
