/* LUNOREM v1.4: dedicated editorial page headers; placed last to preserve earlier fonts/palette. */
.theme-shop { overflow-x: clip; }
.theme-shop .subpage-main { padding-top: var(--nav-h); }
.theme-shop .page-hero {
  position: relative; left: 50%; margin-left: -50vw; width: 100vw; max-width: none;
  min-height: clamp(385px,40vw,670px); display: flex; align-items: center;
  box-sizing: border-box; isolation: isolate;
  margin-bottom: clamp(58px,7vw,110px);
  background-color: #e8e0d8;
  background-size: cover; background-position: center center; background-repeat: no-repeat;
  border-bottom: 1px solid rgba(102,87,78,.13);
}
.theme-shop .page-hero::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(250,247,241,.94) 0%, rgba(250,247,241,.89) 27%, rgba(250,247,241,.70) 47%, rgba(250,247,241,.20) 75%, rgba(250,247,241,.10) 100%);
}
.theme-shop .page-hero--about { background-image: url('../images/headers/about.jpg'); background-position: center 42%; }
.theme-shop .page-hero--products { background-image: url('../images/headers/products.jpg'); background-position: center 55%; }
.theme-shop .page-hero--stores { background-image: url('../images/headers/stores.jpg'); background-position: center 53%; }
.theme-shop .page-hero--flagship { background-image: url('../images/headers/flagship.jpg'); background-position: center 48%; }
.theme-shop .page-hero__content { width: min(100% - 2 * clamp(24px,8vw,150px),1410px); margin-inline:auto; padding: 30px 0; box-sizing:border-box; }
.theme-shop .page-hero__eyebrow { font: 400 13px/1.9 var(--type-ja); letter-spacing: .2em; color:#60514b; display:block; margin-bottom: 16px; }
.theme-shop .page-hero .subpage-main__title { font-size:clamp(88px,12vw,184px); margin:0 0 29px; text-shadow:0 2px 30px rgba(255,255,255,.25); }
.theme-shop .page-hero .subpage-main__lead { font-size:clamp(17px,1.7vw,24px); line-height:1.9; margin:0; color:#453b35; max-width:750px; }
.theme-shop .subpage-main .subpage-main__inner > .store-gallery { margin-top: 20px; }
/* Functional English names remain only for major page/section titles and navigation; small labels are Japanese. */
.theme-shop .section-kicker { font-family:var(--type-ja); letter-spacing:.14em; }
.theme-shop .gallery-section__heading { font: 300 clamp(27px,3.4vw,43px)/1.5 var(--type-ja); letter-spacing:.075em; }
.theme-shop ruby { ruby-align: center; }
.theme-shop rt { font: 400 clamp(10px,.85vw,12px)/1.1 var(--type-ja); letter-spacing:.025em; color:#85766e; }
.theme-shop .product-card h3 ruby rt { font-size:11px; }
.theme-shop .fragrance-line__item { grid-template-columns: 48px minmax(80px,122px) minmax(0,1fr); }
.theme-shop .art-card__index { font-family:var(--type-ja); letter-spacing:.12em; }
.theme-shop .art-card h3 ruby rt { font-size:11px; }
body .page-badge {
  background:rgba(255,253,250,.94); color:#362e2a; text-shadow:none;
  font-size:19px; padding:12px 17px; line-height:1.1;
  border:1px solid rgba(123,105,93,.18); border-radius:4px;
  box-shadow:0 5px 24px rgba(52,42,35,.13); letter-spacing:.13em;
  right:clamp(15px,3vw,48px); bottom:clamp(15px,2vw,26px);
}
/* The builder is a real 2×2×2 choice interface; the product hero photo remains only an example. */
.theme-shop .gift-builder { grid-column:1/-1; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); align-items:start; gap:clamp(28px,4vw,72px); border-block:1px solid var(--rule); padding:clamp(22px,4vw,52px) 0; }
.theme-shop .gift-builder .product-card__image { aspect-ratio:4/5; }
.theme-shop .gift-builder .product-card__image img { object-fit:cover; }
.theme-shop .gift-builder__details { min-width:0; }
.theme-shop .gift-builder__details h3 { font-size:clamp(26px,2.4vw,39px); margin:0 0 12px; }
.theme-shop .gift-builder__note { margin: 14px 0 24px!important; font:300 15.5px/2 var(--type-ja); color:#5b504b; }
.theme-shop .gift-options { display:grid; grid-template-columns:1fr; gap:16px; margin:26px 0; }
.theme-shop .gift-options__field { display:flex; flex-direction:column; gap:9px; font:400 14px/1.6 var(--type-ja); color:#4a3f3a; }
.theme-shop .gift-options__field select { width:100%; box-sizing:border-box; padding:12px 40px 12px 13px; border:1px solid rgba(97,76,67,.3); border-radius:2px; background:rgba(255,252,248,.70); color:#3e332d; font:400 15px var(--type-ja); cursor:pointer; }
.theme-shop .gift-options__field select:focus-visible { outline:2px solid #8a7064; outline-offset:2px; }
.theme-shop .gift-builder__selection-title { font-weight:500; color:#4f423b; margin:18px 0 12px!important; }
.theme-shop .gift-builder__previews { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.theme-shop .gift-builder__preview { min-width:0; }
.theme-shop .gift-builder__preview img { width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border:1px solid rgba(100,83,73,.15); }
.theme-shop .gift-builder__preview span { display:block; margin-top:8px; font:400 12px/1.6 var(--type-ja); }
.theme-shop .gift-builder__footnote { font:300 13px/1.9 var(--type-ja); color:#72645c; margin:15px 0!important; }
.theme-shop .gift-builder__details .product-card__detail { margin-top:20px!important; }
@media(max-width:800px){
 .theme-shop .page-hero { min-height:clamp(350px,70vw,530px); }
 .theme-shop .page-hero::before { background:linear-gradient(90deg,rgba(250,247,241,.96),rgba(250,247,241,.82) 65%,rgba(250,247,241,.45)); }
 .theme-shop .page-hero .subpage-main__title { font-size:clamp(72px,14vw,124px); }
 .theme-shop .gift-builder { grid-template-columns:1fr; }
 .theme-shop .gift-builder .product-card__image { max-height:540px; }
}
@media(max-width:560px){
 .theme-shop .page-hero { min-height:390px; background-position:61% center; }
 .theme-shop .page-hero__content { width:calc(100% - 44px); }
 .theme-shop .page-hero .subpage-main__title { font-size:clamp(61px,17vw,98px); }
 .theme-shop .page-hero .subpage-main__lead { font-size:16px; }
 .theme-shop .page-hero__eyebrow { font-size:12px; }
 .theme-shop .fragrance-line__item { grid-template-columns:35px minmax(62px,90px) minmax(0,1fr); gap:11px; }
 .theme-shop .fragrance-line__name { font-size:clamp(20px,5vw,30px); }
 .theme-shop .gift-builder__previews { gap:8px; }
 .theme-shop .gift-builder__preview span { font-size:11px; }
 .theme-shop .page-badge,.theme-social .page-badge { font-size:17px; padding:10px 13px; }
}
