@charset "euc-jp";
.cat_menu{margin:0px 0px 0px 0px;}
@media screen and (min-width:300px) {
  .cat_menu{width:100%;}
  .cat_menu img{width:31%}
}
@media screen and (min-width:768px)and ( max-width:1024px) { 
  .cat_menu{width:100%;}
  .cat_menu img{width:16%;}
}
.top_waku_logo {
  width:100%;}
.top_waku_contact {
  width:100%;}
.top_waku_tel {
  display:inline-block;
  width:49%;}
.top_waku_sns {
  display:inline-block;
  width:49%;}
@media screen and (min-width:1024px){ 
  .cat_menu{width:100%;}
  .cat_menu img{width:16%;}
  .shishu {display: none!important;}
  .top_waku_logo {
  width:50%;}
.top_waku_contact {
  width:50%;}
.top_waku_tel {
  display:inline-block;
  width:49%;}
.top_waku_sns {
  display:inline-block;
  width:49%;}

  #header {
  font-weight:bold;
  }
  
body {
  background-color: #FFF;
  background-image: url(https://img.shop-pro.jp/tmpl_img/73/bg.gif);
  color: #202124;
  
  font-family: "ヒラギノ角ゴ ProN W6", "Hiragino Kaku Gothic Pro", "游ゴシック Medium", YuGothic Gothic Medium, "メイリオ", "Meiryo", sans-serif;
}
a {
  color: #464e54;
}
a:hover {
  color: #5e5e5e;
}


/*layout*/
#wrapper {
  max-width: 1000px;
}

/*
 * contents
 */

#contents {
  float: right;
  padding-left: 0px;
}

#contents .topicpath-nav {
  margin-bottom: 5px;
}
  #contents .topicpath-nav li {
    padding: 0;
  }
  #contents .topicpath-nav a {
    margin-left: 5px;
  }

/*
 * side
 */


#side .unstyled img {
  display: block;
  margin-bottom: 5px;
}

/*
 * temp
 */
.top_waku{
  flex-wrap: wrap;
   justify-content: start;
    display: flex;
    flex-direction: row;}


/* font */
.txt_l { text-align: left; }
.txt_c { margin-bottom: 2px;  }
.txt_r { text-align: right; }
.txt_fwn { font-weight: normal; }
.txt_fwb { font-weight: bold; }
.txt_10 { font-size: 10px; }
.txt_12 { font-size: 12px; }
.txt_14 { font-size: 14px; }
.txt_16 { font-size: 16px; }
.txt_18 { font-size: 18px; }
.txt_20 { font-size: 20px; }
.txt_24 { font-size: 24px; }
.txt_28 { font-size: 28px; }
.txt_c_333 {color: #333;}

#slidenav {
  width: 110px;
  background-color: #ffffff;
  position: fixed;
  height: 100%;
  overflow: auto;
  margin-left: -112px; 
  box-sizing:border-box;
}
.menu a {
  display: block;
  text-decoration: none;
font-size:0.8em;}
}
@media screen and (min-width:1024px) {
  .menu {
    width: 100%;
    height: auto;
  }
}
@media screen and (max-width:1222px) {
  .menu{
    display: none!important;
  }
}
#slidenav_right {
  width: 110px;
  background-color: #ffffff;
  position: fixed;
  height: 100%;
  overflow: auto;
  margin-left: 1002px; 
  box-sizing:border-box;
}
.menu_right a {
  display: block;
  text-decoration: none;
  font-size:0.8em;}
}
@media screen and (min-width:1024px) {
  .menu_right {
    width: 100%;
    height: auto;
  }
}
@media screen and (max-width:1222px) {
  .menu_right{
    display: none!important;
  }
}
@media only screen and (min-width:769px){
.search_top{
    flex-wrap: wrap;
   justify-content: start;
   max-width:1000px;
    display: flex;
    flex-direction: row;
}
.search_bar {
  width:auto;
  height:50px;
  width:75%;
   text-align: left;

}
.search_bar input[type=text] {
   width:80%;
  height:38px;
  border:solid 2px #333;
  float: left;
  margin-right:5px;
  font-size: 16px;
   border-radius: 10px 10px 10px 10px;
}
.search_bar button{
  height: 50px;
  width:10%;
  border-radius: 10px 10px 10px 10px;}
.myaccount{
  /*margin-top:10px;*/
  width:25%;
}
  .myaccount ul{
    width:100%;}
  .myaccount a{font-size:22px;
    }
  .responsive {
  width: 13%;
  height: 13%;
    margin-bottom:5px;
}
}

/* background */
.bgc_gray {
  background-color: #f1f1f1;
}
@media only screen and (max-width:768px) {
.search_top{
    flex-wrap: wrap;
   justify-content: center;
   width:auto;
    display: flex;
    flex-direction: column-reverse;}
.search_bar {
  margin-left:5px;
  width:auto;
  height:35px;
  width:100%;
  margin-bottom:5px;
}
.search_bar form{height:75%;}
.search_bar input[type=text] {
   width:78%;
  height:100%;
  float: left;
  text-align: left;
  font-size: 16px;
   border-radius: 10px 10px 10px 10px;
}
.search_bar button{
  height: 143%;
  width:15%;
  margin-left:5px;
  text-align: center;
  border-radius: 10px 10px 10px 10px;}
.myaccount{
  width:auto;
  width:100%;
  text-align: right;
}
   .myaccount a{font-size:16px;
    }
  .responsive {
  width: 12%;
  height: 12%;
  margin-bottom:5px;
}
}
/* margin */
.mar_auto { margin: 0 auto; }
.mar_0 { margin: 0; }
.mar_t_0 { margin-top: 0; }
.mar_r_0 { margin-right: 0; }
.mar_b_0 { margin-bottom: 0; }
.mar_l_0 { margin-left: 0; }
.mar_5 { margin: 5px; }
.mar_t_5 { margin-top: 5px; }
.mar_r_5 { margin-right: 5px; }
.mar_b_5 { margin-bottom: 5px; }
.mar_l_5 { margin-left: 5px; }
.mar_t_10 { margin-top: 10px; }
.mar_r_10 { margin-right: 10px; }
.mar_b_10 { margin-bottom: 10px; }
.mar_l_10 { margin-left: 10px; }
.mar_t_20 { margin-top: 20px; }
.mar_r_20 { margin-right: 20px; }
.mar_b_20 { margin-bottom: 20px; }
.mar_l_20 { margin-left: 20px; }
.mar_t_30 { margin-top: 30px; }
.mar_r_30 { margin-right: 30px; }
.mar_b_30 { margin-bottom: 15px; }
.mar_l_30 { margin-left: 30px; }
/*.mar_t_50 { margin-top: 50px; } */
.mar_r_50 { margin-right: 50px; }
.mar_b_50 { margin-bottom: 30px; }
.mar_l_50 { margin-left: 50px; }
/* padding */
.pad_v_10 { padding: 10px 0; }
.pad_v_20 { padding: 20px 0; }
.pad_v_30 { padding: 30px 0; }
.pad_0 { padding: 0; }
.pad_t_0 { padding-top: 0; }
.pad_r_0 { padding-right: 0; }
.pad_b_0 { padding-bottom: 0; }
.pad_l_0 { padding-left: 0; }
.pad_5 { padding: 5px; }
.pad_t_5 { padding-top: 5px; }
.pad_r_5 { padding-right: 5px; }
.pad_b_5 { padding-bottom: 5px; }
.pad_l_5 { padding-left: 5px; }
.pad_10 { padding: 10px; }
.pad_t_10 { padding-top: 10px; }
.pad_r_10 { padding-right: 10px; }
.pad_b_10 { padding-bottom: 10px; }
/* .pad_l_10 { padding-left: 10px; } */
.pad_20 { padding: 20px; }
.pad_t_20 { padding-top: 5px; }
.pad_r_20 { padding-right: 20px; }
.pad_b_20 { padding-bottom: 20px; }
.pad_l_20 { padding-left: 20px; }
.pad_30 { padding: 30px}
.pad_t_30 { padding-top: 30px; }
.pad_r_30 { padding-right: 30px; }
.pad_b_30 { padding-bottom: 30px; }
.pad_l_30 { padding-left: 30px; }
.
/* border */
.bor_t_1 { border-top: 1px solid #eee; }
.bor_r_1 { border-right: 1px solid #eee; }
.bor_b_1 { border-bottom: 1px solid #eee; }
.bor_l_1 { border-left: 1px solid #eee; }

/* vertical align */
.va-10 { vertical-align: -10%; }
.va-20 { vertical-align: -20%; }
.va-30 { vertical-align: -30%; }
.va-35 { vertical-align: -35%; }
.va-40 { vertical-align: -40%; }
.va-base {vertical-align: baseline;}
.yoko{display: flex;
  /*font-size: 1.2em;*/}
.yoko img{margin-right:10px;}
.menu_waku{
  background-color:#ffffff;
  padding:0.1px 0 0.1px 0;}
@media (min-width: 980px) {.yoko1{margin-top: calc(4% - 2px);}}
@media (max-width: 980px) {.yoko1{margin-top: calc(5% - 2px);}}
@media (max-width: 768px) {.yoko1{margin-top: calc(1% - 2px);}}


@media (max-width: 980px) {
  /* ~980px */
  #base_gmoWrapp,
  #gmo_CMSPbar {
    overflow: hidden;
    min-width: 100% !important;
    width: 100% !important;
  }
}
@media (max-width: 768px) {
  /* ~768px */
  #contents {
    padding-left: 0;
  }
}
@media (max-width: 480px) {
  /* ~480px */
}

/*
 * icons
 */
.icon-user { background-position: -208px 0px; }
.icon-lg-b.icon-user { background-position: -312px 0px; }
.icon-adduser { background-position: -240px 0px; }
.icon-lg-b.icon-adduser { background-position: -360px 0px; }
.icon-login { background-position: -48px -80px; }
.icon-lg-b.icon-login { background-position: -72px -120px; }
.icon-logout { background-position: -32px -80px; }
.icon-lg-b.icon-logout { background-position: -48px -120px; }
.icon-home { background-position: -176px -16px; }
.icon-lg-b.icon-home { background-position: -264px -24px; }
.icon-mail { background-position: -64px 0px; }
.icon-lg-b.icon-mail { background-position: -96px 0px; }
.icon-pencil { background-position: -96px 0px; }
.icon-lg-b.icon-pencil { background-position: -144px 0px; }
.icon-help { background-position: -272px -80px; }
.icon-lg-b.icon-help { background-position: -408px -120px; }
.icon-cart { background-position: -176px -64px; }
.icon-lg-b.icon-cart { background-position: -264px -96px; }
.icon-search { background-position: -208px -16px; }
.icon-lg-b.icon-search { background-position: -312px -24px; }
.icon-chevron_up { background-position: -0px -144px; }
.icon-lg-b.icon-chevron_up { background-position: -0px -216px; }
.icon-chevron_down { background-position: -352px -128px; }
.icon-lg-b.icon-chevron_down { background-position: -528px -192px; }
.icon-twitter { background-position: -96px -176px; }
.icon-lg-b.icon-twitter { background-position: -144px -264px; }
.icon-instagram { background-position: -112px -192px; }
.icon-lg-b.icon-instagram { background-position: -168px -288px; }
.icon-facebook { background-position: -128px -176px; }
.icon-lg-b.icon-facebook {background-position: -192px -264px; }
.icon-youtube { background-position: -128px -160px; }
.icon-lg-b.icon-youtube { background-position: -191px -240px; }

.icon-b,
.icon-w {
  width: 16px;
  height: 16px;
  display: inline-block;
  *display: inline;
  *zoom: 1;
}
.icon-lg-b,
.icon-lg-w {
  width: 24px;
  height: 24px;
  display: inline-block;
  *display: inline;
  *zoom: 1;
}

.icon-b { background-image: url(https://img.shop-pro.jp/tmpl_img/73/icon16_b.png); }
.icon-w { background-image: url(https://img.shop-pro.jp/tmpl_img/73/icon16_w.png); }
.icon-lg-b { background-image: url(https://img.shop-pro.jp/tmpl_img/73/icon24_b.png); }
.icon-lg-w { background-image: url(https://img.shop-pro.jp/tmpl_img/73/icon24_w.png); }

@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2 / 1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
  .icon-b,
  .icon-w {
    -webkit-background-size: 368px 320px;
    background-size: 368px 320px;
  }

  .icon-lg-b,
  .icon-lg-w {
    -webkit-background-size: 552px 480px;
    background-size: 552px 480px;
  }

  .icon-b { background-image: url(https://img.shop-pro.jp/tmpl_img/73/icon16_2x_b.png); }
  .icon-w { background-image: url(https://img.shop-pro.jp/tmpl_img/73/icon16_2x_w.png); }
  .icon-lg-b { background-image: url(https://img.shop-pro.jp/tmpl_img/73/icon24_2x_b.png); }
  .icon-lg-w { background-image: url(https://img.shop-pro.jp/tmpl_img/73/icon24_2x_w.png); }
}
@media (max-width: 768px) {
  .icon-b { background-image: url(https://img.shop-pro.jp/tmpl_img/73/icon24_b.png); }
  .icon-w { background-image: url(https://img.shop-pro.jp/tmpl_img/73/icon24_w.png); }
}
@media only screen and (max-width: 768px) and (-webkit-min-device-pixel-ratio: 2), only screen and (max-width: 768px) and (min--moz-device-pixel-ratio: 2), only screen and (max-width: 768px) and (-o-min-device-pixel-ratio: 2 / 1), only screen and (max-width: 768px) and (min-device-pixel-ratio: 2), only screen and (max-width: 768px) and (min-resolution: 192dpi), only screen and (max-width: 768px) and (min-resolution: 2dppx) {
  .icon-b { background-image: url(https://img.shop-pro.jp/tmpl_img/73/icon24_2x_b.png); }
  .icon-w { background-image: url(https://img.shop-pro.jp/tmpl_img/73/icon24_2x_w.png); }
}

.shishu{
  margin:5px;
  width: 100%;
  border-collapse: collapse;
}

.shishu tr{
  border-bottom: solid 2px white;
}

.shishu tr :last-child{
  border-bottom: none;
}

.shishu th{
  position: relative;
  text-align: left;
  width: 15%;
  background-color: #52c2d0;
  color: white;
  text-align: center;
  padding: 10px 0;
}

.shishu th:after{
  display: block;
  content: "";
  width: 0px;
  height: 0px;
  position: absolute;
  top:calc(50% - 10px);
  right:-10px;
  border-left: 10px solid #52c2d0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
}

.shishu td{
  text-align: left;
  width: 85%;
  text-align: left;
  background-color: #eee;
  padding: 0 0 0 20px;
  color:black;
}

/*カレンダー↓*/


/* --- カレンダー全体のレイアウト制御 --- */
.side_cal {
  display: flex;
  gap: 20px;
}

.side_cal img {
  object-fit: cover;
}


/* PC版：縦に2ヶ月分並べる */
@media (min-width: 768px) {
  .side_cal {
    flex-direction: column;
    align-items: flex-start;
  }
  .tbl_calendar {
    width: 100% !important;
    max-width: 200px; /* サイドバーの幅に合わせて微調整してください */
  }
}

/* スマホ版：横に2ヶ月分並べる */
@media (max-width: 767px) {
  .side_cal {
    flex-direction: row;
    justify-content: space-between;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .tbl_calendar {
    width: 48% !important; /* 2枚が横に収まる幅 */
    min-width: 145px;      /* 崩れ防止の下限サイズ */
  }
}

/* --- カレンダー内部の共通デザイン --- */
.tbl_calendar {
  border: none !important;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  font-family: inherit;
  font-size: 11px;
}

.tbl_calendar th, 
.tbl_calendar td {
  padding: 6px 2px !important; /* 少し余白を広げて見やすく */
  text-align: center !important;
  border-bottom: 1px solid #eee !important;
}

/* メモ部分 */
.side_cal_memo {
  margin-top: 15px;
  font-size: 12px;
  line-height: 1.6;
  color: #666;
  font-family: inherit;
}
/*カレンダー↑*/

/* 横スライダー調整用 */
/* 1. スライダー全体の高さを確保し、下に余白を作る */
.mySwiper {
	padding-bottom: 25px !important; /* 丸いボタンを置くためのスペース */
    padding-top: 10px !important;
}

/* 2. 丸いボタンの位置を調整（画像に被らない位置まで下げる） */
.mySwiper .swiper-pagination {
    position: absolute;
} 

/* --- ↓ヘッダーメニュー↓ --- */
/* =========================================================
   1. 基本設定・共通
========================================================= */
body { margin: 0; padding-top: 0 !important; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 15px; }

.site-header { 
  position: sticky; 
  top: 0; 
  width: 100%; 
  z-index: 9999; 
  background: #fff; 
  box-shadow: 0 2px 10px rgba(0,0,0,0.05); 
}

/* =========================================================
   2. ヘッダー（トップバー・送料無料リンク）
========================================================= */
.top-bar { background-color: #c15a5c; color: #fff; padding: 8px 0; font-size: 13px; }
.top-bar .container { display: flex; justify-content: space-between; align-items: center; }

.shipping-info { display: flex; align-items: center; gap: 6px; text-decoration: none !important; color: inherit !important; }
.truck-icon { width: 22px !important; height: auto !important; }
.highlight { color: #fbffa3; font-weight: bold; }

.top-links a { color: #fff; text-decoration: none; margin-left: 15px; padding-left: 15px; border-left: 1px solid rgba(255,255,255,0.3); font-size: 11px; }

/* =========================================================
   3. メインヘッダー・検索・ユーザーナビ
========================================================= */
.main-header { padding: 12px 0; border-bottom: 1px solid #f5f5f5; background: #fffefa; }
.header-flex { display: flex; align-items: center; justify-content: space-between; gap: 20px; }

.logo img { height: 45px; width: auto; display: block; margin: 0 auto; }

/* 検索窓 */
.search-box { flex: 1; max-width: 500px; }
.search-box form { display: flex !important; align-items: center !important; border: 2px solid #c15a5c !important; border-radius: 6px !important; height: 40px !important; overflow: hidden !important; background: #fff !important; margin: 0 !important; }
.search-box input[type="text"] { flex: 1 !important; border: none !important; padding: 0 15px !important; outline: none !important; font-size: 14px !important; background: transparent; }
.search-btn { height: 40px !important; width: 50px !important; background: #c15a5c !important; border: none !important; display: flex !important; align-items: center !important; justify-content: center !important; cursor: pointer !important; }
.search-btn img { width: 22px !important; filter: brightness(0) invert(1) !important; }

/* ユーザーナビ */
.user-nav { display: flex; gap: 15px; }
.nav-item { text-align: center; text-decoration: none !important; color: #333; display: flex; flex-direction: column; align-items: center; min-width: 50px; }
.nav-item .icon { width: 30px !important; height: 30px !important; margin-bottom: 3px; }
.nav-item .label { font-size: 14px; font-weight: bold; }

/* =========================================================
   4. カテゴリナビ
========================================================= */
.category-nav { background: #c15a5c !important; transition: transform 0.01s ease; }
.category-flex { display: flex !important; flex-wrap: nowrap !important; padding: 0 !important; }
.cat-item { 
  flex: 1 !important; color: #fff !important; text-decoration: none !important; text-align: center !important; padding: 6px 4px !important; 
  display: flex !important; flex-direction: column !important; 
  align-items: center !important; justify-content: center !important; gap: 0.3em;
  border-right: 1px solid rgba(255,255,255,0.2) !important; 
}
.cat-item:last-child { border-right: none !important; }
.cat-icon-wrapper { width: 30px !important; height: 30px !important; }
.cat-icon { max-width: 100% !important; filter: brightness(0) invert(1) !important; }
.cat-label { font-size: 14px ; font-weight: bold !important; letter-spacing: 1.5px; font-feature-settings: "palt"; }

/* =========================================================
   5. スライドバナー
========================================================= */
.swiper { z-index:2 ;}
.top-slider { width: 100%; overflow: visible !important; position: relative; background: #fff; }
.swiper-slide { width: 1200px; max-width: 85%; transition: all 0.3s ease; position: relative; }
.swiper-slide img { width: 100% !important; height: auto !important; display: block; }
.swiper-slide::after { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%;  transition: background-color 0.3s ease; pointer-events: none; z-index: 15; }
.swiper-slide-active::after { background-color: rgba(0, 0, 0, 0) !important; }

.custom-nav-btn { width: 45px !important; height: 45px !important; background: rgba(255, 255, 255, 0.9) !important; border-radius: 50% !important; border: 1px solid #ddd !important; color: #c15a5c !important; top: 50% !important; transform: translateY(-50%) !important; z-index: 10 !important; box-shadow: 0 2px 5px rgba(0,0,0,0.1) !important; }
.custom-nav-btn::after { font-size: 18px !important; font-weight: bold !important; }
.swiper-button-prev { left: calc(50% - 600px + 15px) !important; }
.swiper-button-next { right: calc(50% - 600px + 15px) !important; }

.custom-pagination { bottom: 15px !important; }
.custom-pagination .swiper-pagination-bullet { width: 10px !important; height: 10px !important; background: #ddd !important; opacity: 1 !important; margin: 0 5px !important; }
.custom-pagination .swiper-pagination-bullet-active { background: #c15a5c !important; }

/* =========================================================
   6. スマホ版レスポンシブ（768px以下）
========================================================= */
@media screen and (max-width: 768px) {
  .main-header { padding: 4px 0;}
  .top-bar .top-links { display: none; }
  .header-flex { flex-wrap: wrap !important; gap: 2px 0 !important; }

  /* スマホロゴの初期設定（スクロール前は表示） */
  .logo { width: 100% !important; margin-bottom: 0px !important padding: 0; }
  .logo img { height: 32px; }

  .search-box { flex: 1 !important; margin-right: 8px !important; min-width: 0 !important; }
  .search-box form { height: 34px !important; }
  .search-box input[type="text"] { font-size: 11px !important; padding: 0 8px !important; }
  .search-btn { width: 36px !important; height: 34px !important; }

  .user-nav { gap: 2px !important; width: auto !important; justify-content: flex-end !important;  }
  .nav-item { min-width: 38px !important; }
  .nav-item .icon { width: 22px !important; height: 22px !important; }
  .nav-item .label { font-size: 12px !important; transform: scale(0.85); white-space: nowrap; }

  .cat-item { padding: 6px 0 4px 0; }
  .cat-icon-wrapper { width: 22px !important; height: 22px !important; }
  .cat-label { font-size: 62% !important;; transform: scale(0.9) !important; }

  .swiper-slide { width: 100% !important; max-width: 100% !important; }
  .swiper-slide::after { display: none !important; } 
  .custom-nav-btn { width: 35px !important; height: 35px !important; }
  .swiper-button-prev { left: 10px !important; }
  .swiper-button-next { right: 10px !important; }
}

/* =========================================================
   追加：非表示制御用の共通設定
========================================================= */
.js-scroll-hide {
  transition: all 0.3s ease !important; /* 滑らかに変化させる */
  opacity: 1;
  visibility: visible;
  overflow: hidden;
}

/* クラスがついた時の状態 */
.js-scroll-hide.is-hidden {
  opacity: 0;
  visibility: hidden;
  height: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  border: none !important;
}

/* =========================================================
   4. カテゴリナビ（既存箇所の調整）
========================================================= */
.category-nav { 
  background: #c15a5c !important; 
  /* transition は js-scroll-hide で定義するため削除・上書き可 */
  height: 70px; /* 任意の高さを指定するとより安定します */
}

/* =========================================================
   スマホ版レスポンシブの調整
========================================================= */
@media screen and (max-width: 768px) {
  .logo {
    /* transition を有効にするため display: block を維持 */
    display: block !important; 
    height: 30px; /* スマホ時のロゴエリアの高さ */
    padding: 0 0 4px 0;
  }
  .category-nav { 
  height: 50px; /* 任意の高さを指定するとより安定します */
}
}
/* --- ↑ヘッダーメニュー↑ --- */


/* --- ↓スライドバナー↓ --- */
/* 全体コンテナ */
.uj26-simple-slider {
  width: 100%;
  padding: 0.1em 0;
  background: #fff;
  overflow: hidden;
  overflow: hidden !important; /* 画面外へのはみ出しを絶対にカット */
  touch-action: pan-y;         /* タッチ操作時、横ブレを禁止して縦スクロールのみを生かす */
}

/* 本体：画面端まで画像が並ぶ設定 */
.js-uj26-swiper {
  width: 100%;
  overflow: visible !important;
}

/* 各スライドの設定 */
.uj26-simple-slider .swiper-slide {
  width: 400px !important; 
  max-width: 80%;
  position: relative;
  transition: transform 0.3s ease;
}

.uj26-simple-slider .swiper-slide img {
  width: 100%;
  height: auto;
  aspect-ratio: 1110 / 1000;
  display: block;
  border-radius: 4px;
  object-fit: cover;
}

/* 左右スライドへのグレー乗算 */
.uj26-simple-slider .swiper-slide::after {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(0,0,0,0.2); /* グレーの濃さ */
  transition: 0.3s;
  pointer-events: none;
  z-index: 4;
  border-radius: 4px;
}

/* 中央のスライドだけ明るく */
.uj26-simple-slider .swiper-slide-active::after {
  opacity: 0;
}

/* --- スライドボタンのデザイン（影なし・白記号のみ） --- */
.uj26-simple-slider .swiper-button-prev,
.uj26-simple-slider .swiper-button-next {
  color: #fff !important;
  background: none !important;
  width: auto;
  height: auto;
  filter: none !important; /* 影を完全に削除 */
  text-shadow: none !important; /* 文字影も削除 */
}

/* 記号の太さとサイズ */
.uj26-simple-slider .swiper-button-prev::after,
.uj26-simple-slider .swiper-button-next::after {
  font-size: 60px !important; 
  font-weight: 100; 
}

/* ドットの色 */
.uj26-simple-slider .swiper-pagination-bullet-active {
  background: #b36b6b !important;
}

/* スマホ表示 */
@media screen and (max-width: 768px) {
  .uj26-simple-slider .swiper-slide {
    width: 85% !important;
  }
}
/* --- ↑スライドバナー↑ --- */

/* 商品一覧：スマホ・タブレットでの多段表示設定 */
@media screen and (max-width: 767px) {
  /* 1. 親要素(ul)の折返しと余白をリセット */
  ul.row.unstyled {
    display: flex !important;
    flex-wrap: wrap !important;
    padding: 0 5px !important; /* 両端の余白調整 */ 
    margin: 0 !important;
  }

  /* 2. 子要素(li)を2列にする設定（3列にする場合は width: 33.3%） */
  ul.row.unstyled > li {
    width: 50% !important;     /* ここを50%にすると2列表示になります */
    float: none !important;
    padding: 10px 5px !important; /* 商品ごとの間隔 */
    height: auto !important;   /* 高さをコンテンツに合わせる */
    box-sizing: border-box !important;
  }

  /* 3. 画像サイズを枠にフィットさせる */
  ul.row.unstyled > li img {
    width: 100% !important;
    height: auto !important;
  }
  /* サムネイル全体のコンテナに適切な高さを確保し、下の要素を押し下げる */
  .p-product-img__thumb {
    height: auto !important;
    min-height: 80px !important; /* サムネイル画像の縦幅に合わせて数値を微調整してください */
    margin-bottom: 50px !important; /* 下のバナーとの間に適切な隙間を作る */
    display: block !important;
    clear: both !important;
  }

  /* 中にあるスライド要素の浮き（float）による高さ消失を防ぐ */
  .p-product-img__thumb .u-overflow-slide {
    position: relative !important;
    height: auto !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important; /* スマホで横スクロールできるようにする保険 */
    -webkit-overflow-scrolling: touch;
  }

}

/* --- 商品一覧のテキスト色を黒(#333)に統一 --- */

/* 1. 通常時の色指定 */
ul.row.unstyled li a {
  color: #333 ;
  text-decoration: none !important; /* 下線を消す場合 */
  font-size: 0.8em;
}

/* 2. マウスホバー時の色（お好みで調整してください） */
ul.row.unstyled li a:hover {
  color: #b36b6b !important; /* ユニフォームジャパン様のエンジ色にする場合 */
  text-decoration: underline !important;
}

/* --- 商品一覧の画像を正方形に統一 --- */

.productlist-unit a img {
  width: 100% !important;
  aspect-ratio: 1 / 1 !important; /* 強制的に正方形にする */
  object-fit: contain !important;   /* 比率を保ったまま枠いっぱいに広げ、はみ出しをカット */
  object-position: center !important; /* 中央を基準に切り抜き */
  background-color: #ffffff;      /* 余白が出た場合の背景色（任意） */
}

/* 商品一覧の各枠の高さ固定を解除（崩れ防止） */
.productlist-unit {
  height: auto !important;
}

/* 商品一覧：不自然な空白を解消する設定 */
ul.row.unstyled {
  display: flex !important;      /* 1. レイアウトをFlexboxに変更 */
  flex-wrap: wrap !important;    /* 2. 折り返しを許可 */
  align-items: stretch !important; /* 3. 各項目の高さを自動で揃える */
}

.table {
  margin-bottom: 0px;
}

/* --- スマートフォン版：カテゴリー一覧のみ最大5列・画像統一・テキスト色変更 --- */
@media screen and (max-width: 767px) {

  /* 1. 見出し(h3)の直後にあるulのみを5列化 */
  h3 + ul.row,
  ul.category-list {
    display: flex !important;
    flex-wrap: wrap !important;      /* 数が増えれば自動改行 */
    justify-content: flex-start !important; /* 左から順番に詰める */
    padding: 0 5px !important;       /* 画面両端の余白 */
    margin: 0 0 20px 0 !important;   /* 下部（商品一覧）との隙間 */
  }

  /* 2. カテゴリーの各枠(li)を横幅20%（5列）にする */
  h3 + ul.row > li,
  ul.category-list > li {
    width: 20% !important;           /* 100% ÷ 5列 = 20% */
    max-width: 20% !important;
    float: none !important;
    padding: 10px 4px !important;    /* 隣同士の間隔 */
    box-sizing: border-box !important;
    text-align: center !important;   /* 全体を中央揃え */
  }

  /* 3. リンク(a)の青文字を廃止し、縦並びの中央揃えを徹底 */
  h3 + ul.row > li a,
  ul.category-list > li a {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;  /* 画像と文字の軸を真ん中に */
    text-align: center !important;
    width: 100% !important;
    
    /* ▼ 青文字をなしにして、全体のトーンに合わせた黒系に固定 ▼ */
    color: #333 !important;
    text-decoration: none !important; /* 下線も消す */
  }

  /* 3-2. マウスホバー時やタップ時にお好みでエンジ色に（不要なら削除OKです） */
  h3 + ul.row > li a:hover,
  ul.category-list > li a:hover {
    color: #b36b6b !important;
  }

  /* 4. ★画像の比率や大きさが違っても、すべて綺麗な正方形に統一する設定 */
  h3 + ul.row > li img,
  ul.category-list > li img {
    width: 100% !important;
    max-width: 60px !important;      /* スマホ5列時に最適な横幅の上限 */
    
    /* ▼ どんな比率の画像が来ても、強制的に縦横1:1の正方形で表示する ▼ */
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;   /* 比率を保ったまま枠に満たし、はみ出た部分はカット */
    object-position: center !important; /* 画像の中心が真ん中に来るように配置 */
    
    background-color: #fff !important; /* 万が一、透過画像などで背景が浮くのを防ぐ白背景 */
    margin: 0 auto 5px auto !important; /* 左右中央寄せ ＋ 文字との隙間 */
  }

  /* 5. カテゴリー名のテキスト調整 */
  h3 + ul.row > li span,
  ul.category-list > li span,
  h3 + ul.row > li font,
  ul.category-list > li font {
    font-size: 10px !important;      /* 5列に収まるサイズ */
    line-height: 1.2 !important;
    color: #333 !important;          /* 文字色を継承・固定 */
    word-break: break-all !important; /* 枠内での強制折り返し */
  }
}





/* --- ↓↓さぶみっとタイトル用↓↓ --- */
/* --- カラーミー側・タイトル専用CSS --- */
.rcmd-header-container {
  margin-top: 8px;
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-end !important;
  /* margin: 35px 0 16px 0 !important;  上の要素から35px、下のグレー枠まで16px */
  padding: 0 !important;
  background: transparent !important;
  width: 100% !important;
  box-sizing: border-box !important;
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", Hiragino Kaku Gothic ProN, sans-serif;
}
.rcmd-title-box {
  display: flex !important;
  flex-direction: column !important;
  gap: 3.5px !important;
  margin: 0 !important;
  padding: 0 !important;
}
.rcmd-sub-title {
  font-size: 13px !important;
  color: #8c8c8c !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.2 !important;
}
.rcmd-main-title {
  font-size: 18px !important;
  font-weight: bold !important;
  color: #333 !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.02em !important;
}
.rcmd-view-all-btn {
  font-size: 11px !important;
  color: #333 !important;
  background-color: #f7f4f0 !important;
  text-decoration: none !important;
  padding: 8px 12px !important;
  border-radius: 2px !important;
  line-height: 1.2 !important;
  transition: background-color 0.2s !important;
  margin: 0 !important;
}
.rcmd-view-all-btn:hover {
  background-color: #e5e5e5 !important;
}
@media screen and (max-width: 767px) {
  /*.rcmd-header-container {
    margin: 25px 0 12px 0 !important;
  }*/
  .rcmd-main-title { font-size: 15px !important; }
  .rcmd-sub-title { font-size: 11px !important; }
}
/* --- ↑↑さぶみっとタイトル用↑↑ --- */

/* --- スマホ表示時のみ左右の余白を無視して画面いっぱいに広げる新しいクラス --- */
  @media (max-width: 768px) {
    .uj-fullwidth-banner {
      display: block;
      width: 100vw;               /* 画面の横幅いっぱいに指定 */
      position: relative;
      left: 50%;                  /* 一度画面中央に配置 */
      right: 50%;
      margin-left: -50vw;         /* 左側に画面幅の半分引き戻す */
      margin-right: -50vw;        /* 右側に画面幅の半分引き戻す */
      margin-top: 20px;           /* 上下の任意の余白調整 */
      margin-bottom: 10px;
      overflow: hidden;
    }
    .uj-fullwidth-banner img {
      width: 100% !important;     /* 画像自体を強制的に100%幅にする */
      max-width: 100% !important;
      height: auto !important;
      display: block;
    }
  }

  /* PC表示時はみ出さないようにリセット */
  @media (min-width: 769px) {
    .uj-fullwidth-banner {
      display: block;
      width: 100%;
      margin-top: 15px;
      margin-bottom: 15px;
    }
    .uj-fullwidth-banner img {
      width: 100%;
      height: auto;
      display: block;
    }
  }


  /* ↓お困りの際はこちら↓ */
  .custom-nav-menu {
    width: 100%;
    margin: 20px 0;
    position: relative;
    z-index: 100;
  }

  .menu-parent-list {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 5px;
  }

  .menu-parent-item {
    flex: 1;
    position: relative;
  }

  /* ▼ 【ホバー前】白背景＋色線＋色文字 ▼ */
  .menu-title-box {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px 5px;
    background-color: #fff;    /* 白背景 */
    color: #c15a5c;            /* ベージュ文字 */
    border: 1px solid #c15a5c; /* ベージュの線 */
    border-radius: 0px;
    font-weight: bold;
    font-size: 18px;
    cursor: pointer;
    transition: all 0.3s;
    box-sizing: border-box;
  }

  .menu-title-box span {
    display: flex;
    align-items: center;
    gap: 8px;
  }

  /* 右側の矢印アイコン（∨） */
  .menu-title-box::after {
    content: "∨"; 
    font-size: 12px;
    margin-left: 8px;
    font-weight: bold;
    transition: transform 0.3s;
  }

  /* 画像（後で差し替え可能） */
  .menu-title-box img {
    width: 30px;
    height: 30px;
    object-fit: contain;
    transition: filter 0.3s;
  }

  /* ▼ 【ホバー後】色塗りつぶし＋白文字 ▼ */
  .menu-parent-item:hover .menu-title-box {
    background-color: #c15a5c; /* ベージュ塗りつぶし */
    color: #fff;               /* 白文字 */
  }

  /* ホバー時に画像を白抜きにする（必要に応じて） */
  .menu-parent-item:hover .menu-title-box img {
    filter: brightness(0) invert(1);
  }

  /* ホバー時に矢印を回転 */
  .menu-parent-item:hover .menu-title-box::after {
    transform: rotate(180deg);
  }

  /* 子カテゴリリスト（ドロップダウン） */
  .menu-child-list {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background-color: #fff;
    border: px solid #c15a5c;
    border-top: none;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    list-style: none;
    margin: 0;
    padding: 10px 0;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    border-radius: 0 0 0px 0px;
    box-sizing: border-box;
  }

  .menu-parent-item:hover .menu-child-list {
    opacity: 1;
    visibility: visible;
  }

  .menu-child-list li a {
    display: block;
    padding: 10px 15px 10px 30px;
    font-size: 13px;
    color: #555;
    text-decoration: none;
    position: relative;
    transition: background 0.2s;
  }

  .menu-child-list li a::before {
    content: "└";
    position: absolute;
    left: 12px;
    color: #ccc;
  }

  .menu-child-list li a:hover {
    background-color: #fcf9f6;
    color: #c15a5c;
  }

  /* スマホ版の微調整 */
  @media (max-width: 480px) {
    .menu-title-box {
      font-size: 18px;
      padding: 10px 2px;
    }
    .menu-title-box::after {
      margin-left: 4px;
      font-size: 10px;
    }
  }

/* =========================================================
   【完全修正版】フッターレイアウト調整CSS
========================================================= */

/* --- 1. フッター全体のクリアと背景の横いっぱい化 --- */
#footer {
  clear: both !important;
  width: 100% !important;
  max-width: 100% !important; /* 横幅の制限を解除 */
  background-color: #ffffff;
  margin-top: 30px !important;
  box-sizing: border-box !important;
}

/* フッター内側の共通コンテンツ幅寄せ */
.footer-inner {
  max-width: 850px; /* サイトのメイン幅に統一 */
  margin: 0 auto !important;
  box-sizing: border-box !important;
}


/* --- 2. 上段（ヘルプメニュー＆LINE）ボタン後ろの背景を横いっぱいに --- */
.footer-top {
  width: 100% !important;
  background-color: #fcfaf5 !important; /* 薄いベージュ背景 */
  padding: 30px 0 !important;
  margin-bottom: 40px !important;
  box-sizing: border-box !important;
}

/* 背景の中で中身（ヘルプとLINE）を横並び・中央寄せにする */
.footer-top::before,
.footer-top::after {
  content: none !important; /* 既存のfloat解除の崩れ防止 */
}

/* 実際に要素が並ぶコンテナ（footer-innerと同じ幅で中央に寄せる） */
.footer-top {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 40px !important;
}


/* --- 3. ヘルプメニューとLINEボタンの高さを揃える --- */

/* ヘルプメニューの外枠調整 */
.footer-top .custom-nav-menu {
  margin: 0 !important;
  padding: 0 !important;
  width: 300px !important; /* 幅を程よく固定 */
}
.footer-top .menu-parent-item {
  margin: 0 !important;
  list-style: none !important;
}

/* ヘルプメニューのタイトル箱の高さ・スタイル調整 */
.footer-top .menu-title-box {
  height: 45px !important; /* LINEボタンエリアと高さを合わせる */
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}

/* LINEボタン側の調整 */
.footer-line-btn {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 6px !important;
  height: 68px !important; /* テキスト＋ボタンの総高さをヘルプ側とバランス調整 */
}

.line-coupon-text {
  font-size: 13px !important;
  color: #2ch;
  white-space: nowrap !important;
  margin: 0 !important;
  line-height: 1 !important;
}

.footer-line-btn a {
  display: block !important;
  height: 45px !important; /* ヘルプメニューのボタン高に極力合わせる */
}

.footer-line-btn a img {
  height: 100% !important;
  width: auto !important;
  display: block !important;
}


/* --- 4. 下段（カレンダー＆ナビリンク）のレイアウト --- */
.footer-bottom {
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-start !important;
  gap: 50px !important;
}

/* --- 5. 営業カレンダーを広くして2つを「横並び」に強制修正 --- */
.footer-bottom .side_section_cal {
  flex: 0 0 45% !important; /* カレンダーエリアの横幅を広く確保 */
  max-width: 450px !important;
  margin: 0 !important;
}

.footer-bottom .cal_title {
  font-weight: bold !important;
  margin-bottom: 8px !important; 
  margin-top: 20px;
   font-size: 18px !important;
    text-align: center;
    color: #c15a5c;

}

/* カレンダー2ヶ月分を横並びにする（既存の縦ループ指定を上書き） */
.footer-bottom .side_cal {
  display: flex !important;
  flex-direction: row !important; /* 強制横並び */
  justify-content: space-between !important;
  gap: 4% !important;
  width: 100% !important;
  margin-top: 15px;
}

/* カレンダーの各テーブルの幅を均等に広げる */
.footer-bottom .tbl_calendar {
  width: 48% !important; /* 2ヶ月が綺麗に収まるサイズ */
  max-width: 200px !important;
  flex: 1 !important;
}


/* --- 6. 右側ナビゲーションリンク・コピーライトの調整 --- */
.footer-links-area {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 20px !important;
}

/* 各種リンク */
.footer-nav-links {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 12px !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}
.footer-nav-links li {
  margin: 0 !important;
  padding: 0 !important;
}
.footer-nav-links li a {
  font-size: 14px !important;
  text-decoration: none !important;
  color: #333 !important;
}
.footer-nav-links li a:hover {
  text-decoration: underline !important;
}

/* インスタアイコン */
.footer-sns-links {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

/* コピーライト */
.copyright {
  margin-top: 10px !important;
  font-size: 12px !important;
  color: #666 !important;
}
.copyright address {
  font-style: normal !important;
}


/* --- 7. スマートフォン版（768px以下）の表示崩れ防止 --- */
@media screen and (max-width: 768px) {
  .footer-top {
    flex-direction: column !important;
    gap: 25px !important;
  }
  
  .footer-top .custom-nav-menu {
    width: 100% !important;
    max-width: 300px !important;
  }

  .footer-bottom {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 40px !important;
  }

  .footer-bottom .side_section_cal {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 !important;
  }

  .footer-links-area {
    align-items: center !important;
    width: 100% !important;
  }

  .footer-nav-links {
    align-items: center !important;
  }
}
  /* ↑フッター↑ */

/* =========================================================
   メインエリアの右寄り・左空白を解消して中央配置にする
========================================================= */

/* 1. 全体を包むラッパー要素を中央寄せにする */
#wrapper {
  margin: 0 auto !important;
  float: none !important;
}

/* 2. メインコンテンツの右浮き（float）を解除して中央配置へ */
#contents {
  float: none !important;            /* 右寄せを解除 */
  margin: 0 auto !important;          /* 画面の真ん中に配置 */
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: 850px !important;       /* バナーやコンテンツの最大幅に合わせる */
  width: 100% !important;
}

/* 3. ヘッダー周りやトップの検索バー等も中央基準にリセット */
.main-header .container,
.category-nav .container,
.top-bar .container {
  max-width: 1000px !important;       /* コンテンツ幅と綺麗に揃える */
  margin: 0 auto !important;
}

/* 検索バーとアカウントリンクのコンテナの余白調整 */
.search_top {
  max-width: 1000px !important;
  margin: 0 auto 20px auto !important; /* 中央に寄せて下に少し余白を */
}



/* =========================================================
   左右追従バナー（コンテンツに寄り添い、縦幅に合わせて自動伸縮）
========================================================= */
.side-banner {
  position: fixed;
  top: 60%;                 /* 起点にする */
  transform: translateY(-50%); /* 正確な上下中央揃え */
  
  /* 画面幅（横幅）に応じたバナー幅の設定（最大120px、画面が狭くなれば少し小さく） */
  width: 7vw;
  max-width: 10%;
  min-width: 70px;
  
  /* 画面の高さにバナー全体を収めるための設定 */
  max-height: 70vh;         /* 画面全体の高さの90%以内にバナー群を収める */
  display: flex;
  flex-direction: column;
  justify-content: center;  /* バナー群を中央に集める */
  
  transition: all 0.3s ease;
  z-index: 100;             /* フッターやスライダーより前面に配置 */
}

/* ---------------------------------------------------------
   【最重要】メインコンテンツ（中央）の左右にぴったり配置する設定
--------------------------------------------------------- */
/* 中央寄せされているメインコンテンツの基準幅を「1200px」と仮定しています。
   もしメインコンテンツの横幅が異なる場合は、下記の「600px」（1200pxの半分）を調整してください。
*/

/* 左側バナー：中央から左に600px（コンテンツの端）戻し、さらにバナー自身の幅＋余白分左にずらす */
.side-banner-left {
  left: 50%;
  margin-left: calc(-500px - 120px - 20px); /* -500px(中央から左端) - 120px(バナー幅) - 20px(隙間) */
}

/* 右側バナー（今後追加用）：中央から右に600px進め、さらに隙間分右にずらす */
.side-banner-right {
  right: 50%;
  margin-right: calc(-500px - 120px - 20px);
}

/* 画面幅が1500px以下になり、バナーが画面端にぶつかりそうになったら画面端に固定する（レスポンシブ） */
@media screen and (max-width: 1500px) {
  .side-banner-left {
    left: 20px;
    margin-left: 0;
  }
  .side-banner-right {
    right: 20px;
    margin-right: 0;
  }
}

/* ---------------------------------------------------------
   バナー内の要素・余白の自動伸縮設定
--------------------------------------------------------- */
/* 画像がバナー枠に綺麗に収まるように設定 */
.side-banner img {
  width: 100%;             /* 120%からはみ出さないよう100%に調整 */
  height: auto;
  display: block;
}

/* 各バナー（リンク）の上下の間隔を、画面の高さ（vh）に合わせて可変にする */
.side-banner a {
  display: block;
  margin-bottom: 1.5vh;    /* 画面高さが低くなると、自動的に間隔がキュッと狭くなります */
  transition: transform 0.2s ease;
}

/* ホバーした時に少し浮き上がらせる動き（お好みで） */
.side-banner a:hover {
  transform: scale(1.05);
}

.side-banner a:last-child {
  margin-bottom: 0;
}

/* ---------------------------------------------------------
   【極端に高さが低い画面（ノートPC等）への調整】
--------------------------------------------------------- */
@media screen and (max-height: 800px) {
  .side-banner {
    max-height: 60vh;      /* 画面の縦めいっぱいに使えるようにする */
  }
  .side-banner a {
    margin-bottom: 0.8vh;  /* バナー同士の隙間をさらに詰める */
  }
}

/* ---------------------------------------------------------
   【スマホ・タブレット対応】画面幅が狭い端末では非表示
--------------------------------------------------------- */
@media screen and (max-width: 1200px) {
  .side-banner {
    display: none;
  }
}


/* =========================================================
   フッター専用リンクアイコンの横並び設定（5枚一列・強制版）
========================================================= */

/* 親要素のボックス設定 */
.custom-footer-links {
  display: flex !important;
  flex-wrap: nowrap !important;      /* ★PC版では絶対に折り返さない */
  justify-content: center !important; /* 中央寄せ */
  align-items: center !important;
  gap: 38px !important;              /* 画像同士のすき間を少しだけ狭く調整 */
  width: 100% !important;
  max-width: 1000px !important;      /* 横幅の枠を少し絞る */
  margin: 0 auto !important;
  box-sizing: border-box !important;
  padding-bottom: 15px;
}

/* リンクタグ単体の設定（PCでは画像本来のサイズで並べる） */
.custom-footer-links > a {
  display: block !important;
  flex: 0 1 auto !important;
  width: 100% !important;
  max-width: 140px !important;       /* ★1枚の最大幅を140pxに縮小（これで5枚が1列に入ります） */
  margin: 0 !important;
  padding: 0 !important;
}

/* 画像自体のサイズ適正化 */
.custom-footer-links img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  display: block !important;
  margin: 0 !important;
  border: none !important;
}

/* ---------------------------------------------------------
   スマホ版（画面幅768px以下）：3カラム（3つ並んだら改行）
--------------------------------------------------------- */
@media screen and (max-width: 768px) {
  .custom-footer-links {
    flex-wrap: wrap !important;       /* ★スマホ版だけは折り返しを許可 */
    gap: 8px !important;              /* スマホではすき間を8pxにする */
    justify-content: center !important; 
  }

  /* 横幅いっぱいに3つ綺麗に収めるための正確なサイズ計算 */
  .custom-footer-links > a {
    width: calc((100% - 16px) / 3) !important;
    flex: 0 0 calc((100% - 16px) / 3) !important;
    max-width: calc((100% - 16px) / 3) !important;
  }
}
/* =========================================================
   【確定版】営業日カレンダーから下のみを薄黄色で塗りつぶし（バナー除外）
========================================================= */

/* 1. 「ネーム刺繍&#12316;裾上げ」のエリアには背景色を適用せず、カレンダー以降をターゲットにする */
/* ※カレンダーを包む要素、またはカレンダー以降のフッター要素に擬似的に背景を敷きます */
footer,
#footer,
.footer-section {
  position: relative !important;
  background: none !important;
  z-index: 0 !important;
  /* 親要素自体の横幅制限（max-widthなど）で背景がPC版で途切れるのを防ぐための設定 */
  overflow: visible !important; 
}

/* 2. 背景を「カレンダーがある位置」から下だけに限定し、PC版でも左右画面いっぱいに広げる */
footer::before,
#footer::before,
.footer-section::before {
  content: "" !important;
  position: absolute !important;
  
  /* ★表示開始位置の調整（「ネーム刺繍」等のバナーエリアに被らないよう、カレンダー位置から下に敷く） */
  top: auto !important;
  bottom: 0 !important;
  height: 76% !important; /* ★バナー部分（上部約38%分）を避けて、下部のみに背景を敷く調整（微調整可能） */
  
  left: 50% !important;
  transform: translateX(-50%) !important;
  
  /* PC版でも絶対に左右に隙間を作らず画面いっぱいに広げる指定 */
  width: 100vw !important; 
  background-color: #fffefa !important; /* ★上品で優しい薄黄色 */
  z-index: -1 !important;
}

/* 3. 2重スクロールバーやヘッダー固定解除を絶対に起こさないための「クリッピング（はみ出しカット）」 */
html, body {
  overflow-x: clip !important; /* 横方向のはみ出しのみを安全にカット */
}
