/* Dedicated store composition; the homepage teaser keeps its approved layout. */
.shop-page { --store-line: #27272430; }
.store-hero { max-width: 1600px; margin: auto; padding: 42px 5% 66px; display: grid; grid-template-columns: 1fr 1.18fr; align-items: center; gap: 5%; }
.store-hero-copy { padding-bottom: 25px; }
.store-eyebrow { color: #91432c; text-transform: uppercase; font-size: 10px; letter-spacing: .14em; margin: 0 0 28px; }
.store-hero h1 { font-size: clamp(45px,4.7vw,74px); font-weight: 400; letter-spacing: -.06em; line-height: 1.035; margin: 0; }
.store-hero-description { font-size: 15px; line-height: 1.8; color: var(--muted); max-width: 330px; margin: 26px 0 30px; }
.store-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 25px; }
.store-text-link { display: inline-block; width: fit-content; padding-block: 9px; border-bottom: 1px solid; font-size: 12px; }
.store-hero-photo { margin: 0; min-width: 0; }
.store-hero-image { overflow: hidden; }
.store-hero-photo img { display: block; width: 100%; height: clamp(380px,40vw,590px); object-fit: cover; object-position: 52% center; }
.store-hero-photo figcaption { display: flex; justify-content: space-between; gap: 18px; padding-top: 13px; font-size: 10px; line-height: 1.6; }
.store-hero-photo figcaption span { color: var(--muted); white-space: nowrap; }
.store-hero-photo figcaption a { text-decoration: underline; text-underline-offset: 4px; }
.store-collection { padding: 55px 5% 70px; border-top: 1px solid var(--store-line); max-width: 1600px; margin: auto; scroll-margin-top: 20px; }
.store-collection-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 30px; margin-bottom: 32px; }
.store-collection h2 { font-size: clamp(30px,3.2vw,46px); line-height: 1.08; letter-spacing: -.045em; font-weight: 400; margin: 0; }
.store-collection-heading > p { font-size: 11px; color: var(--muted); white-space: nowrap; margin: 0; }
.store-categories { display: flex; gap: 30px; border-bottom: 1px solid var(--store-line); margin-bottom: 24px; }
.store-categories.has-marker { position: relative; }
.store-categories.has-marker button[aria-pressed] { border-bottom-color: transparent; }
.store-category-marker { position: absolute; bottom: -1px; left: 0; height: 2px; width: 1px; margin: 0; background: #b34225; transform-origin: left center; pointer-events: none; transition: transform 240ms cubic-bezier(.22,1,.36,1); }
.store-categories button { background: none; border: 0; border-bottom: 2px solid transparent; min-height: 48px; padding: 0 0 16px; font-size: 15px; color: var(--muted); }
.store-categories button[aria-pressed="true"] { border-color: #b34225; color: var(--ink); }
.store-categories button span { font-size: 10px; vertical-align: top; margin-left: 4px; }
.store-filters { display: grid; grid-template-columns: 1.7fr 1fr 1fr; gap: 22px; margin-bottom: 30px; }
.store-filters label { display: flex; flex-direction: column; gap: 10px; min-width: 0; font-size: 10px; color: var(--muted); }
.store-filters input, .store-filters select { width: 100%; min-width: 0; height: 46px; border: 1px solid #27272455; border-radius: 0; background: transparent; padding: 10px 13px; font: inherit; font-size: 12px; color: var(--ink); }
.store-filters input::placeholder { color: #6b6b62; opacity: 1; }
.store-filters :is(input,select):focus-visible { outline: 2px solid #a53b20; outline-offset: 3px; }
.store-filter-state { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-bottom: 20px; font-size: 11px; }
.store-filter-state p { color: var(--muted); margin: 0; }
.store-filter-state button { background: none; border: 0; border-bottom: 1px solid; font-size: 11px; padding: 8px 0; white-space: nowrap; }
.store-product-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; align-items: stretch; }
.store-product-grid .shop-card { margin: 0; position: relative; display: flex; flex-direction: column; }
.store-product-grid .shop-card-link { display: flex; flex-direction: column; flex: 1; }
.store-product-grid .shop-card-photo { aspect-ratio: 3/4; flex-shrink: 0; }
.store-product-grid .shop-card-meta { display: flex; flex-direction: column; gap: 7px; margin-top: 20px; font-size: 10px; }
.store-product-grid .shop-card-meta span:last-child { order: -1; color: #91432c; }
.store-product-grid .shop-card h3 { font-size: clamp(20px,1.7vw,26px); margin-block: 14px 10px; max-width: 270px; min-height: 2.3em; }
.store-product-grid .shop-card-description { font-size: 11px; min-height: 36px; margin-bottom: 17px; }
.store-product-grid .shop-card-price { font-size: 14px; margin-top: auto; }
.store-quick-button { width: 100%; border: 1px solid var(--store-line); background: none; min-height: 44px; margin-top: 20px; padding: 10px; font-size: 11px; transition: background-color 160ms, color 160ms, transform 160ms; }
.store-quick-button:hover { background: var(--ink); color: var(--paper); }
.store-quick-button:active { transform: scale(.985); }
.store-quick-button:disabled { display: none; }
.store-empty { text-align: center; padding: 70px 24px; border-block: 1px solid var(--store-line); }
.store-empty h3 { font-size: 32px; font-weight: 400; letter-spacing: -.035em; margin: 0 0 20px; }
.store-empty p { max-width: 390px; margin: 0 auto 26px; font-size: 14px; color: var(--muted); line-height: 1.7; }
.store-sample-note { margin: 36px 0 0; font-size: 10px; line-height: 1.7; color: var(--muted); }
.store-craft { max-width: 1600px; padding: 30px 5% 90px; margin: auto; display: grid; grid-template-columns: 1.12fr 1fr; gap: 10%; align-items: center; }
.store-craft figure { margin: 0; }
.store-craft img { display: block; width: 100%; height: auto; aspect-ratio: 5/4; object-fit: cover; }
.store-craft figcaption { font-size: 10px; color: var(--muted); line-height: 1.7; margin-top: 13px; }
.store-craft figcaption a { text-decoration: underline; text-underline-offset: 3px; }
.store-craft h2 { font-weight: 400; font-size: clamp(38px,4.5vw,66px); line-height: 1.02; letter-spacing: -.05em; margin: 0 0 28px; max-width: 420px; }
.store-craft-copy > p { font-size: 14px; line-height: 1.85; color: var(--muted); max-width: 360px; }
.store-craft-copy > a { margin-top: 12px; }
.store-giving { background: #e6e1d5; padding: 65px max(5%,calc((100vw - 1440px)/2)); display: grid; grid-template-columns: 1.1fr 1fr; gap: 10%; }
.store-giving h2 { font-size: clamp(36px,4vw,58px); font-weight: 400; letter-spacing: -.05em; line-height: 1.08; margin: 0; }
.store-giving-copy > p { margin: 0 0 24px; font-size: 16px; line-height: 1.75; max-width: 460px; }
.store-giving-copy details { border-bottom: 1px solid #27272440; font-size: 12px; }
.store-giving-copy summary { cursor: pointer; padding-block: 19px; line-height: 1.6; }
.store-giving-copy details p { margin: 0 0 18px; font-size: 12px; line-height: 1.8; color: #59594f; }
.shop-page :is(.bag-dialog,.store-quick-dialog) { background: var(--paper); color: var(--ink); border: 0; }
.shop-page :is(.bag-dialog,.store-quick-dialog)::backdrop { background: #27272466; }
html:has(.shop-page dialog[open]) { overflow: hidden; }
.store-quick-dialog { width: min(960px,calc(100% - 40px)); max-width: 960px; max-height: calc(100dvh - 40px); padding: 0; }
.quick-layout { display: grid; grid-template-columns: 1fr 1fr; }
.quick-close { position: absolute; right: 12px; top: 12px; z-index: 1; background: var(--paper); }
.quick-photo { background: #e8dfcf; }
.quick-photo img { display: block; width: 100%; height: 100%; min-height: 550px; object-fit: cover; }
.quick-copy { padding: 52px 38px 35px; }
.quick-region { font-size: 11px; color: #91432c; margin: 0 0 20px; }
.quick-copy h2 { font-size: 43px; font-weight: 400; line-height: 1.02; letter-spacing: -.045em; margin: 0 0 23px; }
.quick-description { font-size: 13px; color: var(--muted); line-height: 1.75; margin-bottom: 22px; }
.quick-price { display: flex; align-items: baseline; gap: 12px; font-size: 22px; margin-bottom: 25px; }
.quick-price small { font-size: 10px; color: var(--muted); }
#quick-options { display: flex; flex-wrap: wrap; gap: 8px; }
#quick-add { width: 100%; margin-bottom: 8px; }
.quick-note { font-size: 10px; line-height: 1.7; color: var(--muted); margin-top: 22px; }
.shop-page [data-store-reveal="pending"] { opacity: 0; transform: translateY(18px); }
.store-text-link { position: relative; }
.store-text-link::after { content: ''; position: absolute; left: 0; bottom: -1px; width: 100%; height: 1px; background: #b34225; transform: scaleX(0); transform-origin: left; transition: transform 220ms cubic-bezier(.22,1,.36,1); }
.store-product-grid .shop-card-link:hover img { transform: none; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .store-hero-image img { transition: transform 700ms cubic-bezier(.22,1,.36,1); }
  .store-hero-image:hover img { transform: scale(1.035); }
  .store-product-grid .shop-card-photo img { transition: transform 450ms cubic-bezier(.22,1,.36,1); }
  .store-product-grid .shop-card-link:hover img { transform: scale(1.06); }
  .store-product-grid .shop-card h3 { transition: color 180ms ease; }
  .store-product-grid .shop-card-link:hover h3 { color: #91432c; }
  .store-text-link:hover::after { transform: scaleX(1); }
}
@media (max-width: 1100px) {
  .store-product-grid { gap: 18px; }
  .store-hero h1 { font-size: 49px; }
  .store-hero-photo img { height: 430px; }
  .store-craft { gap: 7%; }
  .store-product-grid .shop-card-price small { display: block; margin: 6px 0 0; }
}
@media (max-width: 900px) {
  .store-hero { grid-template-columns: 1fr; padding: 42px 6% 45px; gap: 28px; }
  .store-hero-copy { padding: 0; }
  .store-eyebrow { margin-bottom: 20px; }
  .store-hero h1 { font-size: clamp(40px,7.2vw,64px); }
  .store-hero-description { max-width: 430px; margin-block: 22px; }
  .store-hero-photo img { height: auto; aspect-ratio: 4/3; }
  .store-collection { padding: 44px 6%; }
  .store-product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 36px 20px; }
  .store-collection-heading { align-items: start; flex-direction: column; gap: 15px; }
  .store-filters { grid-template-columns: 1fr 1fr; gap: 16px; }
  .store-search { grid-column: 1/-1; }
  .store-product-grid .shop-card-description { display: block; }
  .store-craft { grid-template-columns: 1fr; gap: 32px; padding: 25px 6% 55px; }
  .store-craft-copy { max-width: 580px; }
  .store-craft-copy > p { max-width: 520px; }
  .store-giving { grid-template-columns: 1fr; gap: 32px; padding: 45px 6%; }
  .store-giving-copy > p { max-width: 600px; }
}
@media (max-width: 600px) {
  .store-hero h1 { font-size: clamp(37px,9.8vw,57px); }
  .store-hero-photo figcaption { flex-direction: column; gap: 5px; }
  .store-hero-description { font-size: 14px; max-width: 320px; }
  .store-hero-actions { gap: 22px; }
  .store-categories { gap: 26px; }
  .store-categories button { font-size: 13px; }
  .store-filters input, .store-filters select { font-size: 16px; }
  .store-product-grid { gap: 30px 14px; }
  .store-product-grid .shop-card h3 { font-size: 22px; }
  .store-product-grid .shop-card-description { display: none; }
  .store-product-grid .shop-card-meta { gap: 6px; font-size: 10px; }
  .store-quick-dialog { width: calc(100% - 24px); max-height: calc(100dvh - 24px); }
  .quick-layout { grid-template-columns: 1fr; }
  .quick-photo img { height: 280px; min-height: 0; object-fit: contain; }
  .quick-copy { padding: 27px 24px; }
  .quick-copy h2 { font-size: 35px; }
  .quick-region { margin-bottom: 14px; }
  .quick-close { position: sticky; display: block; top: 10px; margin: 10px 10px -54px auto; }
}
@media (max-width: 360px) {
  .store-product-grid { grid-template-columns: 1fr; }
  .store-product-grid .shop-card-photo { aspect-ratio: 4/5; }
  .store-hero h1 { font-size: 37px; }
  .store-categories { gap: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .shop-page [data-store-reveal="pending"] { opacity: 1; transform: none; }
  .store-category-marker, .store-text-link::after, .store-quick-button, .shop-page .store-button { transition: none; }
  .store-quick-button:active, .shop-page .store-button:active { transform: none; }
}
