@charset "Shift_JIS";

/* --------------------------------------------------------------------
【PC】「プチギフト」ページ用CSS / .mainframe_ .petitgift
--------------------------------------------------------------------- */
:root {
  /* カラー設定 */
  --color-main: #442d1e;
  --color-sub01: #E4AA56;
  --color-sub02: #c29b5b;
  --color-sub03: #FCF8F5;
  --color-sub04: #fdefd9;
  --color-sub05: #ded1d1;
  --color-sub06: #f2ebeb;

  /* フォントサイズ設定 */
  --fontsize-3xs: 1rem;
  --fontsize-2xs: 1.2rem;
  --fontsize-1xs: 1.4rem;
  --fontsize-s: 1.5rem;
  --fontsize-m: 1.6rem;
  --fontsize-l: 1.8rem;
  --fontsize-1xl: 2rem;
  --fontsize-2xl: 2.2rem;
  --fontsize-3xl: 2.4rem;
  --fontsize-4xl: 2.6rem;
  --fontsize-5xl: 2.8rem;
  --fontsize-6xl: 3rem;
  --fontsize-7xl: 3.2rem;
}

/* 初期設定（#event_wrapper_top.petitgift）
--------------------------------- */
.mainframe_ #event_wrapper_top.petitgift {
  margin-bottom: 40px;
}

.mainframe_ .c_set1 {
  color: var(--color-sub01);
}

/* ナビメニュー（#navi_menu）
--------------------------------- */
.mainframe_ .petitgift #navi_menu {
  margin-top: 20px;
}

.mainframe_ .petitgift #navi_menu ul {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, 1fr);
}

/* タブ遷移用 */
.mainframe_ .petitgift #navi_menu ul li button {
  width: 100%;
  padding: 0;
  border: none;
  outline: none;
}

.mainframe_ .petitgift #navi_menu ul li a {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 70px;
  padding: 10px 0 15px;
  background: var(--color-sub02);
  border: 1px solid var(--color-sub02);
  border-radius: 3px;
  font-size: var(--fontsize-s);
  font-weight: bold;
  line-height: 1.4;
  text-align: center;
  color: #fff;
  box-shadow: 0 2px 3px 0 rgb(61, 61, 61, 15%);
}

.mainframe_ .petitgift #navi_menu ul li a::after {
  content: '';
  position: absolute;
  bottom: 8px;
  width: 8px;
  height: 8px;
  border-right: solid 1px #fff;
  border-bottom: solid 1px #fff;
  transform: rotate(45deg);
}

/* マウスオーバー */
.mainframe_ .petitgift #navi_menu ul li a:hover {
  background: #fff;
  color: var(--color-main);
  opacity: 1;
  border-color: var(--color-main);
}

.mainframe_ .petitgift #navi_menu ul li a:hover::after {
  border-color: var(--color-main);
}

/* --------------------------------------------------------------------
イベント出力コンテンツ（.event_）
--------------------------------------------------------------------- */

/* 各イベントブロックの余白 */
.mainframe_ .event_ .free_space5 {
  margin: 40px 0 20px;
  padding-top: 20px;
}

/* 一番上のタイトルの余白 */
.mainframe_ .event_ .free_space5:first-of-type {
  margin-top: 20px;
}

/* タイトル */
.mainframe_ .event_ .free_space5 .goods_title {
  display: flex;
  flex-direction: column;
}

.mainframe_ .event_ .free_space5 .goods_title h2 {
  position: relative;
  display: inline-block;
  font-size: var(--fontsize-5xl);
  font-weight: bold;
  text-align: center;
  color: var(--color-main);
  letter-spacing: 0.1rem;
}

/* タイトル装飾 */
.mainframe_ .free_space5 .goods_title h2 > span {
  position: relative;
}

.mainframe_ .free_space5 .goods_title h2 > span::before,
.mainframe_ .free_space5 .goods_title h2 > span::after {
  content: '';
  position: absolute;
  top: -10px;
  display: block;
  height: 50px;
  aspect-ratio: 1;
}

.mainframe_ .free_space5 .goods_title h2 > span::before {
  left: -70px;
  background: url("/contents/proper/gift/event/petitgift/img/title-bg01.png") center center / cover no-repeat;
}

.mainframe_ .free_space5 .goods_title h2 > span::after {
  right: -70px;
  background: url("/contents/proper/gift/event/petitgift/img/title-bg02.png") center center / cover no-repeat;
}

/* タイトルのリード文 */
.mainframe_ .event_ .free_space5 .goods_title p {
  margin-top: 10px;
  font-size: var(--fontsize-m);
  line-height: 1.4;
  text-align: center;
}

/* 【PC】商品カード(.event_  .goods_  ul.StyleS_Frame_) 商品表示モード：リスト
--------------------------------- */
.mainframe_ .event_ .goods_  ul.StyleS_Frame_ {
  display: grid;
  gap: 20px 15px;
  grid-template-columns: repeat(4, 1fr);
}

.mainframe_ .event_ .goods_  ul.StyleS_Frame_ li {
  display: flex;
  flex-direction: column;
  min-height: 340px;
  border: none;
}

.mainframe_ .event_ .goods_  ul.StyleS_Frame_ li img {
  width: 100%;
}

/* 商品名 */
.mainframe_ .event_ .goods_  ul.StyleS_Frame_ li .name_ {
  display: block;
  margin-top: 10px;
  font-size: var(--fontsize-s);
  line-height: 1.4;
  color: #000;
}

.mainframe_ .event_ .goods_  ul.StyleS_Frame_ li .name_ a {
  text-decoration: none;
}

/* 値段 */
.mainframe_ .event_ .goods_  ul.StyleS_Frame_ li .price_ {
  display: flex;
  justify-content: flex-end;
  align-items: end;
  flex-grow: 1;
  margin-top: 10px;
  font-size: var(--fontsize-m);
  text-align: right;
  color: #000;
}

.mainframe_ .event_ .goods_  ul.StyleS_Frame_ li .price_::after {
  content: '(税込)';
  font-size: var(--fontsize-1xs);
  color: #000;
}

/* コメント文 */
.mainframe_ .event_ .goods_  ul.StyleS_Frame_ li .small_ {
  display: none;
}

/* --------------------------------------------------------------------
【PC】下部回遊エリア(フリースペース2・4)
--------------------------------------------------------------------- */

/* ○○を探す（#price_navi_wrap / #scene_navi_wrap）
--------------------------------- */
.mainframe_ #petitgift_search {
  position: relative;
  margin-top: 60px;
  padding: 40px 20px;
  background: var(--color-sub03);
  overflow: hidden;
}

/* タイトル */
.mainframe_ #petitgift_search .title_box {
  margin-bottom: 20px;
  text-align: center;
}

.mainframe_ #petitgift_search .title_box .inner h2 {
  font-size: var(--fontsize-5xl);
  font-weight: bold;
  line-height: 1;
  color: var(--color-main);
  letter-spacing: 0.1rem;
}

.mainframe_ #price_navi_wrap .title_box .inner p {
  margin-top: 10px;
  font-size: var(--fontsize-m);
  color: #222;
}

/* タブ切り替えコンテンツ（.js-tab-switch）(JS連動コンテンツ) */
.mainframe_ .js-tab-switch {
  margin-bottom: 20px;
}

.mainframe_ .js-tab-switch div {
  display: flex;
  justify-content: center;
  width: 50%;
  margin: auto;
  background: #ececec;
  border-radius: 999px;
}

.mainframe_ .js-tab-switch button {
  width: 100%;
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  outline: none;
}

/* 子要素のイベント伝播OFF */
.mainframe_ .js-tab-switch button * {
  pointer-events: none;
}

.mainframe_ .js-tab-switch button a {
  position: relative;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  height: 50px;
  border-radius: 999px;
  font-size: var(--fontsize-l);
  font-weight: bold;
  color: #999;
  text-decoration: none;
  opacity: 1;
  transition: all 0.3s ease;
}

/* アクティブ状態の管理 */
.mainframe_ .js-tab-switch button.active-item a {
  background: var(--color-sub02);
  color: #fff;
}

/* ボタン：リスト */
.mainframe_ #petitgift_search [id$="_navi_wrap"] {
  position: relative;
  z-index: 1;
}

.mainframe_ #petitgift_search [id$="_navi_wrap"] ul {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, 1fr);
}

/* 価格から探す */
.mainframe_ #petitgift_search #price_navi_wrap ul {
  max-width: 600px;
  margin: auto;
}

.mainframe_ #petitgift_search [id$="_navi_wrap"] ul li a {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  height: 70px;
  padding: 0 20px 0 15px;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 3px;
  font-size: var(--fontsize-s);
  font-weight: bold;
  line-height: 1.2;
  text-align: left;
  text-decoration: none;
  color: #222;
  box-shadow: 0 2px 3px 0 rgb(61, 61, 61, 15%);
  transition: background 0.3s ease;
}

/* ボタン内にコピーがある場合 */
.mainframe_ #petitgift_search [id$="_navi_wrap"] ul li a:has(p:nth-child(2)) {
  flex-direction: column;
  justify-content: center;
  align-items: normal;
  height: 120px;
  text-align: left;
}

.mainframe_ #petitgift_search [id$="_navi_wrap"] ul li a:has(p:nth-child(2)) > p:first-child {
  font-size: var(--fontsize-1xs);
  font-weight: normal;
  line-height: 1.4;
  color: #333;
}

.mainframe_ #petitgift_search [id$="_navi_wrap"] ul li a:has(p:nth-child(2)) > p:not(:first-child) {
  font-size: var(--fontsize-s);
  line-height: 1.5;
}

.mainframe_ #petitgift_search [id$="_navi_wrap"] ul li a:has(p:nth-child(2)) > p:not(:first-child) > span {
  font-size: var(--fontsize-1xl);
}

/* 矢印 */
.mainframe_ #petitgift_search [id$="_navi_wrap"] ul li a::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 10px;
  width: 10px;
  height: 10px;
  border-right: solid 1px #222;
  border-bottom: solid 1px #222;
  transform: translateY(-50%) rotate(-45deg);
}

/* マウスオーバー */
.mainframe_ #petitgift_search [id$="_navi_wrap"] ul li a:hover {
  border: 1px solid var(--color-main);
  opacity: 1;
}

.mainframe_ #petitgift_search [id$="_navi_wrap"] ul li a:hover::after {
  border-right: solid 1px var(--color-main);
  border-bottom: solid 1px var(--color-main);
}

/* ボタン：すべての商品を見る */
.mainframe_ #petitgift_search .btn_basic {
  margin-top: 60px;
}

.mainframe_ #petitgift_search .btn_basic a {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 70px;
  max-width: 400px;
  margin: 0 auto;
  background: var(--color-main);
  border: 1px solid var(--color-main);
  border-radius: 60px;
  font-size: var(--fontsize-m);
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  box-shadow: 0 2px 3px 0 rgb(61, 61, 61,15%);
  color: #fff;
}

.mainframe_ #petitgift_search .btn_basic a::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 20px;
  width: 10px;
  height: 10px;
  border-right: solid 1px #fff;
  border-bottom: solid 1px #fff;
  transform: translateY(-50%) rotate(-45deg);
}

.mainframe_ #petitgift_search .btn_basic a > span > span {
  font-weight: bold;
}

/* マウスオーバー */
.mainframe_ #petitgift_search .btn_basic a:hover {
  background: #fff !important;
  color: var(--color-main);
  opacity: 1;
}

.mainframe_ #petitgift_search .btn_basic a:hover::after {
  border-color: var(--color-main);
}

/* //TOPページ */

/* --------------------------------------------------------------------
【PC】商品一覧ページ（.petitgift_itemlist）
--------------------------------------------------------------------- */

/* 一番上のタイトルを消す */
.mainframe_ .m-title01_.m-title01_ev_ {
  display: none;
}

/* ヘッダー(.head)
--------------------------------- */
.mainframe_ .petitgift_itemlist .head {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 60px;
  background: var(--color-sub03);
}

.mainframe_ .petitgift_itemlist .head .txt {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.4;
  text-align: center;
}

/* タイトルテキスト */
.mainframe_ .petitgift_itemlist .head .txt span.txt_main {
  display: block;
  font-size: var(--fontsize-4xl);
  font-weight: bold;
  color: var(--color-main);
}

/* ナビメニュー（#navi_menu）
--------------------------------- */
.mainframe_ .petitgift_itemlist #navi_menu {
  margin-top: 20px;
}

.mainframe_ .petitgift_itemlist #navi_menu ul {
  display: grid;
  gap: 4px;
  grid-template-columns: repeat(4, 1fr);
  width: 100%;
}

.mainframe_ .petitgift_itemlist #navi_menu ul li {
  width: 100%;
}

.mainframe_ .petitgift_itemlist #navi_menu ul li a {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 70px;
  background: #fff;
  border: 2px solid var(--color-sub05);
  border-radius: 8px;
  font-size: var(--fontsize-s);
  font-weight: bold;
  line-height: 1.2;
  text-align: center;
  color: var(--color-main);
  text-decoration: none;
}

.mainframe_ .petitgift_itemlist #navi_menu ul li a:has(span:nth-child(2)) {
  flex-direction: column;
  justify-content: center;
  align-items: normal;
}

.mainframe_ .petitgift_itemlist #navi_menu ul li a:has(span:nth-child(2)) > span:first-child {
  font-size: var(--fontsize-m);
  font-weight: bold;
}

.mainframe_ .petitgift_itemlist #navi_menu ul li a:has(span:nth-child(2)) > span:not(:first-child) {
  font-size: var(--fontsize-1xs);
  font-weight: normal;
}

/* マウスオーバー */
.mainframe_ .petitgift_itemlist #navi_menu ul li a:hover {
  background: var(--color-sub06);
  opacity: 1;
  text-decoration: underline;
}


/* タイトル（#title_list）
--------------------------------- */
.mainframe_ .petitgift_itemlist #title_list {
  margin-top: 20px;
}

.mainframe_ .petitgift_itemlist #title_list p {
  margin-bottom: 10px;
  text-align: center;
  color: var(--color-main);
}

.mainframe_ .petitgift_itemlist #title_list p span:nth-child(1) {
  font-size: var(--fontsize-3xl);
  font-weight: bold;
}

.mainframe_ .petitgift_itemlist #title_list p span:nth-child(2) {
  font-size: var(--fontsize-1xl);
  font-weight: bold;
  line-height: 1.6;
}

.mainframe_ .petitgift_itemlist #title_list p span:nth-child(3) {
  font-size: var(--fontsize-m);
  line-height: 1.4;
}

/* 【JS】アクティブボタン用CSS（.js-change-active-area）※active=ON
--------------------------------- */

/* ナビボタン */
.mainframe_ #navi_menu.js-change-active-area ul .active-item {
  position: relative;
}

.mainframe_ #navi_menu.js-change-active-area ul .active-item::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  background-color: rgb(0, 0, 0, 0%);
}

.mainframe_ #navi_menu.js-change-active-area ul .active-item a {
  background: var(--color-main);
  border-color: var(--color-main);
  color: #fff;
}

.mainframe_ .petitgift_itemlist #navi_menu ul:has(li.active-item) li a {
  border-bottom: none;
  border-radius: 8px 8px 0 0;
}

.mainframe_ .petitgift_itemlist #navi_menu ul:has(li.active-item) {
  border-bottom: 5px solid var(--color-main);
}

.mainframe_ .petitgift_itemlist #navi_menu ul li.active-item .note {
  background: #fff;
}

/* タイトル */

.mainframe_ .petitgift_itemlist #title_list.js-change-active-area p {
  display: none;
}

.mainframe_ .petitgift_itemlist #title_list.js-change-active-area p.active-item {
  display: block;
}

/* ボタン：トップに戻る（#around_button_wrap .btn_top）
--------------------------------- */
.mainframe_ .petitgift_itemlist #around_button_wrap .btn_top {
  position: relative;
}

.mainframe_ .petitgift_itemlist #around_button_wrap .btn_top a {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 80px;
  max-width: 400px;
  margin: 0 auto;
  background: var(--color-main);
  border: 1px solid var(--color-main);
  border-radius: 60px;
  font-size: var(--fontsize-m);
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  box-shadow: 0 2px 3px 0 rgb(61, 61, 61,15%);
  color: #fff;
}

.mainframe_ .petitgift_itemlist #around_button_wrap .btn_top a::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 20px;
  width: 10px;
  height: 10px;
  border-right: solid 1px #fff;
  border-bottom: solid 1px #fff;
  transform: translateY(-50%) rotate(-45deg);
}

.mainframe_ .petitgift_itemlist #around_button_wrap .btn_top a > span > span {
  font-weight: bold;
}

/* マウスオーバー */
.mainframe_ .petitgift_itemlist #around_button_wrap .btn_top a:hover {
  background: #fff !important;
  color: #000;
  opacity: 1;
}

.mainframe_ .petitgift_itemlist #around_button_wrap .btn_top a:hover::after {
  border-color: #000;
}

/* //PC ここまで */

/* --------------------------------------------------------------------
【SP】「プチギフト」ページ用CSS / .wrapper_:not(:has(.mainframe_)) .petitgift
--------------------------------------------------------------------- */

/* 初期設定
--------------------------------- */
.wrapper_:not(:has(.mainframe_)) .c_set1 {
  color: var(--color-sub01);
}

.wrapper_:not(:has(.mainframe_)) #event_wrapper_top.petitgift .txt {
  text-align: center;
}

/* ナビメニュー（#navi_menu）
--------------------------------- */
.wrapper_:not(:has(.mainframe_)) .petitgift #navi_menu {
  margin-top: 20px;
}

.wrapper_:not(:has(.mainframe_)) .petitgift #navi_menu ul {
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(3, 1fr);
  margin: 0 3%;
}

/* タブ遷移用 */
.wrapper_:not(:has(.mainframe_)) .petitgift #navi_menu ul li button {
  width: 100%;
  padding: 0;
  border: none;
  outline: none;
}

.wrapper_:not(:has(.mainframe_)) .petitgift #navi_menu ul li a {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 70px;
  padding: 10px 0 15px;
  background: var(--color-sub02);
  border: 1px solid var(--color-sub02);
  border-radius: 3px;
  font-size: var(--fontsize-s);
  font-weight: bold;
  line-height: 1.4;
  text-align: center;
  color: #fff;
  box-shadow: 0 2px 3px 0 rgb(61, 61, 61, 15%);
}

.wrapper_:not(:has(.mainframe_)) .petitgift #navi_menu ul li a::after {
  content: '';
  position: absolute;
  bottom: 8px;
  width: 8px;
  height: 8px;
  border-right: solid 1px #fff;
  border-bottom: solid 1px #fff;
  transform: rotate(45deg);
}

/* --------------------------------------------------------------------
イベント出力コンテンツ（.event_）
--------------------------------------------------------------------- */

/* 各イベントブロックの余白 */
.wrapper_:not(:has(.mainframe_)) .event_ .free_space5 {
  margin: 40px 0 20px;
  padding-top: 40px;
}

/* 一番上のタイトルの余白 */
.wrapper_:not(:has(.mainframe_)) .event_ .free_space5:first-of-type {
  margin-top: 20px;
}

/* タイトル */
.wrapper_:not(:has(.mainframe_)) .event_ .free_space5 .goods_title {
  display: flex;
  flex-direction: column;
}

.wrapper_:not(:has(.mainframe_)) .event_ .free_space5 .goods_title h2 {
  position: relative;
  display: inline-block;
  font-size: var(--fontsize-4xl);
  font-weight: bold;
  text-align: center;
  color: var(--color-main);
  letter-spacing: 0.1rem;
}

.wrapper_:not(:has(.mainframe_)) .free_space5 .goods_title h2 > span {
  position: relative;
}

/* タイトル装飾 */
.wrapper_:not(:has(.mainframe_)) .free_space5 .goods_title h2 > span::before,
.wrapper_:not(:has(.mainframe_)) .free_space5 .goods_title h2 > span::after {
  content: '';
  position: absolute;
  top: -10px;
  display: block;
  height: 40px;
  aspect-ratio: 1;
}

.wrapper_:not(:has(.mainframe_)) .free_space5 .goods_title h2 > span::before {
  left: -54px;
  background: url("/contents/proper/gift/event/petitgift/img/title-bg01.png") center center / cover no-repeat;
}

.wrapper_:not(:has(.mainframe_)) .free_space5 .goods_title h2 > span::after {
  right: -54px;
  background: url("/contents/proper/gift/event/petitgift/img/title-bg02.png") center center / cover no-repeat;
}

/* タイトルのリード文 */
.wrapper_:not(:has(.mainframe_)) .event_ .free_space5 .goods_title p {
  margin-top: 10px;
  font-size: var(--fontsize-m);
  line-height: 1.4;
  text-align: center;
}

/* 【SP】商品カード(.event_  .goods_  ul.goods_p_.goods_list_wrapper_) 商品表示モード：なし
--------------------------------- */
.wrapper_:not(:has(.mainframe_)) .event_ .goods_  ul.goods_p_.goods_list_wrapper_ {
  display: grid;
  gap: 30px 10px;
  grid-template-columns: repeat(2, 1fr);
  padding: 0 3%;
  border: none;
}

.wrapper_:not(:has(.mainframe_)) .event_ .goods_  ul.goods_p_.goods_list_wrapper_ li {
  padding: 0;
  border: none;
}

.wrapper_:not(:has(.mainframe_)) .event_ .goods_  ul.goods_p_.goods_list_wrapper_ li  a {
  padding: 0;
}

.wrapper_:not(:has(.mainframe_)) .event_ .goods_  ul.goods_p_.goods_list_wrapper_ .img_,
.wrapper_:not(:has(.mainframe_)) .event_ .goods_  ul.goods_p_.goods_list_wrapper_ img {
  display: block;
  width: 100%;
}

.wrapper_:not(:has(.mainframe_)) .event_ .goods_  ul.goods_p_.goods_list_wrapper_ .desc_ {
  display: block;
  padding: 0;
}

/* 商品名 */
.wrapper_:not(:has(.mainframe_)) .event_ .goods_  ul.goods_p_.goods_list_wrapper_ .desc_ .name_ {
  margin-top: 10px;
  font-size: var(--fontsize-s);
  line-height: 1.4;
  color: #000;
  text-decoration: none;
}

/* 値段 */
.wrapper_:not(:has(.mainframe_)) .event_ .goods_  ul.goods_p_.goods_list_wrapper_ .desc_  .price_box .price_ {
  margin-top: 10px;
  font-size: var(--fontsize-m);
  text-align: right;
  color: #000;
}

.wrapper_:not(:has(.mainframe_)) .event_ .goods_  ul.goods_p_.goods_list_wrapper_ .desc_  .price_box .price_::after {
  content: '(税込)';
  font-size: var(--fontsize-1xs);
  color: #000;
}

/* コメント文 */
.wrapper_:not(:has(.mainframe_)) .event_ .goods_  ul.goods_p_.goods_list_wrapper_ .desc_ .small_ {
  display: none;
}

/* アイコン */
.wrapper_:not(:has(.mainframe_)) .event_ .goods_  ul.goods_p_.goods_list_wrapper_ .desc_  .icon_ {
  display: none;
}

/* --------------------------------------------------------------------
【SP】下部回遊エリア(フリースペース2・4)
--------------------------------------------------------------------- */

/* ○○を探す（#price_navi_wrap / #scene_navi_wrap）
--------------------------------- */
.wrapper_:not(:has(.mainframe_)) #petitgift_search {
  position: relative;
  margin-top: 60px;
  padding: 40px 10px;
  background: var(--color-sub03);
  overflow: hidden;
}

.wrapper_:not(:has(.mainframe_)) #petitgift_search .title_box {
  margin-bottom: 20px;
  text-align: center;
}

.wrapper_:not(:has(.mainframe_)) #petitgift_search .title_box .inner h2 {
  font-size: var(--fontsize-4xl);
  font-weight: bold;
  line-height: 1;
  color: var(--color-main);
  letter-spacing: 0.1rem;
}

.wrapper_:not(:has(.mainframe_)) #petitgift_search .title_box .inner p {
  margin-top: 10px;
  font-size: var(--fontsize-m);
  color: #222;
}

/* タブ切り替えコンテンツ（.js-tab-switch）(JS連動コンテンツ) */
.wrapper_:not(:has(.mainframe_)) .js-tab-switch div {
  display: flex;
  justify-content: center;
  margin-bottom: 20px;
  background: #ececec;
  border-radius: 999px;
}

.wrapper_:not(:has(.mainframe_)) .js-tab-switch button {
  width: 100%;
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  outline: none;
}

/* 子要素のイベント伝播OFF */
.wrapper_:not(:has(.mainframe_)) .js-tab-switch button * {
  pointer-events: none;
}

.wrapper_:not(:has(.mainframe_)) .js-tab-switch button a {
  position: relative;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  height: 60px;
  border-radius: 999px;
  font-size: var(--fontsize-l);
  font-weight: bold;
  color: #999;
  text-decoration: none;
  opacity: 1;
  transition: all 0.3s ease;
}

/* アクティブ状態の管理 */
.wrapper_:not(:has(.mainframe_)) .js-tab-switch button.active-item a {
  background: var(--color-sub02);
  color: #fff;
}

/* マウスオーバー（非アクティブ時） */
.wrapper_:not(:has(.mainframe_)) .js-tab-switch button:not(.active-item) a:hover {
  background: #d9d9d9;
  color: #333;
}

.wrapper_:not(:has(.mainframe_)) #petitgift_search [id$="_navi_wrap"] {
  position: relative;
  z-index: 1;
}

/* ボタン：リスト */
.wrapper_:not(:has(.mainframe_)) #petitgift_search [id$="_navi_wrap"] ul {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(1, 1fr);
  width: 100%;
  margin-top: 20px;
}

.wrapper_:not(:has(.mainframe_)) #petitgift_search [id$="_navi_wrap"] ul li a {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 80px;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 3px;
  font-size: var(--fontsize-s);
  font-weight: bold;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  color: #222;
  box-shadow: 0 2px 3px 0 rgb(61, 61, 61, 15%);
}

/* ボタン内にコピーがある場合 */
.wrapper_:not(:has(.mainframe_)) #petitgift_search [id$="_navi_wrap"] ul li a:has(p:nth-child(2)) {
  flex-direction: column;
  align-items: normal;
  height: 100px;
}

.wrapper_:not(:has(.mainframe_)) #petitgift_search [id$="_navi_wrap"] ul li a:has(p:nth-child(2)) > p:first-child {
  font-size: var(--fontsize-1xs);
  font-weight: normal;
  line-height: 1.4;
  color: #333;
}

.wrapper_:not(:has(.mainframe_)) #petitgift_search [id$="_navi_wrap"] ul li a:has(p:nth-child(2)) > p:not(:first-child) {
  font-size: var(--fontsize-s);
  line-height: 1.6;
}

.wrapper_:not(:has(.mainframe_)) #petitgift_search [id$="_navi_wrap"] ul li a:has(p:nth-child(2)) > p:not(:first-child) > span {
  font-size: var(--fontsize-1xl);
}

/* 矢印 */
.wrapper_:not(:has(.mainframe_)) #petitgift_search [id$="_navi_wrap"] ul li a::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 10px;
  width: 10px;
  height: 10px;
  border-right: solid 1px #222;
  border-bottom: solid 1px #222;
  transform: translateY(-50%) rotate(-45deg);
}

/* ボタン：すべての商品を見る */
.wrapper_:not(:has(.mainframe_)) #petitgift_search .btn_basic {
  width: 90%;
  max-width: 400px;
  margin: 0 auto;
}

.wrapper_:not(:has(.mainframe_)) #petitgift_search .btn_basic a {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 80px;
  margin-top: 20px;
  background: var(--color-main);
  border: 1px solid var(--color-main);
  border-radius: 60px;
  font-size: var(--fontsize-m);
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  box-shadow: 0 2px 3px 0 rgb(61, 61, 61,15%);
  color: #fff;
}

.wrapper_:not(:has(.mainframe_)) #petitgift_search .btn_basic a::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 20px;
  width: 10px;
  height: 10px;
  border-right: solid 1px #fff;
  border-bottom: solid 1px #fff;
  transform: translateY(-50%) rotate(-45deg);
}

.wrapper_:not(:has(.mainframe_)) #petitgift_search .btn_basic a > span > span {
  font-weight: bold;
}

/* // TOPページ */

/* --------------------------------------------------------------------
【SP】商品一覧ページ（.petitgift_itemlist）
--------------------------------------------------------------------- */

/* 一番上のタイトルを消す */
.wrapper_:not(:has(.mainframe_)) .m-title01_.m-title01_ev_ {
  display: none;
}

/* ヘッダー(.head)
--------------------------------- */
.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist .head {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 60px;
  background: var(--color-sub03);
}

.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist .head .txt {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.4;
  text-align: center;
}

.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist .head .txt span.txt_main {
  display: block;
  font-size: var(--fontsize-4xl);
  font-weight: bold;
  line-height: 1.4;
  color: var(--color-main);
}

/* ナビメニュー（#navi_menu）
--------------------------------- */
.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist #navi_menu {
  margin-top: 20px;
}

.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist #navi_menu ul {
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(2, 1fr);
  margin: 0 3%;
}

.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist #navi_menu ul li {
  width: 100%;
}

.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist #navi_menu ul li a {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 70px;
  padding: 10px 0 15px;
  background: #fff;
  border: 2px solid var(--color-sub05);
  border-radius: 3px;
  font-size: var(--fontsize-s);
  font-weight: bold;
  line-height: 1.4;
  text-align: center;
  color: var(--color-main);
  text-decoration: none;
}

/* ボタン内にコピーがある場合 */
.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist #navi_menu ul li a:has(span:nth-child(2)) {
  flex-direction: column;
  justify-content: center;
  line-height: 1.4;
}

.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist #navi_menu ul li a:has(span:nth-child(2)) > span:first-child {
  font-size: var(--fontsize-m);
  font-weight: bold;
}

.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist #navi_menu ul li a:has(span:nth-child(2)) > span:not(:first-child) {
  font-size: var(--fontsize-2xs);
  font-weight: normal;
}

.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist #navi_menu ul li a::after {
  content: '';
  position: absolute;
  bottom: 8px;
  width: 8px;
  height: 8px;
  border-right: solid 1px var(--color-sub05);
  border-bottom: solid 1px var(--color-sub05);
  transform: rotate(45deg);
}

/* タイトル（#title_list）
--------------------------------- */
.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist #title_list {
  margin-top: 20px;
  border-top: 4px solid var(--color-main);
}

.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist #title_list p {
  padding: 10px 0;
  text-align: center;
  color: var(--color-main);
}

.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist #title_list p span:nth-child(1) {
  font-size: var(--fontsize-1xl);
  font-weight: bold;
  line-height: 1.6;
}

.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist #title_list p span:nth-child(2) {
  font-size: var(--fontsize-m);
  font-weight: bold;
  line-height: 1.6;
}

.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist #title_list p span:nth-child(3) {
  font-size: var(--fontsize-s);
  line-height: 1.4;
}

/* 【JS】アクティブボタン用CSS（.js-change-active-area）※active=ON
--------------------------------- */

/* ナビボタン */
.wrapper_:not(:has(.mainframe_)) #navi_menu.js-change-active-area ul .active-item {
  position: relative;
}

.wrapper_:not(:has(.mainframe_)) #navi_menu.js-change-active-area ul .active-item::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  background-color: rgb(0, 0, 0, 0%);
}

.wrapper_:not(:has(.mainframe_)) #navi_menu.js-change-active-area ul .active-item a {
  background: var(--color-main);
  border-color: var(--color-main);
  color: #fff;
}

.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist #navi_menu ul .active-item a::after {
  border-right: solid 1px #fff;
}

/* タイトル */
.wrapper_:not(:has(.mainframe_)) #title_list.js-change-active-area p {
  display: none;
}

.wrapper_:not(:has(.mainframe_)) #title_list.js-change-active-area p.active-item {
  display: block;
}


/* ボタン：トップに戻る（#around_button_wrap .btn_top）
--------------------------------- */
.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist #around_button_wrap .btn_top {
  position: relative;
  z-index: 1;
  width: 90%;
  margin: 0 auto;
}

.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist #around_button_wrap .btn_top a {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 80px;
  max-width: 400px;
  margin: 0 auto;
  background: var(--color-main);
  border: 1px solid var(--color-main);
  border-radius: 60px;
  font-size: var(--fontsize-m);
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  box-shadow: 0 2px 3px 0 rgb(61, 61, 61, 15%);
  color: #fff;
}

.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist #around_button_wrap .btn_top a::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 20px;
  width: 10px;
  height: 10px;
  border-right: solid 1px #fff;
  border-bottom: solid 1px #fff;
  transform: translateY(-50%) rotate(-45deg);
}

.wrapper_:not(:has(.mainframe_)) .petitgift_itemlist #around_button_wrap .btn_top a > span > span {
  font-weight: bold;
}

/* //SP ここまで */