/************************************************************************************************************************************
 * 
 * 
 *  CPTランキング関連
 * 
 * 
 ************************************************************************************************************************************/
/********************************************
 * CPTランキング 見出し・タイトル
 ********************************************/

/* 汎用見出し（このCSSが読み込まれているページ内） */
h2 {
  background:#ee817b!important;
  font-size: 1rem !important;
}

/* ランキングアーカイブページのタイトル */
h1.gbp-ranking-archive__title {
  background: #ee817b;
  color: #fff;
  padding: 10px;
  font-size: 1rem !important;
}
h1.gbp-ranking-archive__title:before {
  display: none;
}

/* ランキングセクション見出し */
h2.gbp-ranking__title {
	font-size:1rem;
  margin-bottom: 10px !important;
}


/********************************************
 * CPTランキング カード全体
 * 対象：.gbp-ranking-cards 内の .gbp-card 一覧
 ********************************************/

/* カード本体（共通・SPベース） */
.gbp-ranking-cards .gbp-card {
  background: #fff;
  border-radius: 8px;
  padding: 0;
  margin-bottom: 24px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  font-size: 14px;
  line-height: 1.6;
}




/********************************************
 * 2行目：キャッチコピー
 * PC/SP表示切り替えあり
 ********************************************/

/* 共通デザイン */
.gbp-ranking-cards .gbp-card__catchcopy {
  color: #e35954 !important;
  font-weight: bold !important;
  font-size: 1.1rem !important;
  margin: 6px 0 10px !important;
  padding: 0 10px !important;
}

/* PC/SP用クラスの初期値（両方表示） */
.gbp-card__catchcopy.gbp-pc-only,
.gbp-card__catchcopy.gbp-sp-only {
  display: block;
}

/* PC：SP専用キャッチを非表示（2行目のみ表示） */
@media (min-width: 768px) {
  .gbp-card__catchcopy.gbp-sp-only {
    display: none !important;
  }
}

/* SP：PC専用キャッチを非表示、SP専用だけ表示（サムネ直下） */
@media (max-width: 767px) {
  .gbp-card__catchcopy.gbp-pc-only {
    display: none !important;
  }
  .gbp-card__catchcopy.gbp-sp-only {
    display: block !important;
  }
}


/********************************************
 * 3行目：サムネイル + 情報ボックス
 ********************************************/

/* メインブロック（SP：縦積み） */
.gbp-ranking-cards .gbp-card__main {
  margin: 0 !important;
  padding: 10px;
}

/* サムネイル */
.gbp-ranking-cards .gbp-card__thumb {
  margin-bottom: 10px;
}
.gbp-ranking-cards .gbp-card__thumb a,
.gbp-ranking-cards .gbp-card__thumb img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 6px;
}

/* 情報リスト */
.gbp-ranking-cards .gbp-card-info__list {
  margin: 0;
  padding: 0;
}

/* 1行（dt + dd 横並び） */
.gbp-ranking-cards .gbp-card-info__row {
  display: flex;
  align-items: flex-start;
  margin: 0 0 4px;
}

/* dt（ラベル） */
.gbp-ranking-cards .gbp-card-info__label {
  flex: 0 0 5em;
  min-width: 5em;
  margin: 0;
  padding: 5px 6px;
  font-weight: 700;
  font-size: 0.85rem;
  background: #efcac9;
  border-radius: 4px;
  color: #333;
  vertical-align: middle !important;
}

/* dd（値） */
.gbp-ranking-cards .gbp-card-info__value {
  flex: 1 1 auto;
  margin: 0;
  padding: 5px 0;
  font-size: 0.9rem;
}

/* PC：サムネイル + 情報ボックスを横並び 50% / 50% */
@media (min-width: 768px) {
  .gbp-ranking-cards .gbp-card__main {
    display: flex;
    gap: 16px;
    align-items: flex-start;
  }
  .gbp-ranking-cards .gbp-card__thumb,
  .gbp-ranking-cards .gbp-card__info {
    width: 50%;
  }
  .gbp-ranking-cards .gbp-card__thumb {
    margin-bottom: 0;
  }
  .gbp-ranking-cards .gbp-card-info__row {
    margin-bottom: 6px;
  }
}


/********************************************
 * 4行目：クーポンエリア
 ********************************************/

.gbp-ranking-cards .gbp-card__coupon {
  margin: 10px 10px 0;
  padding: 0;
  border-radius: 6px;
  background: #ffc042;
  border: 1px solid #ee817b;
  font-size: 0.9rem;
}

.gbp-card__coupon-label {
  font-weight: bold;
  background: #ffd685;
  padding: 5px;
  border-radius: 3px;
}

.gbp-card__coupon-body {
  padding: 10px;
  background: #ffeed5;
  border-radius: 6px;
}


/********************************************
 * 5行目：ボタンエリア（電話・LINE・店舗詳細）
 ********************************************/

/* ボタンコンテナ */
.gbp-ranking-cards .gbp-card__actions {
  margin-top: 14px;
  text-align: center;
}

/* 共通ボタン */
.gbp-ranking-cards .gbp-card__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 140px;
  padding: 8px 18px;
  border-radius: 999px;
  text-decoration: none;
  font-size: 0.9rem;
  color: #fff;
  border: none;
  cursor: pointer;
  transition: opacity 0.2s;
}

.gbp-ranking-cards .gbp-card__btn:hover {
  opacity: 0.9 !important;
}

/* 電話ボタン（SPのみ） */
.gbp-ranking-cards .gbp-card__btn--tel {
  background: #f01d40 !important;
}
.gbp-ranking-cards .gbp-card__btn--tel::before {
  content: "\f095"; /* phone icon */
  font-family: "Font Awesome 5 Free", "FontAwesome";
  font-weight: 900;
  margin-right: 6px;
}

/* LINEボタン */
.gbp-ranking-cards .gbp-card__btn--line {
  background: #3bd948 !important;
}
.gbp-ranking-cards .gbp-card__btn--line::before {
  content: "\f3c0"; /* fa-line */
  font-family: "Font Awesome 5 Free", "FontAwesome";
  font-weight: 900;
  margin-right: 6px;
}

/* 店舗詳細ボタン */
.gbp-ranking-cards .gbp-card__btn--detail {
  background: #2564b8 !important;
}
.gbp-ranking-cards .gbp-card__btn--detail::before {
  content: "\f54e"; /* fa-store */
  font-family: "Font Awesome 5 Free", "FontAwesome";
  font-weight: 900;
  margin-right: 6px;
}

/* SP専用クラスの基本 */
.gbp-sp-only {
  display: none;
}

/* SP：電話ボタン表示 ＋ sp-only要素表示 */
@media (max-width: 767px) {
  .gbp-sp-only {
    display: inline-flex !important;
  }
}

/* PC：電話ボタン非表示 */
@media (min-width: 768px) {
  .gbp-ranking-cards .gbp-card__actions .gbp-card__btn--tel {
    display: none !important;
  }
}


/********************************************
 * SNSアイコン行（ランキングカード用）
 ********************************************/

/* SNS 行の value 部分の余白調整 */
.gbp-ranking-cards .gbp-card-info__row--sns .gbp-card-info__value {
  padding-top: 4px;
}

/* ULを横並びレイアウトに */
.gbp-ranking-cards .gbp-card-sns {
  display: flex;
  flex-wrap: wrap;      /* 多いときは折り返し */
  gap: 4px 8px;         /* すき間 */
  margin: 0;
  padding: 0;
  list-style: none;
}

/* LI は余計な余白なし */
.gbp-ranking-cards .gbp-card-sns__item {
  margin: 0;
  padding: 0;
}

/* アイコン画像：高さ20px・横比率キープ */
.gbp-ranking-cards .gbp-card-sns__icon {
  display: block;
  height: 20px;
  width: auto;
}


/********************************************
 * ランキング アーカイブ一覧（タイトル+サムネ）
 * 対象：archive-ranking.php の .gbp-ranking-archive__list
 ********************************************/

.gbp-ranking-archive__list {
  list-style: none;
  margin: 0;
  padding: 10px !important;
  display: flex;
  flex-wrap: wrap;
  column-gap: 16px;
  row-gap: 12px;
}

/* SP：1行に1件ずつ */
.gbp-ranking-archive__item {
  flex: 0 0 100%;
}

/* PC：横並び（3カラム）にする */
@media (min-width: 768px) {
  .gbp-ranking-archive__item {
    flex: 0 0 calc(33.333% - 16px);
  }
}

.gbp-ranking-archive__link {
  display: flex;
  align-items: center;
  text-decoration: none;
}

.gbp-ranking-archive__thumb {
  width: 50px;
  height: 50px;
  object-fit: cover;
  margin-right: 8px;
}

.gbp-ranking-archive__item-title {
  font-size: 16px;
}


/********************************************
 * 汎用微調整
 ********************************************/

/* dd の左マージン（このCSSが読み込まれる範囲） */
dd {
  margin-left: 10px !important;
}

/************************************************************************************************************************************
 * 
 * 
 *  グローバルレイアウト
 * 
 * 
 ************************************************************************************************************************************/


/************************************************************
 *  グローバル・レイアウト共通
 ************************************************************/
body,h1,h2,h3,h4,h5,h6,p,dl,dd,dt,ol,ul,li{
  font-size:12px!important;
  border:0!important;
}
#body-in{background:#f7f2e9!important;}
#content{background:#f7f2e9!important;}
#content-in{background:#fff;}
#main{
  width:100%!important;
  max-width:1000px;
  border:0;
  margin:0 auto;
}
#main,article,#content,.cf,.content,.content-in,.entry-card-thumb,.card-thumb,.e-card-thumb,figure{
  margin:0 auto!impo;
  padding:0;
}
#list a{padding:0;}
article,#main,.content,.content-in{
  max-width:1000px!important;
  margin:0 auto;
}
article,#article,.article{padding:0;margin:0;}

.eye-catch{margin-bottom:0;}
#content,.content{margin:0;}
.content-in{padding:0!important;}
.entry-content,.cf{margin:0;}
.date-tags{display:none;}
.logo,.logo-header,.logo-text{padding:0;}
.logo a,.logo-header a,.logo-text a{padding:0;}
#footer{
  padding:0;
  margin:0;
  background:#e0d8ca;
}
.footer-bottom{margin-top:0;}


h2{margin-bottom:15px!important;}


/************************************************************************************************************************************
 * 
 * 
 *  店舗関連
 * 
 * 
 ************************************************************************************************************************************/


/************************************************************
 *  【9】ショップ詳細（single-shop）共通
 ************************************************************/

/* 店舗詳細ページの article をまとめて調整 */
.single-shop article{
  margin:5px 0;
  padding:0 !important;
}
main{margin:0;}

/* アイキャッチ16:9固定（古い版・一応残す） */
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  margin:0 0 0;
}
.gbp-eyecatch-wrap img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* 追加画像サムネ：アイキャッチ直下 */
.gbp-gallery{
  display:flex;
  flex-wrap:wrap;
  gap:0;
  margin:0 0 6px;
}
.gbp-gallery-item{
  flex:0 0 10%;
  box-sizing:border-box;
}
.gbp-gallery-item img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  display:block;
  cursor:pointer;
}
@media (max-width:768px){
  .gbp-gallery-item{flex:0 0 20%;}
}

/********************************************
 * 店舗詳細：サムネイルギャラリー横スクロール
 * 対象：.gbp-gallery 内の .gbp-gallery-item
 ********************************************/
.gbp-gallery {
  display: flex;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch; /* スワイプでヌルっと動く用 */
  gap: 6px;
  padding: 6px 0;
  scroll-behavior: smooth;
  scrollbar-width: thin; /* Firefox用（細いスクロールバー） */
}

/* Webkit系ブラウザのスクロールバー（必要なければ削除OK） */
.gbp-gallery::-webkit-scrollbar {
  height: 4px;
}
.gbp-gallery::-webkit-scrollbar-thumb {
  border-radius: 9999px;
}

/* サムネイル1枚ずつを横に並べる */
.gbp-gallery .gbp-gallery-item {
  flex: 0 0 auto;          /* 折り返さず横一列に */
  width: 70px;             /* サムネイル幅（必要に応じて調整） */
}

/* 画像は枠内に収める */
.gbp-gallery .gbp-gallery-item img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 4px;
  cursor: pointer;
}

/********************************************
 * 店舗詳細：サムネイルギャラリー 横一列・無限スクロール
 ********************************************/
.gbp-gallery {
  display: flex !important;
  flex-wrap: nowrap !important;        /* 折り返し禁止 */
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  gap: 6px;
  padding: 6px 0;
  scroll-behavior: smooth;
  scrollbar-width: thin;
}

/* Webkit系の横スクロールバー（お好みで） */
.gbp-gallery::-webkit-scrollbar {
  height: 4px;
}
.gbp-gallery::-webkit-scrollbar-thumb {
  border-radius: 9999px;
}

/* サムネイル1個分（横一列に並べて回り込み禁止） */
.gbp-gallery .gbp-gallery-item {
  flex: 0 0 auto !important;  /* 幅固定で折り返さない */
  width: 70px;                /* 必要に応じて調整 */
  float: none !important;     /* 既存のfloat指定を無効化 */
}

/* 画像本体 */
.gbp-gallery .gbp-gallery-item img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 4px;
  cursor: pointer;
}


/* 店舗情報ボックス */
.gbp-root{border:none!important;}
.gbp-box{
  border:none!important;
  margin:0 0;
  padding:0!important;
}

/* 見出し・バッジなど */
.gbp-head{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  margin-bottom:2px;
}
.gbp-head-title{
  font-weight:800;
  color:#111827;
}
.gbp-head-linebreak{
  flex:0 0 100%;
  height:0;
}

.gbp-plan-badge{
  display:inline-flex;
  align-items:center;
  padding:3px 8px;
  border-radius:999px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  border:1px solid透明;
  gap:4px;
}
.gbp-plan-badge.plan-gold{
  background:#fff7d1;
  border-color:#facc15;
  color:#92400e;
}
.gbp-plan-badge.plan-silver{
  background:#f3f4f6;
  border-color:#9ca3af;
  color:#4b5563;
}
.gbp-plan-badge.plan-bronze{
  background:#fef3c7;
  border-color:#f97316;
  color:#92400e;
}
.gbp-plan-badge.plan-iron{
  background:#dbeafe;
  border-color:#2563eb;
  color:#1f2937;
}
.gbp-plan-badge.plan-free{
  background:#f3f4f6;
  border-color:#9ca3af;
  color:#6b7280;
}

.gbp-verified{
  display:inline-flex;
  align-items:center;
  gap:3px;
  padding:3px 6px;
  border-radius:999px;
  color:#16a34a;
  background:rgba(22,163,74,.04);
  border:1px solid rgba(22,163,74,.2);
}

.gbp-sec-title{
  padding:5px 10px;
  font-size:1rem!important;
  font-weight:normal;
	background:#C2E1FC;
}

/* マップ dd（余白0） */
.gbp-dd--map{padding:0 !important;}

.gbp-price-min{
  font-weight:700;
  margin-right:4px;
}
.gbp-price-val{
  color:#e11d48;
  font-weight:700;
}

/* アイキャッチ角丸抑止 */
.eye-catch-wrap,
img,
.eye-catch{
  border-radius:0!important;
}

/* dl の基本 */
.gbp-dl dt,
.gbp-dl dd{
  margin:0!important;
  padding:0px!important;
}
.gbp-dl dt{
  text-align:center!important;
  background:#FFC2D9!important;
}

/************************************************************
 *  店舗詳細：ミニマル版（gbp-root 配下のみ）
 ************************************************************/
.gbp-root{
  --gbp-border:#e5e7eb;
  --gbp-border-sub:#f3f4f6;
  --gbp-bg:#ffffff;
  --gbp-text-main:#111827;
  --gbp-text-sub:#6b7280;
  --gbp-accent:#111827;

  font-size:13px;
  line-height:1.5;
  margin:0;
  padding:0;
}

/* メインボックス */
.gbp-root .gbp-box{
  margin:0;
  padding:8px 10px 8px;
  border-radius:0;
  border:1px solid var(--gbp-border);
  background:var(--gbp-bg);
}

/* ヘッダー：プランバッジ＋タイトル */
.gbp-root .gbp-head{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px 6px;
  margin-bottom:4px;
	
}
.gbp-root .gbp-plan-badge{
  font-size:10px;
  font-weight:700;
  padding:2px 7px;
  border-radius:999px;
  text-transform:uppercase;
  letter-spacing:.08em;
  border:1px solid currentColor;
}
.gbp-root .plan-gold{color:#b45309;}
.gbp-root .plan-silver{color:#6b7280;}
.gbp-root .plan-bronze{color:#92400e;}
.gbp-root .plan-iron{color:#4b5563;}
.gbp-root .plan-free{color:#059669;}
.gbp-root .gbp-verified{
  font-size:10px;
  padding:2px 6px;
  border-radius:999px;
  background:#ecfdf5;
  color:#047857;
}
.gbp-root .gbp-head-linebreak{
  flex-basis:100%;
  height:0;
}
.gbp-root .gbp-head-title{
  font-size:1rem!important;
  font-weight:700;
  width:100%;
  background:#95CBFC;
  padding:10px;
  color:#fff;
}

/* dl レイアウト（メイン） */
.gbp-root .gbp-dl{
  margin:0!important;
  padding:5px!important;
  display:grid;
  grid-template-columns:88px minmax(0,1fr);
  column-gap:2px;
  row-gap:0;
}
.gbp-root .gbp-dl dt,
.gbp-root .gbp-dl dd{
  margin:0 0 10px!important;
  padding:1px 0;
}
.gbp-root .gbp-dl dt{
  font-size:0.9rem!important;
  font-weight:600;
  color:var(--gbp-text-sub);
  white-space:nowrap;
	padding:5px 10px!important;
}
.gbp-root .gbp-dl dd{
  font-size:1rem!important;
  color:var(--gbp-text-main);
}

/* サブ dl（料金など） */
.gbp-root .gbp-dl.gbp-dl--sub{
  grid-template-columns:90px minmax(0,1fr);
  font-size:1rem!important;
}
.gbp-root .gbp-dl.gbp-dl--sub dt,
.gbp-root .gbp-dl.gbp-dl--sub dd{
  padding:10px 0!important;margin:10px!important;
}

/* 行同士の区切り */
.gbp-root .gbp-dl > dt:not(:first-of-type),
.gbp-root .gbp-dl > dd:not(:first-of-type){
  border-top:1px dashed var(--gbp-border-sub);
}

/* マップ */
.gbp-root .gbp-dd--map{padding-top:2px;}
.gbp-root .gbp-dl dd br{line-height:1.4;}

/* リンク色 */
.gbp-root .gbp-dl dd a{
  color:#2563eb;
  text-decoration:none;
}
.gbp-root .gbp-dl dd a:hover{
  text-decoration:underline;
}

/* 支払方法（基本情報内） */
.gbp-root .gbp-pay-main{
  margin:0 0 1px;
  font-size:1rem;
}
.gbp-root .gbp-pay-sub{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:2px 6px;
  margin:0;
  font-size:11px;
}
.gbp-root .gbp-pay-sub-label{
  font-weight:600;
  color:#4b5563;
}

/* アイキャッチ + ギャラリー（ミニマル版） */
.gbp-root .gbp-eyecatch-wrap{
  margin:0 0 0;
  overflow:hidden;
  border-radius:0;
}
.gbp-root .gbp-eyecatch-wrap img{
  display:block;
  width:100%;
  height:190px;
  object-fit:cover;
}
.gbp-root .gbp-gallery{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  margin:0 0 4px;
}
.gbp-root .gbp-gallery-item{
  width:60px;
  height:60px;
  border-radius:4px;
  overflow:hidden;
  border:1px solid var(--gbp-border);
  cursor:pointer;
}
.gbp-root .gbp-gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* ボタン（公式サイト / 一覧へ） */
.gbp-root .gbp-actions{
  margin-top:6px;
  display:flex;
  flex-wrap:wrap;
  gap:4px;
}
.gbp-root .gbp-btn-main,
.gbp-root .gbp-btn-sub{
  font-size:12px;
  line-height:1;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}
.gbp-root .gbp-btn-main{
  padding:8px 18px;
  background:var(--gbp-accent);
  border:1px solid var(--gbp-accent);
  color:#f9fafb !important;
  font-weight:700;
}
.gbp-root .gbp-btn-main:hover{
  background:#ffffff;
  color:var(--gbp-accent) !important;
}
.gbp-root .gbp-btn-sub{
  padding:5px 12px;
  border:1px solid var(--gbp-border);
  background:#ffffff;
  color:#374151 !important;
}
.gbp-root .gbp-btn-sub:hover{
  background:#f9fafb;
}

/* スマホ調整 */
@media (max-width:640px){
  .gbp-root .gbp-box{
    padding:8px 8px 8px;
  }
  .gbp-root .gbp-dl{
    grid-template-columns:80px minmax(0,1fr);
  }
  .gbp-root .gbp-eyecatch-wrap img{
    height:180px;
  }
}

/************************************************************
 *  店舗詳細：料金サブDLの細かいレイアウト調整
 ************************************************************/

/* dt/dd共通の詰め */
.gbp-dl{
  row-gap:0!important;
  grid-row-gap:0!important;
}
.gbp-dl dt,
.gbp-dl dd{
  margin-top:0!important;
  margin-bottom:0!important;
}
.gbp-dl.gbp-dl--sub dt,
.gbp-dl.gbp-dl--sub dd{
  margin-top:0!important;
  margin-bottom:0!important;
  padding-top:1px;
  padding-bottom:1px;
}

/* サブDLブロックの余白を完全にゼロに */
.gbp-dl.gbp-dl--sub{
  padding:0!important;
  margin:0!important;
  border:0!important;
}
.gbp-dl.gbp-dl--sub > dt,
.gbp-dl.gbp-dl--sub > dd{
  padding:0!important;
  margin:0!important;
}

/* single-shop 用の料金サブDLレイアウト */
.gbp-root .gbp-dl.gbp-dl--sub dt,
.gbp-root .gbp-dl.gbp-dl--sub dd{
  float:none!important;
  width:auto!important;
  margin:0!important;
  padding:4px 0;
  box-sizing:border-box;
  white-space:normal;
  word-break:break-word;
}
.gbp-root .gbp-dl.gbp-dl--sub{
  display:grid!important;
  grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
  column-gap:12px;
}
.gbp-root .gbp-dl.gbp-dl--sub dt{
  font-weight:600;
  text-align:left;
}
.gbp-root .gbp-dl.gbp-dl--sub dd{
  text-align:left;
}

/* スマホでは縦積み */
@media (max-width:767px){
  .gbp-root .gbp-dl.gbp-dl--sub{
    display:block!important;
  }
  .gbp-root .gbp-dl.gbp-dl--sub dt,
  .gbp-root .gbp-dl.gbp-dl--sub dd{
    display:block;
  }
  .gbp-root .gbp-dl.gbp-dl--sub dt{
    margin-top:0.4em;
  }
}

/* PC時：左カラム最大幅 200px */
@media (min-width:768px){
  .gbp-root .gbp-dl.gbp-dl--sub{
    display:grid!important;
    grid-template-columns:auto 1fr;
    column-gap:12px;
  }
  .gbp-root .gbp-dl.gbp-dl--sub dt{
    float:none!important;
    width:auto!important;
    max-width:200px;
    box-sizing:border-box;
    white-space:normal;
    word-break:break-word;
  }
  .gbp-root .gbp-dl.gbp-dl--sub dd{
    float:none!important;
    width:auto!important;
    box-sizing:border-box;
  }
}

/* マップ行だけ dd を幅いっぱいに */
.gbp-dl .gbp-dd--map{
  display:block!important;
  float:none!important;
  width:100%!important;
  max-width:100%!important;
  margin:8px 0 0 0!important;
  padding:0!important;
  clear:both!important;
  flex:0 0 100%!important;
  align-self:stretch!important;
  grid-column:1 / -1!important;
}



/************************************************************
 *  店舗詳細：dl レイアウト（gbp-box 内）
 ************************************************************/
.gbp-box .gbp-dl{
  display:grid;
  grid-template-columns:minmax(4em,6em) 1fr;
  column-gap:0.75em;
  row-gap:0.4em;
  margin:0;
}
.gbp-box .gbp-dl > dt{
  margin:0;
  font-weight:600;
  align-self:flex-start;
}
.gbp-box .gbp-dl > dd{
  margin:0;
}
.gbp-box .gbp-dl--sub{
  margin:0;
}
.gbp-box .gbp-dl--sub > dt,
.gbp-box .gbp-dl--sub > dd{
  margin:0.1em 0;
}
.single-shop .gbp-plan-badge{display:none;}

/************************************************************
 *  支払アイコン（高さ統一）
 ************************************************************/
.gbp-pay-sub .gbp-pay-icon img{
  height:18px !important;
  width:auto !important;
  display:inline-block;
  vertical-align:middle;
}
.gbp-pay-sub .gbp-pay-icon{
  display:inline-flex;
  align-items:center;
  margin-right:4px;
}
/* 銀聯（UnionPay）だけ小さめ */
.gbp-pay-sub .gbp-pay-icon[title="銀聯"] img,
.gbp-pay-sub .gbp-pay-icon img[alt="銀聯"]{
  height:12px !important;
}
/* ===============================
   ショップ一覧：ページネーション
   =============================== */

.gbp-shop-archive__pagination {
  text-align: center;
  margin: 24px 0 32px;
  overflow-x: auto;            /* どうしても入り切らない場合は横スクロール */
  white-space: nowrap;         /* 折り返し禁止で横一列 */
}

.gbp-shop-archive__pagination .nav-links {
  display: inline-block;
  white-space: nowrap;         /* 子要素も折り返さない */
}

.gbp-shop-archive__pagination .page-numbers {
  display: inline-block !important;
  float: none !important;      /* テーマ側の float を打ち消す */
  vertical-align: middle;
  margin: 0 4px !important;
  padding: 6px 10px;
  line-height: 1;
}

/* Prev / Next も数字と同じ行に残す */
.gbp-shop-archive__pagination .page-numbers.prev,
.gbp-shop-archive__pagination .page-numbers.next {
  display: inline-block !important;
  white-space: nowrap;
}







/************************************************************************************************************************************
 * 
 * 
 *  common系
 * 
 * 
 ************************************************************************************************************************************/



/*ヘッダー*/

/* PC幅（1000px以上）でヘッダーを#mainと同じ幅に揃える */
@media (min-width: 1000px) {

  /* Cocoonヘッダー内コンテナの幅を#mainと揃える */
  #header .header-in {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    box-sizing: border-box;
  }

  /* もし独自のヘッダーラッパーを使っている場合も合わせておく */
  .mirix-header-wrap {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    box-sizing: border-box;
  }
}

/************************************************************
 *  見出し・パンくず
 ************************************************************/

/* h1：タイトル */
h1.entry-title{
  margin:0 0 5px 0!important;
  padding:0.5rem 10px;
  color:#fff;
  font-size:1rem!important;
	background:#f9736b;}


/* h2 */
h2{
  padding:5px 0;
  color:#fff;
  background:#ff75a3;
}

/* 本文 */
.entry-content p{padding:0 10px;}

/* パンくず */
.breadcrumb{
  margin:0;
  padding:3px 0 3px 5px!important;
  border-top:solid 3px #e0d8ca;
  border-bottom:solid 3px #e0d8ca;
  font-size:12px!important;
}
.breadcrumb,
.breadcrumb-item a{
  color:#000!important;
}

/************************************************************************************************************************************
 * 
 * 
 *  トップページ
 * 
 * 
 ************************************************************************************************************************************/

/* =========================================================
 * トップページ：検索メインエリア（超コンパクトカード）
 * ======================================================= */

/* 背景：中央にコンパクト表示 */
.front-page .bg-search-area,
.front-top-page .bg-search-area{
  max-width: 780px;
  margin: 8px auto 18px;
  padding: 0 5px;
  box-sizing: border-box;
}

/* 見出しテキスト部 */
.bg-search-head{
  margin-bottom: 6px;
}
.bg-search-tagline{
  margin: 0 0 2px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .03em;
}
.bg-search-sub{
  margin: 0;
  font-size: 11px;
  color: #6b6157;
}

/* カード本体 */
.bg-search-card{
  background: #ffffff;
  border-radius: 12px;
  border: 5px solid #e5dfd3;
  box-shadow: 0 6px 18px rgba(0,0,0,.04);
  padding: 10px 12px 12px;
}

/* 「メイン検索」タイトル */
.bg-search-title{
  margin: 0 0 6px;
  font-size: 13px;
  font-weight: 700;
  color: #ed5c94;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.bg-search-title::before{
  content: "";
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: #ff9fbc;
}

/* =========================================
 * フォームレイアウト（グリッド）
 *
 *  DOM想定：
 *   1 .bg-search-field（都道府県）
 *   2 .bg-search-field（地域）
 *   3 .bg-search-field（ジャンル）
 *   4 .bg-search-field.bg-search-field--footer（中に
 *        .bg-search-subsearch と 検索ボタン）
 *
 *  実現レイアウト：
 *   1行目：都道府県 + 地域
 *   2行目：ジャンル + 本日営業のお店（チェック）
 *   3行目：検索ボタン（1行）
 * ========================================= */
.bg-search-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;  /* 常に2カラム */
  column-gap: 8px;
  row-gap: 8px;
}

/* 各フィールド共通 */
.bg-search-field{
  display: flex;
  flex-direction: column;
  gap: 3px;
  width: 100%;
}

/* もともとの「full」はデフォルトでは2カラム幅 */
.bg-search-field--full{
  grid-column: 1 / -1;
}

/* ───────── 行・列の指定 ───────── */

/* 1番目のフィールド（都道府県）は col1 のみ（=地域と横並び） */
.bg-search-grid > .bg-search-field:first-child{
  grid-column: 1;          /* full指定を上書き */
}

/* 2番目のフィールド（地域）は col2 */
.bg-search-grid > .bg-search-field:nth-child(2){
  grid-column: 2;
}

/* 3番目のフィールド（ジャンル）は 2行目 col1 */
.bg-search-grid > .bg-search-field:nth-child(3){
  grid-column: 1;
}

/* 4番目（サブ検索+ボタン）は「中身だけグリッドに参加」させる */
.bg-search-field--footer{
  display: contents;  /* 自身の箱を消して、子要素をグリッド直下扱いにする */
}

/* 本日営業のお店（チェックボックス）は 2行目 col2 */
.bg-search-subsearch{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: #444;
  white-space: nowrap;
  grid-column: 2;
}

/* ボタンは3行目：1〜2カラムぶち抜き */
.bg-search-field--footer .bg-search-btn,
.bg-search-field--footer input[type="submit"],
.bg-search-field--footer button[type="submit"]{
  grid-column: 1 / -1;
  justify-self: stretch;
  width: 100%;
  margin-left: 0;
  min-width: 0;
  height: 38px;
  padding: 0 16px;
  border-radius: 999px;
  border: none;
  background: #ff75a3;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(255,117,163,.4);
  white-space: nowrap;
}
.bg-search-field--footer .bg-search-btn:hover,
.bg-search-field--footer input[type="submit"]:hover,
.bg-search-field--footer button[type="submit"]:hover{
  opacity: .9;
}

/* ───────── ラベル / セレクトの見た目 ───────── */
.bg-search-label{
  font-size: 11px;
  font-weight: 600;
  color: #6b6157;
}
.bg-search-required{
  display: inline-block;
  margin-left: 4px;
  padding: 1px 6px;
  border-radius: 999px;
  background: #ffedf3;
  color: #ed5c94;
  font-size: 10px;
}

/* セレクト / インプット共通 */
.bg-search-field select,
.bg-search-field input[type="text"],
.bg-search-field input[type="number"],
.bg-search-field .bg-search-control{
  width: 100%;
  box-sizing: border-box;
  height: 36px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid #ddd2c4;
  background: #fdfaf4;
  font-size: 12px;
}

/* チェックボックスを縦中央に寄せる */
.bg-search-subsearch input[type="checkbox"]{
  width: 14px;
  height: 14px;
  margin: 0;
  vertical-align: middle;
  position: relative;
  top: 0.05em;
}

/* 画面がめちゃくちゃ狭い場合だけ、全部縦積みに戻す保険 */
@media (max-width: 360px){
  .bg-search-grid{
    grid-template-columns: 1fr;
  }
  .bg-search-grid > .bg-search-field:first-child,
  .bg-search-grid > .bg-search-field:nth-child(2),
  .bg-search-grid > .bg-search-field:nth-child(3){
    grid-column: 1;
  }
  .bg-search-subsearch{
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    color: #444;
    white-space: nowrap;
  }
  .bg-search-field--footer .bg-search-btn,
  .bg-search-field--footer input[type="submit"],
  .bg-search-field--footer button[type="submit"]{
    grid-column: 1;
  }
}

/* =========================================================
 * 検索ボタンの見た目＆縦中央配置の調整（上書き）
 * ======================================================= */

/* 共通：丸ボタン＆影つきデザイン */
.bg-search-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 140px;
  height: 38px;
  padding: 0 16px;
  border-radius: 999px;
  border: none;
  background: #ff75a3;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(255,117,163,.4);
  white-space: nowrap;
}

.bg-search-btn:hover{
  opacity: .9;
}

.bg-search-field--submit{
  align-self: end;
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  align-items: flex-end;
}

/* スマホだけボタンを横幅いっぱいにしたい場合 */
@media (max-width: 767px){
  .bg-search-field--submit{
    justify-content: flex-end;
  }
  .bg-search-field--submit .bg-search-btn{
    width: 100%;
  }
}

/* PC版：検索ボタンを幅100%にする */
@media (min-width: 768px){
  .bg-search-field--submit .bg-search-btn,
  .bg-search-field--submit input[type="submit"],
  .bg-search-field--submit button[type="submit"]{
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
}

/* おすすめタブ */
.top-recommend__tabs {
  display: flex;
  gap: 0.5rem;
  overflow-x: auto;
  margin-bottom: 1rem;
}

.top-recommend__tab {
  flex: 1 1 auto;
  padding: 0.5rem 0.75rem;
  border-radius: 999px;
  border: 1px solid #d0c5b4;
  background: #f7f5f0;
  font-size: 0.9rem;
  cursor: pointer;
  white-space: nowrap;
}

.top-recommend__tab.is-active {
  background: #e0d8ca;
  font-weight: 700;
}

/* タブ中身の表示制御 */
.top-recommend__panel {
  display: none;
}
.top-recommend__panel.is-active {
  display: block;
}

/* 人気エリア＆地域ボタン */
.top-popular-area__buttons,
.top-area-list__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
	margin-bottom:20px;
}

.top-popular-area__btn,
.top-area-list__btn {
  display: inline-block;
  padding: 0.4rem 0.8rem;
  border-radius: 999px;
  border: 1px solid #d0c5b4;
  background: #fff;
  font-size: 0.85rem;
}

/* 地域一覧の見出し */
.top-area-list__pref {
  margin: 15px;
  margin-bottom: 0;
  font-size: 1rem;
}
h3.top-area-list__pref{margin:0;}

/* =========================================
 * [cast_list] キャスト横カルーセル 最終版
 * ブラウザ標準の横スクロール＋自動スクロール
 * ========================================= */

/* ビューポート：横スクロールON */
.portal-cast-carousel{
  position: relative;
  overflow-x: auto;                 /* ★横スクロール復活 */
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;    /* 1枚ずつスナップ */
  padding: 4px 0 12px;
  margin: 0;
}

/* 中身のトラック：横一列 */
.portal-cast-carousel__track{
  display: inline-flex;   /* 横並び＋width = コンテンツ幅 */
  gap: 1px;               /* サムネ同士は 1px だけ隙間 */
  margin: 0;
  padding: 0;
  list-style: none;
}

/* 1枚分のカード */
.portal-cast-card{
  flex: 0 0 150px;        /* サムネ最小幅 150px 固定 */
  max-width: 150px;
  scroll-snap-align: start;
  text-align: center;
  text-decoration: none;
  color: #222;
}

/* サムネイル（正方形・角丸なし） */
.portal-cast-card__thumb{
  display: block;
  width: 150px;
  height: 150px;
  margin: 0;
  border-radius: 0;
  overflow: hidden;
  background: #f3f4f6;
}

.portal-cast-card__thumb img,
.portal-cast-card__img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 画像なしの場合 */
.portal-cast-card__noimg{
  display: block;
  width: 100%;
  height: 100%;
  background: #e5e7eb;
}

/* 名前 */
.portal-cast-card__name{
  display: block;
  margin-top: 4px;
  font-size: 13px;
  line-height: 1.4;
  text-decoration: none;
  color: #222;
}

.portal-cast-card__name:hover{
  text-decoration: underline;
}

/************************************************************************************************************************************
 * 
 * 
 *  ヘッダー＆メニュー
 * 
 * 
 ************************************************************************************************************************************/


/************************************************************
 *  ヘッダー（mirix）
 ************************************************************/

/* ヘッダー全体 */
.mirix-header-outer{width:100%;}

/* 中央 1000px ラップ＋左右にロゴ／メニュー */
.mirix-header-bar{
  max-width:1000px;
  margin:5px auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

/* Cocoon の中央寄せを打ち消す */
.mirix-header-bar,
.mirix-header-bar *{text-align:left;}

/* ロゴ画像 */
.mirix-header-logo img{
  display:block;
  height:auto;
  margin:3px 0 0 10px;
  max-width:90px; /* 指定：最大幅 90〜120px */
}

/* ハンバーガーボタン */
.mirix-hb-btn{
  flex:0 0 auto;
  margin-left:auto;
  display:inline-flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:42px;
  height:42px;
  padding:0;
  border:1px solid #ddd;
  border-radius:8px;
  background:#fff;
  cursor:pointer;
  position:relative;
  z-index:10002;
}
.mirix-hb-line{
  display:block;
  width:22px;
  height:2px;
  background:#222;
  margin:0 auto;
  transition:transform .25s ease,opacity .25s ease;
}
.mirix-hb-btn[aria-expanded="true"] .mirix-hb-line:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}
.mirix-hb-btn[aria-expanded="true"] .mirix-hb-line:nth-child(2){
  opacity:0;
}
.mirix-hb-btn[aria-expanded="true"] .mirix-hb-line:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}

/* オーバーレイ */
.mirix-hb-overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.35);
  opacity:0;
  pointer-events:none;
  transition:opacity .3s ease;
  z-index:10000;
}
.mirix-hb-overlay.is-open{
  opacity:1;
  pointer-events:auto;
}

/* 余白削除（ヘッダー下） */
.header-container,
.header-container-in,
#header,
#header-in,
.header-in.wrap,
.mirix-header-outer{
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}
#header::before,
#header::after,
#header-in::before,
#header-in::after{
  content:none !important;
  display:none !important;
}
#navi-header-insert{
  margin:0 !important;
  padding:0 !important;
  height:0 !important;
}
.breadcrumb{
  margin-top:0 !important;
}

/* スライドインメニュー本体 */
.mirix-hb-nav{
  position:fixed;
  top:0;
  right:0;
  height:100vh;
  width:84vw;
  max-width:360px;
  background:#fff;
  box-shadow:0 10px 30px rgba(0,0,0,.18);
  transform:translateX(100%);
  transition:transform .3s ease;
  z-index:10001;
  padding:14px 10px;
  overflow-y:auto;
  border-left:1px solid #eee;
  border-radius:0;
}
.mirix-hb-nav.is-open{transform:translateX(0);}
.mirix-hb-menu{list-style:none;margin:0;padding:0;}
.mirix-hb-menu>li{border-bottom:1px solid #f0f0f0;}
.mirix-hb-menu>li:last-child{border-bottom:none;}
.mirix-hb-menu a{
  display:block;
  padding:12px 10px;
  text-decoration:none;
  color:#111;
}
.mirix-hb-menu a:hover{background:#f7f7f7;}
html.hb-lock,
body.hb-lock{overflow:hidden;}



/************************************************************************************************************************************
 * 
 * 
 *  フッター
 * 
 * 
 ************************************************************************************************************************************/

/* ===========================
   スマホ（共通）
   =========================== */

/* スマホで左余白が出る問題を修正 */
.bgp-footer-menu {
  margin:0 !important;
  padding:0 !important;
}
.bgp-footer-menu li {
  margin:4px 0 !important;
  padding:0 !important;
}
.bgp-footer-menu li a {
  display:block;
  padding:0 !important;
}

/* ===========================
   PC（768px以上）
   ロゴの下辺にメニューの下辺を揃える
   =========================== */
@media (min-width:768px){

  /* フッター内は通常のflexではなく grid で揃えたほうがズレない */
  .bgp-footer-inner {
    display:grid;
    grid-template-columns:auto 1fr;
    align-items:end;  /* ★ロゴの下辺に揃える */
    column-gap:30px;
    padding-left:15px; /* ロゴは左15px位置キープ */
		margin:10px!important;
  }

  /* メニュー右寄せ＋下辺揃え */
  .bgp-footer-nav {
    display:flex;
    justify-content:flex-end;
    align-items:end;     /* ★縦方向の下辺揃え */
    margin:0;
    padding:0;
  }

  /* ul: 下側に余白があるのを削除 */
  .bgp-footer-menu {
    display:flex;
    gap:24px;
    margin:0 !important;
    padding:0 !important;
    align-items:end;     /* ★リンクの下辺も揃える */
  }

  /* liにも余計な高さを作らせない */
  .bgp-footer-menu li {
    margin:0 !important;
    padding:0 !important;
    line-height:1 !important;
    display:flex;
    align-items:end;     /* ★liの下辺揃え */
  }

  /* a（リンク）に高さを持たせない */
  .bgp-footer-menu li a {
    padding:0 !important;
    margin:0 !important;
    line-height:1.1 !important; /* 読みやすさ保持 */
    display:flex;
    align-items:end;     /* ★文字の下辺揃え */
  }
}
/* ===========================
   フッター共通（モバイル基準）
   =========================== */

/* フッター全体の背景色 */
.bgp-footer {
  background:#e8e4dc;
  font-size:14px;
}
#site-footer{background:#e8e4dc;}
#site-footer li{padding:2px 5px!important;border:solid 3px #e8e4dc!important;}
.bgp-footer-inner {
  max-width:1100px;
  margin:0 auto;
  padding:2px!important;
  display:flex;
  flex-direction:column;   /* スマホ：縦並び */
  align-items:stretch;
}

/* ---- スマホ：メニュー ---- */
/* メニュー枠：幅いっぱい＋白背景＋外枠ボーダー */
.bgp-footer-nav {
  order:1;                 /* メニューを一番上に */
  width:100%;
  background:#ffffff;
  border:5px solid #e8e4dc;   /* 外枠ボーダー */
  box-sizing:border-box;
}

/* ulの余白を完全になくす ＋ margin-bottom なし */
.bgp-footer-menu {
  list-style:none;
  margin:0 !important;
  padding:0 !important;
}

/* 各メニュー項目を1行ずつ・幅いっぱいに */
.bgp-footer-menu li {
  margin:0 !important;
  padding:0 !important;
  border:5px solid #f0f0f0;
}
.bgp-footer-menu li:last-child {
  border-bottom:none;
}


/* テキストリンク左詰め＆幅いっぱいクリック */
.bgp-footer-menu a {
  display:block;
  padding:5px;
  text-align:left;
  text-decoration:none;
  color:inherit;
}

/* ---- スマホ：ロゴ ---- */
/* ロゴはメニューの下、コピーライトの上 */
.bgp-footer-logo {
  order:2;
  margin:0;
  text-align:center;
}
.bgp-footer-logo img {
  width:90px;
  height:auto;
  display:inline-block;
}

/* ---- コピーライト 共通（常に中央） ---- */
.bgp-footer-bottom {
  text-align:center;
  font-size:12px;
  padding:8px 16px 16px;
}
.bgp-footer-copy {
  margin:0!important;
}

/* ===========================
   PC レイアウト（768px以上）
   =========================== */
@media (min-width:768px){

  /* PCではロゴ左＋メニュー右に並べる */
  .bgp-footer-inner {
    padding:16px 32px 8px 15px;    /* 左15px固定 */
    display:grid;
    grid-template-columns:auto 1fr; /* 左：ロゴ / 右：メニュー */
    align-items:end;                /* 下辺を揃える */
    column-gap:40px;
  }

  /* ロゴ：左揃え・位置固定 */
  .bgp-footer-logo {
    order:0;
    margin:0;
    text-align:left;
  }

  /* メニュー：右寄せ横並び（PCでは枠＆白背景を消す） */
  .bgp-footer-nav {
    order:0;
    background:transparent;
    border:none;
    width:100%;
    display:flex;
    justify-content:flex-end;
    align-items:end;
  }

  .bgp-footer-menu {
    display:flex;
    gap:24px;
    margin:0 !important;
    padding:0 !important;
  }

  .bgp-footer-menu li {
    border:none;
    margin:0 !important;
    padding:0 !important;
  }

  .bgp-footer-menu a {
    padding:0;
    margin:0;
    line-height:1.4;
    display:block;
    text-align:right;
  }
}
#site-footer{}

article#article.article{margin-bottom:0!important;}




