:root {
  --accent: #d9272e;
  --accent-dark: #b91f25;
  --accent-soft: #fff2f2;
  --ink: #242424;
  --muted: #6d6d6d;
  --line: #dedede;
  --line-soft: #ececec;
  --soft: #f7f7f5;
  --paper: #ffffff;
  --warm: #f7f1ea;
  --success: #287b54;
  --max: 1240px;
  --shadow: 0 12px 36px rgba(30, 30, 30, .08);
  --radius: 8px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.menu-open, body.drawer-open { overflow: hidden; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; height: auto; }
ul, ol { margin: 0; padding: 0; list-style: none; }
p, h1, h2, h3, h4 { margin-top: 0; }
button, a { -webkit-tap-highlight-color: transparent; }

.container { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.section { padding: 58px 0; }
.section--soft { background: var(--soft); }
.section--warm { background: #fbf8f4; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.section-title { margin: 0; font-size: clamp(24px, 2.4vw, 34px); line-height: 1.3; letter-spacing: .02em; }
.section-title small { display: block; margin-top: 7px; color: var(--muted); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.text-link { display: inline-flex; align-items: center; gap: 8px; color: #444; border-bottom: 1px solid #555; font-size: 14px; line-height: 1.45; padding-bottom: 3px; }
.text-link::after { content: "→"; font-size: 15px; }
.kicker { color: var(--accent); font-weight: 700; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.muted { color: var(--muted); }
.only-mobile { display: none !important; }

/* announcement */
.announcement { background: #2b2b2b; color: #fff; font-size: 12px; }
.announcement__inner { min-height: 34px; display: flex; align-items: center; justify-content: center; gap: 14px; text-align: center; }
.announcement strong { font-weight: 700; }
.announcement a { text-decoration: underline; text-underline-offset: 3px; }

/* Header */
.site-header { position: relative; z-index: 50; background: #fff; border-bottom: 1px solid var(--line); }
.site-header__main { min-height: 92px; display: grid; grid-template-columns: 210px minmax(320px, 1fr) auto; align-items: center; gap: 30px; }
.logo { display: inline-flex; align-items: center; gap: 11px; width: max-content; }
.logo img { width: 42px; height: 42px; }
.logo__text { line-height: 1; }
.logo__text strong { display: block; font-family: Arial, sans-serif; font-size: 25px; letter-spacing: .07em; }
.logo__text span { display: block; margin-top: 6px; color: var(--muted); font-size: 10px; letter-spacing: .17em; }
.header-search { display: grid; grid-template-columns: 1fr 52px; min-height: 48px; border: 1px solid #bdbdbd; background: #fff; }
.header-search:focus-within { border-color: var(--accent); box-shadow: 0 0 0 2px rgba(217,39,46,.07); }
.header-search input { min-width: 0; border: 0; outline: 0; padding: 0 18px; background: transparent; color: var(--ink); }
.header-search input::placeholder { color: #929292; }
.header-search button { border: 0; background: var(--accent); color: #fff; cursor: pointer; display: grid; place-items: center; }
.header-search svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; }
.header-actions { display: flex; align-items: stretch; gap: 4px; }
.header-action { width: 65px; min-height: 60px; display: grid; align-content: center; justify-items: center; gap: 4px; color: #3e3e3e; font-size: 10px; border-radius: 4px; }
.header-action:hover { background: var(--soft); }
.header-action svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.cart-badge { position: absolute; transform: translate(12px,-11px); min-width: 18px; height: 18px; padding: 0 5px; border-radius: 20px; background: var(--accent); color: #fff; font-size: 10px; display: grid; place-items: center; }

.global-nav { border-top: 1px solid var(--line-soft); background: #fff; }
.global-nav__inner { display: grid; grid-template-columns: 190px 1fr; }
.nav-category-btn { min-height: 52px; display: flex; align-items: center; justify-content: center; gap: 10px; background: var(--accent); color: #fff; font-weight: 700; font-size: 14px; }
.nav-category-btn svg { width: 19px; height: 19px; stroke: currentColor; fill: none; stroke-width: 2; }
.nav-links { display: flex; align-items: center; justify-content: space-evenly; min-width: 0; }
.nav-links a { min-height: 52px; display: flex; align-items: center; padding: 0 15px; font-size: 14px; font-weight: 600; white-space: nowrap; }
.nav-links a:hover { color: var(--accent); }

/* mobile header */
.mobile-header { display: none; }
.mobile-menu { position: fixed; inset: 0; z-index: 80; pointer-events: none; visibility: hidden; }
.mobile-menu.is-open { pointer-events: auto; visibility: visible; }
.mobile-menu__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.42); opacity: 0; transition: opacity .22s ease; }
.mobile-menu.is-open .mobile-menu__backdrop { opacity: 1; }
.mobile-menu__panel { position: absolute; top: 0; left: 0; width: min(88vw, 390px); height: 100%; overflow-y: auto; background: #fff; transform: translateX(-101%); transition: transform .25s ease; }
.mobile-menu.is-open .mobile-menu__panel { transform: translateX(0); }
.mobile-menu__head { height: 68px; padding: 0 18px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.mobile-menu__close { border: 0; background: transparent; font-size: 28px; cursor: pointer; }
.mobile-menu__body { padding: 18px; }
.mobile-menu__body .header-search { margin-bottom: 18px; }
.mobile-nav-group { border-top: 1px solid var(--line); }
.mobile-nav-group a { min-height: 50px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line-soft); font-size: 14px; }
.mobile-nav-group a::after { content: "›"; color: #888; font-size: 20px; }

/* Hero */
.hero { padding: 26px 0 14px; }
.hero-slider { position: relative; overflow: hidden; background: var(--warm); min-height: 410px; }
.hero-track { display: flex; transition: transform .5s cubic-bezier(.22,.61,.36,1); }
.hero-slide { min-width: 100%; position: relative; }
.hero-slide img { aspect-ratio: 1200/520; object-fit: cover; }
.hero-slide__overlay { position: absolute; left: 7.7%; bottom: 12%; display: inline-flex; align-items: center; gap: 10px; color: #fff; background: rgba(36,36,36,.82); padding: 11px 18px; font-size: 13px; font-weight: 700; }
.hero-slider__button { position: absolute; top: 50%; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.94); box-shadow: 0 5px 20px rgba(0,0,0,.12); cursor: pointer; transform: translateY(-50%); font-size: 22px; }
.hero-slider__button.prev { left: 16px; }
.hero-slider__button.next { right: 16px; }
.hero-dots { position: absolute; left: 50%; bottom: 16px; transform: translateX(-50%); display: flex; gap: 8px; }
.hero-dot { width: 8px; height: 8px; border-radius: 50%; border: 0; background: rgba(40,40,40,.3); padding: 0; cursor: pointer; }
.hero-dot.is-active { width: 24px; border-radius: 10px; background: var(--accent); }

/* service strip */
.service-strip { border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); background: #fff; }
.service-strip__grid { display: grid; grid-template-columns: repeat(4,1fr); }
.service-item { min-height: 74px; display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 11px; padding: 12px 20px; border-right: 1px solid var(--line-soft); }
.service-item:last-child { border-right: 0; }
.service-item svg { width: 28px; height: 28px; fill: none; stroke: var(--accent); stroke-width: 1.7; }
.service-item strong { display: block; font-size: 13px; }
.service-item span { display: block; color: var(--muted); font-size: 11px; line-height: 1.45; }

/* cards */
.product-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 26px 18px; }
.product-card { position: relative; min-width: 0; }
.product-card__media { position: relative; overflow: hidden; background: #f6f4f1; aspect-ratio: 1; border: 1px solid #efefed; }
.product-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.product-card:hover .product-card__media img { transform: scale(1.025); }
.product-card__badge { position: absolute; left: 10px; top: 10px; z-index: 2; padding: 5px 8px; background: var(--accent); color: #fff; font-size: 10px; font-weight: 700; }
.product-card__badge--dark { background: #343434; }
.favorite-btn { position: absolute; right: 8px; top: 8px; z-index: 3; width: 35px; height: 35px; border: 1px solid #e4e4e4; border-radius: 50%; background: rgba(255,255,255,.94); display: grid; place-items: center; cursor: pointer; }
.favorite-btn svg { width: 18px; height: 18px; fill: transparent; stroke: #555; stroke-width: 1.7; transition: .2s ease; }
.favorite-btn.is-active svg { fill: var(--accent); stroke: var(--accent); }
.product-card__shop { margin: 11px 0 4px; color: #777; font-size: 11px; }
.product-card__title { margin: 0; min-height: 48px; font-size: 14px; line-height: 1.65; font-weight: 600; }
.product-card__title a:hover { text-decoration: underline; text-underline-offset: 3px; }
.product-card__price { margin-top: 6px; font-weight: 700; font-size: 16px; }
.product-card__price small { font-size: 11px; font-weight: 500; margin-left: 2px; }
.product-card__meta { margin-top: 6px; display: flex; flex-wrap: wrap; gap: 5px; }
.mini-tag { display: inline-block; border: 1px solid #d7d7d7; padding: 2px 6px; color: #5c5c5c; background: #fff; font-size: 10px; line-height: 1.5; }
.mini-tag--accent { color: var(--accent); border-color: #e6b1b4; background: #fffafa; }

/* campaigns */
.campaign-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.campaign-card { position: relative; overflow: hidden; background: #f6f1eb; }
.campaign-card img { aspect-ratio: 1200/520; object-fit: cover; transition: transform .32s ease; }
.campaign-card:hover img { transform: scale(1.018); }
.campaign-card__caption { padding: 15px 16px 17px; border: 1px solid var(--line-soft); border-top: 0; background: #fff; }
.campaign-card__caption strong { display: block; font-size: 15px; }
.campaign-card__caption span { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; }

/* shops */
.shop-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.shop-card { border: 1px solid var(--line); background: #fff; transition: border-color .2s, transform .2s; }
.shop-card:hover { border-color: #aaa; transform: translateY(-2px); }
.shop-card img { aspect-ratio: 1.7; object-fit: cover; }
.shop-card__body { padding: 14px 16px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.shop-card__body strong { font-size: 15px; letter-spacing: .04em; }
.shop-card__body span { color: var(--muted); font-size: 11px; }

/* categories */
.category-grid { display: grid; grid-template-columns: repeat(8, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.category-card { min-width: 0; padding: 14px 10px 15px; text-align: center; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; }
.category-card:hover { background: #fcf7f7; }
.category-card img { width: 82px; margin: 0 auto 7px; border-radius: 50%; }
.category-card span { display: block; font-size: 12px; font-weight: 650; white-space: nowrap; }

/* ranking */
.ranking-grid { counter-reset: rank; display: grid; grid-template-columns: repeat(5,1fr); gap: 24px 18px; }
.ranking-grid .product-card { counter-increment: rank; }
.ranking-grid .product-card::before { content: counter(rank); position: absolute; z-index: 5; top: 0; left: 0; width: 31px; height: 31px; display: grid; place-items: center; background: #262626; color: #fff; font-family: Georgia, serif; font-size: 15px; }
.ranking-grid .product-card:nth-child(1)::before { background: #a47d27; }
.ranking-grid .product-card:nth-child(2)::before { background: #777f87; }
.ranking-grid .product-card:nth-child(3)::before { background: #9b6542; }

/* editorial gift */
.gift-editorial { display: grid; grid-template-columns: 1.15fr .85fr; min-height: 360px; background: #f4ece7; }
.gift-editorial__media img { height: 100%; min-height: 360px; object-fit: cover; }
.gift-editorial__copy { padding: 54px; align-self: center; }
.gift-editorial__copy h2 { margin: 8px 0 16px; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(27px,3vw,42px); font-weight: 600; line-height: 1.45; }
.gift-editorial__copy p { color: #555; font-size: 14px; }
.btn { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 0 24px; border: 1px solid #333; background: #fff; color: #222; font-size: 13px; font-weight: 700; cursor: pointer; }
.btn:hover { background: #222; color: #fff; }
.btn--accent { border-color: var(--accent); background: var(--accent); color: #fff; }
.btn--accent:hover { border-color: var(--accent-dark); background: var(--accent-dark); }
.btn--dark { background: #262626; border-color: #262626; color: #fff; }
.btn--wide { width: 100%; }
.btn--large { min-height: 56px; font-size: 15px; }

/* news */
.news-list { border-top: 1px solid var(--line); }
.news-item { display: grid; grid-template-columns: 130px 90px 1fr auto; align-items: center; gap: 16px; min-height: 64px; border-bottom: 1px solid var(--line); font-size: 13px; }
.news-item time { color: var(--muted); }
.news-tag { width: max-content; min-width: 70px; padding: 3px 8px; background: #f0f0f0; text-align: center; font-size: 10px; }
.news-item__arrow { color: #999; font-size: 18px; }

/* Guide links */
.guide-strip { background: #fafafa; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.guide-grid { display: grid; grid-template-columns: repeat(5,1fr); }
.guide-link { min-height: 115px; display: grid; place-items: center; align-content: center; gap: 10px; padding: 16px; text-align: center; border-right: 1px solid var(--line); }
.guide-link:first-child { border-left: 1px solid var(--line); }
.guide-link svg { width: 30px; height: 30px; fill: none; stroke: var(--accent); stroke-width: 1.6; }
.guide-link strong { font-size: 13px; }
.guide-link span { color: var(--muted); font-size: 10px; }

/* footer */
.site-footer { background: #272727; color: #fff; }
.footer-main { padding: 48px 0 42px; display: grid; grid-template-columns: 1.25fr repeat(3,1fr); gap: 50px; }
.footer-brand .logo__text span { color: #aaa; }
.footer-brand p { margin: 18px 0; color: #bcbcbc; font-size: 12px; }
.footer-contact { padding-top: 15px; border-top: 1px solid #494949; }
.footer-contact span { color: #aaa; font-size: 11px; }
.footer-contact strong { display: block; font-size: 22px; letter-spacing: .03em; }
.footer-col h3 { margin: 3px 0 13px; font-size: 13px; }
.footer-col a { display: block; padding: 5px 0; color: #c7c7c7; font-size: 12px; }
.footer-col a:hover { color: #fff; }
.footer-bottom { border-top: 1px solid #424242; }
.footer-bottom__inner { min-height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 20px; color: #999; font-size: 10px; }

/* breadcrumb */
.breadcrumb { background: #fafafa; border-bottom: 1px solid var(--line-soft); }
.breadcrumb ol { min-height: 46px; display: flex; align-items: center; gap: 9px; overflow-x: auto; white-space: nowrap; color: #777; font-size: 11px; }
.breadcrumb li + li::before { content: "/"; margin-right: 9px; color: #bbb; }
.breadcrumb a:hover { text-decoration: underline; }

/* listing */
.page-title-block { padding: 40px 0 32px; }
.page-title-block h1 { margin: 0; font-size: clamp(29px, 3vw, 40px); }
.page-title-block p { margin: 9px 0 0; color: var(--muted); font-size: 13px; }
.listing-layout { display: grid; grid-template-columns: 238px minmax(0,1fr); gap: 44px; padding-bottom: 70px; }
.filter-sidebar { min-width: 0; }
.filter-box { border-top: 2px solid #333; }
.filter-group { border-bottom: 1px solid var(--line); padding: 18px 0; }
.filter-group h3 { margin: 0 0 12px; font-size: 13px; }
.filter-options { display: grid; gap: 9px; }
.check-row { display: flex; align-items: center; gap: 9px; font-size: 12px; cursor: pointer; }
.check-row input { width: 16px; height: 16px; accent-color: var(--accent); }
.price-row { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 7px; }
.price-row input { width: 100%; height: 38px; border: 1px solid #ccc; padding: 0 8px; font-size: 12px; }
.filter-clear { margin-top: 13px; border: 0; padding: 0; background: transparent; color: #777; text-decoration: underline; font-size: 11px; cursor: pointer; }
.list-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 18px; border-bottom: 1px solid var(--line); margin-bottom: 25px; }
.result-count { font-size: 13px; }
.result-count strong { font-size: 20px; margin-right: 4px; }
.toolbar-actions { display: flex; align-items: center; gap: 10px; }
.select-wrap { position: relative; }
.select-wrap select { height: 42px; min-width: 175px; appearance: none; border: 1px solid #cfcfcf; background: #fff; padding: 0 38px 0 12px; font-size: 12px; cursor: pointer; }
.select-wrap::after { content: "⌄"; position: absolute; right: 12px; top: 50%; transform: translateY(-55%); pointer-events: none; color: #555; }
.filter-open { display: none; height: 42px; border: 1px solid #333; background: #fff; padding: 0 15px; font-size: 12px; font-weight: 700; }
.listing-main .product-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.pagination { margin-top: 48px; display: flex; justify-content: center; gap: 7px; }
.pagination a, .pagination span { min-width: 39px; height: 39px; display: grid; place-items: center; border: 1px solid #d5d5d5; font-size: 12px; }
.pagination .is-current { border-color: #262626; background: #262626; color: #fff; }

/* mobile filter drawer */
.mobile-drawer { position: fixed; inset: 0; z-index: 100; visibility: hidden; pointer-events: none; }
.mobile-drawer.is-open { visibility: visible; pointer-events: auto; }
.mobile-drawer__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.42); opacity: 0; transition: .2s; }
.mobile-drawer.is-open .mobile-drawer__backdrop { opacity: 1; }
.mobile-drawer__panel { position: absolute; right: 0; top: 0; width: min(90vw, 410px); height: 100%; background: #fff; overflow-y: auto; transform: translateX(101%); transition: .25s; }
.mobile-drawer.is-open .mobile-drawer__panel { transform: translateX(0); }
.mobile-drawer__head { position: sticky; top: 0; z-index: 2; min-height: 62px; display: flex; align-items: center; justify-content: space-between; padding: 0 18px; border-bottom: 1px solid var(--line); background: #fff; }
.mobile-drawer__head h2 { margin: 0; font-size: 16px; }
.drawer-close { border: 0; background: transparent; font-size: 28px; cursor: pointer; }
.mobile-drawer__body { padding: 0 20px 26px; }
.mobile-drawer__foot { position: sticky; bottom: 0; display: grid; grid-template-columns: 1fr 1.5fr; gap: 8px; padding: 12px 18px; border-top: 1px solid var(--line); background: #fff; }

/* search page */
.search-hero { padding: 50px 0 38px; background: #fafafa; border-bottom: 1px solid var(--line); }
.search-hero h1 { margin-bottom: 18px; font-size: 31px; }
.search-form-large { max-width: 760px; display: grid; grid-template-columns: 1fr 120px; border: 1px solid #a9a9a9; background: #fff; }
.search-form-large input { height: 54px; min-width: 0; border: 0; outline: none; padding: 0 18px; }
.search-form-large button { border: 0; background: var(--accent); color: #fff; font-weight: 700; cursor: pointer; }
.suggestion-chips { margin-top: 15px; display: flex; flex-wrap: wrap; gap: 8px; }
.suggestion-chips a { padding: 6px 11px; border: 1px solid #d8d8d8; background: #fff; font-size: 11px; }

/* product detail */
.product-detail { padding: 46px 0 70px; }
.product-detail__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(390px,.95fr); gap: 56px; align-items: start; }
.gallery-main { background: #f6f4f1; border: 1px solid #eceae7; }
.gallery-main img { aspect-ratio: 1; object-fit: cover; }
.gallery-thumbs { margin-top: 12px; display: grid; grid-template-columns: repeat(5,1fr); gap: 9px; }
.gallery-thumb { padding: 0; border: 1px solid #dedede; background: #fff; cursor: pointer; }
.gallery-thumb.is-active { border: 2px solid #333; }
.gallery-thumb img { aspect-ratio: 1; object-fit: cover; }
.product-summary__shop { color: #777; font-size: 12px; }
.product-summary h1 { margin: 8px 0 11px; font-size: clamp(24px,2.6vw,34px); line-height: 1.5; font-weight: 650; }
.product-summary__code { color: #888; font-size: 10px; }
.product-summary__price { margin: 22px 0 2px; font-size: 29px; font-weight: 700; }
.product-summary__price small { font-size: 12px; font-weight: 500; }
.product-summary__tax { color: #777; font-size: 11px; }
.product-notice { margin: 22px 0; padding: 14px 16px; background: #fff8f5; border-left: 3px solid var(--accent); font-size: 12px; }
.stock-row { display: flex; align-items: center; gap: 8px; margin: 14px 0; color: var(--success); font-size: 12px; font-weight: 700; }
.stock-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--success); }
.purchase-row { display: grid; grid-template-columns: 125px 1fr 52px; gap: 9px; margin-top: 18px; }
.qty-stepper { height: 56px; display: grid; grid-template-columns: 36px 1fr 36px; border: 1px solid #cfcfcf; }
.qty-stepper button { border: 0; background: #f6f6f6; cursor: pointer; }
.qty-stepper input { width: 100%; border: 0; text-align: center; outline: none; }
.purchase-row .favorite-btn { position: static; width: 52px; height: 56px; border-radius: 0; }
.product-points { margin-top: 20px; display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid var(--line); }
.product-point { min-height: 92px; padding: 13px 10px; display: grid; place-items: center; align-content: center; text-align: center; border-right: 1px solid var(--line); }
.product-point:last-child { border-right: 0; }
.product-point svg { width: 25px; height: 25px; margin-bottom: 5px; fill: none; stroke: var(--accent); stroke-width: 1.7; }
.product-point strong { font-size: 11px; }
.product-point span { color: #777; font-size: 9px; }
.product-feature { padding: 70px 0; border-top: 1px solid var(--line-soft); }
.feature-block { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 60px; }
.feature-block + .feature-block { margin-top: 55px; }
.feature-block:nth-child(even) .feature-block__media { order: 2; }
.feature-block__media img { aspect-ratio: 1.25; object-fit: cover; background: #f5f1eb; }
.feature-block__copy h2 { margin: 7px 0 15px; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 28px; line-height: 1.5; }
.feature-block__copy p { color: #575757; font-size: 14px; }
.detail-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.detail-table th, .detail-table td { padding: 15px 18px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.detail-table th { width: 180px; background: #fafafa; font-weight: 650; }
.accordion-list { border-top: 1px solid var(--line); }
.accordion-item { border-bottom: 1px solid var(--line); }
.accordion-trigger { width: 100%; min-height: 60px; border: 0; background: #fff; display: flex; align-items: center; justify-content: space-between; padding: 0 5px; font-size: 13px; font-weight: 650; cursor: pointer; text-align: left; }
.accordion-trigger::after { content: "+"; font-size: 20px; font-weight: 400; }
.accordion-item.is-open .accordion-trigger::after { content: "−"; }
.accordion-panel { display: none; padding: 0 5px 20px; color: #666; font-size: 12px; }
.accordion-item.is-open .accordion-panel { display: block; }

/* guide */
.guide-hero { padding: 54px 0; background: #f7f3ee; text-align: center; }
.guide-hero h1 { margin-bottom: 8px; font-size: clamp(31px,3.6vw,45px); }
.guide-hero p { color: #666; font-size: 13px; }
.guide-card-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.guide-card { border: 1px solid var(--line); padding: 28px; min-height: 210px; }
.guide-card__num { color: var(--accent); font-family: Georgia,serif; font-size: 24px; }
.guide-card h2 { margin: 10px 0 8px; font-size: 18px; }
.guide-card p { margin: 0; color: #666; font-size: 12px; }
.guide-card a { display: inline-block; margin-top: 18px; border-bottom: 1px solid #333; font-size: 11px; }
.faq-layout { display: grid; grid-template-columns: 240px 1fr; gap: 50px; }
.faq-nav { position: sticky; top: 20px; align-self: start; border-top: 2px solid #333; }
.faq-nav a { display: block; padding: 12px 5px; border-bottom: 1px solid var(--line); font-size: 12px; }
.faq-content h2 { padding-bottom: 11px; border-bottom: 2px solid #333; font-size: 22px; }
.faq-content section + section { margin-top: 40px; }

/* back to top */
.back-to-top { position: fixed; right: 22px; bottom: 22px; z-index: 30; width: 46px; height: 46px; border: 1px solid #333; background: rgba(255,255,255,.95); display: grid; place-items: center; cursor: pointer; opacity: 0; transform: translateY(10px); pointer-events: none; transition: .2s; }
.back-to-top.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.back-to-top::before { content: "↑"; font-size: 20px; }

@media (max-width: 1120px) {
  .site-header__main { grid-template-columns: 180px minmax(280px,1fr) auto; gap: 18px; }
  .header-action { width: 55px; }
  .nav-links a { padding: 0 8px; font-size: 12px; }
  .product-grid, .ranking-grid { grid-template-columns: repeat(4,1fr); }
  .category-grid { grid-template-columns: repeat(4,1fr); }
  .listing-main .product-grid { grid-template-columns: repeat(3,1fr); }
}

@media (max-width: 860px) {
  .only-desktop { display: none !important; }
  .only-mobile { display: initial !important; }
  .announcement { font-size: 11px; }
  .site-header__main, .global-nav { display: none; }
  .mobile-header { height: 66px; display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: 10px; padding: 0 15px; }
  .mobile-header .logo { justify-self: center; }
  .mobile-header .logo img { width: 33px; height: 33px; }
  .mobile-header .logo__text strong { font-size: 19px; }
  .mobile-header .logo__text span { display: none; }
  .mobile-icon-btn { width: 42px; height: 42px; border: 0; background: transparent; display: grid; place-items: center; cursor: pointer; }
  .mobile-icon-btn svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; }
  .mobile-cart { position: relative; }
  .mobile-cart .cart-badge { transform: translate(11px,-10px); }
  .hero { padding-top: 14px; }
  .hero-slider { min-height: 0; }
  .hero-slide img { aspect-ratio: 1200/600; }
  .service-strip__grid { grid-template-columns: repeat(2,1fr); }
  .service-item:nth-child(2) { border-right: 0; }
  .service-item:nth-child(-n+2) { border-bottom: 1px solid var(--line-soft); }
  .product-grid, .ranking-grid { grid-template-columns: repeat(3,1fr); }
  .campaign-grid, .shop-grid { grid-template-columns: 1fr 1fr; }
  .campaign-card:last-child, .shop-card:last-child { display: none; }
  .gift-editorial { grid-template-columns: 1fr; }
  .gift-editorial__media img { min-height: 0; aspect-ratio: 1.7; }
  .gift-editorial__copy { padding: 34px; }
  .guide-grid { grid-template-columns: repeat(3,1fr); }
  .guide-link:nth-child(n+4) { border-top: 1px solid var(--line); }
  .guide-link:nth-child(4) { border-left: 1px solid var(--line); }
  .footer-main { grid-template-columns: 1.4fr 1fr 1fr; gap: 34px; }
  .footer-col:last-child { display: none; }
  .listing-layout { grid-template-columns: 1fr; gap: 0; }
  .filter-sidebar { display: none; }
  .filter-open { display: inline-flex; align-items: center; }
  .listing-main .product-grid { grid-template-columns: repeat(3,1fr); }
  .product-detail__grid { grid-template-columns: 1fr 1fr; gap: 30px; }
  .feature-block { gap: 30px; }
  .guide-card-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  body { font-size: 15px; }
  .container { width: min(calc(100% - 28px), var(--max)); }
  .section { padding: 42px 0; }
  .section-head { margin-bottom: 20px; align-items: center; }
  .section-title { font-size: 23px; }
  .section-title small { font-size: 10px; }
  .text-link { font-size: 12px; }
  .announcement__inner { min-height: 31px; line-height: 1.3; }
  .hero .container { width: 100%; }
  .hero { padding-top: 0; }
  .hero-slide img { aspect-ratio: 1.28; object-fit: cover; }
  .hero-slide__overlay { left: 18px; bottom: 18px; padding: 9px 12px; font-size: 11px; }
  .hero-slider__button { display: none; }
  .hero-dots { bottom: 11px; }
  .service-strip__grid { grid-template-columns: repeat(2,1fr); }
  .service-item { min-height: 70px; grid-template-columns: 27px 1fr; padding: 10px 11px; gap: 8px; }
  .service-item svg { width: 23px; height: 23px; }
  .service-item strong { font-size: 11px; }
  .service-item span { font-size: 9px; }
  .product-grid, .ranking-grid, .listing-main .product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 12px; }
  .product-card__title { min-height: 44px; font-size: 12.5px; line-height: 1.55; }
  .product-card__shop { font-size: 10px; }
  .product-card__price { font-size: 14px; }
  .campaign-grid { grid-template-columns: 1fr; }
  .campaign-card:last-child { display: block; }
  .shop-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .shop-card:last-child { display: block; grid-column: 1 / -1; }
  .shop-card__body { padding: 10px 11px; }
  .shop-card__body span { display: none; }
  .category-grid { grid-template-columns: repeat(4,1fr); }
  .category-card { padding: 9px 5px 11px; }
  .category-card img { width: 62px; }
  .category-card span { font-size: 10px; }
  .ranking-grid { counter-reset: rank; }
  .gift-editorial__copy { padding: 28px 22px; }
  .gift-editorial__copy h2 { font-size: 27px; }
  .news-item { grid-template-columns: 86px 1fr auto; gap: 8px; padding: 13px 0; min-height: 0; }
  .news-tag { display: none; }
  .news-item time { font-size: 10px; }
  .news-item a { font-size: 12px; line-height: 1.5; }
  .guide-grid { grid-template-columns: repeat(2,1fr); }
  .guide-link { min-height: 100px; }
  .guide-link:nth-child(odd) { border-left: 1px solid var(--line); }
  .guide-link:nth-child(n+3) { border-top: 1px solid var(--line); }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 28px 22px; padding: 36px 0; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-col:last-child { display: block; }
  .footer-bottom__inner { min-height: 62px; flex-direction: column; align-items: flex-start; justify-content: center; gap: 3px; }
  .page-title-block { padding: 30px 0 24px; }
  .page-title-block h1 { font-size: 28px; }
  .list-toolbar { align-items: flex-end; }
  .toolbar-actions { flex-direction: column-reverse; align-items: stretch; width: 54%; }
  .select-wrap select { min-width: 0; width: 100%; }
  .filter-open { width: 100%; justify-content: center; }
  .result-count { align-self: flex-start; }
  .pagination { margin-top: 36px; }
  .search-hero { padding: 35px 0 28px; }
  .search-form-large { grid-template-columns: 1fr 78px; }
  .search-form-large button { font-size: 12px; }
  .product-detail { padding-top: 26px; }
  .product-detail__grid { grid-template-columns: 1fr; gap: 30px; }
  .product-summary h1 { font-size: 24px; }
  .purchase-row { grid-template-columns: 112px 1fr 48px; }
  .qty-stepper, .purchase-row .favorite-btn { height: 52px; }
  .product-points { grid-template-columns: repeat(3,1fr); }
  .product-point { min-height: 80px; padding-inline: 5px; }
  .feature-block { grid-template-columns: 1fr; gap: 20px; }
  .feature-block:nth-child(even) .feature-block__media { order: 0; }
  .feature-block__copy h2 { font-size: 24px; }
  .detail-table th, .detail-table td { display: block; width: 100%; padding: 11px 12px; }
  .detail-table th { border-bottom: 0; }
  .detail-table td { border-top: 0; }
  .guide-card-grid { grid-template-columns: 1fr; }
  .faq-layout { grid-template-columns: 1fr; gap: 25px; }
  .faq-nav { position: static; }
  .back-to-top { width: 42px; height: 42px; right: 14px; bottom: 14px; }
}

@media (max-width: 380px) {
  .container { width: min(calc(100% - 22px), var(--max)); }
  .mobile-header { padding-inline: 10px; }
  .logo__text strong { letter-spacing: .03em; }
  .product-grid, .ranking-grid, .listing-main .product-grid { gap-inline: 9px; }
  .category-card span { white-space: normal; line-height: 1.35; min-height: 27px; }
  .purchase-row { grid-template-columns: 104px 1fr 46px; gap: 6px; }
  .btn--large { font-size: 13px; padding-inline: 12px; }
}

/* CommercePro dynamic HINATA layer */
.hinata-jp-shop { --cp-brand:var(--accent); --cp-brand-strong:var(--accent-dark); }
.hinata-jp-shop main { min-height:45vh; }
.hinata-jp-shop .logo:not(:has(img)) { min-width:180px; }
.hinata-jp-shop .logo img { object-fit:contain; }
.hinata-jp-shop .site-header__main .logo img { max-width:180px; width:auto; max-height:54px; height:auto; }
.hinata-jp-shop .header-action { position:relative; }
.hinata-jp-shop .header-action .cart-badge { top:8px; right:8px; transform:none; }
.hinata-jp-shop .hinata-product-badges { position:absolute; top:10px; left:10px; z-index:4; display:flex; flex-direction:column; align-items:flex-start; gap:5px; pointer-events:none; }
.hinata-jp-shop .hinata-product-badge { display:inline-flex; align-items:center; min-height:22px; padding:4px 8px; background:var(--accent); color:#fff; font-size:10px; line-height:1; font-weight:700; letter-spacing:.04em; white-space:nowrap; box-shadow:0 2px 8px rgba(0,0,0,.07); }
.hinata-jp-shop .hinata-product-badge.is-dark { background:#343434; }
.hinata-jp-shop .product-card__media > .favorite-btn { text-decoration:none; }
.hinata-jp-shop .product-card__price del { margin-left:7px; color:#888; font-size:12px; font-weight:500; }
.hinata-jp-shop .hinata-media-fallback,.hinata-jp-shop .hinata-category-fallback,.hinata-jp-shop .hinata-brand-fallback,.hinata-jp-shop .hinata-editorial-fallback { width:100%; height:100%; min-height:120px; display:grid; place-items:center; background:linear-gradient(135deg,#f9f5f0,#eee7df); color:#786b61; font-weight:700; letter-spacing:.08em; text-align:center; padding:20px; }
.hinata-jp-shop .hinata-hero-copy { position:absolute; left:7.5%; bottom:10%; z-index:2; width:min(520px,70%); color:#fff; background:rgba(35,35,35,.82); padding:18px 22px; }
.hinata-jp-shop .hinata-hero-copy b { display:block; font-size:clamp(20px,2.6vw,34px); line-height:1.35; }
.hinata-jp-shop .hinata-hero-copy small { display:block; margin-top:7px; font-size:13px; line-height:1.6; }
.hinata-jp-shop .hinata-hero-copy em { display:inline-block; margin-top:12px; font-size:12px; font-style:normal; font-weight:700; }
.hinata-jp-shop .hinata-campaign-media { aspect-ratio:16/9; overflow:hidden; background:#f4eee8; }
.hinata-jp-shop .hinata-campaign-media img { height:100%; object-fit:cover; }
.hinata-jp-shop .hinata-campaign-media > span { width:100%; height:100%; display:grid; place-items:center; font-size:22px; font-weight:700; padding:24px; text-align:center; }
.hinata-jp-shop .shop-card__media { overflow:hidden; }
.hinata-jp-shop .shop-card__media img { width:100%; height:100%; object-fit:contain; padding:28px; background:#fff; }
.hinata-jp-shop .category-card p { margin:8px 0 0; color:var(--muted); font-size:11px; line-height:1.55; }
.hinata-jp-shop .hinata-ranking-item { position:relative; min-width:0; }
.hinata-jp-shop .rank-number { position:absolute; z-index:8; left:8px; top:8px; width:28px; height:28px; display:grid; place-items:center; background:#242424; color:#fff; font-family:Georgia,serif; font-size:13px; }
.hinata-jp-shop .hinata-ranking-item .hinata-product-badges { top:44px; }
.hinata-jp-shop .hinata-custom-grid { display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; }
.hinata-jp-shop .hinata-custom-grid.no-image { grid-template-columns:1fr; }
.hinata-jp-shop .hinata-custom-media img { aspect-ratio:4/3; object-fit:cover; }
.hinata-jp-shop .hinata-custom-copy h2 { font-size:clamp(25px,3vw,40px); line-height:1.35; margin:8px 0 18px; }
.hinata-jp-shop .hinata-custom-copy p { color:#606060; }

/* listing */
.hinata-jp-shop .page-title-block { padding:46px 0 38px; background:#f7f3ee; border-bottom:1px solid var(--line-soft); }
.hinata-jp-shop .page-title-block h1 { margin:5px 0 8px; font-size:clamp(30px,3.6vw,44px); line-height:1.25; }
.hinata-jp-shop .page-title-block p { margin:0; max-width:760px; color:#666; font-size:13px; }
.hinata-jp-shop .filter-sidebar > h2 { font-size:16px; margin:0 0 14px; }
.hinata-jp-shop .filter-link { display:block; padding:7px 0; color:#555; font-size:12px; border-bottom:1px dotted #e8e8e8; }
.hinata-jp-shop .filter-link:hover { color:var(--accent); }
.hinata-jp-shop .hinata-empty { padding:50px 24px; border:1px solid var(--line); background:#fafafa; text-align:center; }
.hinata-jp-shop .hinata-empty h2 { font-size:20px; }
.hinata-jp-shop .search-hero { background:#f7f3ee; }
.hinata-jp-shop .suggestion-chips a:hover { border-color:var(--accent); color:var(--accent); }

/* brand directories */
.hinata-jp-shop .hinata-brand-hero__grid { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:40px; align-items:end; }
.hinata-jp-shop .hinata-brand-logo { width:auto; max-width:190px; max-height:72px; object-fit:contain; margin-bottom:18px; }
.hinata-jp-shop .hinata-brand-meta { min-width:150px; text-align:right; }
.hinata-jp-shop .hinata-brand-meta strong { display:block; font:700 34px/1 Georgia,serif; }
.hinata-jp-shop .hinata-brand-meta span { display:block; margin:5px 0 12px; color:#777; font-size:10px; letter-spacing:.1em; }
.hinata-jp-shop .hinata-brand-story { max-width:900px; }
.hinata-jp-shop .hinata-brand-directory { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.hinata-jp-shop .hinata-brand-directory-card { min-width:0; border:1px solid var(--line); background:#fff; padding:22px; transition:.2s ease; }
.hinata-jp-shop .hinata-brand-directory-card:hover { border-color:#aaa; transform:translateY(-2px); }
.hinata-jp-shop .hinata-brand-directory-logo { height:130px; display:grid; place-items:center; background:#faf9f7; margin-bottom:18px; }
.hinata-jp-shop .hinata-brand-directory-logo img { width:80%; height:80%; object-fit:contain; }
.hinata-jp-shop .hinata-brand-directory-logo span { padding:16px; font-size:17px; font-weight:700; text-align:center; }
.hinata-jp-shop .hinata-brand-directory-card h2 { margin:0 0 7px; font-size:16px; }
.hinata-jp-shop .hinata-brand-directory-card p { margin:0; color:#777; font-size:11px; line-height:1.6; }

/* two-column product gallery */
.hinata-jp-shop .product-detail { display:block!important; width:100%!important; max-width:none!important; grid-template-columns:none!important; gap:0!important; }
.hinata-jp-shop .product-detail__grid { grid-template-columns:minmax(0,1.12fr) minmax(370px,.88fr); gap:48px; }
.hinata-jp-shop .hinata-product-gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; align-items:start; }
.hinata-jp-shop .hinata-gallery-tile { position:relative; width:100%; aspect-ratio:1; overflow:hidden; border:1px solid #eceae7; background:#f6f4f1; padding:0; cursor:zoom-in; }
.hinata-jp-shop .hinata-gallery-tile img { width:100%; height:100%; object-fit:contain; }
.hinata-jp-shop .hinata-gallery-tile > span { position:absolute; right:9px; bottom:9px; width:30px; height:30px; border-radius:50%; display:grid; place-items:center; background:rgba(255,255,255,.94); border:1px solid #ddd; font-size:16px; }
.hinata-jp-shop .product-summary { position:sticky; top:18px; }
.hinata-jp-shop .hinata-product-summary { margin:18px 0; color:#555; font-size:13px; line-height:1.8; }
.hinata-jp-shop .product-summary__price del { margin-left:10px; color:#888; font-size:15px; font-weight:500; }
.hinata-jp-shop .stock-dot.is-out { background:#b91f25; }
.hinata-jp-shop .hinata-buy-form fieldset { min-width:0; }
.hinata-jp-shop .hinata-variant { margin:20px 0; padding:0; border:0; }
.hinata-jp-shop .hinata-variant legend { margin-bottom:9px; font-size:11px; font-weight:700; letter-spacing:.05em; }
.hinata-jp-shop .hinata-variant-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.hinata-jp-shop .hinata-variant-grid label { position:relative; min-width:0; }
.hinata-jp-shop .hinata-variant-grid input { position:absolute; opacity:0; pointer-events:none; }
.hinata-jp-shop .hinata-variant-grid span { min-height:58px; display:grid; align-content:center; gap:2px; border:1px solid #d8d8d8; padding:8px 10px; cursor:pointer; }
.hinata-jp-shop .hinata-variant-grid input:checked + span { border:2px solid var(--accent); background:var(--accent-soft); }
.hinata-jp-shop .hinata-variant-grid input:disabled + span { opacity:.45; cursor:not-allowed; }
.hinata-jp-shop .hinata-variant-grid b { font-size:11px; }
.hinata-jp-shop .hinata-variant-grid small { color:#777; font-size:9px; }
.hinata-jp-shop .hinata-qty { grid-template-columns:1fr; }
.hinata-jp-shop .hinata-qty input { height:54px; width:100%; border:0; text-align:center; }
.hinata-jp-shop .hinata-detail-favorite { position:static; width:52px; height:56px; border-radius:0; }
.hinata-jp-shop .hinata-quote-add { width:100%; margin-top:9px; min-height:46px; }
.hinata-jp-shop .hinata-secondary-actions { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:17px; font-size:11px; }
.hinata-jp-shop .hinata-secondary-actions button { border:0; background:none; padding:0; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.hinata-jp-shop .hinata-lightbox[hidden] { display:none; }
.hinata-jp-shop .hinata-lightbox { position:fixed; inset:0; z-index:120; display:grid; place-items:center; padding:30px; }
.hinata-jp-shop .hinata-lightbox__backdrop { position:absolute; inset:0; border:0; background:rgba(0,0,0,.72); }
.hinata-jp-shop .hinata-lightbox__card { position:relative; z-index:2; width:min(900px,92vw); max-height:90vh; background:#fff; padding:18px; }
.hinata-jp-shop .hinata-lightbox__card > button { position:absolute; right:8px; top:8px; z-index:3; width:38px; height:38px; border:1px solid #ddd; background:#fff; font-size:22px; cursor:pointer; }
.hinata-jp-shop .hinata-lightbox__card img { width:100%; max-height:calc(90vh - 36px); object-fit:contain; }
.hinata-jp-shop .hinata-description-layout { display:grid; grid-template-columns:270px minmax(0,1fr); gap:54px; align-items:start; }
.hinata-jp-shop .hinata-description-meta { border-top:2px solid #333; }
.hinata-jp-shop .hinata-description-meta > div { padding:14px 4px; border-bottom:1px solid var(--line); }
.hinata-jp-shop .hinata-description-meta span { display:block; color:#888; font-size:9px; letter-spacing:.09em; text-transform:uppercase; }
.hinata-jp-shop .hinata-description-meta strong { font-size:12px; }
.hinata-jp-shop .hinata-description-meta p { margin:4px 0 0; display:flex; flex-wrap:wrap; gap:5px 10px; font-size:11px; }
.hinata-jp-shop .hinata-product-description { min-width:0; font-size:14px; line-height:1.9; }

/* Journal */
.hinata-jp-shop .hinata-journal-hero { text-align:left; }
.hinata-jp-shop .hinata-journal-categories { border-bottom:1px solid var(--line); background:#fff; }
.hinata-jp-shop .hinata-journal-categories .container { min-height:54px; display:flex; align-items:center; gap:0; overflow-x:auto; }
.hinata-jp-shop .hinata-journal-categories a { min-height:54px; display:flex; align-items:center; padding:0 18px; border-right:1px solid var(--line-soft); white-space:nowrap; font-size:12px; }
.hinata-jp-shop .hinata-journal-categories a.is-current,.hinata-jp-shop .hinata-journal-categories a:hover { color:var(--accent); font-weight:700; }
.hinata-jp-shop .hinata-editorial-feature { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr); gap:24px; padding:44px 0 20px; }
.hinata-jp-shop .hinata-editorial-lead { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr); border:1px solid var(--line); background:#fff; }
.hinata-jp-shop .hinata-editorial-lead__media { min-height:420px; background:#f3efe9; overflow:hidden; }
.hinata-jp-shop .hinata-editorial-lead__media img { width:100%; height:100%; object-fit:cover; }
.hinata-jp-shop .hinata-editorial-lead__copy { padding:38px; align-self:center; }
.hinata-jp-shop .hinata-editorial-lead__copy h2 { margin:8px 0 13px; font-size:clamp(24px,2.7vw,38px); line-height:1.45; }
.hinata-jp-shop .hinata-editorial-lead__copy p { color:#666; font-size:13px; }
.hinata-jp-shop .hinata-editorial-lead__copy small { display:block; color:#888; margin-bottom:14px; }
.hinata-jp-shop .hinata-editorial-secondary { display:grid; grid-template-rows:1fr 1fr; gap:16px; }
.hinata-jp-shop .hinata-editorial-secondary article { display:grid; grid-template-columns:120px 1fr; gap:14px; align-items:center; border:1px solid var(--line); padding:12px; background:#fff; }
.hinata-jp-shop .hinata-editorial-secondary__media { aspect-ratio:1; overflow:hidden; background:#f5f2ed; }
.hinata-jp-shop .hinata-editorial-secondary__media img { width:100%; height:100%; object-fit:cover; }
.hinata-jp-shop .hinata-editorial-secondary h3 { margin:5px 0; font-size:14px; line-height:1.55; }
.hinata-jp-shop .hinata-editorial-secondary small { color:#888; font-size:10px; }
.hinata-jp-shop .hinata-story-grid-five { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:26px 16px; }
.hinata-jp-shop .hinata-story-card { min-width:0; }
.hinata-jp-shop .hinata-story-media { display:block; aspect-ratio:4/3; overflow:hidden; background:#f3f1ed; margin-bottom:11px; }
.hinata-jp-shop .hinata-story-media img { width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.hinata-jp-shop .hinata-story-card:hover .hinata-story-media img { transform:scale(1.025); }
.hinata-jp-shop .hinata-story-card small { color:#8a8a8a; font-size:9px; }
.hinata-jp-shop .hinata-story-card h3 { margin:6px 0; font-size:13px; line-height:1.6; }
.hinata-jp-shop .hinata-story-card p { margin:0; color:#777; font-size:10px; line-height:1.6; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.hinata-jp-shop .hinata-article-header { max-width:880px; padding:48px 0 28px; }
.hinata-jp-shop .hinata-article-header h1 { margin:7px 0 15px; font-size:clamp(32px,4.4vw,58px); line-height:1.3; }
.hinata-jp-shop .hinata-article-header p { color:#666; font-size:15px; max-width:760px; }
.hinata-jp-shop .hinata-article-header small { color:#888; }
.hinata-jp-shop .hinata-article-hero { margin:0 0 48px; }
.hinata-jp-shop .hinata-article-hero img { aspect-ratio:16/7; object-fit:cover; }
.hinata-jp-shop .hinata-article-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:60px; align-items:start; }
.hinata-jp-shop .hinata-article-prose { min-width:0; font-size:15px; line-height:2; }
.hinata-jp-shop .hinata-article-side { position:sticky; top:20px; display:grid; gap:28px; }
.hinata-jp-shop .hinata-article-side > section { border-top:2px solid #333; padding-top:12px; }
.hinata-jp-shop .hinata-article-side h3 { margin:0 0 12px; font-size:13px; }
.hinata-jp-shop .hinata-side-story { display:grid; grid-template-columns:78px 1fr; gap:10px; align-items:center; padding:9px 0; border-bottom:1px solid var(--line-soft); font-size:11px; line-height:1.5; }
.hinata-jp-shop .hinata-side-story img { width:78px; aspect-ratio:1.25; object-fit:cover; }
.hinata-jp-shop .hinata-side-heading { display:flex; align-items:center; justify-content:space-between; }
.hinata-jp-shop .hinata-side-heading a { font-size:9px; text-decoration:underline; }
.hinata-jp-shop .hinata-side-topics,.hinata-jp-shop .hinata-article-inline-topics { display:flex; flex-wrap:wrap; gap:7px; }
.hinata-jp-shop .hinata-side-topics a,.hinata-jp-shop .hinata-article-inline-topics a { border:1px solid #ddd; padding:5px 8px; font-size:10px; }
.hinata-jp-shop .hinata-article-inline-topics { margin-top:36px; padding-top:20px; border-top:1px solid var(--line); }
.hinata-jp-shop .hinata-side-shop { background:#f7f3ee; padding:20px!important; border:0!important; }
.hinata-jp-shop .hinata-prev-next { margin:58px 0; display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.hinata-jp-shop .hinata-prev-next a { min-height:110px; padding:18px; display:grid; align-content:center; gap:5px; }
.hinata-jp-shop .hinata-prev-next a.next { text-align:right; border-left:1px solid var(--line); }
.hinata-jp-shop .hinata-prev-next small { color:#888; font-size:9px; }
.hinata-jp-shop .hinata-prev-next b { font-size:12px; }

/* topics */
.hinata-jp-shop .hinata-topic-summary { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); margin-bottom:28px; }
.hinata-jp-shop .hinata-topic-summary > div { padding:20px; text-align:center; border-right:1px solid var(--line); }
.hinata-jp-shop .hinata-topic-summary > div:last-child { border-right:0; }
.hinata-jp-shop .hinata-topic-summary strong { display:block; font:700 30px/1 Georgia,serif; }
.hinata-jp-shop .hinata-topic-summary span { color:#888; font-size:9px; letter-spacing:.1em; }
.hinata-jp-shop .hinata-topic-directory { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.hinata-jp-shop .hinata-topic-card { min-height:110px; display:grid; grid-template-columns:38px 1fr auto; align-items:center; gap:12px; border:1px solid var(--line); padding:18px; }
.hinata-jp-shop .hinata-topic-index { color:var(--accent); font-family:Georgia,serif; }
.hinata-jp-shop .hinata-topic-card h2 { margin:0 0 4px; font-size:15px; }
.hinata-jp-shop .hinata-topic-card p { margin:0; color:#888; font-size:9px; }
.hinata-jp-shop .hinata-topic-counts { display:flex; gap:22px; margin-top:16px; }
.hinata-jp-shop .hinata-topic-counts span { font-size:10px; }
.hinata-jp-shop .hinata-topic-counts b { margin-right:4px; font-size:20px; }
.hinata-jp-shop .hinata-related-topics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.hinata-jp-shop .hinata-related-topics a { border:1px solid var(--line); padding:16px; display:grid; gap:5px; }
.hinata-jp-shop .hinata-related-topics span { color:#888; font-size:9px; }

/* Auth and CommercePro public pages */
.hinata-jp-shop .hinata-auth-shell { width:min(560px,100%); margin:auto; border:1px solid var(--line); background:#fff; padding:34px; }
.hinata-jp-shop .hinata-auth-form { display:grid; gap:16px; }
.hinata-jp-shop .hinata-auth-form label { display:grid; gap:6px; font-size:12px; font-weight:600; }
.hinata-jp-shop .hinata-auth-form input { width:100%; min-height:50px; border:1px solid #ccc; padding:0 13px; outline:0; }
.hinata-jp-shop .hinata-auth-form input:focus { border-color:var(--accent); box-shadow:0 0 0 2px rgba(217,39,46,.08); }
.hinata-jp-shop .hinata-auth-links { display:flex; justify-content:space-between; gap:15px; font-size:11px; }
.hinata-jp-shop .hinata-auth-links.is-stack { display:grid; justify-content:stretch; }
.hinata-jp-shop .hinata-auth-notice { margin-bottom:16px; padding:12px 14px; background:#f7f7f5; font-size:12px; }
.hinata-jp-shop .hinata-auth-notice.is-error { background:#fff0f0; color:#a41919; }
.hinata-jp-shop .hinata-auth-notice.is-success { background:#edf8f1; color:#236c49; }
.hinata-jp-shop .hinata-social { margin-top:24px; padding-top:20px; border-top:1px solid var(--line); display:grid; gap:8px; }
.hinata-jp-shop .hinata-social > span { color:#888; font-size:9px; letter-spacing:.1em; }
.hinata-jp-shop .hinata-social a { border:1px solid var(--line); padding:10px; text-align:center; font-size:11px; }
.hinata-jp-shop .page-hero.compact { width:min(calc(100% - 40px),var(--max)); margin:34px auto 0; padding:34px clamp(24px,4vw,58px)!important; background:#f7f3ee; border:1px solid #eee5dc; }
.hinata-jp-shop .page-hero.compact .eyebrow { display:block; margin-bottom:6px; color:var(--accent); font-size:10px; letter-spacing:.12em; font-weight:700; text-transform:uppercase; }
.hinata-jp-shop .page-hero.compact h1 { margin:0; font-size:clamp(27px,3.4vw,42px); line-height:1.3; }
.hinata-jp-shop .page-hero.compact p { max-width:760px; margin:10px 0 0; color:#666; font-size:13px; }
.hinata-jp-shop .commerce-panel,.hinata-jp-shop .form-card,.hinata-jp-shop .center-message,.hinata-jp-shop .tracking-card { border:1px solid var(--line)!important; border-radius:0!important; background:#fff!important; box-shadow:none!important; }
.hinata-jp-shop .commerce-panel,.hinata-jp-shop .form-card { padding:24px!important; }
.hinata-jp-shop .checkout-layout,.hinata-jp-shop .commerce-checkout,.hinata-jp-shop .account-layout,.hinata-jp-shop .support-layout,.hinata-jp-shop .request-layout,.hinata-jp-shop .narrow-commerce-page,.hinata-jp-shop .narrow-page,.hinata-jp-shop .compare-page,.hinata-jp-shop .article-layout.page-layout { width:min(calc(100% - 40px),var(--max)); margin:32px auto 58px!important; }
.hinata-jp-shop .field input,.hinata-jp-shop .field select,.hinata-jp-shop .field textarea,.hinata-jp-shop .commerce-fields input,.hinata-jp-shop .commerce-fields select,.hinata-jp-shop .commerce-fields textarea,.hinata-jp-shop .form-card input,.hinata-jp-shop .form-card select,.hinata-jp-shop .form-card textarea { border-radius:0!important; border:1px solid #cfcfcf!important; min-height:46px; }
.hinata-jp-shop .button,.hinata-jp-shop button.button,.hinata-jp-shop .btn { border-radius:0!important; font-weight:700!important; }
.hinata-jp-shop .button.primary,.hinata-jp-shop .btn--accent { background:var(--accent)!important; border-color:var(--accent)!important; color:#fff!important; }
.hinata-jp-shop .button.primary:hover,.hinata-jp-shop .btn--accent:hover { background:var(--accent-dark)!important; border-color:var(--accent-dark)!important; }
.hinata-jp-shop .data-table { border-radius:0!important; }
.hinata-jp-shop .status-badge { border-radius:2px!important; }
.hinata-jp-shop .prose,.hinata-jp-shop .rich-content { line-height:1.9; }
.hinata-jp-shop .rich-content h2,.hinata-jp-shop .prose h2 { margin:2em 0 .7em; padding-bottom:.45em; border-bottom:2px solid #333; font-size:1.55em; }
.hinata-jp-shop .rich-content h3,.hinata-jp-shop .prose h3 { margin:1.7em 0 .6em; font-size:1.25em; }
.hinata-jp-shop .rich-content img,.hinata-jp-shop .prose img { height:auto; margin:22px 0; }
.hinata-jp-shop .rich-content table,.hinata-jp-shop .prose table { width:100%; border-collapse:collapse; display:block; overflow-x:auto; }
.hinata-jp-shop .rich-content th,.hinata-jp-shop .rich-content td,.hinata-jp-shop .prose th,.hinata-jp-shop .prose td { border:1px solid #ddd; padding:10px; }
.hinata-jp-shop .rich-content blockquote,.hinata-jp-shop .prose blockquote { margin:24px 0; padding:15px 20px; border-left:3px solid var(--accent); background:#faf7f3; }

/* Newsletter */
.hinata-jp-shop .hinata-newsletter { border-top:1px solid var(--line); background:#f7f3ee; }
.hinata-jp-shop .hinata-newsletter__inner { min-height:150px; display:grid; grid-template-columns:minmax(260px,.8fr) minmax(360px,1.2fr); gap:50px; align-items:center; }
.hinata-jp-shop .hinata-newsletter h2 { margin:4px 0 5px; font-size:24px; }
.hinata-jp-shop .hinata-newsletter p { margin:0; color:#666; font-size:11px; }
.hinata-jp-shop .hinata-newsletter form { display:grid!important; grid-template-columns:minmax(0,1fr) 130px!important; gap:0!important; align-items:stretch!important; }
.hinata-jp-shop .hinata-newsletter input[type=email] { width:100%!important; min-width:0!important; height:50px!important; border:1px solid #bbb!important; border-right:0!important; border-radius:0!important; padding:0 14px!important; background:#fff!important; }
.hinata-jp-shop .hinata-newsletter button { height:50px!important; border:1px solid var(--accent)!important; border-radius:0!important; background:var(--accent)!important; color:#fff!important; font-weight:700!important; cursor:pointer; }
.hinata-jp-shop .hinata-newsletter .cp-hp { position:absolute!important; left:-9999px!important; }
.hinata-jp-shop .hinata-sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }

@media (max-width:1120px){
  .hinata-jp-shop .hinata-brand-directory { grid-template-columns:repeat(3,1fr); }
  .hinata-jp-shop .hinata-story-grid-five { grid-template-columns:repeat(4,1fr); }
  .hinata-jp-shop .hinata-topic-directory { grid-template-columns:repeat(2,1fr); }
  .hinata-jp-shop .hinata-related-topics { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:860px){
  .hinata-jp-shop .product-detail__grid { grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr); gap:28px; }
  .hinata-jp-shop .hinata-description-layout { grid-template-columns:220px minmax(0,1fr); gap:34px; }
  .hinata-jp-shop .hinata-editorial-feature { grid-template-columns:1fr; }
  .hinata-jp-shop .hinata-editorial-lead { grid-template-columns:1.15fr .85fr; }
  .hinata-jp-shop .hinata-editorial-secondary { grid-template-columns:1fr 1fr; grid-template-rows:auto; }
  .hinata-jp-shop .hinata-article-layout { grid-template-columns:1fr; gap:38px; }
  .hinata-jp-shop .hinata-article-side { position:static; grid-template-columns:repeat(2,1fr); }
  .hinata-jp-shop .hinata-brand-directory { grid-template-columns:repeat(2,1fr); }
  .hinata-jp-shop .hinata-newsletter__inner { grid-template-columns:1fr 1.2fr; gap:30px; }
}
@media (max-width:768px){
  .hinata-jp-shop .hinata-story-grid-five { grid-template-columns:repeat(3,1fr); }
  .hinata-jp-shop .hinata-related-topics { grid-template-columns:repeat(2,1fr); }
  .hinata-jp-shop .hinata-custom-grid { grid-template-columns:1fr; gap:24px; }
  .hinata-jp-shop .page-hero.compact { width:min(calc(100% - 28px),var(--max)); margin-top:20px; padding:26px 24px!important; }
}
@media (max-width:640px){
  .hinata-jp-shop .hinata-hero-copy { left:14px; bottom:15px; width:calc(100% - 28px); padding:13px 14px; }
  .hinata-jp-shop .hinata-hero-copy b { font-size:20px; }
  .hinata-jp-shop .hinata-hero-copy small { display:none; }
  .hinata-jp-shop .hinata-product-gallery-grid { grid-template-columns:1fr; gap:8px; }
  .hinata-jp-shop .product-detail__grid { grid-template-columns:1fr; gap:26px; }
  .hinata-jp-shop .product-summary { position:static; }
  .hinata-jp-shop .hinata-description-layout { grid-template-columns:1fr; gap:28px; }
  .hinata-jp-shop .hinata-variant-grid { grid-template-columns:1fr; }
  .hinata-jp-shop .hinata-editorial-lead { grid-template-columns:1fr; }
  .hinata-jp-shop .hinata-editorial-lead__media { min-height:0; aspect-ratio:4/3; }
  .hinata-jp-shop .hinata-editorial-lead__copy { padding:24px; }
  .hinata-jp-shop .hinata-editorial-secondary { grid-template-columns:1fr; }
  .hinata-jp-shop .hinata-story-grid-five { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 12px; }
  .hinata-jp-shop .hinata-topic-directory,.hinata-jp-shop .hinata-related-topics { grid-template-columns:1fr; }
  .hinata-jp-shop .hinata-topic-summary { grid-template-columns:1fr 1fr 1fr; }
  .hinata-jp-shop .hinata-topic-summary > div { padding:14px 7px; }
  .hinata-jp-shop .hinata-article-header { padding:32px 0 20px; }
  .hinata-jp-shop .hinata-article-header h1 { font-size:30px; }
  .hinata-jp-shop .hinata-article-hero img { aspect-ratio:4/3; }
  .hinata-jp-shop .hinata-article-side { grid-template-columns:1fr; }
  .hinata-jp-shop .hinata-prev-next { grid-template-columns:1fr; }
  .hinata-jp-shop .hinata-prev-next a.next { border-left:0; border-top:1px solid var(--line); text-align:left; }
  .hinata-jp-shop .hinata-brand-hero__grid { grid-template-columns:1fr; }
  .hinata-jp-shop .hinata-brand-meta { text-align:left; }
  .hinata-jp-shop .hinata-brand-directory { grid-template-columns:1fr 1fr; gap:10px; }
  .hinata-jp-shop .hinata-brand-directory-card { padding:14px; }
  .hinata-jp-shop .hinata-brand-directory-logo { height:95px; }
  .hinata-jp-shop .hinata-newsletter__inner { grid-template-columns:1fr; gap:16px; padding:28px 0; }
  .hinata-jp-shop .hinata-newsletter form { grid-template-columns:1fr!important; gap:8px!important; }
  .hinata-jp-shop .hinata-newsletter input[type=email] { border-right:1px solid #bbb!important; }
  .hinata-jp-shop .hinata-auth-shell { padding:22px 18px; }
  .hinata-jp-shop .hinata-auth-links { flex-direction:column; }
  .hinata-jp-shop .checkout-layout,.hinata-jp-shop .commerce-checkout,.hinata-jp-shop .account-layout,.hinata-jp-shop .support-layout,.hinata-jp-shop .request-layout,.hinata-jp-shop .narrow-commerce-page,.hinata-jp-shop .narrow-page,.hinata-jp-shop .compare-page,.hinata-jp-shop .article-layout.page-layout { width:min(calc(100% - 28px),var(--max)); margin:24px auto 42px!important; }
}
@media (max-width:430px){
  .hinata-jp-shop .hinata-story-grid-five { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hinata-jp-shop .hinata-brand-directory { grid-template-columns:1fr; }
  .hinata-jp-shop .product-card__title { font-size:13px; }
  .hinata-jp-shop .product-card__price { font-size:15px; }
}


/* HINATA component completion: every dynamic wrapper receives explicit theme styling. */
.hinata-jp-shop .campaign-card__copy { padding:15px 16px 17px; border:1px solid var(--line-soft); border-top:0; background:#fff; }
.hinata-jp-shop .campaign-card__copy h3 { margin:3px 0 0; font-size:15px; line-height:1.5; }
.hinata-jp-shop .campaign-card__copy p { margin:6px 0 0; color:var(--muted); font-size:11px; line-height:1.65; }
.hinata-jp-shop .shop-card__copy { padding:14px 16px 16px; border-top:1px solid var(--line-soft); }
.hinata-jp-shop .shop-card__copy h3 { margin:0; font-size:15px; letter-spacing:.03em; }
.hinata-jp-shop .shop-card__copy p { margin:5px 0 0; color:var(--muted); font-size:11px; line-height:1.6; }
.hinata-jp-shop .category-card__image { width:92px; aspect-ratio:1; margin:0 auto 8px; display:grid; place-items:center; overflow:hidden; border-radius:50%; background:#f7f3ee; }
.hinata-jp-shop .category-card__image img { width:100%; height:100%; margin:0; object-fit:contain; border-radius:0; }
.hinata-jp-shop .category-card__image .hinata-category-fallback { width:100%; padding:8px; font-size:10px; line-height:1.4; white-space:normal; }
.hinata-jp-shop .btn--outline { border:1px solid #333; background:#fff; color:#222; }
.hinata-jp-shop .btn--outline:hover { border-color:var(--accent); color:var(--accent); }
.hinata-jp-shop .pagination .current { border-color:#262626; background:#262626; color:#fff; }
.hinata-jp-shop .hinata-listing-section,.hinata-jp-shop .hinata-latest-stories,.hinata-jp-shop .hinata-custom-module,.hinata-jp-shop .hinata-article { position:relative; }
.hinata-jp-shop .hinata-category-directory { width:100%; }
.hinata-jp-shop .hinata-brand-hero,.hinata-jp-shop .hinata-topic-hero,.hinata-jp-shop .hinata-auth-hero { background:#faf7f3; }
.hinata-jp-shop .hinata-cart-action { position:relative; }
@media (max-width:640px){
  .hinata-jp-shop .campaign-card__copy,.hinata-jp-shop .shop-card__copy { padding:12px; }
  .hinata-jp-shop .category-card__image { width:72px; }
}

/* HINATA final narrow-screen editorial guard */
@media (max-width:375px){
  .hinata-jp-shop .hinata-story-grid-five { grid-template-columns:1fr; }
}

/* ========================================================================
   HINATA 1.0.1 — search / navigation / locale / currency refinements
   ======================================================================== */
.hinata-jp-shop .site-header { overflow: visible; }
.hinata-jp-shop .header-utility { border-bottom:1px solid #f0f0f0; background:#fafafa; }
.hinata-jp-shop .header-utility__inner { min-height:34px; display:flex; justify-content:flex-end; align-items:center; }
.hinata-jp-shop .header-switchers { display:flex; align-items:center; justify-content:flex-end; gap:8px; min-width:0; }
.hinata-jp-shop .cp-locale-select,
.hinata-jp-shop .cp-currency-select { display:inline-flex; align-items:center; gap:7px; min-width:0; margin:0; color:#666; font-size:11px; font-weight:600; line-height:1; }
.hinata-jp-shop .cp-locale-select > span,
.hinata-jp-shop .cp-currency-select > span { white-space:nowrap; color:#777; }
.hinata-jp-shop .cp-locale-select select,
.hinata-jp-shop .cp-currency-select select { width:auto!important; min-width:94px; height:28px!important; min-height:28px!important; margin:0!important; padding:0 28px 0 10px!important; border:1px solid #d6d6d6!important; border-radius:3px!important; outline:0; background-color:#fff!important; color:#333!important; font-size:11px!important; line-height:26px!important; box-shadow:none!important; cursor:pointer; }
.hinata-jp-shop .cp-locale-select select:focus,
.hinata-jp-shop .cp-currency-select select:focus { border-color:var(--accent)!important; box-shadow:0 0 0 2px rgba(217,39,46,.08)!important; }
.hinata-jp-shop .nav-switcher-bar { border-top:1px solid #f1f1f1; border-bottom:1px solid var(--line-soft); background:#fafafa; }
.hinata-jp-shop .nav-switcher-bar__inner { min-height:38px; display:flex; justify-content:flex-end; align-items:center; }

/* Search: stronger hierarchy, cleaner input, explicit action button. */
.hinata-jp-shop .header-search { position:relative; display:grid; grid-template-columns:42px minmax(0,1fr) 94px; align-items:center; min-height:50px; overflow:visible; border:1px solid #cfcfcf; border-radius:4px; background:#f8f8f8; transition:border-color .18s ease,box-shadow .18s ease,background .18s ease; }
.hinata-jp-shop .header-search:hover { border-color:#a9a9a9; background:#fff; }
.hinata-jp-shop .header-search:focus-within { border-color:var(--accent); background:#fff; box-shadow:0 0 0 3px rgba(217,39,46,.08); }
.hinata-jp-shop .header-search__leading { height:100%; display:grid; place-items:center; color:#777; pointer-events:none; }
.hinata-jp-shop .header-search__leading svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; }
.hinata-jp-shop .header-search input { width:100%; height:48px; min-width:0; padding:0 12px 0 0; border:0!important; outline:0!important; background:transparent!important; color:#252525; font-size:14px; box-shadow:none!important; }
.hinata-jp-shop .header-search input::placeholder { color:#8b8b8b; opacity:1; }
.hinata-jp-shop .header-search button { align-self:stretch; min-width:94px; border:0; border-left:1px solid var(--accent-dark); border-radius:0 3px 3px 0; background:var(--accent); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:7px; padding:0 14px; font-size:13px; font-weight:700; letter-spacing:.04em; transition:background .18s ease; }
.hinata-jp-shop .header-search button:hover { background:var(--accent-dark); }
.hinata-jp-shop .header-search button svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; }
.hinata-jp-shop .header-search .search-live { position:absolute; z-index:65; top:calc(100% + 7px); left:0; right:0; border:1px solid var(--line); background:#fff; box-shadow:0 16px 40px rgba(0,0,0,.12); }

/* Category dropdown and managed navigation children. */
.hinata-jp-shop .global-nav { position:relative; z-index:56; overflow:visible; }
.hinata-jp-shop .global-nav__inner { position:relative; overflow:visible; }
.hinata-jp-shop .nav-category-wrap { position:relative; min-width:0; }
.hinata-jp-shop .nav-category-btn { position:relative; justify-content:flex-start; padding:0 15px; }
.hinata-jp-shop .nav-category-btn > span { flex:1; text-align:center; }
.hinata-jp-shop .nav-category-chevron { width:15px!important; height:15px!important; transition:transform .18s ease; }
.hinata-jp-shop .nav-category-wrap:hover .nav-category-chevron,
.hinata-jp-shop .nav-category-wrap:focus-within .nav-category-chevron { transform:rotate(180deg); }
.hinata-jp-shop .category-mega { position:absolute; z-index:80; top:100%; left:0; width:min(680px,calc(100vw - 40px)); padding:18px; border:1px solid #d8d8d8; border-top:3px solid var(--accent); background:#fff; box-shadow:0 18px 48px rgba(0,0,0,.14); opacity:0; visibility:hidden; transform:translateY(8px); pointer-events:none; transition:opacity .18s ease,transform .18s ease,visibility .18s; }
.hinata-jp-shop .nav-category-wrap:hover .category-mega,
.hinata-jp-shop .nav-category-wrap:focus-within .category-mega { opacity:1; visibility:visible; transform:translateY(0); pointer-events:auto; }
.hinata-jp-shop .category-mega__head { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:0 2px 12px; border-bottom:1px solid var(--line-soft); }
.hinata-jp-shop .category-mega__head strong { font-size:15px; }
.hinata-jp-shop .category-mega__head a { color:var(--accent); font-size:11px; font-weight:700; }
.hinata-jp-shop .category-mega__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin-top:12px; background:var(--line-soft); border:1px solid var(--line-soft); }
.hinata-jp-shop .category-mega__grid > a { min-height:68px; padding:12px 13px; display:flex; flex-direction:column; justify-content:center; gap:3px; background:#fff; transition:background .15s ease,color .15s ease; }
.hinata-jp-shop .category-mega__grid > a:hover { background:#fff7f7; color:var(--accent); }
.hinata-jp-shop .category-mega__grid span { font-size:13px; font-weight:700; line-height:1.4; }
.hinata-jp-shop .category-mega__grid small { color:#888; font-size:10px; }
.hinata-jp-shop .category-mega__footer { display:flex; justify-content:flex-end; gap:18px; padding:13px 2px 0; }
.hinata-jp-shop .category-mega__footer a { border-bottom:1px solid #777; font-size:11px; font-weight:600; }

.hinata-jp-shop .nav-links { overflow:visible; }
.hinata-jp-shop .nav-link-item { position:relative; display:flex; align-self:stretch; align-items:stretch; min-width:0; }
.hinata-jp-shop .nav-link-item > a { min-height:52px; display:flex; align-items:center; gap:5px; padding:0 15px; font-size:14px; font-weight:600; white-space:nowrap; }
.hinata-jp-shop .nav-link-item > a:hover { color:var(--accent); }
.hinata-jp-shop .nav-link-chevron { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.7; transition:transform .18s ease; }
.hinata-jp-shop .nav-link-item:hover .nav-link-chevron,
.hinata-jp-shop .nav-link-item:focus-within .nav-link-chevron { transform:rotate(180deg); }
.hinata-jp-shop .nav-submenu { position:absolute; z-index:82; top:100%; left:50%; min-width:210px; padding:8px 0; border:1px solid #dedede; border-top:2px solid var(--accent); background:#fff; box-shadow:0 14px 34px rgba(0,0,0,.11); opacity:0; visibility:hidden; transform:translate(-50%,7px); pointer-events:none; transition:.17s ease; }
.hinata-jp-shop .nav-link-item:hover .nav-submenu,
.hinata-jp-shop .nav-link-item:focus-within .nav-submenu { opacity:1; visibility:visible; transform:translate(-50%,0); pointer-events:auto; }
.hinata-jp-shop .nav-submenu > a { min-height:0!important; display:block!important; padding:9px 14px!important; color:#333!important; font-size:12px!important; font-weight:500!important; white-space:normal!important; }
.hinata-jp-shop .nav-submenu > a:hover { background:#faf5f4; color:var(--accent)!important; }

/* Search page */
.hinata-jp-shop .search-hero { padding:52px 0 42px; background:linear-gradient(180deg,#faf7f2 0%,#f7f3ee 100%); }
.hinata-jp-shop .search-hero h1 { margin:5px 0 20px; }
.hinata-jp-shop .search-form-large { max-width:820px; display:grid; grid-template-columns:48px minmax(0,1fr) 124px; align-items:center; overflow:hidden; border:1px solid #bcbcbc; border-radius:4px; background:#fff; box-shadow:0 8px 24px rgba(0,0,0,.05); transition:border-color .18s ease,box-shadow .18s ease; }
.hinata-jp-shop .search-form-large:focus-within { border-color:var(--accent); box-shadow:0 0 0 3px rgba(217,39,46,.08),0 10px 28px rgba(0,0,0,.06); }
.hinata-jp-shop .search-form-large__icon { height:100%; display:grid; place-items:center; color:#777; }
.hinata-jp-shop .search-form-large__icon svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; }
.hinata-jp-shop .search-form-large input { height:56px; min-width:0; padding:0 10px 0 0; border:0!important; outline:0!important; background:#fff!important; box-shadow:none!important; font-size:15px; }
.hinata-jp-shop .search-form-large button { height:56px; border:0; border-left:1px solid var(--accent-dark); background:var(--accent); color:#fff; font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:8px; transition:background .18s ease; }
.hinata-jp-shop .search-form-large button:hover { background:var(--accent-dark); }
.hinata-jp-shop .search-form-large button svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:2; }

/* Footer switchers use the same controls without stretching the copyright row. */
.hinata-jp-shop .footer-bottom__inner > span:last-child { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.hinata-jp-shop .footer-bottom .cp-locale-select,
.hinata-jp-shop .footer-bottom .cp-currency-select { color:#aaa; }
.hinata-jp-shop .footer-bottom .cp-locale-select > span,
.hinata-jp-shop .footer-bottom .cp-currency-select > span { color:#aaa; }

.hinata-jp-shop .mobile-switchers { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:0 0 18px; padding:12px; border:1px solid var(--line-soft); background:#fafafa; }
.hinata-jp-shop .mobile-switchers .cp-locale-select,
.hinata-jp-shop .mobile-switchers .cp-currency-select { display:grid; gap:6px; }
.hinata-jp-shop .mobile-switchers .cp-locale-select select,
.hinata-jp-shop .mobile-switchers .cp-currency-select select { width:100%!important; min-width:0; height:36px!important; min-height:36px!important; }
.hinata-jp-shop .mobile-nav-child { padding-left:18px!important; color:#666; font-size:12px!important; }

@media(max-width:1120px){
  .hinata-jp-shop .site-header__main { grid-template-columns:170px minmax(250px,1fr) auto; gap:16px; }
  .hinata-jp-shop .header-search { grid-template-columns:40px minmax(0,1fr) 76px; }
  .hinata-jp-shop .header-search button { min-width:76px; padding:0 10px; }
  .hinata-jp-shop .nav-link-item > a { padding:0 8px; font-size:12px; }
  .hinata-jp-shop .category-mega { width:min(620px,calc(100vw - 40px)); }
}
@media(max-width:900px){
  .hinata-jp-shop .header-utility,.hinata-jp-shop .nav-switcher-bar { display:none; }
  .hinata-jp-shop .category-mega,.hinata-jp-shop .nav-submenu { display:none; }
}
@media(max-width:640px){
  .hinata-jp-shop .mobile-menu__body .header-search { grid-template-columns:40px minmax(0,1fr) 70px; }
  .hinata-jp-shop .mobile-menu__body .header-search button { min-width:70px; padding:0 8px; }
  .hinata-jp-shop .search-form-large { grid-template-columns:42px minmax(0,1fr) 86px; }
  .hinata-jp-shop .search-form-large button { padding:0 10px; font-size:12px; }
  .hinata-jp-shop .search-form-large button svg { display:none; }
}
@media(max-width:430px){
  .hinata-jp-shop .mobile-switchers { grid-template-columns:1fr; }
  .hinata-jp-shop .search-hero { padding:36px 0 30px; }
  .hinata-jp-shop .search-form-large { grid-template-columns:40px minmax(0,1fr) 72px; }
  .hinata-jp-shop .search-form-large input { font-size:13px; }
}
