@charset "UTF-8";
/* Opt-in catalogue only. Shared header, sidebar, footer and category views stay independent. */
.merry-catalogue {
  --catalogue-blue: #14639a;
  --catalogue-line: #dce3e8;
  color: #243440;
  text-align: left;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  min-width: 0;
  container: catalogue / inline-size;
  padding-bottom: 32px;
}
.merry-catalogue *, .merry-catalogue *::before, .merry-catalogue *::after { box-sizing: border-box; }
.merry-catalogue h1, .merry-catalogue h2, .merry-catalogue h3, .merry-catalogue p,
.merry-catalogue ul, .merry-catalogue li, .merry-catalogue fieldset { margin: 0; padding: 0; background: none; border: 0; }
.merry-catalogue ul { list-style: none; }
.merry-catalogue a { color: var(--catalogue-blue); text-decoration: none; }
.merry-catalogue a:hover { text-decoration: underline; }
.merry-catalogue :is(a, button, input, select):focus-visible { outline: 3px solid #14639a; outline-offset: 3px; }
.merry-catalogue .catalogue-search { background: #f3f6f8; border: 1px solid var(--catalogue-line); border-radius: 8px; padding: 24px; margin-bottom: 32px; }
.merry-catalogue .catalogue-search-heading { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 16px; margin-bottom: 16px; }
.merry-catalogue .catalogue-search-heading h1 { font-size: 20px; font-weight: 700; }
.merry-catalogue .catalogue-search-heading p { color: #586b79; font-size: 12px; }
.merry-catalogue .catalogue-search-heading p span { margin-left: 8px; }
.merry-catalogue .catalogue-search-form { display: grid; grid-template-columns: minmax(160px, 1fr) minmax(0, 2fr); gap: 16px; }
.merry-catalogue .catalogue-field { min-width: 0; }
.merry-catalogue .catalogue-field label, .merry-catalogue .catalogue-field legend { display: block; font-weight: 700; font-size: 14px; margin-bottom: 8px; }
.merry-catalogue .catalogue-field :is(input, select) { display: block; width: 100%; min-width: 0; min-height: 44px; padding: 8px 12px; font: inherit; color: #243440; background: #fff; border: 1px solid #aabac6; border-radius: 4px; }
.merry-catalogue .catalogue-price-range { grid-column: 1 / -1; }
.merry-catalogue .catalogue-range-inputs { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 12px; align-items: center; max-width: 420px; }
.merry-catalogue .catalogue-search-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding-top: 8px; border-top: 1px solid var(--catalogue-line); }
.merry-catalogue .catalogue-checkbox { display: inline-flex; gap: 8px; align-items: center; min-height: 44px; cursor: pointer; }
.merry-catalogue .catalogue-checkbox input { width: 18px; height: 18px; accent-color: var(--catalogue-blue); margin: 0; }
.merry-catalogue .catalogue-buttons { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.merry-catalogue .catalogue-submit, .merry-catalogue .catalogue-clear { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 8px 16px; border-radius: 4px; font: inherit; font-weight: 700; cursor: pointer; }
.merry-catalogue .catalogue-submit { border: 1px solid var(--catalogue-blue); background: var(--catalogue-blue); color: #fff; }
.merry-catalogue .catalogue-submit:hover { background: #0e4d79; }
.merry-catalogue .catalogue-clear { font-weight: 400; }
.merry-catalogue .catalogue-results-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px; }
.merry-catalogue .catalogue-results-heading h2 { font-size: 22px; font-weight: 700; }
.merry-catalogue .catalogue-count { font-size: 14px; font-weight: 400; margin-left: 12px; white-space: nowrap; }
.merry-catalogue .catalogue-count strong { font-size: 24px; color: #243440; margin-right: 4px; }
.merry-catalogue .catalogue-range, .merry-catalogue .catalogue-unfiltered { color: #586b79; font-size: 13px; }
.merry-catalogue .catalogue-unfiltered { margin-top: 12px; }
.merry-catalogue .catalogue-conditions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.merry-catalogue .catalogue-conditions a { display: inline-flex; align-items: center; min-height: 44px; max-width: 100%; gap: 12px; padding: 8px 12px; background: #eef4f8; border: 1px solid #d9e6ee; border-radius: 4px; overflow-wrap: anywhere; }
.merry-catalogue .catalogue-conditions li { min-width: 0; max-width: 100%; }
.merry-catalogue .catalogue-sort { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding: 16px 0; margin: 8px 0 24px; border-bottom: 1px solid var(--catalogue-line); }
.merry-catalogue .catalogue-sort-label { font-size: 13px; font-weight: 700; color: #586b79; }
.merry-catalogue .catalogue-sort ul { display: flex; flex-wrap: wrap; gap: 8px; }
.merry-catalogue .catalogue-sort a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 12px; border: 1px solid var(--catalogue-line); border-radius: 4px; background: #fff; }
.merry-catalogue .catalogue-sort a[aria-current] { background: #eaf3fa; color: #105781; border-color: #14639a; font-weight: 700; box-shadow: inset 0 -2px #14639a; }
.merry-catalogue .catalogue-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.merry-catalogue .catalogue-card { min-width: 0; display: grid; grid-template-rows: auto 1fr auto auto auto auto; gap: 12px; padding: 12px; border: 1px solid var(--catalogue-line); border-radius: 8px; background: #fff; }
@supports (grid-template-rows: subgrid) {
  .merry-catalogue .catalogue-card { grid-template-rows: subgrid; grid-row: span 6; }
}
.merry-catalogue .catalogue-image { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 1; width: 100%; min-width: 0; border-bottom: 1px solid #edf0f3; }
.merry-catalogue .catalogue-image .linkimg { display: block; width: 100%; height: 100%; object-fit: contain; max-width: 100%; margin: 0; opacity: 1; }
.merry-catalogue .catalogue-display { padding: 4px 8px; background: #eef4f8; border: 1px solid #d9e6ee; border-radius: 4px; color: #31576e; font-size: 12px; }
.merry-catalogue .catalogue-name { font-size: 16px; font-weight: 700; line-height: 1.5; min-height: 4.5em; overflow-wrap: anywhere; width: auto; }
.merry-catalogue .catalogue-name a { display: block; color: #243440; }
.merry-catalogue .catalogue-name a:hover { color: var(--catalogue-blue); }
.merry-catalogue .catalogue-availability { min-height: 44px; display: flex; flex-wrap: wrap; align-items: flex-end; align-content: flex-end; gap: 4px 8px; }
.merry-catalogue .nouki_test small { display: block; font-size: 12px; color: #657580; }
.merry-catalogue .nouki_test { display: inline-block; max-width: 100%; color: #4e5c66; background: #f1f4f6; border-radius: 4px; padding: 4px 8px; font-size: 13px; overflow-wrap: anywhere; }
.merry-catalogue .nouki_test:empty { display: none; }
.merry-catalogue .nouki_test.is-soldout { color: #7f3741; background: #f9edef; }
.merry-catalogue .price-mini { display: flex; flex-wrap: nowrap; align-items: baseline; gap: 0; margin: 0; padding: 0; color: #d32f2f; white-space: nowrap; font-weight: 700; line-height: 1.25; }
.merry-catalogue .catalogue-amount { font-size: 28px; font-variant-numeric: tabular-nums; letter-spacing: -0.6px; }
.merry-catalogue .catalogue-yen { font-size: 16px; margin-left: 2px; }
.merry-catalogue .komoji { font-size: 12px; font-weight: 400; color: #586b79; }
.merry-catalogue .catalogue-shipping { min-height: 28px; }
.merry-catalogue .soryo-icon { display: inline-block; font-size: 12px; color: #586b79; }
.merry-catalogue .soryo-icon.is-free { color: #31576e; background: #eef4f8; border: 1px solid #d9e6ee; border-radius: 4px; padding: 2px 8px; }
.merry-catalogue .catalogue-detail { display: flex; align-items: center; justify-content: space-between; min-height: 44px; border-top: 1px solid var(--catalogue-line); padding-top: 8px; font-weight: 700; }
.merry-catalogue .catalogue-empty { border: 1px solid var(--catalogue-line); border-radius: 8px; background: #f8fafb; padding: 32px 24px; }
.merry-catalogue .catalogue-empty h3 { font-size: 18px; margin-bottom: 12px; }
.merry-catalogue .catalogue-empty a { display: inline-flex; min-height: 44px; align-items: center; margin-top: 16px; }
.merry-catalogue .catalogue-pagination { text-align: center; padding: 32px 0 16px; }
.merry-catalogue .catalogue-pagination p { color: #586b79; font-size: 13px; margin-bottom: 12px; }
.merry-catalogue .catalogue-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; }
.merry-catalogue .catalogue-pagination :is(a, span) { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--catalogue-line); border-radius: 4px; padding: 8px 12px; }
.merry-catalogue .catalogue-pagination [aria-current] { background: var(--catalogue-blue); border-color: var(--catalogue-blue); color: #fff; font-weight: 700; }
.merry-catalogue .catalogue-pagination [aria-disabled] { color: #86939d; background: #f5f7f8; }
.merry-catalogue .catalogue-ellipsis { min-width: 16px; }
@container catalogue (min-width: 820px) {
  .merry-catalogue .catalogue-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1049px) {
  .merry-catalogue { padding-inline: 12px; }
  .merry-catalogue .catalogue-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container catalogue (max-width: 559px) {
  .merry-catalogue .catalogue-grid { grid-template-columns: minmax(0, 1fr); }
  .merry-catalogue .catalogue-search { padding: 16px; margin-bottom: 24px; }
  .merry-catalogue .catalogue-search-form { grid-template-columns: minmax(0, 1fr); }
  .merry-catalogue .catalogue-search-actions { display: block; }
  .merry-catalogue .catalogue-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; }
  .merry-catalogue .catalogue-submit, .merry-catalogue .catalogue-clear { padding: 8px; }
  .merry-catalogue .catalogue-name { min-height: 0; }
  .merry-catalogue .catalogue-amount { font-size: 26px; }
  .merry-catalogue .catalogue-sort { gap: 8px; margin-bottom: 16px; }
  .merry-catalogue .catalogue-sort-label { width: 100%; }
  .merry-catalogue .catalogue-sort ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .merry-catalogue .catalogue-sort a { width: 100%; }
}
/* Safe fallback for browsers without container queries. */
.merry-catalogue.catalogue-legacy-search { background: #f3f6f8; border: 1px solid #dce3e8; border-radius: 8px; padding: 24px; margin: 16px 0 32px; }
.merry-catalogue.catalogue-legacy-search h2 { font-size: 20px; margin-bottom: 16px; }
.merry-catalogue.catalogue-legacy-search form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px; }
.merry-catalogue.catalogue-legacy-search dl { flex: 1 1 240px; min-width: 0; margin: 0; padding: 0; border: 0; }
.merry-catalogue.catalogue-legacy-search dl:has(input[name="title"]) { flex-grow: 2; }
.merry-catalogue.catalogue-legacy-search dl:not(:has(input, select, button, a)) { display: none; }
.merry-catalogue.catalogue-legacy-search dt { float: none; width: auto; font-weight: 700; margin-bottom: 8px; }
.merry-catalogue.catalogue-legacy-search dd { margin: 0; }
.merry-catalogue.catalogue-legacy-search :is(input:not([type="hidden"]), select, button) { min-height: 44px; max-width: 100%; font: inherit; border: 1px solid #aabac6; border-radius: 4px; padding: 8px; box-shadow: none; }
.merry-catalogue.catalogue-legacy-search input[name="title"] { width: 100%; }
.merry-catalogue.catalogue-legacy-search :is(input[name="price_min"], input[name="price_max"]) { width: 38%; }
.merry-catalogue.catalogue-legacy-search input[type="checkbox"] { min-height: 18px; width: 18px; vertical-align: middle; }
.merry-catalogue.catalogue-legacy-search input[type="submit"] { background: #14639a; color: #fff; border-color: #14639a; cursor: pointer; }
.merry-catalogue.catalogue-legacy-search input[type="button"] { color: #14639a; background: #fff; cursor: pointer; }
@media (max-width: 559px) {
  .merry-catalogue.catalogue-legacy-search { padding: 16px; margin-inline: 12px; }
  .merry-catalogue.catalogue-legacy-search dl { flex-basis: 100%; }
}
@supports not (container-type: inline-size) {
  @media (min-width: 1110px) { .merry-catalogue .catalogue-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (max-width: 599px) {
    .merry-catalogue .catalogue-grid, .merry-catalogue .catalogue-search-form { grid-template-columns: minmax(0, 1fr); }
    .merry-catalogue .catalogue-search { padding: 16px; }
  }
}
