.store-page { background: #fff; }
.store-kicker { display: block; font-family: var(--heading); font-size: 12px; font-weight: 700; color: var(--green); }
.store-breadcrumb { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; color: #7a887c; font-size: 12px; margin-bottom: 40px; }
.store-breadcrumb a:hover { color: var(--green); text-decoration: underline; }
.store-header { padding: 64px 0 72px; background: var(--cream); position: relative; overflow: hidden; }
.store-header::after { content: ""; width: 340px; height: 340px; border: 1px solid #dce5d8; border-radius: 50%; position: absolute; left: -120px; top: -170px; pointer-events: none; }
.store-header .container { position: relative; z-index: 1; }
.store-header h1 { font-size: clamp(38px, 4.2vw, 68px); line-height: 1.45; margin: 18px 0 15px; }
.store-header p:not(.store-kicker) { color: #647167; font-size: 16px; max-width: 740px; margin-bottom: 36px; }
.store-rule { border-top: 1px solid #cbd3ca; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 18px; font-family: var(--heading); font-size: 12px; color: #65766a; }
.store-rule a { color: var(--green); font-weight: 700; }
.store-rule a:hover { text-decoration: underline; }
.store-landing-hero { background: var(--cream); padding: 112px 0 104px; position: relative; overflow: hidden; }
.store-landing-hero::before { content: ""; position: absolute; left: -160px; top: -210px; width: 580px; height: 580px; border: 1px solid #dce5d8; box-shadow: 0 0 0 70px var(--cream), 0 0 0 71px #e2e7dd, 0 0 0 140px var(--cream), 0 0 0 141px #e6e4d9; border-radius: 50%; pointer-events: none; }
.store-landing-hero .container { position: relative; }
.store-landing-hero h1 { font-size: clamp(68px, 9vw, 138px); line-height: 1.25; margin: 16px 0 12px; }
.store-hero-period { color: var(--clay); }
.store-landing-hero p { color: #65746a; font-size: 17px; line-height: 2.15; max-width: 720px; margin: 0; }
.store-landing-hero p strong { color: var(--deep); font-weight: 700; }
.store-departments, .store-collection-section, .store-gallery-section { padding: 82px 0 115px; }
.store-section-label { display: flex; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); padding-bottom: 18px; margin-bottom: 29px; font-family: var(--heading); font-size: 12px; font-weight: 700; color: var(--green); }
.store-section-label span:last-child { color: #a07f69; }
.store-zone-nav { display: flex; flex-wrap: wrap; gap: 9px; margin: 0 0 58px; }
.store-zone-nav a { border: 1px solid #bfcbbf; color: var(--deep); padding: 8px 15px; font-family: var(--heading); font-size: 12px; font-weight: 700; border-radius: 2px; transition: background .2s, color .2s; }
.store-zone-nav a:hover, .store-zone-nav a:focus-visible { background: var(--deep); color: #fff; }
.store-zone { scroll-margin-top: 35px; margin-bottom: 88px; }
.store-zone:last-child { margin-bottom: 0; }
.store-zone-heading { display: grid; grid-template-columns: 1fr minmax(260px, .65fr); column-gap: 50px; align-items: end; border-top: 1px solid #cdd8cd; padding: 23px 0 25px; margin-bottom: 19px; }
.store-zone-heading .store-zone-index { grid-column: 1 / -1; color: var(--clay); font: 700 11px var(--heading); }
.store-zone-heading h2 { font-size: clamp(25px, 2.5vw, 40px); margin: 13px 0 0; }
.store-zone-heading p { color: #667569; max-width: 400px; font-size: 13px; margin: 0; }
.store-department-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 20px; }
.store-department-card { position: relative; min-height: 365px; padding: 34px 38px; display: flex; flex-direction: column; align-items: flex-start; overflow: hidden; transition: transform .25s ease; }
.store-department-card:hover, .store-category-card:hover { transform: translateY(-4px); }
.store-department-home { color: #f5f4ea; background: var(--deep); }
.store-department-home::after { content: ""; position: absolute; left: -98px; bottom: -155px; width: 420px; height: 420px; border: 1px solid #ffffff48; border-radius: 50%; box-shadow: 0 0 0 50px #2e4b3b, 0 0 0 51px #ffffff30, 0 0 0 100px #2e4b3b, 0 0 0 101px #ffffff1f; pointer-events: none; }
.store-department-stationery { color: var(--ink); background: #e9e9df; }
.store-department-stationery::after { content: ""; position: absolute; left: 8%; bottom: 8%; width: 38%; height: 38%; background: repeating-linear-gradient(110deg, transparent 0 18px, #9cae9730 19px 20px); transform: rotate(-15deg); pointer-events: none; }
.department-card-overline { position: relative; z-index: 1; font-family: var(--heading); font-size: 12px; font-weight: 700; }
.department-card-name { position: relative; z-index: 1; font: 700 clamp(33px, 3.25vw, 54px)/1.5 var(--heading); letter-spacing: -.055em; max-width: 470px; margin-top: 63px; }
.department-card-footer { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: center; width: 100%; border-top: 1px solid currentColor; padding-top: 16px; margin-top: auto; font-size: 12px; font-weight: 600; }
.department-card-footer>span:last-child { font-size: 23px; line-height: 1; }
.store-index-note { color: #718077; font-size: 12px; max-width: 760px; margin: 24px 0 0; }
.store-category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.store-category-card { border: 1px solid #dce4d9; padding: 25px 25px 19px; min-height: 235px; display: flex; flex-direction: column; background: #fff; transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.store-category-card:hover { border-color: #8eaa92; box-shadow: 0 10px 30px #1e3f2a0d; }
.category-card-number { color: var(--clay); font-size: 12px; font-weight: 700; direction: ltr; align-self: flex-start; }
.category-card-image:not(:empty) { display: block; width: 100%; aspect-ratio: 5 / 3; background: var(--cream); margin: 16px 0 6px; }
.category-card-image img { width: 100%; height: 100%; object-fit: contain; }
.store-category-card strong { font: 700 clamp(17px, 1.45vw, 24px)/1.7 var(--heading); letter-spacing: -.04em; margin: 19px 0 6px; }
.category-card-image:not(:empty)+strong { margin-top: 8px; }
.store-category-card small { font-size: 12px; color: #738077; line-height: 1.9; }
.category-card-place { display: block; color: #4a6652; font-size: 11px; font-weight: 700; padding: 7px 0 10px; }
.category-card-foot { display: flex; justify-content: space-between; gap: 12px; align-items: end; border-top: 1px solid var(--line); padding-top: 13px; margin-top: auto; color: var(--green); font-size: 11px; font-weight: 700; }
.category-card-foot b { font: 21px/1 var(--body); }
.store-category-header .store-breadcrumb { margin-bottom: 32px; }
.store-header p.store-place-line { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0 0 28px; font-size: 13px; }
.store-place-line span { color: #7b897d; }
.store-place-line strong { background: #e7eee3; color: var(--deep); border-right: 2px solid var(--green); padding: 3px 12px; font-weight: 700; }
.store-gallery-section { background: #fff; }
.store-disclaimer { margin: 0 0 30px; padding: 15px 20px; color: #526f57; background: #eef3e9; border-right: 3px solid var(--green); font-size: 12px; }
.store-unified-section { background: #fff; padding: 85px 0 94px; scroll-margin-top: 20px; }
.store-all-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; padding-bottom: 19px; border-bottom: 1px solid var(--line); }
.store-all-heading h2 { font-size: clamp(30px, 3.6vw, 54px); line-height: 1.5; margin: 6px 0 0; }
.store-all-heading em { color: var(--green); font-style: normal; }
.store-all-total { background: var(--deep); color: #fff; padding: 8px 15px; white-space: nowrap; font: 700 12px var(--heading); }
.store-all-intro { color: #617163; font-size: 13px; margin: 18px 0 30px; max-width: 680px; line-height: 2; }
.store-gallery-controls { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 13px; margin-bottom: 24px; }
.store-gallery-controls[hidden], .store-gallery-more[hidden], .store-all-item[hidden] { display: none !important; }
.store-filter-group { display: flex; flex-wrap: wrap; gap: 8px; }
.store-filter-group button { border: 1px solid #bdcdbf; background: #f7f8f2; color: var(--deep); font: 700 11px var(--heading); padding: 9px 14px; cursor: pointer; transition: background .2s, color .2s; }
.store-filter-group button:hover, .store-filter-group button:focus-visible, .store-filter-group button[aria-pressed="true"] { color: #fff; background: var(--deep); }
.store-filter-count { color: #647667; font-size: 11px; white-space: nowrap; }
.store-all-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 23px 17px; }
.store-all-item { min-width: 0; border: 1px solid #dbe5d8; background: #fff; display: flex; flex-direction: column; }
.store-all-item .store-photo { flex: 1; }
.store-all-item .store-photo-frame { aspect-ratio: 1 / 1; padding: 12px; }
.store-all-item .store-photo figcaption { padding: 13px 17px; }
.store-all-item:first-child { grid-column: span 2; }
.store-all-item:first-child .store-photo-frame { aspect-ratio: 16 / 9; }
.store-all-item:first-child .store-photo figcaption>span { font-size: 16px; }
.store-all-context { border-top: 1px solid #e3e8df; display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; align-items: center; padding: 11px 17px 14px; color: #768476; font-size: 10px; }
.store-all-context a { color: var(--deep); font-weight: 700; }
.store-all-context a:hover, .store-all-context a:focus-visible { text-decoration: underline; }
.store-gallery-more { display: block; margin: 34px auto 0; border: 1px solid var(--deep); background: #fff; color: var(--deep); padding: 11px 27px; font: 700 12px var(--heading); cursor: pointer; }
.store-gallery-more:hover, .store-gallery-more:focus-visible { background: var(--deep); color: #fff; }
.store-photo-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px 18px; }
.store-photo { margin: 0; min-width: 0; }
.store-photo-frame { background: #f4f3ec; aspect-ratio: 4 / 5; padding: 14px; display: flex; align-items: center; justify-content: center; }
.store-photo-frame img { max-width: 100%; max-height: 100%; width: 100%; height: 100%; object-fit: contain; }
.store-photo figcaption { display: flex; flex-direction: column; gap: 3px; padding: 11px 2px 2px; line-height: 1.7; }
.store-photo figcaption>span { font-size: 12px; color: var(--ink); font-weight: 600; }
.photo-credit { align-self: flex-start; color: #64776b; font-size: 10px; text-decoration: underline; text-underline-offset: 2px; }
.photo-credit:hover { color: var(--deep); }
.store-empty { grid-column: 1 / -1; border: 1px solid #d9e3d7; background: var(--cream); padding: 60px 7%; min-height: 340px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.empty-mark { color: #a4b5a0; font: 82px/1 serif; margin-bottom: 6px; }
.store-empty h2 { font-size: clamp(24px, 2.6vw, 39px); margin: 10px 0; }
.store-empty p { color: #6d7b6f; font-size: 14px; max-width: 520px; margin-bottom: 23px; }
@media (max-width: 1120px) {
  .store-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .store-photo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .store-all-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .store-landing-hero { padding: 72px 0 65px; }
  .store-landing-hero::before { width: 340px; height: 340px; left: -210px; top: -140px; }
  .store-landing-hero p { font-size: 14px; }
  .store-header { padding: 34px 0 50px; }
  .store-header h1 { font-size: clamp(32px, 8vw, 46px); }
  .store-header p:not(.store-kicker) { font-size: 13px; }
  .store-breadcrumb { margin-bottom: 29px; }
  .store-departments, .store-collection-section, .store-gallery-section { padding: 57px 0 75px; }
  .store-unified-section { padding: 59px 0 76px; }
  .store-all-heading h2 { font-size: 29px; }
  .store-all-total { font-size: 10px; padding: 7px 11px; }
  .store-all-intro { font-size: 12px; }
  .store-filter-group button { padding: 7px 10px; font-size: 10px; }
  .store-all-grid { gap: 12px 9px; }
  .store-all-item .store-photo-frame { padding: 7px; }
  .store-all-item .store-photo figcaption { padding: 9px 10px; }
  .store-all-item:first-child .store-photo figcaption>span { font-size: 13px; }
  .store-all-context { padding: 8px 10px 11px; }
  .store-zone-nav { margin-bottom: 43px; }
  .store-zone-nav a { font-size: 11px; padding: 7px 11px; }
  .store-zone { margin-bottom: 64px; }
  .store-zone-heading { display: block; padding: 18px 0; }
  .store-zone-heading h2 { margin: 9px 0; font-size: 26px; }
  .store-zone-heading p { font-size: 12px; }
  .store-department-grid { grid-template-columns: 1fr; gap: 14px; }
  .store-department-card { min-height: 285px; padding: 25px 27px; }
  .department-card-name { margin-top: 32px; font-size: clamp(30px, 8vw, 43px); }
  .store-category-grid { gap: 10px; }
  .store-category-card { min-height: 215px; padding: 16px 14px; }
  .store-category-card strong { font-size: 16px; }
  .store-category-card small { font-size: 11px; }
  .store-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 10px; }
  .store-photo-frame { padding: 7px; }
  .store-empty { padding: 32px 25px; min-height: 290px; }
}
@media (max-width: 400px) {
  .store-all-grid { grid-template-columns: 1fr; }
  .store-all-item:first-child { grid-column: auto; }
  .store-all-item:first-child .store-photo-frame { aspect-ratio: 1 / 1; }
  .store-category-grid { grid-template-columns: 1fr; }
  .store-category-card { min-height: 170px; }
}
@media (prefers-reduced-motion: reduce) {
  .store-department-card, .store-category-card { transition: none; }
}
