@import url("./header-v2-fonts.css");

/* ONE HAPPY blog header v2 — shop-matched, 2026-09-15.
 * Reference: one-happy/scss/layout/_header.scss, components/_sp-nav.scss,
 * _side-menu.scss, _icons.scss and _overlay.scss; checked against the live shop.
 * Shop rem values use its 16px baseline, not SWELL's 18px root size.
 * All resets are scoped to v2; legacy modules and article styles stay untouched.
 */
.oh-header-v2, .oh-v2-drawer {
  font-family: "OneHappy Header JP", "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size:16px; font-weight:400; line-height:1.6; color:#222;
}
.oh-header-v2, .oh-v2-drawer, .oh-v2-overlay,
.oh-header-v2 :where(*), .oh-v2-drawer :where(*) {
  margin:0; padding:0; border:0; box-sizing:border-box; word-break:normal;
}
.oh-header-v2 :where(*), .oh-v2-drawer :where(*) { font:inherit; vertical-align:baseline; }
.oh-header-v2 :where(*)::before, .oh-header-v2 :where(*)::after,
.oh-v2-drawer :where(*)::before, .oh-v2-drawer :where(*)::after { box-sizing:border-box; }
.oh-header-v2 :where(button, input), .oh-v2-drawer :where(button) {
  appearance:none; border-radius:0; color:inherit; background:none; font-family:Arial; line-height:normal;
}
.oh-header-v2 :where(a), .oh-v2-drawer :where(a) { text-decoration:none; transition:color .2s ease; }
.oh-v2-drawer :where(ul) { list-style:none; }
.oh-header-v2 :where(img), .oh-v2-drawer :where(img) { max-width:100%; height:auto; vertical-align:bottom; }
.oh-v2-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; }
.oh-v2-icon, .oh-v2-category__chevron {
  display: inline-block;
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1;
}
.oh-v2-icon::before, .oh-v2-category__chevron::before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  vertical-align: -0.125em;
}

.oh-v2-icon--shopping-cart::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='currentColor' d='M0 24C0 10.7 10.7 0 24 0h45.5c22 0 41.5 12.8 50.6 32h411c26.3 0 45.3 25.4 38.4 50.7l-41.6 152.3c-8.5 31.4-37 53.3-69.5 53.3H170.7l5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H199.7c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5H24C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z'/%3E%3C/svg%3E");
}

.oh-v2-icon--user::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='currentColor' d='M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z'/%3E%3C/svg%3E");
}

.oh-v2-icon--heart::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z'/%3E%3C/svg%3E");
}

.oh-v2-icon--bars::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='currentColor' d='M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z'/%3E%3C/svg%3E");
}

.oh-v2-icon--times::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath fill='currentColor' d='M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z'/%3E%3C/svg%3E");
}

.oh-v2-icon--store::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 616 512'%3E%3Cpath fill='currentColor' d='M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5 .6 9.1 .9 13.7 .9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1 .8-12.1 1.2-18.2 1.2z'/%3E%3C/svg%3E");
}

.oh-v2-icon--coins::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2l0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5V176c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336V300.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4V336zm32 0V304c20.4-4.8 38.2-11.1 52.9-18.5c27.4-13.8 43.1-31.6 43.1-50.9v35.4c-12.5 10.3-27.6 18.7-43.9 25.5c-22 9.3-47.9 16.3-76.2 20.5c13.5-13.5 24.1-31.5 24.1-53.4z'/%3E%3C/svg%3E");
}

.oh-v2-icon--book-open::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='currentColor' d='M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5V78.6c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C93.5 32 46.3 45.3 18.1 56.1C6.8 60.5 0 71.7 0 83.8V454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5V83.8c0-12.1-6.8-23.3-18.1-27.6C529.7 45.3 482.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11V456c0 11.4 11.7 19.3 22.4 15.5z'/%3E%3C/svg%3E");
}

.oh-v2-icon--map-marker-alt::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath fill='currentColor' d='M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z'/%3E%3C/svg%3E");
}

.oh-v2-icon--calendar-alt::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='currentColor' d='M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H64C28.7 64 0 92.7 0 128v16 48V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192 144 128c0-35.3-28.7-64-64-64H344V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H152V24zM48 192H400V448c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192z'/%3E%3C/svg%3E");
}

.oh-v2-icon--user-plus::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath fill='currentColor' d='M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM504 312V248H440c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V136c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H552v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z'/%3E%3C/svg%3E");
}

.oh-v2-icon--envelope::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z'/%3E%3C/svg%3E");
}

.oh-v2-icon--chevron-down::before, .oh-v2-category__chevron::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='currentColor' d='M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z'/%3E%3C/svg%3E");
}

.oh-v2-icon--th-large::before {
  content: "\f009";
}

.oh-v2-icon--newspaper::before {
  content: "\f1ea";
}

.oh-header-v2__nav-link .oh-v2-icon::before,
.oh-header-v2__category-trigger .oh-v2-icon::before,
.oh-v2-global__close .oh-v2-icon::before,
.oh-v2-category__toggle:hover .oh-v2-category__chevron::before {
  filter: brightness(0) invert(1);
}

.oh-v2-global__link .oh-v2-icon::before,
.oh-header-v2__nav-link:hover .oh-v2-icon::before,
.oh-header-v2__action:hover .oh-v2-icon::before {
  filter: brightness(0) saturate(100%) invert(14%) sepia(77%) saturate(2758%) hue-rotate(225deg) brightness(83%) contrast(101%);
}
@charset "UTF-8";
/* ===================== ベース設定 ===================== */
/* ===================== ミックスイン ===================== */
/* ===================== ヘッダー ===================== */
.oh-header-v2 {
  background-color: #ffffff;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  height: 180px;
  transition: height 0.3s ease;
  /* サイトロゴ */
  /* 検索フォーム */
  /* アクションアイコン */
  /* 2行目: サブヘッダー */
  /* ハンバーガーメニュー */
  /* SP検索行のカテゴリーボタン */
}
.oh-header-v2__container {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  padding: 0px;
}
.oh-header-v2__row {
  display: flex;
  align-items: center;
  padding: 6px 20px;
  width: 100%;
  position: relative;
  height: 130px;
}
.oh-header-v2__row:first-child {
  background: #ffffff;
}
.oh-header-v2__row:not(:last-child)::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 20px;
  right: 20px;
  height: 1px;
  background: #eeeeee;
}
.oh-header-v2__logo {
  height: 104px;
  width: 176.8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  margin-right: auto;
  user-select: none;
}
.oh-header-v2__logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}
.oh-header-v2__search {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 500px;
  z-index: 1;
  display: flex;
  border: 1px solid #ccc;
  border-radius: 0;
  overflow: hidden;
  transition: all 0.2s ease;
  background-color: #f8f8f8;
  box-shadow: none;
}
.oh-header-v2__search:focus-within {
  border-color: #172a88;
  box-shadow: 0 0 0 2px rgba(23, 42, 136, 0.16);
}
.oh-header-v2__search-input {
  flex: 1 1 auto;
  width: 0;
  min-width: 0;
  padding: 10px 15px;
  border: none;
  font-family: "OneHappy Header JP", "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  font-size: 14.4px;
  outline: none;
  color: #222222;
  background: #f8f8f8;
}
.oh-header-v2__search-input::placeholder {
  color: #7b8aa0;
}
.oh-header-v2__search-button {
  background: #333;
  color: #fff;
  border: none;
  width: 52px;
  min-width: 52px;
  padding: 0;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 19.2px;
  outline: none;
  flex: 0 0 52px;
}
.oh-header-v2__search-button:hover {
  background: #333;
  transform: translateX(1px);
  color: #fff;
}
.oh-header-v2__search-button:active {
  transform: translateX(2px);
}
.oh-header-v2__search-button i {
  transition: transform 0.2s ease;
}
.oh-header-v2__search-button i.oh-v2-icon--search {
  position: relative;
  display: block;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
}
.oh-header-v2__search-button i.oh-v2-icon--search::before {
  content: "";
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  background: currentColor;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z'/%3E%3C/svg%3E");
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.oh-header-v2__search-button:hover i {
  transform: scale(1.1);
}
.oh-header-v2__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  gap: 20px;
  height: 100%;
  margin-left: auto;
  z-index: 2;
  user-select: none;
}
.oh-header-v2__action {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #222222;
  text-decoration: none;
  position: relative;
  height: 100%;
  min-width: 40px;
  gap: 4px;
  user-select: none;
  transition: color 0.2s ease, transform 0.2s ease;
}
.oh-header-v2__action-icon {
  position: relative;
  font-size: 28px;
  line-height: 1;
  transition: color 0.2s ease, transform 0.2s ease;
}
.oh-header-v2__action-text {
  font-size: 11.2px;
  color: #222222;
  white-space: nowrap;
  display: block;
  transition: color 0.2s ease;
}
.oh-header-v2__action-count {
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(50%, -50%);
  background: #b29030;
  color: white;
  font-size: 11.2px;
  font-weight: 700;
  min-width: 18px;
  min-height: 18px;
  padding: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 100px;
  box-shadow: 0 2px 4px rgba(178, 144, 48, 0.3);
}
.oh-header-v2__action:hover {
  color: #172a88;
  transform: translateY(-1px);
}
.oh-header-v2__action:hover .oh-header-v2__action-icon,
.oh-header-v2__action:hover .oh-header-v2__action-text {
  color: #172a88;
}
.oh-header-v2__action:hover .oh-header-v2__action-icon {
  transform: scale(1.06);
}
.oh-header-v2__nav {
  width: 100%;
  height: 50px;
  padding: 0;
  background: linear-gradient(90deg, #101d61 0%, #172a88 24%, #243aa0 50%, #172a88 76%, #101d61 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), 0 4px 14px rgba(16, 29, 97, 0.18);
  user-select: none;
}
.oh-header-v2__nav-list {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0;
}
.oh-header-v2__nav-item {
  position: relative;
  flex: 1;
  text-align: center;
}
.oh-header-v2__nav-item:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 16px;
  background: rgba(255, 255, 255, 0.5);
}
.oh-header-v2__nav-link {
  font-size: 14.4px;
  font-weight: 500;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  position: relative;
  transition: all 0.2s ease;
}
.oh-header-v2__nav-link::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 7px;
  width: 22px;
  height: 2px;
  background: #ffffff;
  border-radius: 999px;
  opacity: 0;
  transform: translateX(-50%) scaleX(0.4);
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.oh-header-v2__nav-link:hover {
  color: #172a88;
  background: #dfe4ff;
}
.oh-header-v2__nav-link:hover::after {
  opacity: 0.72;
  transform: translateX(-50%) scaleX(1);
}
.oh-header-v2__nav-link i {
  margin-right: 0.5em;
  font-size: 1.1em;
  display: inline-block;
}
.oh-header-v2__hamburger {
  display: none;
  user-select: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 100%;
  background: none;
  border: none;
  padding: 0 0 13px;
  cursor: pointer;
  outline: none;
}
.oh-header-v2__hamburger-icon {
  position: absolute;
  top: 22px;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 21.6px;
  color: #222222;
  transition: opacity 0.3s ease;
}
.oh-header-v2__hamburger-icon--close {
  opacity: 0;
}
.oh-header-v2__hamburger-text {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  color: #222222;
  font-size: 9.92px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}
.oh-header-v2__hamburger.is-active .oh-header-v2__hamburger-icon--menu {
  opacity: 0;
}
.oh-header-v2__hamburger.is-active .oh-header-v2__hamburger-icon--close {
  opacity: 1;
}
.oh-header-v2__hamburger:focus-visible {
  outline: 2px solid #172a88;
  outline-offset: 3px;
}
.oh-header-v2__category-trigger {
  display: none;
  flex: 0 0 68px;
  height: 42px;
  padding: 5px 6px;
  border: 1px solid #101d61;
  border-radius: 4px;
  color: #ffffff;
  background: #172a88;
  box-shadow: inset 0 -3px 0 rgba(178, 144, 48, 0.72);
  cursor: pointer;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  transition: background-color 0.2s ease, transform 0.2s ease;
}
.oh-header-v2__category-trigger i {
  font-size: 15.2px;
}
.oh-header-v2__category-trigger span {
  font-size: 10.88px;
  font-weight: 700;
  line-height: 1;
}
.oh-header-v2__category-trigger:active {
  transform: translateY(1px);
}
.oh-header-v2__category-trigger:focus-visible {
  outline: 2px solid #b29030;
  outline-offset: 2px;
}
.oh-header-v2__category-trigger.is-active {
  color: #ffffff;
  background: #101d61;
  border-color: #8f7020;
}

.oh-v2-pc-only {
  display: flex;
}

.oh-v2-sp-only {
  display: none;
}

@media screen and (max-width: 992px) {
  .oh-v2-pc-only {
    display: none;
  }
  .oh-v2-sp-only {
    display: flex;
  }
  .oh-header-v2 {
    height: auto;
    min-height: 130px;
    /* ハンバーガーメニュー */
    /* サイトロゴ */
  }
  .oh-header-v2__row:first-child {
    position: relative;
    display: flex;
    align-items: center;
    padding: 6px 15px;
    height: 70px;
    border-bottom: 1px solid #ddd6c4;
    background-color: #ffffff;
  }
  .oh-header-v2__row--search {
    gap: 8px;
    padding: 8px 12px;
    height: 60px;
    background-color: #ffffff;
    border-bottom: 1px solid #ddd6c4;
  }
  .oh-header-v2__row .oh-header-v2__search {
    position: static;
    transform: none;
    padding: 0;
    width: auto;
    min-width: 0;
    max-width: none;
    margin: 0;
    height: 42px;
    flex: 1 1 auto;
  }
  .oh-header-v2__row .oh-header-v2__search-input {
    height: 100%;
    font-size: 14.4px;
    padding: 0 15px;
  }
  .oh-header-v2__row .oh-header-v2__search-button {
    height: 100%;
    width: 48px;
    min-width: 48px;
    padding: 0;
    flex-basis: 48px;
  }
  .oh-header-v2__nav {
    display: none;
  }
  .oh-header-v2__hamburger {
    display: flex;
    z-index: 1000;
    margin-right: auto;
    position: relative;
    flex: 0 0 44px;
  }
  .oh-header-v2__category-trigger {
    display: flex;
  }
  .oh-header-v2__logo {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    height: 56px;
    width: 95.2px;
    display: flex;
    justify-content: center;
    z-index: 999;
  }
  .oh-header-v2__action {
    position: relative;
    padding-bottom: 14px;
  }
  .oh-header-v2__action-text {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    font-size: 10.4px;
    white-space: nowrap;
  }
}
@media screen and (max-width: 575.98px) {
  .oh-header-v2__row:first-child {
    padding: 5px 12px;
  }
  .oh-header-v2__row .oh-header-v2__search {
    padding: 0;
    max-width: none;
    height: 40px;
  }
  .oh-header-v2__row .oh-header-v2__search-input {
    font-size: 13.6px;
    padding: 0 12px;
  }
  .oh-header-v2__row .oh-header-v2__search-button {
    width: 44px;
    min-width: 44px;
    padding: 0;
    flex-basis: 44px;
  }
  .oh-header-v2__actions {
    gap: 10px;
  }
  .oh-header-v2__action {
    padding-bottom: 12px;
  }
  .oh-header-v2__action-icon {
    font-size: 19.2px;
  }
  .oh-header-v2__action-text {
    font-size: 9.6px;
  }
  .oh-header-v2__action-count {
    font-size: 9.6px;
    min-width: 16px;
    min-height: 16px;
    padding: 1px;
    top: 2px;
    right: 0px;
  }
  .oh-header-v2__category-trigger {
    flex-basis: 62px;
    height: 40px;
  }
  .oh-header-v2__category-trigger span {
    font-size: 10.24px;
  }
}
.oh-v2-category,
.oh-v2-global {
  display: none;
  position: fixed;
  top: 130px;
  left: 0;
  width: min(92vw, 420px);
  height: calc(100vh - 130px);
  height: calc(100dvh - 130px);
  color: #222222;
  background-color: #ffffff;
  z-index: 1100;
  overflow: hidden;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-105%);
  transition: transform 0.3s ease, opacity 0.2s ease, visibility 0.3s ease;
  box-shadow: 12px 0 32px rgba(16, 29, 97, 0.2);
}
.oh-v2-category.is-active,
.oh-v2-global.is-active {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: translateX(0);
}

.oh-v2-category__inner {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.oh-v2-category__header {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 72px;
  padding: 14px 18px;
  background: #ffffff;
  border-bottom: 3px solid #b29030;
}
.oh-v2-category__eyebrow {
  display: block;
  color: #8f7020;
  font-size: 10.88px;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.oh-v2-category__title {
  margin: 2px 0 0;
  color: #101d61;
  font-size: 18.4px;
  font-weight: 700;
  line-height: 1.3;
}
.oh-v2-category__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  color: #101d61;
  background: #fbfaf7;
  border: 1px solid #ddd6c4;
  border-radius: 50%;
  font-size: 19.2px;
  cursor: pointer;
}
.oh-v2-category__close:focus-visible {
  outline: 2px solid #b29030;
  outline-offset: 2px;
}
.oh-v2-category__content {
  flex: 1;
  padding: 14px 16px 28px;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.oh-v2-category__section {
  margin-bottom: 24px;
}
.oh-v2-category__section:last-child {
  margin-bottom: 0;
}
.oh-v2-category .oh-v2-category__item {
  position: relative;
  margin-bottom: 0;
}
.oh-v2-category .oh-v2-category__item::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 1px;
  background: #ddd6c4;
  pointer-events: none;
}
.oh-v2-category .oh-v2-category__item:last-child::after {
  display: none;
}

.oh-v2-global__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 78px;
  padding: 15px 18px;
  color: #ffffff;
  background: #101d61;
  border-bottom: 4px solid #b29030;
}
.oh-v2-global__eyebrow {
  display: block;
  color: #d7bd72;
  font-size: 10.4px;
  font-weight: 700;
  letter-spacing: 0.12em;
}
.oh-v2-global__title {
  margin: 2px 0 0;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
}
.oh-v2-global__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  color: #ffffff;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 50%;
  font-size: 19.2px;
  cursor: pointer;
}
.oh-v2-global__close:focus-visible {
  outline: 2px solid #d7bd72;
  outline-offset: 2px;
}
.oh-v2-global__content {
  height: calc(100% - 78px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.oh-v2-global__list {
  margin: 0;
  padding: 8px 18px;
  list-style: none;
}
.oh-v2-global__list li {
  border-bottom: 1px solid #ddd6c4;
}
.oh-v2-related {
  padding: 4px 18px 28px;
}
.oh-v2-related .oh-v2-banner {
  margin-top: 12px;
}
.oh-v2-related .oh-v2-banner__item {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.oh-v2-related .oh-v2-banner__item:hover {
  transform: none;
  box-shadow: none;
}
.oh-v2-global__link {
  display: grid;
  grid-template-columns: 28px 1fr auto;
  gap: 10px;
  align-items: center;
  min-height: 56px;
  padding: 10px 4px;
  color: #222222;
  text-decoration: none;
  font-size: 15.2px;
  font-weight: 600;
}
.oh-v2-global__link i {
  color: #172a88;
  font-size: 16px;
  text-align: center;
}
.oh-v2-global__link::after {
  content: "";
  justify-self: end;
  width: 7px;
  height: 7px;
  margin-right: 4px;
  border: solid #7b8aa0;
  border-width: 0 2px 2px 0;
  transform: rotate(-45deg);
}
.oh-v2-global__link:hover {
  color: #172a88;
}
.oh-v2-global__link:focus-visible {
  outline: 2px solid #172a88;
  outline-offset: -2px;
}

@media screen and (max-width: 992px) {
  .oh-v2-category,
  .oh-v2-global {
    display: block;
  }
}
@media (prefers-reduced-motion: reduce) {
  .oh-v2-category,
  .oh-v2-global {
    transition: none;
  }
}
.oh-v2-category__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.oh-v2-category__item {
  margin-bottom: 5px;
  border-radius: 4px;
  transition: all 0.2s ease;
  border: 1px solid transparent;
}
.oh-v2-category__item:hover {
  border-color: #dfe4ff;
  background: linear-gradient(135deg, rgba(23, 42, 136, 0.08) 0%, rgba(223, 228, 255, 0.08) 100%);
}
.oh-v2-category__item--open {
  border-color: rgba(23, 42, 136, 0.4);
  background: linear-gradient(135deg, rgba(23, 42, 136, 0.08) 0%, rgba(223, 228, 255, 0.06) 100%);
}
.oh-v2-category__item-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 15px;
  cursor: pointer;
  border-radius: 4px;
  transition: all 0.2s ease;
}
.oh-v2-category__item-header a {
  color: #222222;
  text-decoration: none;
  font-weight: 500;
  flex: 1;
  transition: all 0.2s ease;
  position: relative;
  padding: 4px 0;
}
.oh-v2-category__item-header a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background: linear-gradient(135deg, #172a88 0%, #dfe4ff 100%);
  transition: width 0.2s ease;
}
.oh-v2-category__item-header a:hover {
  font-weight: bold;
}
.oh-v2-category__item-header a:hover::after {
  width: 100%;
}
.oh-v2-category__toggle {
  background: none;
  border: none;
  color: #475569;
  cursor: pointer;
  padding: 4px;
  border-radius: 50%;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin-left: 8px;
  user-select: none;
}
.oh-v2-category__toggle:hover {
  background: linear-gradient(135deg, #172a88 0%, #dfe4ff 100%);
  color: #ffffff;
}
.oh-v2-category__toggle .oh-v2-category__chevron {
  transition: transform 0.2s;
}
.oh-v2-category__toggle.is-active .oh-v2-category__chevron {
  transform: rotate(180deg);
}
.oh-v2-category__sublist {
  list-style: none;
  padding: 0;
  margin: 0;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-4px);
  transition: max-height 0.3s ease, opacity 0.2s ease, transform 0.2s ease, padding 0.2s ease;
  padding: 0 0 0 20px;
}
.oh-v2-category__sublist.is-active {
  max-height: none;
  overflow: visible;
  opacity: 1;
  transform: translateY(0);
  padding: 10px 0 10px 20px;
}
.oh-v2-category__subitem {
  margin-bottom: 5px;
  transition: all 0.2s ease;
}
.oh-v2-category__subitem a {
  display: block;
  padding: 8px 15px;
  color: #475569;
  text-decoration: none;
  border-radius: 4px;
  transition: all 0.2s ease;
  position: relative;
}
.oh-v2-category__subitem a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 0;
  background: linear-gradient(135deg, #172a88 0%, #dfe4ff 100%);
  border-radius: 2px;
  transition: height 0.2s ease;
}
.oh-v2-category__subitem a:hover {
  font-weight: bold;
  padding-left: 20px;
  background: linear-gradient(135deg, rgba(23, 42, 136, 0.08) 0%, rgba(223, 228, 255, 0.08) 100%);
}
.oh-v2-category__subitem a:hover::before {
  height: 16px;
}

.oh-v2-banner {
  margin-top: 20px;
}
.oh-v2-banner__title {
  font-size: 16px;
  font-weight: 700;
  color: #222222;
  margin: 0 0 12px;
  padding-left: 12px;
  border-left: 4px solid #172a88;
}
.oh-v2-banner__inner {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.oh-v2-banner__item {
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid rgba(23, 42, 136, 0.16);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.oh-v2-banner__item:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.oh-v2-banner__link {
  display: block;
  width: 100%;
  text-decoration: none;
  color: inherit;
}
.oh-v2-banner__image {
  width: 100%;
  height: auto;
  aspect-ratio: 25/6;
  object-fit: cover;
  display: block;
}
.oh-v2-banner__body {
  display: block;
  padding: 8px 9px 10px;
}
.oh-v2-banner__name {
  display: block;
  color: #222222;
  font-size: 12.48px;
  font-weight: 700;
  line-height: 1.35;
}
.oh-v2-banner__text {
  display: block;
  color: #475569;
  font-size: 10.56px;
  line-height: 1.4;
  margin-top: 2px;
}

.oh-v2-overlay {
  position: fixed;
  top: 130px;
  left: 0;
  width: 100%;
  height: calc(100vh - 130px);
  height: calc(100dvh - 130px);
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.oh-v2-overlay.is-active {
  opacity: 1;
  visibility: visible;
}

@media (prefers-reduced-motion: reduce) {
  .oh-v2-overlay {
    transition: none;
  }
}
.oh-v2-category__sublist:not([hidden]) { max-height:none; overflow:visible; opacity:1; transform:translateY(0); padding:10px 0 10px 20px; }

/* WordPress integration: keep the header in flow and isolate theme defaults. */
.oh-header-v2 { position:sticky; }
.admin-bar .oh-header-v2 { top:32px; }
.oh-header-v2__logo { user-select:none; color:#222; }
.oh-header-v2__logo img { display:block; }
.oh-header-v2__search { height:46px; margin:0; padding:0; }
.oh-header-v2__search-input { line-height:normal; border-radius:0; box-shadow:none; }
.oh-header-v2__search-input::placeholder { opacity:1; }
.oh-header-v2__search-button { border-radius:0; font-family:inherit; line-height:1.6; }
.oh-header-v2__nav-list { margin:0; list-style:none; }
.oh-header-v2__nav-item { margin:0; }
.oh-header-v2__category-trigger { margin:0; }
.oh-header-v2__category-trigger span { white-space:nowrap; }
.oh-v2-banner__title { line-height:1.6; }
.oh-v2-banner__inner { grid-template-columns:repeat(2,minmax(0,1fr)); }
.oh-v2-banner__item { min-width:0; }
.oh-v2-banner__image { margin:0; border:0; border-radius:0; }
.oh-v2-category__item-header > a { min-width:0; }
.oh-v2-category__toggle { flex-shrink:0; font-size:16px; line-height:normal; }
.oh-v2-category__sublist[hidden] { display:none!important; }
.oh-v2-category__subitem > .oh-v2-category__item-header { padding:0; }
.oh-v2-category__empty { padding:16px; color:#475569; }
.oh-v2-global__link { white-space:nowrap; }
.oh-header-v2__nav-link:focus-visible, .oh-v2-drawer a:focus-visible, .oh-v2-category__toggle:focus-visible { outline:2px solid #172a88; outline-offset:-2px; }
.oh-header-v2__search-button:focus-visible { outline:2px solid #b29030; outline-offset:-2px; }
.oh-v2-sp-only, .oh-v2-overlay { display:none!important; }
body.oh-v2-menu-open { overflow:hidden!important; }
@media (max-width:992px) {
  .oh-v2-pc-only { display:none!important; }
  .oh-v2-sp-only { display:flex!important; }
  .oh-v2-overlay { display:block!important; }
  .oh-v2-drawer, .oh-v2-overlay {
    top:var(--oh-v2-drawer-top,130px);
    height:calc(100vh - var(--oh-v2-drawer-top,130px));
    height:calc(100dvh - var(--oh-v2-drawer-top,130px));
  }
  .oh-v2-overlay { z-index:1050; margin:0; padding:0; border:0; border-radius:0; pointer-events:none; }
  .oh-v2-overlay.is-active { pointer-events:auto; }
  .oh-v2-global { display:flex; flex-direction:column; }
  .oh-v2-global__header, .oh-v2-category__header { flex-shrink:0; }
  .oh-v2-global__content { flex:1; height:auto; min-height:0; }
  .oh-v2-category__content { min-height:0; }
  .oh-header-v2__row--search .oh-header-v2__search { left:auto; }
}
/* Keep logo and account buttons separate on the narrowest phones. */
@media (max-width:430px) {
  .oh-header-v2__actions { gap:4px; }
  .oh-header-v2__action { min-width:36px; }
  .oh-header-v2__logo { width:88px; }
}
@media (max-width:360px) {
  .oh-header-v2__logo { width:72px; left:46%; }
}
@media (max-width:782px) { .admin-bar .oh-header-v2 { top:46px; } }
@media (prefers-reduced-motion:reduce) {
  .oh-header-v2, .oh-header-v2 *, .oh-header-v2 *::before, .oh-header-v2 *::after,
  .oh-v2-drawer, .oh-v2-drawer *, .oh-v2-drawer *::before, .oh-v2-drawer *::after,
  .oh-v2-overlay { transition:none!important; }
}
