:root {
  --shop-ink: var(--ink);
  --shop-line: var(--line);
  --shop-orange: var(--orange);
  --shop-paper: var(--paper);
}
html { scroll-padding-top: 112px; }
.site-navigation { width: min(980px, calc(100vw - 32px)); }
.site-navigation.is-compact { width: min(940px, calc(100vw - 24px)); }
.site-navigation nav { gap: clamp(14px, 1.6vw, 24px); }
.site-navigation nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; }
.site-navigation nav a[aria-current]::after { scale: 1 1; bottom: 5px; background: var(--orange-deep); }
.site-cart { display: flex; align-items: center; justify-content: center; gap: 9px; }
.site-cart [data-cart-count] { padding-left: 9px; border-left: 1px solid currentColor; font-variant-numeric: tabular-nums; }
.site-menu-toggle { display: none; }
.shop-body {
  background: radial-gradient(circle at 88% 5%, rgba(90,122,74,.18), transparent 30%), linear-gradient(150deg, var(--paper), var(--cream) 55%, #e6dfd0);
  color: var(--ink);
}
.shop-body button, .shop-body input, .shop-body select, .shop-body textarea { font: inherit; }
.shop-body .grain { pointer-events: none; }
.shop-container { position: relative; width: 100%; max-width: 1720px; margin: auto; padding-top: 132px; }
.shop-intro { grid-template-columns: minmax(0,1.45fr) minmax(260px,.55fr); gap: 7vw; padding: 0 0 50px; }
.shop-intro h1 { margin: 0; font: 620 clamp(44px,6.2vw,98px)/.98 var(--font-sans); letter-spacing: -.052em; }
.shop-intro .visualizer-intro { margin-bottom: 5px; }
.shop-intro .visualizer-intro p { font-size: 16px; }
.shop-intro-link { display: inline-flex; min-height: 44px; align-items: center; gap: 24px; font-size: 14px; text-decoration: underline; text-underline-offset: 6px; }
button.shop-intro-link { border:0; padding:6px 0; background:transparent; color:inherit; font:inherit; font-size:14px; line-height:1.5; text-align:left; cursor:pointer; }
.shop-kicker { margin: 0 0 18px; font-size: 12px; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; }
.shop-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; padding: 22px 0; border-top: 1px solid var(--line); }
.shop-filters { display: flex; flex-wrap: wrap; gap: 7px; }
.shop-chip { min-height: 44px; padding: 10px 16px; border: 1px solid var(--line); border-radius: 6px; background: transparent; color: var(--ink); font-size: 14px!important; cursor: pointer; transition: background 200ms, color 200ms; }
.shop-chip[aria-pressed=true] { border-color: var(--forest); background: var(--forest); color: var(--on-dark); }
.shop-tools { display: flex; align-items: center; gap: 16px; }
.shop-tools label { font-size: 14px; }
.shop-tools input, .shop-tools select { min-height: 44px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 6px; background: rgba(251,247,238,.6); color: var(--ink); font-size: 14px; }
.shop-tools input { width: 190px; }
.shop-results { margin: 0 0 18px; color: rgba(26,46,32,.7); font-size: 13px; }
.shop-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; margin-bottom: 72px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.shop-card { min-width: 0; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(251,247,238,.65); }
.shop-card-photo {
  --row-clip: 0%; --row-opacity: 1; --row-y: 0px;
  position: relative; display: flex; flex-direction: column; justify-content: space-between; aspect-ratio: 1.13; min-height: 310px; padding: 26px; border: 0; border-radius: 0; color: var(--on-dark); background: var(--forest); isolation: isolate;
}
.shop-card-photo::after { opacity: 1; background: linear-gradient(180deg,rgba(8,18,12,.23),rgba(8,18,12,.04) 33%,rgba(8,18,12,.86)); }
.shop-card-photo .model-card__image { opacity: 1; transform: scale(1.015); }
.shop-card-photo.contain .model-card__image { object-fit: contain; padding: 22px; }
.shop-card-photo .shop-card-index { font-size: 12px; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; }
.shop-card-photo i { top: 24px; right: 24px; }
.shop-card-caption { position: relative; z-index: 2; padding-top: 70px; }
.shop-card-photo h2 { margin: 0 0 18px; font: 400 clamp(25px,2.5vw,40px)/1.07 var(--font-serif); letter-spacing: -.045em; }
.shop-card-photo .shop-price { font-size: 16px; }
.shop-card-controls { display: flex; flex: 1; flex-direction: column; gap: 20px; padding: 23px 26px; }
.shop-card-controls p { margin: 0; color: rgba(26,46,32,.76); font-size: 15px; line-height: 1.55; }
.shop-card-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; }
.shop-price { font-weight: 650; font-variant-numeric: tabular-nums; }
.shop-add, .shop-primary, .shop-visual-link { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 46px; padding: 12px 17px; border: 1px solid var(--line); border-radius: 6px; background: transparent; color: var(--ink); font: 600 14px var(--font-sans); cursor: pointer; transition: background 200ms, transform 250ms var(--quart-out), color 200ms; }
.shop-add:hover { background: var(--forest); color: var(--on-dark); }
.shop-primary { min-height: 50px; padding: 13px 22px; border-color: transparent; background: var(--orange); color: var(--on-accent); font-weight: 700; }
.shop-primary:hover { background: var(--orange-hover); transform: translateY(-2px); }
.shop-primary:disabled { opacity: .6; cursor: not-allowed; transform: none; }
.shop-visual-link { padding-inline: 0; border: 0; font-weight: 600; }
.shop-visual-link span { color: var(--orange-deep); }
.shop-muted { color: rgba(26,46,32,.72); font-size: 14px; line-height: 1.6; }
.shop-empty { padding: 55px 0; text-align: center; }
.shop-toast { position: fixed; z-index: 800; bottom: 24px; left: 50%; transform: translateX(-50%); width: max-content; max-width: 90%; padding: 16px 24px; border: 1px solid var(--dark-line); border-radius: 8px; background: var(--forest); color: var(--on-dark); box-shadow: 0 16px 45px rgba(16,37,26,.2); font-size: 14px; text-align: center; }
.shop-toast:empty { display: none; }
.shop-dialog { width: min(600px,calc(100% - 24px)); max-height: 92dvh; margin: auto; padding: 0; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); color: var(--ink); overscroll-behavior: contain; }
.shop-dialog::backdrop { background: rgba(7,10,9,.72); backdrop-filter: blur(9px); }
.shop-dialog-head { position: sticky; z-index: 2; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 22px 28px; border-bottom: 1px solid var(--line); background: var(--paper); }
.shop-dialog-head h2 { margin: 0; font: 400 31px/1.1 var(--font-serif); letter-spacing: -.04em; }
.shop-close { flex: 0 0 44px; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 6px; background: transparent; color: inherit; font-size: 24px; cursor: pointer; }
.shop-dialog-body { padding: 24px 28px; }
.shop-cart-row { display: grid; grid-template-columns: 70px 1fr; gap: 15px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.shop-cart-row img { width: 70px; height: 80px; object-fit: cover; border-radius: 6px; }
.shop-cart-row h3 { margin: 0 0 7px; font-size: 16px; font-weight: 600; }
.shop-cart-row p { margin: 0 0 8px; font-size: 14px; }
.shop-quantity { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.shop-quantity button { min-width: 44px; min-height: 44px; border: 1px solid var(--line); border-radius: 6px; background: transparent; color: inherit; cursor: pointer; }
.shop-quantity .shop-remove { width: auto; margin-left: auto; border: 0; font-size: 12px; text-decoration: underline; }
.shop-total { display: flex; justify-content: space-between; gap: 18px; margin: 24px 0 12px; font-size: 20px; }
.shop-checkout { display: grid; gap: 15px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
.shop-checkout label { display: grid; gap: 8px; font-size: 14px; }
.shop-checkout input:not([type=checkbox]), .shop-checkout textarea, .shop-checkout select { width: 100%; min-height: 48px; padding: 13px 15px; border: 1px solid var(--line); border-radius: 6px; background: transparent; color: inherit; font: inherit; }
.shop-checkout textarea { min-height: 78px; resize: vertical; }
.shop-consent { display: block!important; font-size: 13px!important; line-height: 1.55; }
.shop-consent input { margin-right: 8px; accent-color: var(--forest); }
.shop-consent a { text-decoration: underline; }
.shop-status { min-height: 22px; margin: 0; font-size: 14px; line-height: 1.5; }
.shop-status.is-error { color: var(--orange-deep); }
.shop-success { padding: 28px 0; }
.shop-success h3 { font: 400 34px/1.1 var(--font-serif); letter-spacing: -.04em; }
.shop-breadcrumbs { display: flex; flex-wrap: wrap; gap: 9px; padding: 0 0 28px; font-size: 14px; line-height: 1.6; }
.shop-breadcrumbs a { text-decoration: underline; text-underline-offset: 4px; }
.shop-product { display: grid; grid-template-columns: 1.15fr 1fr; align-items: start; gap: 6vw; padding-bottom: 80px; }
.shop-product-gallery { position: sticky; top: 110px; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: rgba(251,247,238,.65); box-shadow: 0 24px 70px rgba(16,37,26,.08); }
.shop-product-gallery img { display: block; width: 100%; max-height: 740px; aspect-ratio: 1; object-fit: contain; }
.shop-product h1 { margin: 14px 0 26px; font: 620 clamp(34px,4.2vw,64px)/1.02 var(--font-sans); letter-spacing: -.052em; }
.shop-product-description { font-size: 16px; line-height: 1.7; }
.shop-product .shop-price { display: block; margin: 28px 0 8px; font-size: 28px; }
.shop-product-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 24px 0 28px; }
.shop-product dl { font-size: 14px; }
.shop-product dl div { display: grid; grid-template-columns: 1fr 1.4fr; gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--line); line-height: 1.55; }
.shop-product dt { color: rgba(26,46,32,.7); }
.shop-product dd { margin: 0; }
.shop-product details { padding: 16px 0; border-bottom: 1px solid var(--line); font-size: 14px; line-height: 1.65; }
.shop-product summary { min-height: 30px; cursor: pointer; font-weight: 600; }
.shop-product-source { display: inline-block; min-height: 44px; margin-top: 20px; font-size: 14px; text-decoration: underline; }
.shop-related-title { margin: 0 0 30px; font: 620 clamp(30px,4vw,52px)/1.05 var(--font-sans); letter-spacing: -.052em; }
.shop-visual-dialog { width: min(1100px,calc(100% - 24px)); }
.shop-visual-layout { display: grid; grid-template-columns: 1.6fr 1fr; gap: 28px; }
.shop-scene { position: relative; display: grid; min-height: 260px; place-items: center; align-self: start; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #e6dfd0; }
.shop-scene:has(img:not([hidden])) { min-height: 0; }
.shop-scene > img { width: 100%; height: auto; }
.shop-target { position: absolute; display: grid; place-items: center; width: 90px; height: 90px; border: 2px solid white; border-radius: 50%; background: rgba(243,138,56,.35); box-shadow: 0 0 0 1px var(--forest); transform: translate(-50%,-50%); pointer-events: none; color: #fff; font-size: 24px; }
.shop-photo-empty { padding: 65px 30px; text-align: center; font: 400 28px/1.35 var(--font-serif); }
.shop-upload { position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 54px; width: 100%; padding: 14px; border: 1px dashed var(--forest); border-radius: 8px; cursor: pointer; font-size: 14px; }
.shop-visual-controls { display: grid; gap: 16px; align-content: start; }
.shop-visual-controls h3 { margin: 0; font: 400 29px/1.2 var(--font-serif); letter-spacing: -.04em; }
.shop-visual-controls input[type=range] { width: 100%; accent-color: var(--forest); }
.shop-visual-controls label { font-size: 14px; line-height: 1.5; }
.shop-visual-controls textarea { width: 100%; padding: 10px; border: 1px solid var(--line); border-radius: 6px; background: transparent; font: inherit; }
.shop-result-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.shop-home-entry { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 34px var(--page-pad); background: var(--forest); color: var(--on-dark); }
.shop-home-entry h2 { margin: 0 0 10px; font: 400 clamp(23px,3vw,40px)/1.2 var(--font-serif); }
.shop-home-entry p { margin: 0; font-size: 14px; line-height: 1.5; opacity: .8; }
.shop-body :focus-visible, .shop-dialog :focus-visible, .site-navigation :focus-visible, .shop-home-entry :focus-visible { outline: 3px solid var(--orange); outline-offset: 4px; }
.shop-upload:focus-within { outline: 3px solid var(--orange); outline-offset: 3px; }
body:has(.shop-dialog[open]) { overflow: hidden; }
.shop-entered { animation: shop-reveal 800ms var(--quart-out) both; }
@keyframes shop-reveal { from { opacity: .2; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@media (hover:hover) { .shop-card-photo:hover .model-card__image { transform: scale(1.045); } }
@media (max-width:1100px) {
  .shop-tools { width: 100%; justify-content: space-between; }
  .shop-tools input { flex: 1; max-width: 280px; }
  .shop-card-photo { min-height: 290px; padding: 20px; }
  .shop-card-controls { padding: 20px; }
}
@media (max-width:900px) {
  .site-navigation, .site-navigation.is-compact { top: 12px; width: calc(100vw - 24px); height: 58px; grid-template-columns: minmax(0,1fr) auto auto; gap: 10px; padding-left: 12px; }
  .site-navigation .brand { min-width: 0; font-size: 15px; }
  .site-navigation nav { position: absolute; top: calc(100% + 8px); left: 0; right: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); box-shadow: 0 20px 50px rgba(16,37,26,.15); }
  .site-navigation.is-menu-open nav { display: flex; }
  .site-navigation nav a { justify-content: space-between; min-height: 48px; padding: 12px; font-size: 16px; }
  .site-navigation nav a[aria-current] { background: var(--cream); border-radius: 6px; }
  .site-navigation nav a::after { display: none; }
  .site-menu-toggle { display: flex; width: 44px; height: 44px; flex-direction: column; align-items: center; justify-content: center; gap: 6px; border: 1px solid var(--line); border-radius: 6px; background: transparent; cursor: pointer; }
  .site-menu-toggle span { width: 18px; height: 1px; background: var(--ink); transition: transform 200ms; }
  .is-menu-open .site-menu-toggle span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .is-menu-open .site-menu-toggle span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .site-cart { min-width: 60px; padding-inline: 10px; }
  .site-cart-label { display: none; }
  .shop-container { padding-top: 104px; }
  .shop-intro { gap: 32px; }
}
@media (max-width:700px) {
  .shop-intro { grid-template-columns: 1fr; gap: 23px; padding-bottom: 26px; }
  .shop-intro h1 { font-size: clamp(41px,8.8vw,62px); }
  .shop-intro .section-label { margin-bottom: 20px; }
  .shop-intro .visualizer-intro p { margin-bottom: 6px; }
  .shop-grid { grid-template-columns: repeat(2,minmax(0,1fr)); margin-bottom: 44px; overflow: visible; }
  .shop-card-photo { min-height: 240px; aspect-ratio: .7; padding: 14px; }
  .shop-card-photo .shop-card-index { font-size: 10px; max-width: calc(100% - 16px); line-height: 1.5; }
  .shop-card-photo i { top: 13px; right: 12px; font-size: 16px; }
  .shop-card-photo h2 { font-size: clamp(23px,4.8vw,32px); overflow-wrap: anywhere; }
  .shop-card-photo .shop-price { font-size: 14px; }
  .shop-card-controls { padding: 15px 12px; gap: 14px; }
  .shop-card-controls p { font-size: 14px; }
  .shop-card-bottom { align-items: stretch; flex-direction: column; gap: 4px; }
  .shop-add, .shop-visual-link { padding-inline: 10px; font-size: 13px; }
  .shop-toolbar { gap: 14px; }
  .shop-chip { padding: 9px 12px; font-size: 13px!important; }
  .shop-tools { flex-wrap: wrap; gap: 10px; }
  .shop-tools input { min-width: 120px; }
  .shop-tools label { font-size: 13px; }
  .shop-tools select { max-width: 152px; font-size: 13px; }
  .shop-product { grid-template-columns: 1fr; gap: 28px; padding-bottom: 44px; }
  .shop-product-gallery { position: static; }
  .shop-product-gallery img { max-height: 460px; }
  .shop-product h1 { font-size: 39px; }
  .shop-product dl div { grid-template-columns: 1fr 1fr; gap: 15px; }
  .shop-dialog-head { padding: 17px 18px; }
  .shop-dialog-head h2 { font-size: 27px; }
  .shop-dialog-body { padding: 20px 18px; }
  .shop-visual-layout { grid-template-columns: 1fr; gap: 22px; }
  .shop-scene { min-height: 200px; }
  .shop-home-entry { flex-direction: column; align-items: flex-start; padding: 28px 20px; }
  .shop-home-entry .shop-primary { width: 100%; }
  .shop-breadcrumbs { font-size: 13px; }
  .shop-toast { bottom: 15px; }
  .shop-total { font-size: 18px; }
}
@media (prefers-reduced-motion:reduce) {
  .shop-entered { animation: none; }
  .shop-card-photo .model-card__image, .shop-add, .shop-primary { transition: none; }
}
.site-navigation .nav-cta { font: 700 13px var(--font-sans); }
.site-navigation .brand span { display: block; }
@media (max-width:520px) {
  .site-navigation .brand span { font-size: clamp(12px,3.5vw,14px); white-space: nowrap; }
  .site-navigation { gap: 7px; }
  .shop-grid { grid-template-columns: minmax(0,1fr); }
  .shop-card-photo { aspect-ratio: 1.1; min-height: 300px; padding: 22px; }
  .shop-card-photo .shop-card-index { font-size: 12px; }
  .shop-card-photo h2 { font-size: 33px; overflow-wrap: normal; }
  .shop-card-photo .shop-price { font-size: 16px; }
  .shop-card-controls { padding: 22px; }
  .shop-card-controls p { font-size: 16px; }
  .shop-card-bottom { flex-direction: row; align-items: center; }
}

/* One storefront: airy studio imagery, compact commerce layouts. */
.shop-body { background: #f5f0e5; }
.shop-body .shop-card[hidden] { display:none; }
.shop-container { max-width:1600px; padding-top:130px; }
.shop-intro { padding-bottom:30px; gap:40px; }
.shop-intro h1 { font:400 clamp(44px,5.5vw,78px)/1.04 var(--font-serif); letter-spacing:-.045em; }
.shop-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; border:0; }
.shop-card { border:1px solid var(--line); border-radius:10px; overflow:hidden; background:#faf7ef; }
.shop-card-photo { display:block; aspect-ratio:1; min-height:0; padding:0; background:#eee9df; border:0; color:var(--ink); }
.shop-card-photo::after { display:none; }
.shop-card-photo img { position:static; display:block; width:100%; height:100%; object-fit:contain; opacity:1; transform:none; transition:transform .6s var(--quart-out); }
.shop-card-photo:hover img { transform:scale(1.035); }
.shop-card-photo .shop-card-index { position:absolute; z-index:1; top:12px; left:12px; max-width:calc(100% - 55px); padding:5px 8px; border-radius:4px; background:rgba(250,247,239,.92); font-size:11px; letter-spacing:.025em; }
.shop-card-photo i { position:absolute; top:14px; right:14px; font:normal 20px var(--font-sans); }
.shop-card-controls { gap:12px; padding:20px; }
.shop-card-controls h2 { margin:0; font:500 21px/1.18 var(--font-sans); letter-spacing:-.03em; }
.shop-card-controls p { font-size:14px; line-height:1.5; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.shop-card-controls .shop-price { margin-top:auto; font-size:18px; }
.shop-card-bottom { margin:0; gap:4px; }
.shop-card-bottom .shop-add { padding:10px 13px; }
.shop-card-bottom .shop-visual-link { font-size:13px; }
.shop-photo-empty { display:flex; width:100%; height:100%; min-height:230px; align-items:flex-start; justify-content:center; flex-direction:column; gap:15px; padding:25px; background:linear-gradient(135deg,#e7e2d7,#f6f1e7); color:var(--ink); }
.shop-photo-empty > span { font-size:12px; letter-spacing:.06em; text-transform:uppercase; opacity:.55; }
.shop-photo-empty strong { font:400 29px/1.15 var(--font-serif); }
.shop-photo-empty small { font-size:12px; opacity:.65; }
.shop-product-gallery { background:#eee9df; box-shadow:none; }
.shop-product-gallery img { object-fit:contain; }
.shop-render-note { margin:0; padding:14px 18px; font-size:12px; line-height:1.5; color:#687065; border-top:1px solid var(--line); }
.shop-original-photo summary { min-height:44px; padding:12px 18px; cursor:pointer; font-size:14px; }
.shop-original-photo img { margin-top:12px; }
.shop-product-reading { margin-bottom:60px; padding:24px 0; border-block:1px solid var(--line); }
.shop-product-reading > a { display:flex; justify-content:space-between; gap:24px; padding:14px 0; font:400 clamp(22px,2.4vw,32px)/1.2 var(--font-serif); }
.market-first-screen { max-width:1600px; margin:auto; padding-top:118px; padding-bottom:32px; }
.market-hero { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:4%; min-height:390px; }
.market-hero-copy { padding:18px 0 26px; }
.market-hero-copy .shop-kicker { font-size:12px; margin-bottom:20px; }
.market-hero h1 { margin:0; font:400 clamp(44px,5.1vw,78px)/1.02 var(--font-serif); letter-spacing:-.055em; }
.market-hero h1 em { font-weight:400; color:#61715a; }
.market-hero-copy > p:not(.shop-kicker) { margin:24px 0; font-size:16px; line-height:1.5; }
.market-hero-actions { display:flex; flex-wrap:wrap; gap:10px; }
.market-hero-actions .shop-primary { gap:24px; }
.market-hero-actions .shop-add { border:0; padding-inline:8px; }
.market-hero-note { display:flex; gap:24px; margin-top:26px; color:#7a8075; font-size:12px; }
.market-still-life { position:relative; align-self:stretch; min-height:380px; border-radius:12px; background:#eee9df; overflow:hidden; }
.market-main-product { display:block; position:absolute; width:78%; left:1%; top:1%; bottom:8%; }
.market-main-product > img { width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; transition:transform .8s var(--quart-out); }
.market-main-product:hover > img { transform:translateY(-4px); }
.market-main-product > span { position:absolute; bottom:8%; left:8%; display:grid; gap:4px; }
.market-main-product small { font:500 10px var(--font-sans); letter-spacing:.12em; }
.market-main-product strong { font:400 27px var(--font-serif); }
.market-main-product i { position:absolute; right:-28px; bottom:3px; font-style:normal; }
.market-mini-product { position:absolute; right:3%; bottom:7%; width:32%; }
.market-mini-product img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; mix-blend-mode:multiply; }
.market-mini-product span { display:block; font-size:11px; text-align:center; }
.market-mini-product i { font-style:normal; }
.market-studio-label { position:absolute; right:20px; top:20px; font-size:11px; letter-spacing:.02em; color:#7b8074; }
.market-categories { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:24px; border-top:1px solid var(--line); border-left:1px solid var(--line); }
.market-categories a { min-width:0; position:relative; padding:14px 18px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); transition:background .25s; }
.market-categories a:hover { background:#e5e9da; }
.market-category-index { display:flex; justify-content:space-between; font-size:10px; color:#7d8276; margin-bottom:7px; }
.market-category-index i { font-size:14px; font-style:normal; }
.market-categories strong { display:block; font:500 17px/1.2 var(--font-sans); letter-spacing:-.03em; }
.market-categories small { display:block; font-size:12px; line-height:1.5; color:#778071; margin-top:3px; }
.market-section { max-width:1600px; margin:auto; padding-top:72px; padding-bottom:64px; }
.market-section-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:32px; }
.market-section-heading h2 { margin:0; font:400 clamp(34px,4.3vw,64px)/1.06 var(--font-serif); letter-spacing:-.045em; }
.market-section-heading .shop-kicker { margin-bottom:12px; }
.market-featured { margin-bottom:0; }
.market-home .visualizer { padding-block:70px; }
.market-home .visualizer-heading h2 { font:400 clamp(40px,5vw,72px)/1.03 var(--font-serif); }
.market-home .visualizer-heading { gap:32px; }
.journal-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; margin-bottom:45px; }
.journal-card { display:block; }
.journal-card-image { aspect-ratio:1.65; background:#eee9df; border-radius:8px; margin-bottom:22px; overflow:hidden; }
.journal-card-image img { width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; transition:transform .6s; }
.journal-card:hover img { transform:scale(1.04); }
.journal-card-image > span { display:flex; height:100%; align-items:center; justify-content:center; padding:30px; font:400 32px var(--font-serif); }
.journal-card .shop-kicker { margin-bottom:10px; font-size:11px; color:#63715b; }
.journal-card h3 { margin:0; font:400 30px/1.1 var(--font-serif); letter-spacing:-.04em; }
.journal-card > p:not(.shop-kicker) { font-size:15px; line-height:1.6; color:#687062; }
.journal-read { display:inline-flex; align-items:center; min-height:44px; font-size:14px; text-decoration:underline; text-underline-offset:5px; }
.journal-intro { max-width:900px; padding-bottom:50px; }
.journal-intro h1 { margin:0 0 24px; font:400 clamp(38px,5.2vw,76px)/1.05 var(--font-serif); letter-spacing:-.045em; }
.journal-intro h1 em { color:#61715a; }
.journal-intro > p:last-child { max-width:560px; font-size:17px; line-height:1.65; }
.journal-article { max-width:900px; margin:20px auto 70px; }
.journal-article h1 { margin:0; font:400 clamp(38px,5vw,68px)/1.06 var(--font-serif); letter-spacing:-.05em; }
.journal-lead { font-size:21px; line-height:1.5; color:#63715b; }
.journal-article-body { max-width:700px; margin:48px auto 0; }
.journal-article-body section { margin-bottom:36px; }
.journal-article-body h2 { margin:0 0 15px; font:400 32px/1.15 var(--font-serif); letter-spacing:-.035em; }
.journal-article-body p { font-size:17px; line-height:1.8; }
.journal-byline { font-size:13px!important; color:#747c6b; padding-top:24px; border-top:1px solid var(--line); }
@media (min-width:1100px) and (max-height:800px) {
 .market-first-screen { padding-top:100px; }
 .market-hero { min-height:330px; }
 .market-still-life { min-height:330px; }
 .market-hero h1 { font-size:60px; }
 .market-hero-copy { padding:12px 0; }
 .market-hero-copy .shop-kicker { margin-bottom:14px; }
 .market-hero-copy > p:not(.shop-kicker) { margin:18px 0; }
 .market-hero-note { margin-top:16px; }
 .market-categories { margin-top:20px; }
 .market-categories a { padding-block:11px; }
}
@media (max-width:1100px) {
 .shop-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .market-hero h1 { font-size:58px; }
 .market-hero { gap:24px; }
 .market-hero-note { display:none; }
 .market-hero-actions .shop-add { padding-left:0; }
 .market-featured { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .market-categories strong { font-size:15px; }
}
@media (max-width:760px) {
 .shop-container { padding-top:100px; }
 .shop-intro { display:block; padding-bottom:24px; }
 .shop-intro h1 { font-size:44px; }
 .shop-intro .visualizer-intro { margin-top:20px; }
 .shop-intro .visualizer-intro p { max-width:440px; }
 .shop-tools { width:100%; flex-wrap:wrap; gap:12px; }
 .shop-tools input { width:100%; }
 .shop-filters { flex-wrap:nowrap; overflow-x:auto; max-width:100%; padding-bottom:4px; }
 .shop-filters .shop-chip { flex-shrink:0; }
 .shop-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 .shop-card-controls { padding:14px; gap:10px; }
 .shop-card-controls h2 { font-size:18px; }
 .shop-card-controls p { font-size:13px; }
 .shop-card-controls .shop-price { font-size:16px; }
 .shop-card-photo .shop-card-index { font-size:9px; top:8px; left:8px; padding:4px 6px; }
 .shop-card-photo i { right:8px; top:10px; font-size:16px; }
 .shop-card-bottom { align-items:stretch; flex-direction:column; }
 .shop-card-bottom .shop-add { padding:10px 5px; font-size:13px; }
 .shop-card-bottom .shop-visual-link { min-height:40px; padding:8px 0; }
 .shop-photo-empty { min-height:0; padding:18px; height:100%; }
 .shop-photo-empty strong { font-size:22px; }
 .shop-photo-empty > span { display:none; }
 .market-first-screen { padding-top:96px; padding-bottom:12px; }
 .market-hero { display:block; }
 .market-hero h1 { font-size:clamp(43px,8.4vw,60px); }
 .market-hero-copy { padding:14px 0 24px; }
 .market-hero-copy .shop-kicker { margin-bottom:14px; font-size:10px; }
 .market-hero-copy > p:not(.shop-kicker) { font-size:15px; margin:18px 0; }
 .market-hero-actions { gap:6px; align-items:center; }
 .market-hero-actions .shop-primary { padding:12px 15px; gap:18px; font-size:13px; }
 .market-hero-actions .shop-add { font-size:12px; }
 .market-still-life { min-height:275px; }
 .market-main-product { width:74%; }
 .market-main-product > span { bottom:3%; }
 .market-main-product strong { font-size:23px; }
 .market-mini-product { right:2%; width:29%; }
 .market-mini-product span { font-size:10px; }
 .market-studio-label { top:15px; right:15px; font-size:10px; }
 .market-categories { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:16px; }
 .market-categories a { padding:12px; }
 .market-categories strong { font-size:15px; }
 .market-categories small { font-size:11px; }
 .market-category-index { margin-bottom:5px; }
 .market-section { padding-block:50px; }
 .market-section-heading { align-items:start; flex-direction:column; gap:12px; margin-bottom:22px; }
 .market-section-heading .shop-kicker { font-size:11px; }
 .market-home .visualizer { padding-block:50px; }
 .market-home .visualizer-heading h2 { font-size:44px; }
 .journal-grid { grid-template-columns:1fr; gap:35px; }
 .journal-card h3 { font-size:29px; }
 .journal-intro { padding-bottom:32px; }
 .journal-lead { font-size:18px; }
 .journal-article-body { margin-top:34px; }
 .journal-article-body p { font-size:16px; }
 .journal-article-body h2 { font-size:28px; }
}
@media (max-width:360px) {
 .shop-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .market-hero h1 { font-size:41px; }
 .market-still-life { min-height:230px; }
 .market-hero-actions { align-items:stretch; flex-direction:column; }
 .market-hero-actions .shop-add { justify-content:flex-start; }
 .market-categories strong { font-size:13px; }
 .market-categories small { font-size:10px; }
}
@media (prefers-reduced-motion:reduce) {
 .shop-card-photo img, .market-main-product > img, .journal-card-image img { transition:none; }
}

.shop-card-variant { display:block; font-size:11px; line-height:1.4; color:#6a7463; }
@media (min-width:1101px) {
 .shop-container { padding-top:116px; }
 .shop-intro { align-items:center; grid-template-columns:1.5fr 1fr; padding-bottom:22px; }
 .shop-intro h1 { font-size:60px; }
 .shop-intro .visualizer-intro { margin-bottom:0; }
 .shop-intro .visualizer-intro p { font-size:15px; margin-bottom:4px; max-width:500px; }
 .shop-toolbar { padding:14px 0; gap:12px; }
 .shop-card-controls { padding:16px 20px; }
}
@media (max-width:760px) { .market-studio-label { display:none; } }

/* The same directional response as the first-screen catalogue button. */
.market-category-index i,
.shop-card-photo > i,
.shop-link-arrow {
 display:inline-block;
 transform-origin:center;
 transition:rotate 350ms cubic-bezier(.16,1,.3,1);
}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 .market-categories a:hover .market-category-index i,
 .shop-card-photo:hover > i,
 .shop-intro-link:hover .shop-link-arrow { rotate:45deg; }
}
@media (prefers-reduced-motion:no-preference) {
 .market-categories a:focus-visible .market-category-index i,
 .shop-card-photo:focus-visible > i,
 .shop-intro-link:focus-visible .shop-link-arrow { rotate:45deg; }
}

/* Meter-priced fencing keeps the length editable and separate from piece counts. */
.shop-length-label { display: block; margin: 10px 0 6px; font-size: 13px; }
.shop-quantity--meters { display: grid; grid-template-columns: 44px minmax(50px, 100px) 44px; gap: 6px; }
.shop-quantity--meters input { width: 100%; min-width: 0; min-height: 44px; padding: 8px 5px; border: 1px solid var(--line); border-radius: 6px; background: transparent; color: inherit; font: inherit; text-align: center; }
.shop-quantity--meters .shop-remove { grid-column: 1 / -1; justify-self: start; margin: 0; padding: 0; }
.shop-quantity button:disabled { opacity: .35; cursor: default; }
.shop-quantity input:focus-visible, .shop-quantity button:focus-visible { outline: 2px solid var(--forest); outline-offset: 2px; }

/* Photos and technical drawings share an accessible, page-local gallery. */
.shop-product > .shop-product-gallery, .shop-product > .shop-product-info { min-width:0; }
.shop-gallery-open { position:relative; display:block; width:100%; padding:0; border:0; background:transparent; color:var(--ink); cursor:zoom-in; }
.shop-product-gallery .shop-gallery-open > img { width:100%; height:auto; max-height:min(740px,max(220px,calc(100svh - 310px))); aspect-ratio:1; object-fit:contain; }
.shop-gallery-zoom { position:absolute; right:14px; bottom:14px; display:inline-flex; align-items:center; min-height:36px; padding:8px 12px; border:1px solid var(--line); border-radius:30px; background:rgba(250,247,239,.95); font-size:12px; line-height:1.2; pointer-events:none; }
.shop-gallery-thumbnails { display:flex; gap:8px; overflow-x:auto; padding:12px; border-top:1px solid var(--line); overscroll-behavior-x:contain; scrollbar-width:thin; }
.shop-gallery-thumb { flex:0 0 72px; width:72px; height:72px; padding:3px; overflow:hidden; border:1px solid var(--line); border-radius:6px; background:var(--paper); cursor:pointer; transition:border-color 180ms,background 180ms; }
.shop-gallery-thumb[aria-pressed="true"] { border:2px solid var(--forest); padding:2px; background:#e1e8dc; }
.shop-product-gallery .shop-gallery-thumb img { display:block; width:100%; height:100%; max-height:none; aspect-ratio:1; object-fit:contain; }
.shop-gallery-open:focus-visible { outline-offset:-5px; }
.shop-image-dialog { width:min(1180px,calc(100% - 32px)); max-height:94dvh; overflow:auto; }
.shop-image-dialog .shop-dialog-head { padding:16px 22px; }
.shop-image-dialog .shop-dialog-head h2 { font-size:clamp(20px,2.4vw,30px); line-height:1.2; }
.shop-lightbox-figure { margin:0; }
.shop-lightbox-image { display:flex; align-items:center; justify-content:center; height:calc(94dvh - 200px); min-height:180px; padding:12px 20px; background:#eee9df; touch-action:pan-y pinch-zoom; }
.shop-product-gallery .shop-lightbox-image img { display:block; width:100%; height:100%; max-height:none; aspect-ratio:auto; object-fit:contain; user-select:none; -webkit-user-drag:none; }
.shop-lightbox-figure figcaption { padding:12px 24px 0; font-size:13px; line-height:1.5; color:#687065; }
.shop-lightbox-controls { display:flex; justify-content:center; align-items:center; gap:20px; padding:12px 20px 18px; }
.shop-lightbox-controls button { display:grid; place-items:center; width:48px; height:48px; border:1px solid var(--line); border-radius:50%; background:var(--paper); color:var(--ink); font:24px var(--font-sans); cursor:pointer; transition:background 180ms; }
.shop-lightbox-controls span { min-width:55px; text-align:center; font-size:13px; font-variant-numeric:tabular-nums; }
.shop-product-colors { margin:26px 0; padding-bottom:20px; border-bottom:1px solid var(--line); }
.shop-product-colors > div + div { margin-top:22px; }
.shop-product-colors h2 { margin:0 0 12px; font:600 16px/1.3 var(--font-sans); }
.shop-product-colors ul { display:flex; flex-wrap:wrap; gap:7px; padding:0; margin:0; list-style:none; }
.shop-product-colors li { max-width:100%; padding:7px 11px; border:1px solid var(--line); border-radius:30px; font-size:13px; line-height:1.4; overflow-wrap:anywhere; }
.shop-product-colors > p { margin-bottom:0; }
.shop-confirmed-options { margin:28px 0; padding:22px; border:1px solid var(--line); border-radius:8px; background:rgba(251,247,238,.7); }
.shop-confirmed-options > h2 { margin:0 0 12px; font:600 12px/1.5 var(--font-sans); letter-spacing:.08em; text-transform:uppercase; }
.shop-confirmed-options > ul { padding:0; margin:18px 0; list-style:none; }
.shop-confirmed-options li { padding:14px 0; border-top:1px solid var(--line); }
.shop-option-heading { display:flex; align-items:baseline; justify-content:space-between; gap:15px; }
.shop-option-heading h3 { margin:0; font:500 15px/1.45 var(--font-sans); }
.shop-option-heading strong { flex:0 0 auto; font:600 14px/1.45 var(--font-sans); white-space:nowrap; }
.shop-confirmed-options li p { margin:7px 0 0; font-size:13px; line-height:1.55; color:#687065; }
.shop-confirmed-options > p:last-child { margin-bottom:0; }
.shop-equipment-packages { margin:28px 0; }
.shop-equipment-packages > h2 { margin:0 0 12px; font:400 27px/1.2 var(--font-serif); letter-spacing:-.025em; }
.shop-equipment-packages > article { margin-top:12px; padding:20px; border:1px solid var(--line); border-radius:8px; background:rgba(251,247,238,.7); }
.shop-equipment-packages ul { margin:14px 0 0; padding-left:18px; font-size:14px; line-height:1.6; }
.shop-equipment-packages li + li { margin-top:5px; }
@media (hover:hover) { .shop-gallery-thumb:hover { border-color:var(--forest); } .shop-lightbox-controls button:hover { background:#e1e8dc; } }
@media (max-width:700px) {
 .shop-product-gallery .shop-gallery-open > img { max-height:460px; }
 .shop-image-dialog { width:calc(100% - 16px); max-height:96dvh; }
 .shop-image-dialog .shop-dialog-head { padding:12px 14px; }
 .shop-lightbox-image { height:calc(96dvh - 200px); padding:8px; }
 .shop-lightbox-figure figcaption { padding:10px 16px 0; font-size:12px; }
 .shop-gallery-thumb { flex-basis:64px; width:64px; height:64px; }
 .shop-confirmed-options { padding:18px; }
}
@media (max-width:380px) { .shop-option-heading { align-items:flex-start; flex-direction:column; gap:5px; } }
@media (prefers-reduced-motion:reduce) { .shop-gallery-thumb, .shop-lightbox-controls button { transition:none; } }

/* Shared card tracks keep the price, note and actions aligned within each row. */
.shop-card-controls { min-width:0; }
.shop-card-controls > a,
.shop-card-controls h2,
.shop-card-controls > p,
.shop-card-controls .shop-price,
.shop-card-variant { min-width:0; overflow-wrap:anywhere; }
.shop-card-controls > p {
 display:block;
 overflow:visible;
 -webkit-line-clamp:unset;
 -webkit-box-orient:initial;
}
.shop-card-controls .shop-price { line-height:1.35; }
.shop-card-variant { min-height:1.4em; }
.shop-card-bottom {
 display:grid;
 grid-template-columns:minmax(0,1fr);
 align-items:stretch;
 gap:4px;
}
.shop-card-bottom .shop-add,
.shop-card-bottom .shop-visual-link {
 width:100%;
 min-width:0;
 min-height:44px;
 margin:0;
 padding:10px 8px;
 line-height:1.25;
 white-space:nowrap;
}
.shop-card-bottom .shop-add svg { flex-shrink:0; }
@supports (grid-template-rows:subgrid) {
 .shop-card {
  display:grid;
  grid-row:span 6;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:subgrid;
  row-gap:0;
 }
 .shop-card > .shop-card-photo { grid-row:1; align-self:start; }
 .shop-card-controls {
  display:grid;
  grid-row:2 / span 5;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:subgrid;
  row-gap:12px;
 }
 .shop-card-controls > a,
 .shop-card-controls > p,
 .shop-card-controls .shop-price,
 .shop-card-variant { align-self:start; }
 .shop-card-controls .shop-price { margin-top:0; }
 .shop-card-bottom { align-self:end; }
}
@supports not (grid-template-rows:subgrid) {
 .shop-card-controls .shop-price { margin-top:auto; }
 .shop-card-variant { min-height:4.2em; }
}
@media (max-width:760px) {
 .shop-card-controls { padding:14px 12px; }
 .shop-card-photo .shop-photo-empty { gap:8px; padding:14px; }
 .shop-card-photo .shop-photo-empty strong { font-size:19px; overflow-wrap:anywhere; }
 .shop-card-photo .shop-photo-empty small { font-size:10px; }
 .shop-card-controls h2 { font-size:17px; line-height:1.22; }
 .shop-card-bottom .shop-add,
 .shop-card-bottom .shop-visual-link { font-size:13px; gap:7px; }
}
@media (max-width:380px) {
 .shop-card-controls { padding:12px 9px; }
 .shop-card-photo .shop-photo-empty { padding:10px; }
 .shop-card-photo .shop-photo-empty strong { font-size:17px; }
 .shop-card-controls h2 { font-size:16px; }
 .shop-card-controls p { font-size:12px; }
 .shop-card-controls .shop-price { font-size:15px; }
 .shop-card-bottom .shop-add,
 .shop-card-bottom .shop-visual-link { font-size:12px; padding-inline:4px; gap:6px; }
}
@supports not (grid-template-rows:subgrid) {
 @media (max-width:760px) { .shop-card-variant { min-height:7em; } }
}

/* Six main departments, then only the refinements relevant to the selection. */
.shop-toolbar { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
.shop-filters,
.shop-subcategories { display:flex; flex-wrap:wrap; gap:7px; min-width:0; }
.shop-filters .shop-chip,
.shop-subcategories .shop-chip { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
.shop-chip[aria-current="page"] { border-color:var(--forest); background:var(--forest); color:var(--on-dark); }
.shop-subcategories { padding-top:2px; }
.shop-subcategories:empty { display:none; }
.shop-subcategories .shop-chip { border-radius:24px; padding-inline:14px; font-size:13px!important; }
.shop-tools { display:flex; width:100%; min-width:0; flex-wrap:wrap; justify-content:space-between; gap:12px 20px; }
.shop-tools > input { flex:1 1 240px; width:auto; min-width:0; max-width:460px; }
.shop-tools > label { display:flex; align-items:center; flex-wrap:wrap; gap:9px; }
.shop-tools select { max-width:100%; }
.shop-facet-panel { min-width:0; border:1px solid var(--line); border-radius:8px; background:rgba(251,247,238,.5); }
.shop-facet-panel[hidden] { display:none; }
.shop-facet-panel > summary { min-height:46px; padding:13px 16px; cursor:pointer; font-size:14px; font-weight:600; }
.shop-facet-panel[open] > summary { border-bottom:1px solid var(--line); }
.shop-facet-controls { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding:18px 16px; }
.shop-facet-controls > label { display:grid; min-width:0; align-content:start; gap:8px; font-size:13px; line-height:1.4; }
.shop-facet-controls input:not([type="checkbox"]),
.shop-facet-controls select { width:100%; min-width:0; min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:6px; background:var(--paper); color:var(--ink); font-size:14px; }
.shop-facet-controls .shop-chip,
.shop-facet-reset { align-self:end; justify-self:start; min-height:44px; }
.shop-facet-reset { padding:10px 4px; border:0; background:transparent; color:var(--ink); cursor:pointer; font-size:13px; text-decoration:underline; text-underline-offset:4px; }
.shop-active-filters { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:16px; }
.shop-active-filters:empty { display:none; }
@media (hover:hover) {
 .shop-filters .shop-chip:not([aria-current="page"]):hover,
 .shop-subcategories .shop-chip:not([aria-current="page"]):hover { background:#e5e9da; }
}
@media (max-width:760px) {
 .shop-toolbar { gap:12px; }
 .shop-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:visible; padding:0; }
 .shop-filters .shop-chip { min-width:0; padding:10px 8px; text-align:center; font-size:12px!important; line-height:1.4; }
 .shop-filters .shop-chip:first-child:last-child,
 .shop-filters .shop-chip:first-child:nth-last-child(7) { grid-column:1 / -1; }
 .shop-subcategories { flex-wrap:nowrap; max-width:100%; overflow-x:auto; padding-bottom:5px; overscroll-behavior-x:contain; scrollbar-width:thin; }
 .shop-subcategories .shop-chip { flex-shrink:0; }
 .shop-tools { gap:10px; }
 .shop-tools > input { flex-basis:100%; max-width:none; }
 .shop-tools > label { width:100%; justify-content:space-between; }
 .shop-tools select { flex:1; max-width:230px; font-size:13px; }
 .shop-facet-controls { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 10px; padding:14px 12px; }
 .shop-facet-controls input:not([type="checkbox"]),
 .shop-facet-controls select { padding-inline:8px; font-size:13px; }
}
