@charset "UTF-8";

/* =========================================================
   01. サイトヘッダー・フレーム周り
========================================================= */
/* gnavi */
div#gnavi { margin-bottom: 19px !important; }

/* topicpath */
div#topicpath { margin: 5px 0 0; font-weight: bold; font-size: 85%; }
div#topicpath a { font-weight: normal; background: url(//img.e87.com/img/usr/images/topicpath_bg.gif) no-repeat right top; padding: 0 10px 0 0; }

/* frame */
#contents { width: 950px; margin: 0 auto; }
#contents div.contents_inner { margin: 0px 14px; }

/* headerArea */
div#headerArea { width: 960px; margin: 0 auto; clear: both; }
div#headerArea .totop { width: 270px; float: left; }
div#headerArea .kikan { width: auto; float: right; }
div#headerArea .kikan_ { width: auto; float: right; margin-top: 18px; }
.sort_area_ dd, .navisort_ dd { line-height: 35px!important; padding-top: 3px!important; }
.navitopicpath_ { margin: 0; overflow: hidden; }
#title_area, #title_area > img, #title_area .visit_pre_, #title_area .visit_pre_br { height: 250px; }
dl.sort_area_ a, dl.sort_area_ a:visited, dl.sort_area_ a:active, dl.sort_area_ a:hover { margin: 0px 0px 0 15px !important; }
dl.sort_area_ a:hover { text-decoration: underline; }
.sort_area_ dd { line-height: 30px!important; }

/* localmenu */
div#localmenu_mother { clear: both; background: #F9F6F6; }
div#localmenu_mother ul { margin: 0; }
div#localmenu_mother ul li { float: left; list-style: none; }
div#localmenu_mother ul li img { vertical-align: bottom; }

.clr { zoom: 100%; }
.clr:after { content: ""; display: block; clear: both; height: 0px; overflow: hidden; }

/* =========================================================
   02. コンテンツエリア共通
========================================================= */
#n_columnArea h2.h2_title, #faq h2.h2_title, #delivery h2.h2_title, #payment h2.h2_title, #about h2.h2_title {
    color: #d9346e;
    border-top: 1px solid #d9346e;
    border-bottom: 1px solid #d9346e;
    text-align: center;
    padding: 8px 0 6px;
    font-size: 16px;
    font-weight: bold;
    margin: 30px 20px 20px;
}
.main_contents a:hover { text-decoration: none!important; opacity: 0.8; }

.contents { width: 960px; margin: 0 auto!important; line-height: 1.3; color: #333; }
.contents img { width: 100%; height: auto; transition: 0.2s; }
#contents_0903new #contents a:hover { opacity: 0.8; }

/* =========================================================
   03. 見出し共通
========================================================= */
.heading_common_sub {
    font-size: 28px;
    color: #AE0C00;
    text-align: left;
    font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'Hiragino Mincho Pro', 'Yu Mincho', YuMincho, serif;
    margin-top: 1em;
}

.wrap_heading { text-align: center; }
h2._heading {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
    font-size: 1.5rem;
    font-weight: bold;
    color: #333;
    position: relative;
    z-index: 0;
    margin: 0 0 24px;
    line-height: 1.4;
    text-align: center;
}
h2._heading::before {
    content: "";
    display: block;
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    background-image: url('https://img.e87.com/selection/xmas/2026images/60-60-icon02.jpg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transform: translateY(-4px);
}

/* =========================================================
   04. テキスト・ボタン共通
========================================================= */
.common_txt { font-size: 16px; line-height: 2; text-align: center; color: #333; margin: 1em 0; }
.common_txt_style { font-size: 16px; line-height: 2; text-align: center; color: #333; margin: 0 0 1em; }

.common_btn { margin: 24px 0 0px; }
.area_btn { text-align: center; margin-top: 24px; }
.area_btn p.btn_text { position: relative; font-size: 20px; padding: 16px 40px 11px; display: inline-block; color: #fff; font-weight: bold; border-radius: 5px; line-height: 1.3; transition: .2s; box-sizing: border-box; text-align: center; border: 1px solid #AE0C00; background: #AE0C00; width: 600px; }
.area_btn p.btn_text::after { content: ""; position: absolute; margin: auto; top: 50%; right: 2em; width: 8px; height: 8px; border-top: 2px solid #fff; border-right: 2px solid #fff; transform: rotate(45deg) translateY(-50%); transition: 0.2s; }
.area_btn p.btn_text:hover { background: #fff; color: #AE0C00; }
.area_btn p.btn_text:hover:after { right: 1.5em; border-top: 2px solid #AE0C00; border-right: 2px solid #AE0C00; }
.area_btn._banner { width: 700px; margin: 2em auto; border: 1px solid #eee; transition: 0.2s; }
.area_btn._banner:hover { opacity: 0.8; }
.common_btn.top_lead { margin: 16px 0 24px; }

.common_btn._totop .area_btn p.btn_text { position: relative; font-size: 20px; padding: 16px 40px 11px; display: inline-block; color: #fff; font-weight: bold; border-radius: 5px; line-height: 1.3; transition: .2s; box-sizing: border-box; text-align: center; border: 1px solid #9D7C38; background: #9D7C38; width: 600px; }
.common_btn._totop .area_btn p.btn_text::after { content: ""; position: absolute; margin: auto; top: 50%; right: 2em; width: 8px; height: 8px; border-top: 2px solid #fff; border-right: 2px solid #fff; transform: rotate(45deg) translateY(-50%); transition: 0.2s; }
.common_btn._totop .area_btn p.btn_text:hover { background: #fff; color: #9D7C38; }
.common_btn._totop .area_btn p.btn_text:hover:after { right: 1.5em; border-top: 2px solid #9D7C38; border-right: 2px solid #9D7C38; }

/* =========================================================
   05. セクション構成共通
========================================================= */
.area_contents { margin: 80px 0; transition: 0.2s; }
:nth-child(1 of .area_contents) { margin: 0 0 80px; transition: 0.2s; }
.inner_contents { margin: 0 0 56px; }

.common_bnr { width: 960px; position: relative; }
.area_img_txt { font-size: 24px; line-height: 1.6; color: #333; font-weight: 500; text-align: center; }
.area_img_annotation { position: absolute; bottom: 0; right: 0; margin: 4px; font-weight: 500; }
.contents_single_submit { display: flex; padding: 0 20px 2em; align-items: stretch; }

/* =========================================================
   06. Catch セクション
========================================================= */
#Catch .area_catch dl { padding: 1em 0 0.75em; text-align: center; margin: 0 0 20px; }
#Catch .area_catch dl dt { font-size: 30px; color: #E5988F; text-align: center; line-height: 1.2; margin-bottom: 8px; font-weight: 600; }
#Catch .area_catch dl dd { font-size: 18px; text-align: center; line-height: 1.4; }

.area_catch h1 { font-size: 21px; text-align: center; line-height: 1.2; font-weight: 600; }
.area_catch p { font-size: 16px; text-align: center; line-height: 1.8; margin: 1em 0; }
#Catch .area_catch { padding: 0 2em 0; text-align: center; margin: 20px 0; }

/* =========================================================
   07. ローカルナビ (#navi)
========================================================= */
#navi { margin: 24px 0; }
.navi_local { display: flex; justify-content: center; align-items: stretch; list-style: none; padding: 0; }
.navi_local_box { width: 23%; margin: 0 1% 2%; border-radius: 8px; transition: 0.2s; }
.navi_local a._navi { display: block; text-decoration: none; height: 100%; }
.navi_local_txt { display: flex; justify-content: center; align-items: center; text-align: center; font-size: 14px; font-weight: bold; line-height: 1.4; border: 1px solid #b73225; padding: 10px 5px; color: #333; border-radius: 6px; position: relative; transform: rotate(0.03deg); transition: 0.2s; height: 100%; box-sizing: border-box; min-height: 64px; }
.navi_local a._navi:hover .navi_local_txt { background: #b73225; color: #fff; }
.navi_local_pic img { width: 100%; height: auto; box-sizing: border-box; border-radius: 5px 5px 0px 0px; border: 1px solid #b5a695; border-bottom: none; }
.navi_local_txt:hover { background: #E5988F; color: #fff; border: 1px solid #E5988F; }

/* =========================================================
   08. スタイル別バナー
========================================================= */
.style-bnr { display: flex; justify-content: center; gap: 21px; margin-top: 20px; margin: 0 auto; flex-wrap: wrap; }
.style-bnr a { width: 175px; font-size: 16px; display: flex; flex-direction: column; align-items: center; }
.style-bnr a:hover { text-decoration: none!important; }
.style-bnr span { display: inline-block; position: relative; }
.style-bnr span::after { content: ""; position: absolute; margin: auto; top: 0; bottom: 0; right: -1rem; width: 8px; height: 8px; border-top: 2px solid #000000; border-right: 2px solid #000000; transform: rotate(45deg); transition: 0.2s; }
.style-bnr a:hover span::after { right: -1.5rem; }
._style .contents_inner { margin-top: 4em; }
.style-bnr li { position: relative; }
.style-bnr li._comming::before { content: ''; width: 100%; height: 100%; position: absolute; background: rgba(0, 0, 0, 0.5); z-index: 1; }
.style-bnr li._comming::after { content: '11\6708\4E0A\65EC\8CA9\58F2\958B\59CB\FF01'; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #fff; z-index: 2; white-space: pre; font-size: 18px; font-weight: bold; }
.style-bnr a img { width: 100%; height: auto; }
.style-bnr span { text-align: center; font-weight: bold; color: #000; margin-top: 1em; }
.style_catch { margin: 0; font-size: 14px; text-align: center; position: relative; width: 100%; position: absolute; top: -2em; }
.style_catch::before { content: ""; width: 20px; height: 1px; background: #7AC38B; position: absolute; top: 50%; left: 0; transform: translateY(-50%) rotate(45deg); }
.style_catch::after { content: ""; width: 20px; height: 1px; background: #7AC38B; position: absolute; top: 50%; right: 0; transform: translateY(-50%) rotate(-45deg); }
.style-bnr .item_catch { font-weight: bold; position: relative; padding: 0 4px !important; font-size: 14px; margin: 0.5em 0; line-height: 1.4; color: #DF5B5B; text-align: center; margin-top: 8px; }

/* =========================================================
   09. ランキング＆各種リスト (rank, style_list_box)
========================================================= */
#rank .swiper { height: 310px!important; }
.rank_box { display: flex; justify-content: center; }
.rank_box dl { padding: 0 12px; width: 254px; transition: 0.2s; }
.rank_box dl:hover { opacity: 0.8; }
.rank_box._top dl { width: 230px; padding: 0 12px; }
.rank_box dl div { font-size: 18px; color: #401f1f; line-height: 20px; z-index: 1; position: static; background: none; width: unset; height: unset; text-align: left; margin-bottom: 4px; font-family: 'Noto Serif JP', serif; }
.rank_box dl div._gold::before, .style_list_box dl div._gold::before { content: ''; background: url(//img.e87.com/img/icon/icon_rank_no1.gif) no-repeat; width: 26px; height: 24px; background-size: 100%; position: absolute; left: 0; top: -4px; }
.rank_box dl div._silver::before, .style_list_box dl div._silver::before { content: ''; background: url(//img.e87.com/img/icon/icon_rank_no2.gif) no-repeat; width: 26px; height: 24px; background-size: 100%; position: absolute; left: 0; top: -4px; }
.rank_box dl div._bronze::before, .style_list_box dl div._bronze::before { content: ''; background: url(//img.e87.com/img/icon/icon_rank_no3.gif) no-repeat; width: 26px; height: 24px; background-size: 100%; position: absolute; left: 0; top: -4px; }
.rank_box dl div._gold, .style_list_box dl div._gold { padding-left: 1.55em; background: none; width: unset; height: unset; border-radius: unset; text-align: left; }
.rank_box dl div._gold span, .style_list_box dl div._gold span { color: #401f1f; font-size: 21px; }
.rank_box dl div._silver, .style_list_box dl div._silver { padding-left: 1.55em; background: none; width: unset; height: unset; border-radius: unset; text-align: left; }
.rank_box dl div._silver span, .style_list_box dl div._silver span { color: #401f1f; font-size: 21px; }
.rank_box dl div._bronze, .style_list_box dl div._bronze { padding-left: 1.55em; background: none; width: unset; height: unset; border-radius: unset; text-align: left; }
.rank_box dl div._bronze span, .style_list_box dl div._bronze span { color: #401f1f; font-size: 21px; }
.rank_box._bottom dl div, .style_list_box._bottom dl div { font-size: 28px; background: none; width: unset; height: unset; text-align: left; }
.rank_box dl div span, .style_list_box dl div span { font-size: 21px; color: #333; position: static; }
.rank_box .item_img, .style_list_box .item_img { position: relative; }
.rank_box._bottom dl dd.item_img, .style_list_box._bottom dl dd.item_img { margin: 24px 0 0; }
.rank_box dl dd.item_name, .style_list_box dl dd.item_name { color: #333; margin-top: 8px; margin-bottom: 6px; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 13px; line-height: 1.3; }
.rank_box dl dd.price { color: #333; }
.rank_box a:hover, .style_list_box a:hover { text-decoration: none; }
.rank_box img, .style_list_box img { width: 100%; height: auto; }
.rank_box dl dd.price._normal, .style_list_box dl dd.price._normal { text-decoration: line-through; }
.rank_box dl dd.price, .style_list_box dl dd.price { text-decoration: unset; }

.style_list_box { display: flex; flex-wrap: wrap; padding: 0 20px; justify-content: center; gap: 24px 8px; }
.style_list_box dl { padding: 0 8px; width: 226px; font-family: "????", Meiryo, "?????? Pro W6", "Hiragino Kaku Gothic Pro", Osaka, "?? ?????", "MS PGothic", sans-serif; transition: 0.2s; }
.style_list_box dl:hover { opacity: 0.8; }
.style_list_box._top dl { width: 230px; padding: 0 12px; }
.style_list_box dl div { font-size: 18px; color: #401f1f; line-height: 20px; z-index: 1; position: static; background: none; width: unset; height: unset; text-align: left; margin-bottom: 4px; }
.style_list_box._bottom dl { width: 200px; }
.style_list_box { color: #333; }

.area_various ._bnr dd { margin-top: 24px; width: 200px; height: 200px; background: #E5988F; color: #fff; display: flex; flex-direction: column; justify-content: center; position: relative; transition: 0.2s; border: 1px solid #E5988F; box-sizing: border-box; border-radius: 5px; }
.area_various ._bnr dd::after { content: ""; position: absolute; margin: auto; bottom: 1em; left: 50%; width: 8px; height: 8px; border-top: 2px solid #fff; border-right: 2px solid #fff; transform: rotate(45deg) translateX(-50%); transition: 0.2s; }
.area_various ._bnr dd:hover { background: #fff; color: #E5988F; }
.area_various ._bnr dd:hover::after { left: 54%; width: 6px; border-top: 2px solid #E5988F; border-right: 2px solid #E5988F; width: 8px; }
.area_various ._bnr dd span { font-size: 18px; display: block; text-align: center; font-weight: bold; margin: 0.5em 0; }
.area_various .rank_box dl { width: 220px; padding: 0 8px; }

/* =========================================================
   10. feature & comming
========================================================= */
.area_feature ul { width: 940px; margin: 0 auto; }
.area_feature ul.feature_l li { margin: 20px; transition: 0.2s; }
.area_feature ul.feature_l li:hover { opacity: 0.8; }
.area_feature ul.feature_s { display: flex; flex-wrap: wrap; width: 900px; }
.area_feature ul.feature_s li { width: 440px; transition: 0.2s; }
.area_feature ul.feature_s li:hover { opacity: 0.8; }
.area_feature ul.feature_s li:nth-of-type(odd) { margin: 0 20px 20px 0; }
.area_feature dl { margin: 0.5em 0; }
.area_feature dl dt { font-size: 14px; color: #333; margin-bottom: 0.25em; font-weight: bold; color: #E5988F; }
.area_feature dl dd { font-size: 13px; color: #333; }
._comming { position: relative; }
._comming::before { content: ''; width: 100%; height: 140px; position: absolute; background: rgba(0, 0, 0, 0.5); z-index: 1; }
._comming::after { content: '2/10\FF08\6708\FF09\8CA9\58F2\958B\59CB\4E88\5B9A'; position: absolute; top: 35%; left: 50%; transform: translate(-50%, -50%); color: #fff; z-index: 2; white-space: pre; font-size: 18px; font-weight: bold; }

/* =========================================================
   11. sns エリア
========================================================= */
.wrap_sns { background: #FFF4F4; padding: 24px 0 0; margin: 0 20px; position: relative; }
.sns_heading { color: #D20D0D; font-size: 21px; position: relative; text-align: center; z-index: 0; font-weight: 600; margin: 32px 0 40px; line-height: 1.2; }
.sns_heading span { font-weight: bold; margin-bottom: 0.25em; text-align: center; display: block; }
.sns_heading img { position: absolute; bottom: -1em; left: 50%; transform: translateX(-50%); }
.wrap_sns .wrap_area_img { position: relative; width: 650px; margin: 16px auto; text-align: center; }
.wrap_sns .wrap_area_img._open::after { content: ''; background: url(//img.e87.com/selection/winter/2024images/star.png) no-repeat; width: 110px; height: 110px; background-size: 100%; position: absolute; top: -55%; right: 5%; transform: translateX(-50%); }
.wrap_sns .wrap_area_img span { display: inline-block; color: #10671E; transform: rotate(-2deg); position: absolute; top: 13px; left: 102px; font-size: 16px; font-weight: bold; }
.wrap_sns .area_img_txt { position: absolute; top: 64%; left: 50%; transform: translate(-50%,-50%); font-size: 18px; font-family: "???C???I", Meiryo, "?q???M?m?p?S Pro W6", "Hiragino Kaku Gothic Pro", Osaka, "?l?r ?o?S?V?b?N", "MS PGothic", sans-serif; line-height: 1.6; color: #333; font-weight: bold; }
.wrap_sns .area_img { margin-bottom: 48px; }
.wrap_sns .sns_bnr { display: flex; justify-content: center; }
.wrap_sns .sns_bnr a { margin: 40px; transition: 0.2s; }
.wrap_sns .sns_bnr a:hover { opacity: 0.8; }
.wrap_sns .sns_bnr a:hover div::after { bottom: 0; }
.wrap_sns .sns_bnr div { width: 240px; height: 240px; border-radius: 50%; background: #eee; position: relative; }
.wrap_sns .sns_bnr div._magazine::before { content: ''; background: url(//img.e87.com/selection/winter/2024images/mailmagazine_icon.png) no-repeat; width: 70px; height: 51px; background-size: 100%; position: absolute; top: 13%; left: 50%; transform: translateX(-50%); }
.wrap_sns .sns_bnr div._line::before { content: ''; background: url(//img.e87.com/selection/winter/2024images/LINE_Brand_icon.png) no-repeat; width: 80px; height: 80px; background-size: 100%; position: absolute; top: 8%; left: 50%; transform: translateX(-50%); }
.wrap_sns .sns_bnr div::after { content: ""; position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%); border: 14px solid transparent; border-top: 15px solid #fff; transition: 0.2s; }
.wrap_sns .sns_bnr_txt { font-size: 18px; text-align: center; position: absolute; left: 50%; transform: translateX(-50%); width: 100%; top: 40%; line-height: 1.8; font-weight: bold; color: #fff; }
.wrap_sns .sns_bnr div._magazine { background: #CA417D; }
.wrap_sns .sns_bnr div._line { background: #06C755; }
.coming_lead { font-size: 16px; line-height: 1.8; text-align: center; color: #333; }

/* =========================================================
   12. 価格・フォント等 共通パーツ
========================================================= */
span.price { margin-top: 0.5em; }
._normal { text-decoration: line-through; font-size: 13px!important; margin-top: 2px; }
.price { font-size: 13px; }

.m_font { font-weight: bold; font-family: 'Noto Sans', sans-serif; font-family: 'Noto Serif', serif; transform: rotate(0.03deg); }
section#style a:hover { text-decoration: none!important; }

/* =========================================================
   13. お届け・お支払い・アバウト (delivery, payment, about)
========================================================= */
.area_delivery { padding: 0 3%; }

.area_payment { padding: 0 3%; }
.area_payment p { font-size: 16px; margin: 2% 0 3%; line-height: 1.6; }
.area_payment p._lead a { text-decoration: underline; }
.area_payment .payment_wrap { padding: 24px; border: 1px solid #d9d9d9d9; }
.area_payment .payment_wrap h3 { font-size: 16px; border-left: 6px solid #E15242; padding-left: 8px; color: #333; margin: 8px 0; font-weight: bold; }
.area_payment .payment_wrap dl { border-top: 1px dotted #d9d9d9; padding: 16px 10px; margin-top: 16px; }
.area_payment .payment_wrap dt { font-size: 15px; line-height: 1.5; }
.area_payment .payment_wrap ul li { margin-bottom: 24px; }
.area_payment .payment_wrap ul li:last-child { margin-bottom: 0; }
.area_payment .payment_wrap dd { display: flex; padding: 16px; justify-content: center; margin: 8px 0; align-items: baseline; }
.area_payment .payment_wrap dd.card img { width: 80px; height: 60px; margin-right: 8px; }
.area_payment .payment_wrap dd.card img._jcb { height: 60px; }
.area_payment .payment_wrap dd.conv img { width: auto; height: 25px; margin-right: 8px; }
.area_payment .payment_wrap dd.annotation { display: block; padding: 0; }
.area_payment .payment_wrap dd.annotation p { padding: 0; margin: 0; font-size: 13px; line-height: 1.5; }

section.area_obsession { overflow: unset; }
.area_obsession .area_obsession_inner { padding: 8px 0; font-weight: 500; position: relative; width: 100%; margin: 24px auto; box-sizing: border-box; }
.area_obsession .area_obsession_inner label._heading { color: #d9346e; font-size: 18px; margin-bottom: 16px; position: relative; font-weight: 600; padding-left: 1em; padding-bottom: 16px; margin: 0 8px 0px; border-bottom: 1px dotted #d9d9d9; }
.area_obsession .area_obsession_inner label._heading:hover { cursor: pointer; color: #ff90a9; }
.area_obsession .area_obsession_inner .toggle { display: none; }
.area_obsession .area_obsession_inner ._heading { padding: 0.5em; display: block; color: #fff; }
.area_obsession .area_obsession_inner ._heading::after { content: ""; width: 6px; height: 6px; border-top: 2px solid #401f1f; border-right: 2px solid #401f1f; -webkit-transform: rotate(45deg); position: absolute; top: calc( 50% - 3px ); right: 20px; transform: rotate(135deg); }
.area_obsession .area_obsession_inner ._heading,
.area_obsession .area_obsession_inner .txt_wrap { -webkit-backface-visibility: hidden; backface-visibility: hidden; transform: translateZ(0); transition: all 0.3s; }
.area_obsession .area_obsession_inner .txt_wrap { height: 0; margin-bottom: 10px; padding: 0 2em 0px 2.5em; overflow: hidden; }
.toggle:checked + ._heading + .txt_wrap { height: auto; transition: all .3s; }
.toggle:checked + ._heading::after { transform: rotate(-45deg) !important; }
.area_obsession .area_obsession_inner p.obsession_txt { font-size: 15px; line-height: 1.8; margin-bottom: 18px; font-weight: 400; }

/* =========================================================
   14. その他追加調整
========================================================= */
.area_style_list { margin-bottom: 80px; }

.common_bnr._styles h2 { font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'Hiragino Mincho Pro', 'Yu Mincho', YuMincho, serif; margin: 1em 0 0.5em; font-size: 34px; text-align: center; line-height: 1.4; position: relative; padding-bottom: 12px; color: #666666; width: 520px; }
.common_bnr._styles h2::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); background: #DD948E; width: 18%; height: 8px; }
.common_bnr._styles h2 span { color: #666666; font-size: 44px; }
.common_bnr._styles h3 { font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'Hiragino Mincho Pro', 'Yu Mincho', YuMincho, serif; margin: 1em 0 0.5em; font-size: 30px; text-align: center; line-height: 1.4; position: relative; padding-bottom: 12px; color: #666666; width: 520px; }
.common_bnr._styles h3::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); background: #DD948E; width: 18%; height: 8px; }
.common_bnr._styles h3 span { color: #666666; font-size: 40px; }
#gaju .common_bnr._styles h3 { text-align: left; width: auto; left: 7em; }
#gaju .common_bnr._styles h3::after { content: unset; }
.heading_styles_txt { font-size: 16px; font-family: "????", Meiryo, "?????? Pro W6", "Hiragino Kaku Gothic Pro", Osaka, "?? ?????", "MS PGothic", sans-serif; line-height: 1.6; text-align: center; }

.area_payment .todoite p { margin: 2% 0; }
.area_payment .todoite p.todoite_img { width: 405px; margin: 0 auto; }
.area_payment .todoite ul li { font-size: 16px;; line-height: 1.6; margin: 0; }
.area_payment .todoite h4 { font-size: 16px; font-weight: bold; margin: 1em 0; color: red; }
.area_payment .payment_wrap .todoite dl { border-top: none; margin: 0; padding: 0 0 0 1em; }
.area_payment .payment_wrap .todoite dl dt { font-size: 16px; font-weight: bold; }
.area_payment .payment_wrap .todoite dd { padding: 0; display: block; }
.area_payment .payment_wrap .todoite a { color: red; }

.area_card ul { background: #fff0f0; padding-top: 1em; }
.style_md { display: flex; justify-content: center; }
.style_md li { margin: 1%; transition: 0.2s }
.style_md li:hover { opacity: 0.8; }
#feature { position: relative; }
article.navi { margin: 48px 0; }

.navi_catch { text-align: center; font-size: 14px; color: #E5988F; font-weight: bold; position: relative; width: 95%; margin: 0 auto 2px; line-height: 1.4; display: block; }
.style_catch { position: relative; padding: 0 4px !important; font-size: 13px; margin: 0.5em 0; line-height: 1.4; color: #E5988F; display: block; text-align: center; }

/* =========================================================
   15. スライダー・ランキング
========================================================= */
.wrap_swiper { position: relative; }
.swiper { height: 330px!important; width: 915px; }
.swiper-wrapper { width: 100%; height: auto !important; }
.swiper-slide { color: #ffffff; width: 175px!important; height: auto!important; text-align: center; margin: 8px 4px; }
.swiper-pagination-bullets { width: 100px; }
.swiper-pagination-bullet { width: 12px !important; height: 12px !important; margin: 0 0 0 10px !important; background: #fff; }
.swiper-pagination-bullet:first-child { margin: 0 !important; }
.swiper-slide dl { transition: 0.2s; }
.swiper-slide dl:hover { opacity: 0.8; }
.swiper-slide dl div { font-size: 18px; color: #401f1f; line-height: 20px; z-index: 1; position: static; background: none; width: unset; height: unset; text-align: left; margin-bottom: 4px; font-family: 'Noto Serif JP', serif; }
.swiper-slide dl div._gold::before { content: ''; background: url(//img.e87.com/img/icon/icon_rank_no1.gif) no-repeat; width: 26px; height: 24px; background-size: 100%; position: absolute; left: 0; top: -4px; }
.swiper-slide dl div._silver::before { content: ''; background: url(//img.e87.com/img/icon/icon_rank_no2.gif) no-repeat; width: 26px; height: 24px; background-size: 100%; position: absolute; left: 0; top: -4px; }
.swiper-slide dl div._bronze::before { content: ''; background: url(//img.e87.com/img/icon/icon_rank_no3.gif) no-repeat; width: 26px; height: 24px; background-size: 100%; position: absolute; left: 0; top: -4px; }
.swiper-slide dl div._gold { padding-left: 1.55em; background: none; width: unset; height: unset; border-radius: unset; text-align: left; }
.swiper-slide dl div._gold span { color: #401f1f; font-size: 21px; }
.swiper-slide dl div._silver { padding-left: 1.55em; background: none; width: unset; height: unset; border-radius: unset; text-align: left; }
.swiper-slide dl div._silver span { color: #401f1f; font-size: 21px; }
.swiper-slide dl div._bronze { padding-left: 1.55em; background: none; width: unset; height: unset; border-radius: unset; text-align: left; }
.swiper-slide dl div._bronze span { color: #401f1f; font-size: 21px; }
.swiper-slide._bottom dl { width: 200px; }
.swiper-slide._bottom dl div { font-size: 28px; background: none; width: unset; height: unset; text-align: left; }
.swiper-slide dl div span { font-size: 21px; color: #333; position: static; }
.swiper-slide .item_img { position: relative; }
.swiper-slide .item_title { font-size: 14px; margin-top: 1em; color: #E5988F; font-weight: bold; }
.swiper-slide._bottom dl dd.item_img { margin: 24px 0 0; }
.swiper-slide dl dd.item_name { color: #333; margin-top: 8px; margin-bottom: 6px; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 13px; line-height: 1.3; }
.swiper-slide dl dd.price { color: #333; }
.swiper-slide a:hover { text-decoration: none; }
.swiper-slide img { width: 100%; height: auto; }
.swiper-pagination-bullet-active { background: #AE0C00!important; }
.swiper-button-next:after, .swiper-rtl .swiper-button-prev:after { color: #AE0C00!important; font-size: 32px!important; }
.swiper-button-prev:after, .swiper-rtl .swiper-button-next:after { color: #AE0C00!important; font-size: 32px!important; }
.swiper-button-next, .swiper-rtl .swiper-button-prev { right: -16px!important; }
.swiper-button-prev, .swiper-rtl .swiper-button-next { left: 0!important; }
#message_banner .swiper-horizontal>.swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction { position: absolute; text-align: center; width: 820px; z-index: 1; bottom: 0; }

.swiper2 { height: 360px!important; width: 915px; }
.swiper-button-next2:after, .swiper-button-prev2:after { font-family: swiper-icons; font-size: var(--swiper-navigation-size); text-transform: none !important; letter-spacing: 0; font-variant: initial; line-height: 1; }
.swiper-button-next2:after, .swiper-rtl .swiper-button-prev2:after { content: 'next'; }
.swiper-button-prev2:after, .swiper-rtl .swiper-button-next2:after { content: 'prev'; }
.swiper-button-next2, .swiper-button-prev2 { position: absolute; top: var(--swiper-navigation-top-offset, 40%); width: unset!important; height: var(--swiper-navigation-size); margin-top: calc(0px - (var(--swiper-navigation-size) / 2)); z-index: 10; cursor: pointer; display: flex; align-items: center; justify-content: center; color: var(--swiper-navigation-color, var(--swiper-theme-color)); }
.swiper-button-prev2, .swiper-rtl .swiper-button-next2 { left: var(--swiper-navigation-sides-offset, 10px); right: auto; }
.swiper-pagination2 { position: absolute; text-align: center; transition: .3s opacity; transform: translate3d(0, 0, 0); z-index: 10; }
.swiper-button-next2:after, .swiper-rtl .swiper-button-prev2:after { color: #E5988F!important; font-size: 32px!important; }
.swiper-button-prev2:after, .swiper-rtl .swiper-button-next2:after { color: #E5988F!important; font-size: 32px!important; }
.swiper-button-next2, .swiper-rtl .swiper-button-prev2 { right: 0!important; }
.swiper-button-prev2, .swiper-rtl .swiper-button-next2 { left: 0!important; }
.swiper-button-next2.swiper-button-disabled, .swiper-button-prev2.swiper-button-disabled { opacity: .35; cursor: auto; pointer-events: none; }
.swiper2 .swiper-slide { color: #ffffff; width: 220px!important; height: auto!important; text-align: center; margin: 8px 4px; }

.item_catch { position: relative; padding: 0 4px 0px 0px; font-size: 14px; margin: 0.5em 0; line-height: 1.4; color: #333; padding: 8px; }
.swiper-button-next, .swiper-button-prev { width: unset!important }

/* =========================================================
   16. 商品単体・商品リスト共通 (item_box, other_product)
========================================================= */
.area_single_item { margin: 0 0 40px; }
.single_item { padding: 16px 0 0px; margin: 0 40px 16px; position: relative; z-index: 1; background: #fff; }
.single_item_box { display: flex; position: relative; padding: 0px 0 8px; align-items: center; }
.single_item_box .price { display: block; text-align: center; font-size: 16px; }
.single_item_box .specialprice { display: block; text-align: center; font-size: 18px; font-weight: bold; }
.single_item_left { width: 400px; text-align: center; }
.single_item_left a { transition: 0.2s; }
.single_item_img3 { display: flex; }
.single_item_img3 p { margin: 0; }
.single_item_img3 img { width: 100%; height: auto; }
.single_item_wrap .single_item_img3_left { margin-right: 5px; position: relative; }
.single_item_wrap .single_item_img3_left._new::before { content: "NEW"; background: #e20000; padding: 6px 8px; color: #ffff; position: absolute; left: 0; top: 0; font-size: 16px; z-index: 10; }
.single_item_wrap .single_item_img3_left ._hidden { position: absolute; opacity: 0; top: 0; left: 0; transition: 0.2s; }
.single_item_wrap .single_item_img3_left img { width: 100%; height: auto; transition: 0.2s; }
.single_item_img_top { margin-bottom: 5px; }

.wrap_title { position: relative; text-align: center; padding: 0; font-weight: bold; color: #fff; margin-top: 0; }
.wrap_title .h2_sub { font-size: 18px; position: relative; color: #fff; font-weight: bold; }
.wrap_title h2 { font-size: 21px; font-weight: 600; text-align: center; line-height: 32px; color: #b42b2b; position: relative; z-index: 0; }
.wrap_title .h2_sub:before { content: ''; position: absolute; top: 11px; display: inline-block; width: 20px; height: 2px; background-color: #fff; transform: rotate(60deg); left: -20px; }
.wrap_title .h2_sub:after { content: ''; position: absolute; top: 11px; display: inline-block; width: 20px; height: 2px; background-color: #fff; transform: rotate(-60deg); right: -20px; }

.single_item_box .right { margin: 0px 0 0 16px; width: 464px; }
.right .area_name { margin-top: 1em; }
.right .area_name ._name { font-size: 16px; font-weight: bold; color: #3c3c3c; line-height: 1.5; letter-spacing: -1px; text-align: center; margin: 1em 0; }
.right .area_name ._price { display: block; font-size: 16px; margin-top: 2px; color: #3c3c3c; font-weight: bold; text-align: center; }
.right .area_lead { margin: 1.25em 0; }
.right .area_lead ._lead { font-size: 16px; line-height: 1.6; color: #3c3c3c; text-align: left; margin: 0.75em 0; }
.right .area_point { display: flex; background: #fff; padding: 2%; box-sizing: border-box; }
.right .area_point .point_img { width: 140px; }
.right .area_point .point_img img { width: 100%; height: auto; border-radius: 50%; }
.right .area_point dl { padding: 0 0 0 10px; margin-top: 1.5em; width: 310px; box-sizing: border-box; }
.right .area_point dl dt { font-size: 17px; position: relative; color: #6d9e51; border-bottom: 2px solid #6d9e51; font-weight: 600; text-align: center; margin-bottom: 1.25em; padding-bottom: 2px; letter-spacing: 1px; }
.right .area_point dl dt::before { content: ""; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 10px solid transparent; border-top: 16px solid #6d9e51; z-index: 1; }
.right .area_point dl dt::after { content: ""; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 7px solid transparent; border-top: 13px solid #fff; z-index: 1; }
.right .area_point dl dd { font-size: 14px; color: #3c3c3c; }
.right dl.single_item_point dd { color: #322c1e; font-size: 14px; padding: 0px 0 18px 0; line-height: 1.6; }
.right dl.single_item_point dt { color: #e7249c; font-size: 18px; position: relative; margin-bottom: 4px; }
.single_item_point { padding-top: 8px; }
.single_item_box dl.item_info { background: #ffffff; padding: 16px 12px 16px; border: 1px solid #910b3e; position: relative; }

.otodoke { color: #ec1b9b; background: #ffa9de; display: inline; font-size: 14px; position: absolute; top: -13px; border-radius: 13.5px; padding: 2px 10px; font-weight: 600; left: 12px; }

.single_item_left ._name { font-size: 15px; font-weight: bold; text-align: center; margin: 1em 0 0; color: #333; }
.single_item_left .price { color: #333; }
.single_item_left a:hover { text-decoration: none; }

.fa-gift:before { color: #b42b2b; }

.area_point_icon { display: flex; justify-content: center; flex-wrap: wrap; align-items: center; }
.area_point_icon span.point { font-size: 12px; text-align: center; width: 31%; display: inline-block; background: #ffea8e; color: #333; font-weight: bold; margin: 0 1% 1%; height: 24px; display: flex; justify-content: center; align-items: center; padding: 2px 0 0; border-radius: 25px; }
.area_point_icon span._off { background: #cc0707; color: #fff; }

.area_button { position: relative; padding: 0 24px; }
.area_button a { font-size: 18px; background: #E5988F; color: #fff!important; padding: 16px 8px 14px; display: block; margin-top: 1em; text-align: center; border-radius: 8px; line-height: 1; border: 2px solid #E5988F; transition: 0.2s; box-sizing: border-box; position: relative; }
.area_button a:before { content: ''; width: 6px; height: 6px; border: 0; border-top: solid 2px #fff; border-right: solid 2px #fff; position: absolute; top: 50%; right: 4px; margin-top: -4px; transform: rotate(45deg); }
.area_button a:hover { background: #fff; color: #E5988F!important; text-decoration: none; }
.area_button a:hover::before { border-top: solid 2px #E5988F; border-right: solid 2px #E5988F; }
.area_button a span { font-size: 20px; font-weight: bold; display: inline-block; }
#item-body2 .area_button { width: 75%; margin: 0 auto; }

.common_bnr._styles .area_img_txt { position: absolute; transform: translateY(-50%); top: 50%; margin-left: 3%; }
#pre .common_bnr._styles .area_img_txt, #potted .common_bnr._styles .area_img_txt { margin-left: 8%; }
.wrap_icon_new { display: inline-block; position: relative; bottom: 2px; }

/* 売り切れ */
.is-soldout .item_img3 { position: relative; }
.is-soldout .item_img3::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 2; pointer-events: none; }
.is-soldout .item_img3::after { content: "SOLD OUT"; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #ffffff; font-size: 24px; font-weight: bold; letter-spacing: 0.1em; white-space: nowrap; z-index: 3; pointer-events: none; }
.is-soldout .item_img { position: relative; }
.is-soldout .item_img::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 2; pointer-events: none; }
.is-soldout .item_img::after { content: "SOLD OUT"; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #ffffff; font-size: 24px; font-weight: bold; letter-spacing: 0.1em; white-space: nowrap; z-index: 2; pointer-events: none; }

.navi_local_txt:hover { background: #E5988F; color: #fff; border: 1px solid #E5988F; }
h3.xmas_localMenu { font-size: 15px; text-align: center; font-weight: bold; padding: 8px 40px 5px; margin: 72px auto 20px; background: #007A88; color: #fff; display: table; border-radius: 20px; min-width: 220px; }

/* =========================================================
   17. クリスマス関連コラム (#xmas_column)
========================================================= */
#xmas_column { background-color: #ffffff; border: 1px solid #dbdad3; margin: 0 0 20px 0; padding: 10px 0 5px 15px; }
#xmas_column h3 { background: url("//img.e87.com/selection/agedday/2010images/colum_h3icon.gif") no-repeat left center; color: #ca417d; font-weight: bold; margin: 0 0 7px 0; padding: 0 0 0 19px; }
#xmas_column ul { display: flex; flex-wrap: wrap; margin: 0 0 0 15px; padding: 0; list-style: none; }
#xmas_column ul li { background: url("//img.e87.com/selection/agedday/2010images/colum_arrow.gif") no-repeat left center; padding: 0 0 0 10px; margin: 0 5px 5px 10px; font-size: 85%; width: 200px; box-sizing: border-box; }
#xmas_column ul li a { text-decoration: none; }
#xmas_column ul li a:hover { text-decoration: underline; }

.bnr_area { width: 640px; margin: 24px auto 0; }
.bnr_catch { font-size: 16px; font-weight: bold; text-align: center; color: #A18558; margin-bottom: 4px; }
.bnr_catch::before { content: "＼"; margin-right: 0.5em; color: #A18558; }
.bnr_catch::after { content: "／"; margin-left: 0.5em; color: #A18558; }

/* =========================================================
   18. area_lead 内カスタム (rf_lead_custom 等)
========================================================= */
.area_lead.rf_lead_custom { margin: 12px 0 !important; padding: 0; }
.rf_lead_custom .rf_sub_img_area { display: flex; gap: 10px; margin-bottom: 12px; justify-content: center; }
.rf_lead_custom .rf_sub_img_item { text-align: center; width: 150px; }
.rf_lead_custom .rf_sub_img_item img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 6px; border: 1px solid #e8e8e8; display: block; }
.rf_lead_custom .rf_sub_cap { display: block; font-size: 11px; color: #555; font-weight: bold; margin-top: 4px; line-height: 1.3; }
.rf_lead_custom .rf_push_point_box { background: #faf8f5; border: 1px dashed #e2d8ca; border-radius: 8px; padding: 14px 12px; box-sizing: border-box; }
.rf_lead_custom .rf_push_ttl { font-size: 16px; font-weight: bold; color: #b42b2b; margin: 0 0 8px 0 !important; line-height: 1.3; }
.rf_lead_custom .rf_push_list { margin: 0 !important; font-size: 14px; color: #444; line-height: 1.6; }
.rf_lead_custom .rf_push_list li { margin-bottom: 3px; }
.rf_lead_custom .rf_push_list li:last-child { margin-bottom: 0; }
.rf_lead_custom .rf_push_list strong { color: #E15242; }

/* =========================================================
   19. コラム要約エリア (rf_column_summary)
========================================================= */
.rf_column_summary { background: #f7f6fb; padding: 24px; margin-bottom: 48px; box-shadow: 0 4px 8px rgba(0,0,0,0.03); }
.rf_column_summary .rf_column_title { font-size: 18px; color: #b42b2b; text-align: center; font-weight: bold; margin: 0 0 16px 0; display: flex; justify-content: center; align-items: center; }
.rf_column_summary .rf_column_title::before, .rf_column_summary .rf_column_title::after { content: '笨ｦ'; color: #cbbbe4; margin: 0 8px; font-size: 14px; }
.rf_column_summary .rf_column_text { font-size: 16px; line-height: 1.8; color: #444; margin-bottom: 16px; text-align: center; }
.rf_column_summary .rf_column_point { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 0; padding: 0; }
.rf_column_summary .rf_column_point li { background: #fff; border: 1px solid #d4c8e8; color: #b42b2b; padding: 10px 16px; font-size: 16px; font-weight: bold; list-style: none; text-align: center; }
.rf_column_summary .rf_column_point li i { margin-right: 4px; }
.rf_column_summary .rf_column_link { text-align: center; margin-top: 16px; }
.rf_column_summary .rf_column_link a { color: #7b62aa; font-size: 13px; text-decoration: underline; }
.rf_column_summary .rf_column_link a:hover { text-decoration: none; }

/* =========================================================
   20. その他共通カラー調整 (area_single_item等)
========================================================= */
.area_single_item h2._heading { color: #b42b2b; }
.area_button a { background: #b42b2b; border: 2px solid #b42b2b; }
.area_button a:hover { color: #b42b2b!important; }
.area_button a:hover::before { border-top: solid 2px #b42b2b; border-right: solid 2px #b42b2b; }

/* -----------------------------------------------------------
   item_box / other_product (リスト共通)
----------------------------------------------------------- */
.items { padding: 8px 0 0; position: relative; z-index: 1; background: #fff; margin-bottom: 24px; }
.item_box { display: flex; position: absolute; justify-content: center; top: 50%; left: 50%; transform: translate(-50%, -50%); }
.item_left { width: 400px; text-align: center; }
.item_left a { transition: 0.2s; }
.item_img3 { display: flex; }
.item_wrap .item_img3_left { position: relative; margin: 0 5px 0 0; }
.item_wrap .item_img3_left._new::before { content: "NEW"; background: #e20000; padding: 6px 8px; color: #ffff; position: absolute; left: 0; top: 0; font-size: 16px; z-index: 10; }
.item_wrap .item_img3_left ._hidden { position: absolute; opacity: 0; top: 0; left: 0; transition: 0.2s; }
.item_wrap .item_img3_left img { width: 100%; height: auto; transition: 0.2s; }
.item_img_top { margin-bottom: 5px; }
.wrap_title { position: relative; text-align: center; font-weight: bold; color: #fff; margin-top: 0; }
.wrap_title .h4_sub { font-size: 18px; position: relative; color: #fff; font-weight: bold; }
.wrap_title h4 { font-size: 21px; font-weight: 600; text-align: center; line-height: 32px; color: #b42b2b; position: relative; z-index: 0; padding-bottom: 0; margin-top: 2em; }
.wrap_title .h4_sub:before { content: ''; position: absolute; top: 11px; display: inline-block; width: 20px; height: 2px; background-color: #fff; transform: rotate(60deg); left: -20px; }
.wrap_title .h4_sub:after { content: ''; position: absolute; top: 11px; display: inline-block; width: 20px; height: 2px; background-color: #fff; transform: rotate(-60deg); right: -20px; }
.item_box .right { width: 490px; }
.item_box .right .area_point_icon { margin-bottom: 1.5em; text-align: center; }
.right .area_name { margin-top: 1em; }
.right .area_name ._name { font-size: 21px; color: #b42b2b; text-align: left; line-height: 1.5; letter-spacing: -1px; margin: 1em 0; }
.right .area_name ._price { display: block; text-align: right; font-size: 16px; margin-top: 2px; color: #3c3c3c; text-align: left; }
.right .area_lead { margin: 1.25em 0; }
.right .area_lead ._lead { font-size: 16px; line-height: 1.6; color: #3c3c3c; text-align: left; margin: 0.75em 0; }
.right dl.item_point dd { color: #322c1e; font-size: 14px; padding: 0px 0 18px 0; line-height: 1.6; }
.right dl.item_point dt { color: #e7249c; font-size: 18px; position: relative; margin-bottom: 4px; }
.item_point { padding-top: 8px; }
.item_box .right .area_point_icon span.point { font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'Hiragino Mincho Pro', 'Yu Mincho', YuMincho, serif; font-size: 18px; text-align: center; display: inline-block; background: #AE0C00; font-weight: 500; margin: 0 24px; padding: 3px 2em 6px; border-radius: 25px; color: #fff; width: auto; height: auto; }
.area_items_lead { margin: 0 20px; background: rgb(255 255 255 / 0.8); min-height: 300px; display: flex; align-items: center; }
.area_items_lead p { font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'Hiragino Mincho Pro', 'Yu Mincho', YuMincho, serif; line-height: 2; font-weight: 500; font-size: 19px; margin: 0.5em 0em 0.5em; padding: 1em; }

.other_product { display: flex; flex-wrap: wrap; padding: 0 4px; margin: 0; justify-content: center; gap: 24px 8px; }
.other_product dl { padding: 0 8px; width: 226px; font-family: "????", Meiryo, "?????? Pro W6", "Hiragino Kaku Gothic Pro", Osaka, "?? ?????", "MS PGothic", sans-serif; }
.other_product .item_img { position: relative; }
.other_product dl dd.item_name { color: #444; margin-top: 8px; margin-bottom: 6px; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 14px; line-height: 1.3; letter-spacing: 0; }
.other_product dl dd.price { color: #444; font-size: 13px; letter-spacing: 0; }
.other_product a:hover { text-decoration: none; }
.other_product a img:hover { opacity: 0.8; }
.other_product img { width: 100%; height: auto; transition: 0.2s; }
.other_product .item_catch { font-size: 16px; font-weight: 600; text-align: center; line-height: 1.2; color: #AE0C00; position: relative; z-index: 0; margin: 0 0 0.25em; }

/* =========================================================
   21. ページトップへ戻る (#to-top)
========================================================= */
#to-top { position: fixed; bottom: 120px; right: 24px; width: 55px; text-decoration: none; display: block; text-align: center; opacity: 0; transition: 0.2s; color: #fff; line-height: 48px; font-size: 16px; z-index: 10; }
#to-top.fade { opacity: 1; transition: 0.2s; }
#to-top:hover { opacity: 0.8; }
.wrap-top { position: relative; text-align: center; font-weight: bold; padding-top: 12px; height: 60px; z-index: 0; border-radius: 50%; width: 60px; box-sizing: border-box; font-size: 18px; }
.wrap-top::after { content: ''; background: url(https://img.e87.com/selection/xmas/2026images/60-60-icon.png) no-repeat; position: absolute; width: 60px; height: 60px; left: 50%; top: 50%; transform: translate(-50%, -50%); background-size: contain; z-index: -1; }

/* =========================================================
   22. 共通バナーデザイン (.banner_title 等)
========================================================= */
.banner { display: block; text-align: center; margin-top: 2em; width: 700px; margin: 2em auto 0; transition: 0.2s; }
.banner:hover { opacity: 0.8; text-decoration: none!important; }

.banner_title { display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: bold; margin: 32px 0 8px; color: #AE0C00; }
.banner_title::before, .banner_title::after { content: ""; display: inline-block; width: 40px; height: 2px; margin: 0 15px; border-radius: 2px; }
.banner_title::before, .banner_title::after { background-color: #b73225; }
.banner_title._upcoming::before, .banner_title._upcoming::after { background-color: #999; }