[hidden] { display: none !important; }
.desktop-nav [aria-current="page"], .desktop-nav [data-current-section],
.header-shop[aria-current="page"], .header-shop[data-current-section],
.mobile-nav [aria-current="page"], .mobile-nav [data-current-section] {
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: .33em;
}
.footer-grid h2 a { color: inherit; }

.page-mast { padding: 1.45rem 0 clamp(2.1rem, 4vw, 3.8rem); border-bottom: 1px solid var(--line); }
.crumbs { color: var(--muted); font-size: .89rem; margin-bottom: clamp(1.6rem, 4vw, 3.5rem); }
.crumbs ol { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .6rem; list-style: none; margin: 0; padding: 0; }
.crumbs li { display: inline-flex; align-items: baseline; gap: .6rem; }
.crumbs li + li::before { content: "/"; color: var(--muted); }
.crumbs a { color: var(--blue); text-underline-offset: .22em; }
.crumbs [aria-current] { color: var(--body); }
.mast-grid { max-width: 54rem; }
.mast-grid.has-image { max-width: none; display: grid; grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr); gap: clamp(1.5rem, 5.4vw, 5rem); align-items: center; }
.page-mast h1, .detail-copy h1 { font-size: clamp(2.95rem, 6vw, 5.25rem); line-height: 1.02; overflow-wrap: anywhere; }
.page-lead { max-width: 42rem; margin-top: 1.2rem; color: var(--body); font-size: clamp(1.05rem, 1.5vw, 1.27rem); }
.page-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.15rem; margin-top: 1.45rem; }
.mast-figure { aspect-ratio: 1.55; display: grid; place-items: center; overflow: hidden; background: var(--blue-wash); }
.mast-figure img { width: 100%; height: 100%; object-fit: cover; }
.mast-figure img[src$="morgan-engraving.webp"], .mast-figure img[src*="/artists/"] { object-fit: contain; padding: 1rem; }
.catalog-mast { padding-bottom: clamp(1.65rem, 3vw, 2.5rem); }
.catalog-mast .crumbs { margin-bottom: clamp(1.25rem, 2.7vw, 2.4rem); }
.catalog-mast .page-actions { margin-top: .8rem; }
.catalog-mast + .browse-page { padding-top: clamp(1.15rem, 2.25vw, 1.85rem); }
.shop-mast .mast-grid.has-image { grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); }
.shop-mast .mast-figure { aspect-ratio: 1.9; grid-template-rows: minmax(0, 1fr); background: #eadab9; }
.shop-mast .mast-figure img { object-fit: contain; width: 100%; height: 76%; transform: rotate(-7deg); filter: drop-shadow(.4rem .6rem .55rem #291e1933); }
.page-section { padding-block: clamp(2.7rem, 5.7vw, 5.25rem); }
.page-section > .container > h2 { font-size: clamp(2.2rem, 4.5vw, 3.7rem); margin-bottom: 1.4rem; }
.page-tint { background: #eee3d4; }
.visit-page { padding-top: 1.05rem; }
.visit-page .visit-grid { margin-top: 1.3rem; }

.editorial { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(1.7rem, 6vw, 6rem); align-items: start; }
.editorial-copy { display: grid; gap: 1.65rem; }
.editorial-copy h2 { font-size: clamp(1.7rem, 3.15vw, 2.7rem); }
.editorial-copy p { margin-top: .55rem; color: var(--body); font-size: 1.07rem; }
.editorial-figure { background: var(--light); border: 1px solid var(--line); padding: .8rem; }
.editorial-figure img { width: 100%; max-height: 32rem; object-fit: contain; }
.editorial-figure figcaption { margin: .7rem 0 .1rem; color: var(--muted); font-size: .88rem; }

.browse-page { padding-top: clamp(1.35rem, 3vw, 2.6rem); }
.browse-tabs ul { display: flex; flex-wrap: wrap; gap: .48rem; }
.browse-tabs a {
  display: inline-flex; align-items: center; min-height: 2.75rem; padding: .35rem .83rem;
  border: 1px solid var(--line); border-radius: .18rem; color: var(--blue); font-weight: 700;
  text-decoration: none; font-size: .92rem;
}
.browse-tabs a:hover, .browse-tabs a[aria-current="page"] { color: var(--light); background: var(--blue); border-color: var(--blue); }
.browse-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.75rem, 2.15vw, 1.65rem); align-items: stretch; }
.product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.browse-grid > article { min-width: 0; }
.browse-card {
  height: 100%; display: flex; flex-direction: column; background: var(--light); border: 1px solid var(--line);
  text-decoration: none; min-width: 0; transition: border-color .2s;
}
.browse-card:hover, .browse-card:focus-visible { border-color: var(--blue); }
.browse-card:hover .round-arrow, .browse-card:focus-visible .round-arrow { color: var(--light); border-color: var(--blue); background: var(--blue); }
.browse-stage { aspect-ratio: 1.25; position: relative; display: grid; place-items: center; padding: 1rem; background: #e8d8ae; overflow: hidden; }
.browse-card > .browse-stage img { width: 100%; height: 100%; min-height: 0; object-fit: contain; filter: drop-shadow(.15rem .32rem .35rem #291e192e); }
.browse-grid > :nth-child(3n + 2) .browse-stage { background: #e0c8c2; }
.browse-grid > :nth-child(3n) .browse-stage { background: var(--blue-wash); }
.artist-grid .browse-stage { aspect-ratio: 1.42; }
.product-card > .browse-stage { background: #eee5d8 !important; aspect-ratio: 1.1; }
.browse-body { flex: 1; display: flex; align-items: center; justify-content: space-between; gap: .55rem; padding: 1rem 1.1rem; }
.browse-body h3 { font-size: clamp(1.34rem, 2vw, 1.94rem); overflow-wrap: anywhere; }
.browse-body .micro { color: var(--blue); font-size: .71rem; margin-bottom: .32rem; }
.browse-body p:not(.micro) { color: var(--muted); font-size: .94rem; margin-top: .36rem; }
.browse-body .product-price { color: var(--ink) !important; font-weight: 700; }
.product-card .browse-body h3 { font-size: clamp(1.23rem, 1.65vw, 1.65rem); }
.product-sold { position: absolute; top: .6rem; left: .6rem; max-width: calc(100% - 1.2rem); padding: .25rem .55rem; color: var(--wine-deep); background: var(--light); border: 1px solid var(--line); font-size: .8rem; font-weight: 700; }
.image-missing { display: grid; justify-items: center; gap: .55rem; color: var(--muted); font-size: .83rem; text-align: center; }
.image-missing .wordmark-mark { color: var(--blue); }

.listing-controls { display: grid; grid-template-columns: minmax(0, 1fr) minmax(10rem, 15rem); gap: .75rem 1rem; margin-top: 1.4rem; }
.listing-controls label, .product-form label, .basket-quantity label { display: grid; gap: .25rem; color: var(--body); font-size: .89rem; font-weight: 700; min-width: 0; }
.listing-controls input, .product-form input, .basket-quantity input, select {
  --field-inset: .65rem;
  min-width: 0; width: 100%; min-height: 2.85rem; padding: .52rem var(--field-inset); border: 1px solid #ae9a89;
  border-radius: .15rem; background-color: var(--light); color: var(--ink); font: 500 1rem var(--sans);
}
select {
  --chevron-width: .75rem;
  appearance: none;
  padding-inline-end: calc(2 * var(--field-inset) + var(--chevron-width));
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='m.75 1.25 5.25 5.25 5.25-5.25' fill='none' stroke='%23315670' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: var(--chevron-width) auto;
  background-position: right var(--field-inset) center;
}
@media (forced-colors: active) {
  select { appearance: auto; background-image: none; padding-inline-end: var(--field-inset); }
}
.listing-count { margin-block: .85rem; color: var(--muted); font-size: .91rem; }
.more-items { display: flex; margin: 1.7rem auto 0; font-family: inherit; cursor: pointer; }
.empty-listing { border: 1px solid var(--line); padding: clamp(1rem, 3vw, 2rem); background: var(--light); }
.empty-listing p + .button { margin-top: .75rem; }
.empty-listing h2 { font-size: clamp(1.65rem, 3vw, 2.45rem); margin-bottom: .6rem; }

.detail-shell { padding-block: 1.45rem clamp(3.1rem, 6vw, 6rem); }
.detail-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(1.5rem, 5vw, 5rem); align-items: start; }
.detail-mat {
  min-height: clamp(15rem, 27vw, 30rem); padding: clamp(1rem, 3vw, 2.6rem); display: grid; place-items: center;
  background: var(--blue-wash); border: 1px solid var(--line);
}
.detail-mat img { max-width: 100%; max-height: min(65vh, 38rem); object-fit: contain; filter: drop-shadow(.18rem .4rem .45rem #291e1933); }
.product-gallery .detail-mat { background: #eee3d4; }
.detail-copy { padding-top: .35rem; }
.detail-copy h1 { font-size: clamp(2.3rem, 4.8vw, 4.2rem); text-wrap: balance; }
.detail-artist, .detail-price { margin-top: .7rem; color: var(--blue); font-weight: 700; font-size: 1.12rem; }
.detail-price { color: var(--wine); font-size: 1.45rem; }
.object-facts { color: var(--body); margin-top: .95rem; padding-block: .55rem; border-block: 1px solid var(--line); }
.object-facts li + li { margin-top: .25rem; }
.product-thumbs { display: flex; gap: .55rem; margin-top: .65rem; }
.product-thumbs button { width: 4rem; height: 4rem; background: var(--light); border: 1px solid var(--line); padding: .3rem; cursor: pointer; }
.product-thumbs button[aria-pressed="true"] { border-color: var(--blue); box-shadow: inset 0 0 0 1px var(--blue); }
.product-thumbs img { width: 100%; height: 100%; object-fit: contain; }
.product-form { display: grid; gap: .75rem; margin-top: 1.2rem; max-width: 26rem; }
.product-form-row { display: grid; grid-template-columns: 5.4rem minmax(0, 1fr); align-items: end; gap: .65rem; }
.product-form-row .button { min-height: 2.85rem; font: 700 1rem var(--sans); cursor: pointer; }
.product-feedback { padding: .6rem .8rem; margin-top: .9rem; border: 1px solid #9eafbb; background: var(--blue-wash); color: var(--ink); }
.stock-status { width: fit-content; margin-top: 1rem; border: 1px solid var(--line); background: var(--light); color: var(--wine-deep); padding: .45rem .7rem; font-weight: 700; }

.shop-nav { border-bottom: 1px solid var(--line); background: #eee3d4; }
.shop-nav .container { display: flex; flex-wrap: wrap; gap: .1rem clamp(.6rem, 2.2vw, 1.9rem); }
.shop-nav a { display: inline-flex; align-items: center; gap: .33rem; min-height: 2.8rem; font-size: .91rem; font-weight: 700; text-decoration: none; color: var(--wine-deep); }
.shop-nav a:hover, .shop-nav [aria-current="page"] { text-decoration: underline; text-underline-offset: .27em; }
.cart-count { display: inline-grid; place-items: center; min-width: 1.4rem; min-height: 1.4rem; padding: .04rem .2rem; border-radius: 2rem; font-size: .75rem; color: var(--light); background: var(--blue); }
.basket-page { padding-top: 1.8rem; }
.basket-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .75fr); gap: clamp(1rem, 3vw, 2.5rem); align-items: start; }
.basket-items { display: grid; gap: .55rem; }
.basket-line { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr) 6rem; align-items: center; gap: .7rem; padding: .8rem; border: 1px solid var(--line); background: var(--light); }
.basket-line img { width: 100%; max-height: 4.5rem; object-fit: contain; }
.basket-line h2 { font-size: clamp(1.2rem, 2vw, 1.55rem); overflow-wrap: anywhere; }
.basket-line h2 a { text-decoration-color: #a1897e; text-underline-offset: .17em; }
.basket-line p { color: var(--muted); margin-top: .2rem; font-size: .9rem; }
.basket-quantity { display: grid; gap: .2rem; }
.basket-quantity input { min-height: 2.5rem; }
.basket-quantity button { padding: .2rem 0; min-height: 1.75rem; border: 0; background: none; color: var(--blue); font: 700 .84rem var(--sans); text-align: left; text-decoration: underline; cursor: pointer; }
.basket-summary h2 { font-size: clamp(1.75rem, 3vw, 2.6rem); }
.basket-summary p { color: var(--body); margin: .85rem 0; }
.basket-summary .button { width: 100%; margin-top: .55rem; text-align: center; }
.basket-total { display: flex; justify-content: space-between; gap: .6rem; margin-top: .65rem; padding-block: .7rem; border-block: 1px solid var(--line); }
.basket-line .text-link { font-size: .89rem; }

.plain-card { border: 1px solid var(--line); background: var(--light); padding: clamp(.9rem, 2vw, 1.4rem); overflow-wrap: anywhere; }
.plain-card h3 { margin-bottom: .55rem; }
.faq { max-width: 48rem; border-top: 1px solid var(--line); }
.faq details { border-bottom: 1px solid var(--line); padding: .8rem .25rem; }
.faq summary { cursor: pointer; color: var(--wine-dark); font-weight: 700; }
.faq details p { margin-top: .45rem; color: var(--body); }
.policy-facts { max-width: 35rem; margin-bottom: .75rem; border-top: 1px solid var(--line); }
.policy-facts > div { display: grid; grid-template-columns: 1fr 1.6fr; gap: .65rem; padding: .6rem 0; border-bottom: 1px solid var(--line); }
.policy-facts dt { font-weight: 700; }

@media (max-width: 990px) {
  .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .browse-body { padding: .7rem .8rem; }
}
@media (max-width: 720px), (max-width: 990px) and (max-height: 520px) and (pointer: coarse) {
  .visit-mast .page-actions { display: none; }
}
@media (max-width: 720px) {
  .page-mast { padding-top: 1rem; }
  .crumbs { margin-bottom: 1.35rem; }
  .mast-grid.has-image, .shop-mast .mast-grid.has-image, .detail-grid, .editorial, .basket-grid { grid-template-columns: minmax(0, 1fr); }
  .mast-figure { max-height: 22rem; }
  .browse-grid, .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .browse-stage { padding: .65rem; }
  .browse-card .round-arrow { display: none; }
  .browse-body h3 { font-size: clamp(1.18rem, 4vw, 1.58rem); }
  .browse-body .micro { font-size: .65rem; letter-spacing: .09em; }
  .browse-body p:not(.micro) { font-size: .86rem; }
  .detail-grid .detail-copy { grid-row: 1; }
  .detail-grid .detail-copy:has(.product-form) { grid-row: auto; }
  .listing-controls { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 550px) {
  .shop-mast h1 { font-size: clamp(2.35rem, 9vw, 3.3rem); }
  .shop-mast .mast-figure { display: none; }
}
@media (max-width: 420px) {
  .basket-line { grid-template-columns: 3rem minmax(0, 1fr) 4.35rem; padding: .6rem; gap: .45rem; }
  .shop-nav a { font-size: .84rem; }
}

.basket-line > .text-link { grid-column: 2 / -1; }
