/* ============================================================================
   v1.1.3 追加分
   1) 商品検索（ヒーロー / ヘッダーパネル / ドロワー）
   2) WooCommerce（カテゴリ・商品ページ）の段組とタイポグラフィ補正
   ============================================================================ */

/* ============================ search ============================ */
.nj-search {
  display: flex; align-items: center; gap: .5rem;
  background: #fff; border: 1px solid var(--nj-line-2); border-radius: 2px;
  padding: .4rem .4rem .4rem .95rem; box-shadow: var(--nj-shadow-s);
  transition: border-color .25s var(--nj-ease), box-shadow .25s var(--nj-ease);
}
.nj-search:focus-within { border-color: var(--nj-blue); box-shadow: 0 0 0 3px rgba(59,152,196,.14); }
.nj-search__label {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip-path: inset(50%); white-space: nowrap;
}
.nj-search__input {
  flex: 1 1 auto; min-width: 0; border: 0; background: none; outline: none;
  font: inherit; font-size: .95rem; line-height: 1.5; padding: .58em 0; color: var(--nj-ink);
}
.nj-search__input::placeholder { color: var(--nj-ink-3); }
.nj-search__input::-webkit-search-cancel-button { -webkit-appearance: none; }
.nj-search__btn {
  flex: 0 0 auto; display: inline-flex; align-items: center; gap: .45em;
  padding: .78em 1.15em; border-radius: 2px; background: var(--nj-ink); color: #fff;
  font-size: .8rem; font-weight: 600; letter-spacing: .05em; line-height: 1.2;
  transition: background-color .25s var(--nj-ease);
}
.nj-search__btn:hover { background: var(--nj-blue-dk); }
.nj-search__btn svg { flex: 0 0 auto; }

/* hero */
.nj-hero__search { margin-top: 1.9rem; max-width: 34rem; }
.nj-hero__search-title {
  font-size: .72rem; font-weight: 700; letter-spacing: .16em;
  color: var(--nj-blue-dk); margin-bottom: .6rem;
}
.nj-hero__search-hint { margin-top: .55rem; font-size: .72rem; color: var(--nj-ink-3); letter-spacing: .02em; }
.nj-hero__search + .nj-hero__facts { margin-top: 2rem; }

/* header toggle */
.nj-searchtoggle {
  display: grid; place-items: center; width: 2.55rem; height: 2.55rem;
  border: 1px solid var(--nj-line); border-radius: 2px; color: var(--nj-ink-2);
  transition: color .2s, border-color .2s, background-color .2s;
}
.nj-searchtoggle:hover,
.nj-header.is-search .nj-searchtoggle { color: var(--nj-blue-dk); border-color: var(--nj-blue); background: var(--nj-blue-pale); }

/* header panel */
.nj-searchpanel {
  position: absolute; left: 0; right: 0; top: 100%;
  background: #fff; border-bottom: 1px solid var(--nj-line);
  box-shadow: 0 20px 44px rgba(25,23,20,.1);
  padding: .95rem 0 1.05rem;
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .26s var(--nj-ease), transform .26s var(--nj-ease), visibility .26s;
}
.nj-header.is-search .nj-searchpanel { opacity: 1; visibility: visible; transform: none; }
.nj-searchpanel .nj-search { max-width: 46rem; }
.nj-searchpanel__hint { margin-top: .5rem; font-size: .72rem; color: var(--nj-ink-3); }

/* drawer */
.nj-drawer__search { margin-top: 1.7rem; }
.nj-drawer__search .nj-search {
  background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.24); box-shadow: none;
}
.nj-drawer__search .nj-search__input { color: #fff; }
.nj-drawer__search .nj-search__input::placeholder { color: rgba(255,255,255,.48); }
.nj-drawer__search .nj-search__btn { background: #fff; color: var(--nj-ink); }

/* ============================ shop（WooCommerce） ============================ */

/* .nj のリセットを打ち消し、本文要素にWP標準の余白を戻す（class付きは対象外） */
.nj .japacart-content p:not([class]),
.nj .japacart-content dl:not([class]),
.nj .japacart-content figure:not([class]) { margin-block: 1em; }
.nj .japacart-content ul:not([class]),
.nj .japacart-content ol:not([class]) { margin-block: 1em; padding-left: 1.35em; list-style: revert; }
.nj .japacart-content li:not([class]) + li { margin-top: .35em; }

/* 見出し・パンくず・並び替え */
.nj .page-header { margin-bottom: 1.6rem; padding-bottom: .9rem; border-bottom: 1px solid var(--nj-line); }
.nj .page-header-title,
.nj .page-header__title {
  font-family: var(--nj-serif); font-weight: 600; letter-spacing: .02em; line-height: 1.45;
  font-size: clamp(1.35rem, 1rem + 1.4vw, 1.9rem); color: var(--nj-ink);
}
.nj .woocommerce-result-count { color: var(--nj-ink-3); font-size: .8rem; letter-spacing: .02em; }
.nj .woocommerce-ordering select {
  border: 1px solid var(--nj-line-2); border-radius: 2px; background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238b8377' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right .8em center; background-size: 10px;
  padding: .62em 2.2em .62em .9em; font-size: .78rem; color: var(--nj-ink-2);
}
.nj .woocommerce-notices-wrapper .woocommerce-message,
.nj .woocommerce-notices-wrapper .woocommerce-info {
  border-top-color: var(--nj-blue); background: var(--nj-blue-pale); color: var(--nj-ink-2); font-size: .85rem;
}

/* 商品グリッド */
.nj ul.products { row-gap: 1.7rem; column-gap: 1rem; }
.nj ul.products li.products-item .products-item-image {
  border: 1px solid var(--nj-line); border-radius: 2px; background: #fff;
  transition: border-color .25s var(--nj-ease), box-shadow .25s var(--nj-ease);
}
.nj ul.products li.products-item:hover .products-item-image {
  border-color: transparent; box-shadow: var(--nj-shadow-m);
}
.nj ul.products li.products-item .products-item-title,
.nj ul.products li.products-item .woocommerce-loop-category__title {
  font-size: .8rem; line-height: 1.6; color: var(--nj-ink); letter-spacing: .01em;
}
.nj ul.products li.products-item .price {
  font-family: var(--nj-serif); font-weight: 600; color: var(--nj-ink); letter-spacing: .01em;
}
.nj ul.products li.products-item .japacart-button-details {
  border-radius: 2px; border-color: var(--nj-line-2); color: var(--nj-ink-2);
  transition: background-color .22s, color .22s, border-color .22s;
}
.nj ul.products li.products-item .japacart-button-details:hover {
  background: var(--nj-ink); border-color: var(--nj-ink); color: #fff;
}

/* ページネーション */
.nj .japacart-main .page-numbers a,
.nj .japacart-main .page-numbers span {
  border-radius: 2px;
}

/* サイドバー */
.nj .japacart-sidebar .widget {
  background: var(--nj-paper); border: 1px solid var(--nj-line); border-radius: 2px;
  padding: 1.1rem 1.2rem; margin-bottom: 1.1rem;
}
.nj .japacart-sidebar .widget .wp-block-heading {
  font-family: var(--nj-serif); font-size: .95rem; font-weight: 600; letter-spacing: .02em;
  margin-bottom: .7rem; color: var(--nj-ink);
}
.nj .japacart-sidebar .wp-block-search__input {
  width: 100%; border: 1px solid var(--nj-line-2); border-radius: 2px;
  background: #fff; padding: .62em .8em; font-size: .82rem;
}
.nj .japacart-sidebar .wp-block-search__button {
  background: var(--nj-ink); color: #fff; border-radius: 2px;
  padding: .62em 1em; font-size: .78rem; font-weight: 600;
}
.nj .japacart-sidebar .wp-block-search__button:hover { background: var(--nj-blue-dk); }
.nj .japacart-sidebar ul li a { color: var(--nj-ink-2); font-size: .84rem; }
.nj .japacart-sidebar ul li a:hover { color: var(--nj-blue-dk); }

/* 商品詳細 */
.nj .single-product div.product .product_title {
  font-family: var(--nj-serif); font-weight: 600; line-height: 1.6;
  font-size: clamp(1.15rem, .95rem + .9vw, 1.5rem); color: var(--nj-ink);
}
.nj .single-product div.product p.price {
  font-family: var(--nj-serif); font-weight: 600; font-size: 1.5rem;
  color: var(--nj-ink); margin: .9rem 0 1rem;
}
.nj .single-product div.product .woocommerce-product-details__short-description {
  font-size: .9rem; line-height: 1.95; color: var(--nj-ink-2);
}
.nj .single-product div.product form.cart {
  display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; margin: 1.4rem 0;
}
.nj .single-product div.product form.cart .quantity .qty {
  width: 5rem; height: 2.9rem; border: 1px solid var(--nj-line-2); border-radius: 2px;
  text-align: center; font-size: .95rem;
}
.nj .single-product div.product form.cart .single_add_to_cart_button {
  background: var(--nj-ink); color: #fff; border-radius: 2px;
  padding: 1em 1.9em; font-size: .86rem; font-weight: 600; letter-spacing: .05em;
  transition: background-color .25s var(--nj-ease);
}
.nj .single-product div.product form.cart .single_add_to_cart_button:hover { background: var(--nj-blue-dk); }
.nj .single-product div.product .product_meta {
  display: grid; gap: .4rem; font-size: .78rem; color: var(--nj-ink-3);
  margin-top: 1.1rem; padding-top: 1.1rem; border-top: 1px solid var(--nj-line);
}
.nj .single-product div.product .product_meta a { color: var(--nj-blue-dk); }
.nj .single-product div.product div.images { margin-bottom: 1.6rem; }
.nj .single-product div.product div.images img { border-radius: 2px; }
.nj .single-product .related > h2,
.nj .single-product .upsells > h2 {
  font-family: var(--nj-serif); font-size: 1.15rem; font-weight: 600;
  letter-spacing: .02em; margin-bottom: 1rem; padding-bottom: .6rem;
  border-bottom: 1px solid var(--nj-line);
}
.nj .single-product .woocommerce-tabs ul.tabs li a { font-size: .85rem; }
.nj .single-product .woocommerce-tabs .panel { font-size: .9rem; line-height: 1.95; color: var(--nj-ink-2); }

/* お問い合わせフォーム（Contact Form 7）の見た目を揃える */
.nj .wpcf7 input[type=text],
.nj .wpcf7 input[type=email],
.nj .wpcf7 input[type=tel],
.nj .wpcf7 input[type=number],
.nj .wpcf7 select,
.nj .wpcf7 textarea {
  border: 1px solid var(--nj-line-2); border-radius: 2px; background: #fff;
  padding: .72em .85em; font-size: .86rem; max-width: 34rem; width: 100%;
}
.nj .wpcf7 input[type=submit] {
  background: var(--nj-ink); color: #fff; border-radius: 2px;
  padding: .95em 1.9em; font-size: .86rem; font-weight: 600; letter-spacing: .05em;
}
.nj .wpcf7 input[type=submit]:hover { background: var(--nj-blue-dk); }
.nj .wpcf7 .wpcf7-list-item { margin-left: 0; margin-right: 1.2em; font-size: .85rem; }

@media (max-width: 991px) {
  .nj .japacart-content.japacart-content--has-sidebar { display: block; }
  .nj .japacart-main { padding-bottom: 1.4rem; }
  .nj ul.products li.products-item .products-item-title { font-size: .78rem; }
}
@media (max-width: 767px) {
  .nj .japacart-content { padding-inline: 1rem; }
  .nj .japacart-main,
  .nj .japacart-sidebar { padding-inline: 0; }
}
@media (max-width: 620px) {
  .nj-search { padding: .35rem .35rem .35rem .8rem; }
  .nj-search__btn span { display: none; }
  .nj-search__btn { padding: .78em .9em; }
  .nj ul.products { column-gap: .65rem; row-gap: 1.3rem; }
  .nj ul.products li.products-item .products-item-title { font-size: .76rem; line-height: 1.55; }
  .nj .single-product div.product p.price { font-size: 1.3rem; }
}
