@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* Googleフォント限定指定 */
.rounded-font {
  font-family: 'M PLUS Rounded 1c', sans-serif;
}

#main_content {
  font-family: 'M PLUS Rounded 1c', sans-serif;
}

#header,
#fix_header,
#sp_menu {
  font-family: 'M PLUS Rounded 1c', sans-serif;
}

#footer {
  font-family: 'M PLUS Rounded 1c', sans-serif;
}

.c-gnav,
.l-footer__nav {
	font-weight:600;
}

.p-spMenu__body {
	padding-top:20px;
	font-weight:600;
	font-size:120%;
}

.c-widget__title,
.p-breadcrumb {
	display:none;
}

/* トップ店舗LPの左右余白を消し、本文内の背景を白にする、これに合わせた各設定 */

.l-content,
.l-container,
.l-mainContent__inner {
  padding-left: 0;
  padding-right: 0;
  margin-left: auto;
  margin-right: auto;
  margin-top:0;
  margin-bottom:0;
  padding-top:0;
  padding-bottom:0;
}

.l-mainContent__inner {
  background-color:#ffffff;
}

.c-postTitle {
  padding-top:20px;
}

.p-breadcrumb__list {
  background-color:#f9f6f2;
}

.l-mainContent__inner .wp-block-image{
  margin-left: calc(var(--swl-inner_padding, 0px) * -1);
  margin-right: calc(var(--swl-inner_padding, 0px) * -1);
}

.l-mainContent__inner .wp-block-image img{
  display: block;
  width: 100%;
  height: auto;
  }

/* 投稿本文内のテキスト系タグの左右マージンを15pxにする */
/* ※ブログ記事投稿時はここで各ブロックの左右マージンを設定する */

.post_content p,
.post_content h1,
.post_content h2,
.post_content h3,
.post_content h4,
.post_content h5,
.post_content h6,
.post_content ul,
.post_content ol,
.post_content blockquote,
.swell-block-capbox,
.swell-block-step, 
.swell-block-tab,
.swell-block-faq {
	margin-left: 35px;
    margin-right: 35px;
}

.p-breadcrumb,
.p-articleHead,
.p-articleMetas,
.l-sidebar,
.p-articleFoot,
.p-postListWrap,
.swell-block-accordion {
    margin-left: 15px;
    margin-right: 15px;
}

.wp-block-columns {
    margin-left: 30px;
    margin-right: 30px;
}

img.p-articleThumb__img {
    margin-left: 15px;
    margin-right: 15px;
    width:93%
}

#block-4,
#block-6,
#block-2 {
	display:none;
}

@media (max-width: 782px){
.post_content p,
.post_content h1,
.post_content h2,
.post_content h3,
.post_content h4,
.post_content h5,
.post_content h6,
.post_content ul,
.post_content ol,
.post_content blockquote,
.swell-block-accordion,
.swell-block-capbox,
.swell-block-step, 
.swell-block-tab,
.swell-block-faq {
	margin-left: 15px;
    margin-right: 15px;
}
}

/* c-pageTitle を“高さ0”で潰す */
.c-pageTitle {
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
}

.post_content {
  margin: 0 !important;
  padding: 0 !important;
	background-color:#ffffff;
}

/* ベージュの背景設定 */
.beckground-bage {
  background-color: #f9f6f2;
  display: block;
}

/* =========================
   ページタイトル（title_main_cus）
========================= */

.title_main_cus {
  background-image: url("http://momihogushi-relaxbody.com/wp-content/uploads/lptenpo01_relaxbody.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  width: 95%;
  height: 270px;
  position: relative;
  margin:20px 20px 0px 20px;
  text-align: center;  	
}

/* タイトル文字 */
.title_main_cus h1{
  position: relative;
  top: 20px;
  text-align: center;
  font-size: 60px;
  font-weight: 700;
  color: #4aaa4c;
  margin: 0;          /* 念のため0に固定 */
}

/* =========================
   スマホ専用ページタイトル
========================= */

@media (max-width: 782px){

  .title_main_cus{
    height: 105px;
	width: 96%;
    margin-top: 20px;       /* 上余白（必要なら調整） */
    margin:0px 10px 0px 10px;
  }

  .title_main_cus h1{
    top: 3px;              /* 文字位置 */
    font-size: 26px;        /* 文字サイズ26px */
  }

}

/* スマホでは非表示 */
@media (max-width: 782px){
.l-footer__nav	{
	display:none;
}
}

.l-footer__inner,
.l-footer__foot {
	padding:0;
}

.l-footer__foot {
	background-color:#916e41;
	padding:10px 0;
	margin:0;
}

/* PCヘッダー：モニター予約ボタン（PCのみ表示） */
.rb-header-cta{
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

/* ボタン本体 */
.rb-monitor-cta{
  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 14px 28px;      /* 高さと横幅のバランス */
  border-radius: 999px;    /* 角丸ピル */
  background: #3fa74a;     /* グリーン */
  text-decoration: none;
  font-weight: 700;
  font-size: 18px;
  line-height: 1;
  letter-spacing: .02em;

  /* 文字色はSWELL側が白指定でも読めるように保険で指定 */
  color: #fff !important;
}

/* hover */
.rb-monitor-cta:hover{
  opacity: .92;
}

/* スマホでは非表示 */
@media (max-width: 782px){
  .rb-header-cta{
    display: none !important;
  }
}

/* スマホ開閉メニュー内：モニター予約ボタン */
.rb-spmenu-cta{
  margin: 20px 0;
  text-align: center;
}

/* ボタン本体 */
.rb-monitor-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 90%;              /* 横幅90% */
  height: 54px;            /* 少し小さく */
  background: #916e41;     /* 茶色 */

  font-weight: 700;
  font-size: 22px;         /* 少し小さく */
  letter-spacing: 0.02em;
  text-decoration: none;
  border-radius: 999px;
  box-sizing: border-box;
}

/* 押したときの視認性 */
.rb-monitor-btn:active{
  transform: translateY(1px);
  opacity: .95;
}

/* PCでは非表示 */
@media (min-width: 782px){
  .rb-spmenu-cta{ 
    display: none !important; 
  }
}

.l-footer__nav,
.copyright {
	background-color:#916e41;
}

/* =========================
   店舗情報：Google Map
   ========================= */
/* LP用Googleマップ */
.lp-map {
  margin: 15px auto;           /* 上下15px + 中央寄せ */
  padding: 0 25px;             /* 左右余白25px */
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
}

.lp-map iframe {
  display: block;
  width: 100%;
  height: 600px;               /* PC版高さ */
  border: 0;
}

/* スマホ */
@media screen and (max-width: 768px) {
  .lp-map iframe {
    height: 270px;             /* SP版高さ */
  }
}


/* ===== Footer (SP)：HTML共通／点線と色指定、余白は変数で調整可 ===== */
@media (max-width: 782px) {
  :root{
    --rbf-bg: #f4d54a;            /* ベースの黄色 */
    --rbf-text: #333333;          /* 文字色＆リンク色 */
    --rbf-green: #20a66b;         /* 県名カラー */
    --rbf-dots: #333333;          /* 点線色 */
    --sp-pad-x: 14px;             /* 横の基本パディング */
    --sp-group-pad-y: 14px;       /* 県ブロック上下余白（後から変更しやすい） */
  }
	
  .rb-footer--pc{
    background: var(--rbf-bg);
    color: var(--rbf-text);
    font-size: 90%;
    line-height: 1.5; 
    -webkit-text-size-adjust: 100%;	  
  }

  /* リンク：色は#333、タップ/フォーカスで下線 */
  .rb-footer--pc a{
    color: var(--rbf-text);
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
  }
  .rb-footer--pc a:hover,
  .rb-footer--pc a:active,
  .rb-footer--pc a:focus{
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  /* 横幅＆左右パディング（各ブロック共通） */
  .rb-footer--pc > *{
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--sp-pad-x);
    padding-right: var(--sp-pad-x);
    max-width: 100%;
  }

  /* ロゴ（画像化） */
  .rb-footer__logo{
    padding: 0px 0 12px;
    margin: 0;
  }
  .rb-footer__logo img{
    display: block;
    width: 100%;
    height: auto;
  }

  /* リード文（中央寄せ・改行OK） */
  .rb-footer__lead{ text-align: center; padding: 8px 0 12px; }
  .rb-footer__lead p{ margin: 4px 0; font-size: 90%; line-height: 1.5; }

  /* 会社名（緑・やや大きめ） */
  .rb-footer__company{
    text-align: center;
    color: var(--rbf-green);
    font-weight: 700;
    font-size: 120%;
    margin: 12px 0 6px;
  }

  /* 住所/TEL（中央寄せ、タップしやすいよう行間確保） */
  .rb-footer__address{
    text-align: center;
    font-style: normal;
    margin: 0 0 14px;
  }
  .rb-footer__address p{ margin: 3px 0; }

  /* 店舗一覧 */
  .rb-footer__stores{ padding: 6px 0 20px; }

  /* 各県ブロック：下だけ点線、宮城(最初)の上にだけ点線 */
  .rb-footer__group{
    padding-top: var(--sp-group-pad-y);
    padding-bottom: var(--sp-group-pad-y);
    border-bottom: 2px dotted var(--rbf-dots);
	margin: 0 20px;	  
    /* 余白を個別に調整したい場合：style="--sp-group-pad-y:16px" をHTML側で指定 */
  }
  .rb-footer__group:first-child{
    border-top: 2px dotted var(--rbf-dots);
  }

  /* 県名 */
  .rb-footer__pref{
    color: var(--rbf-green);
    text-align: center;
    margin: 0 0 6px;
    font-weight: 700;
    font-size: 120%;
  }

  /* 店名リンク（中央寄せ・折返し時の間隔） */
  .rb-footer__links{
    text-align: center;
    margin: 0;
  }
  .rb-footer__links a{
    display: inline-block;
    margin: 4px 8px;
    font-size: 100%;
    line-height: 1.7;
  }
	
}
	
/* =========================
   CTA Monitor 完全安定版
========================= */

.rb-ctaMonitor{
  position: relative;
  display: inline-block;
  overflow: hidden;
  transform-origin: center;
  will-change: transform;
  margin-left:20px;
  margin-right:20px;
  animation: rbShakeDiamond 1.7s cubic-bezier(.22,.61,.36,1) infinite;
}

/* 画像 */
.rb-ctaMonitor img{
  display:block;
  width:100%;
  height:auto;
}

/* 光レイヤー */
.rb-ctaMonitor::after{
  content:"";
  position:absolute;
  top:0;
  left:-120%;
  width:60%;
  height:100%;
  pointer-events:none;

  background: linear-gradient(
    120deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0.7) 45%,
    rgba(255,255,255,0) 90%
  );

  transform: skewX(-20deg);
  animation: rbSheenStable 4.8s ease-in-out infinite;
}

/* 光移動 */
@keyframes rbSheenStable{
  0%   { left:-120%; }
  60%  { left:120%; }
  100% { left:120%; }
}

/* 揺れ */
@keyframes rbShakeDiamond{
  0%    { transform: translateX(0) skewX(0deg) scale(1,1); }
  6%    { transform: translateX(-3px) skewX(-3deg) scale(1.02,0.98); }
  12%   { transform: translateX(3px)  skewX(3deg)  scale(0.98,1.02); }
  18%   { transform: translateX(-3px) skewX(-2deg) scale(1.015,0.985); }
  24%   { transform: translateX(2px)  skewX(2deg)  scale(0.985,1.015); }
  30%   { transform: translateX(-2px) skewX(-2deg) scale(1.01,0.99); }
  40%   { transform: translateX(2px)  skewX(2deg)  scale(0.99,1.01); }
  50%   { transform: translateX(-2px) skewX(-1.5deg) scale(1.005,0.995); }
  60%   { transform: translateX(1px)  skewX(1.5deg)  scale(0.995,1.005); }
  70%   { transform: translateX(-1px) skewX(-1deg)   scale(1,1); }
  80%   { transform: translateX(0.5px) skewX(0.5deg) scale(1,1); }
  88.2% { transform: translateX(0) skewX(0deg) scale(1,1); }
  100%  { transform: translateX(0) skewX(0deg) scale(1,1); }
}

/* ===== アコーディオン（改善版） ===== */

/* 外枠：グレー背景（全体の背景） */
.rb-accordion-box {
  padding: 0;
  margin: 0;
  border-radius: 10px;
  box-sizing: border-box;
}

/* ▼「詳しくはこちら」部分 → 完全なボタン扱い */
.rb-accordion-toggle {
  width: 100%;
  background: #e5e5e5;
  border: 5px solid #ffffff;	
  border-radius: 10px;
  cursor: pointer;
  text-align: center;
  padding: 12px;
  font-size: 20px;
  font-weight: 700;
  color: #000000;
  display: block;
  /* ボタンを中央に見せるために左右余白 */
  margin: 0 auto;
}

/* 点滅アニメーション */
.blink {
  animation: blinkAnime 2s infinite;
}
@keyframes blinkAnime {
  0% { opacity: 1; }
  50% { opacity: 0.2; }
  100% { opacity: 1; }
}

/* ▼ 開く部分（コンテンツ）→ 枠なし・全幅に変更 */
.rb-accordion-content {
  display: none;
  margin-top: 16px;
  padding: 0; /* 余白リセット */
  background: none; /* 枠の色なし */
  border-radius: 0;
  box-shadow: none;
}

/* 開いた時 */
.rb-accordion-content.open {
  display: block;
}

/* コンテンツ内のテキスト領域は必要なら調整可 */
.rb-accordion-content p {
  padding: 12px 0;
  margin: 0;
}

/* =========================================
   Staff cards (manual) - FULL REPLACE CSS
   余白が効かない問題に確実に勝つ版
   ========================================= */

:root{
  --rb-card-radius: 12px;
  --rb-border: rgba(0,0,0,.045);

  --rb-shadow: 0 2px 10px rgba(0,0,0,.06);
  --rb-shadow-hover: 0 10px 26px rgba(0,0,0,.10);

  --rb-name: #4aaa4c;

  --rb-btn-bg: #f7f2ec;
  --rb-btn-border: #ecdccc;
  --rb-btn-text: #916e41;
}

.rb-staffs{
  max-width: 1100px;
  margin: 0 auto;
  padding: 18px 0;
}

.rb-staffs__grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

@media (max-width: 980px){
  .rb-staffs__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px){
  .rb-staffs__grid{ grid-template-columns: 1fr; }
}

/* カード */
.rb-staff-card{
  border: 1px solid var(--rb-border);
  border-radius: var(--rb-card-radius);
  background: #fff;
  overflow: hidden;
  box-shadow: var(--rb-shadow);
  transition: transform .15s ease, box-shadow .15s ease;	
}

.rb-staff-card__link{
  display: block;
  color: inherit;
  text-decoration: none;
}

.rb-staff-card__thumb{
  background: rgba(0,0,0,.03);
}
.rb-staff-card__thumb img{
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
}

/* ✅ここが肝：中身はflex + gapで余白を完全管理 */
.rb-staff-card__body{
  padding: 14px 14px 16px;
  text-align: center;

  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px; /* ★ここを変更：名前〜所属〜ボタンの間隔 */
}

/* ✅SWELLのデフォルトmarginに勝つため、カード内は一旦marginゼロ */
.rb-staffs .rb-staff-card__body > *{
  margin: 0 !important;
}

/* 名前 */
.rb-staff-card__name{
  font-size: 20px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--rb-name);
  letter-spacing: .02em;

  /* 念のため：下線/装飾の排除 */
  border: 0 !important;
  box-shadow: none !important;
  text-decoration: none !important;
}
.rb-staff-card__name::before,
.rb-staff-card__name::after{
  content: none !important;
  display: none !important;
}

/* 所属 */
.rb-staff-card__role{
  font-size: 14px;
  line-height: 1.6;
  color: rgba(0,0,0,.55);
}

/* ボタン */
.rb-staff-card__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;

  margin-top: 2px !important; /* ★ここを変更：所属→ボタンの微調整 */
  padding: 10px 14px;
  border-radius: 999px;

  background: var(--rb-btn-bg);
  border: 1px solid var(--rb-btn-border);
  color: var(--rb-btn-text);

  font-size: 14px;
  font-weight: 700;
  line-height: 1;
}

.rb-staff-card__btn::after{
  content: "▶";
  font-size: 12px;
  line-height: 1;
  transform: translateY(-1px);
  opacity: .95;
}

@media (hover:hover){
  .rb-staff-card:hover{
    transform: translateY(-2px);
    box-shadow: var(--rb-shadow-hover);
  }
  .rb-staff-card:hover .rb-staff-card__btn{
    filter: brightness(0.98);
  }
}

/* 文字が縦に潰れるのを防止 */
.rb-staff-card__name,
.rb-staff-card__role{
  word-break: keep-all;
  overflow-wrap: normal;
}
.rb-staff-card__name{
  display:block;
  font-size:20px;
  font-weight:700;
  line-height:1.25;
  margin:0 !important;
}

/* =========================================
   Shop cards (manual) - staffと同系統デザイン
   画像高さ：40px短く（180px）
   住所：3pt程度小さく＋1行固定
   ========================================= */

:root{
  --rb-card-radius: 12px;
  --rb-border: rgba(0,0,0,.045);

  --rb-shadow: 0 2px 10px rgba(0,0,0,.06);
  --rb-shadow-hover: 0 10px 26px rgba(0,0,0,.10);

  /* 店舗名：スタッフ名と同じ色に合わせる */
  --rb-name: #4aaa4c;

  /* ボタン：スタッフと同じ */
  --rb-btn-bg: #f7f2ec;
  --rb-btn-border: #ecdccc;
  --rb-btn-text: #916e41;
}

/* セクション */
.rb-shops{
  max-width: 1100px;
  margin: 0 auto;
  padding: 18px 0;
}

/* グリッド */
.rb-shops__grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

@media (max-width: 980px){
  .rb-shops__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px){
  .rb-shops__grid{ grid-template-columns: 1fr; }
}

/* カード */
.rb-shop-card{
  border: 1px solid var(--rb-border);
  border-radius: var(--rb-card-radius);
  background: #fff;
  overflow: hidden;
  box-shadow: var(--rb-shadow);
  transition: transform .15s ease, box-shadow .15s ease;
}

.rb-shop-card__link{
  display: block;
  color: inherit;
  text-decoration: none;
}

/* 画像：スタッフより40px短く */
.rb-shop-card__thumb{
  background: rgba(0,0,0,.03);
}
.rb-shop-card__thumb img{
  width: 100%;
  height: 180px;          /* ← 220 - 40 = 180 */
  object-fit: cover;
  display: block;
}

/* 本文：スタッフと同じ思想（flex + gap で間隔管理） */
.rb-shop-card__body{
  padding: 14px 14px 16px;
  text-align: center;

  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

/* テーマ側の余白が混ざらないように一旦クリア */
.rb-shops .rb-shop-card__body > *{
  margin: 0 !important;
}

/* 店舗名 */
.rb-shop-card__name{
  font-size: 20px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--rb-name);
  letter-spacing: .02em;
}

/* 住所：3pt程度小さく + 1行固定（はみ出し…） */
.rb-shop-card__address{
  font-size: 10px;         /* ← 14px相当から約3pt（≒4px）小さく */
  line-height: 1.5;
  color: rgba(0,0,0,.55);

  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; /* ← 1行に収まらない時は… */
}

/* ボタン：スタッフと同じ */
.rb-shop-card__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;

  margin-top: 2px !important;
  padding: 10px 14px;
  border-radius: 999px;

  background: var(--rb-btn-bg);
  border: 1px solid var(--rb-btn-border);
  color: var(--rb-btn-text);

  font-size: 14px;
  font-weight: 700;
  line-height: 1;
}

/* 右向き三角 */
.rb-shop-card__btn::after{
  content: "▶";
  font-size: 12px;
  line-height: 1;
  transform: translateY(-1px);
  opacity: .95;
}

/* hover */
@media (hover:hover){
  .rb-shop-card:hover{
    transform: translateY(-2px);
    box-shadow: var(--rb-shadow-hover);
  }
  .rb-shop-card:hover .rb-shop-card__btn{
    filter: brightness(0.98);
  }
}

/* =====================================
   スマホ時のみ 文字サイズを +3pt 相当拡大
   ===================================== */

@media (max-width: 782px){

  /* ▼スタッフカード */
  .rb-staff-card__name{
    font-size: 24px !important;  /* 元20px → +4px */
  }

  .rb-staff-card__role{
    font-size: 18px !important;  /* 元14px → +4px */
  }

  /* ▼店舗カード */
  .rb-shop-card__name{
    font-size: 24px !important;  /* 元20px → +4px */
  }

  .rb-shop-card__address{
    font-size: 16px !important;  /* 元12px → +4px */
  }

}

/* ベージュの背景設定 */
.beckground-bage{
	background-color:#f9f6f2;
	display:block;
}

/* =========================================================
   RB Slider (Swiper) – FULL CSS (PC/SP)
   - クラス統一：.rb-slider / .rb-slider__viewport / .rb-slider__btn / .rb-slider__pagination
   - 画像は contain（切り抜き無し）
   - 透過対応（白背景を敷かない）
   - PC: 2枚表示 / SP: 1枚表示（JS側と一致）
   ========================================================= */


/* ===== PC用（2枚表示） ===== */
@media (min-width: 1024px) {

  /* セクション & ビューポート */
  .rb-slider{
    margin: 0 !important;
    padding: 0 !important;
  }

  .rb-slider .rb-slider__viewport{
    position: relative;
    width: 100%;
    height: auto;              /* 高さはJSで動的に付与 */
    margin: 0 !important;
    padding: 0 !important;
    background: transparent;   /* 透過の下地を出さない */
    overflow: hidden;
  }

  .rb-slider .swiper-wrapper{
    margin: 0 !important;
    padding: 0 !important;
  }

  /* スライド（余白ゼロ、中央寄せ、背景透明） */
  .rb-slider .swiper-slide{
    margin: 0 !important;
    padding: 0 !important;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    height: 100%;              /* ビューポートの高さに合わせる */
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
  }

  .rb-slider .swiper-slide img{
    width: 100%;
    height: 100%;
    object-fit: contain;       /* トリミングせず全体表示 */
    display: block;
    margin: 0 !important;
    padding: 0 !important;
    border: 0;
    background: transparent;
  }

  /* ===== 前へ／次へボタン ===== */
  .rb-slider .rb-slider__btn{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;               /* 22pxアイコンの約1.5倍 */
    height: 54px;
    border: 0;
    background: transparent;
    cursor: pointer;
    z-index: 5;
    -webkit-tap-highlight-color: transparent;
    outline: none;
  }

  .rb-slider .rb-slider__btn--prev{ left: 8px; }
  .rb-slider .rb-slider__btn--next{ right: 8px; }

  /* アイコン（白シェブロン＋ドロップシャドウ） */
  .rb-slider .rb-slider__btn::before{
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    width: 22px;
    height: 22px;
    background: url('data:image/svg+xml;utf8,\
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\
        <path fill="%23FFFFFF" d="M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z"/>\
      </svg>'
    ) center/contain no-repeat;
    filter: drop-shadow(0 1px 2px rgba(0,0,0,.6));
  }

  .rb-slider .rb-slider__btn--next::before{ transform: scaleX(-1); }

  /* ホバー/アクティブ時の薄いシェード */
  .rb-slider .rb-slider__btn:hover::after,
  .rb-slider .rb-slider__btn:active::after{
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.08);
    border-radius: 4px;
  }
}


/* ===== スマホ用（1枚表示） ===== */
@media (max-width: 1023.98px) {

  .rb-slider{
    margin: 0 0 30px 0 !important;
    padding: 0 !important;
  }

  .rb-slider .rb-slider__viewport,
  .rb-slider .swiper{
    position: relative;
    width: 100%;
    height: auto;              /* 高さは画像に追従（JSでupdateあり） */
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    background: transparent;
    overflow: hidden;
  }

  .rb-slider .swiper-wrapper{
    width: 100%;
    margin: 0;
    box-sizing: border-box;
  }

  /* 1枚目が縮むSafari対策：幅100%を強制 */
  .rb-slider .swiper-slide{
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    height: auto;
    display: block;
    background: transparent;
  }

  .rb-slider .swiper-slide img{
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    image-rendering: auto;
    -webkit-transform: translateZ(0);
  }

  /* ===== 前へ／次へボタン（少し小さめ） ===== */
  .rb-slider .rb-slider__btn{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 30px;
    height: 48px;
    border: 0;
    background: transparent;
    cursor: pointer;
    z-index: 5;
    -webkit-tap-highlight-color: transparent;
    outline: none;
  }

  .rb-slider .rb-slider__btn--prev{ left: 6px; }
  .rb-slider .rb-slider__btn--next{ right: 6px; }

  .rb-slider .rb-slider__btn::before{
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    width: 20px;
    height: 20px;
    background: url('data:image/svg+xml;utf8,\
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\
        <path fill="%23FFFFFF" d="M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z"/>\
      </svg>') center/contain no-repeat;
    filter: drop-shadow(0 1px 2px rgba(0,0,0,.6));
  }

  .rb-slider .rb-slider__btn--next::before{ transform: scaleX(-1); }

  .rb-slider .rb-slider__btn:active::after{
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.10);
    border-radius: 4px;
  }
}


/* =========================================================
   RB Voice Slider – Pagination (ドット)
   - HTML: <div class="rb-slider__pagination"></div>
   - JS: bulletClass='rb-voice-slider__bullet', active='is-active'
   ========================================================= */

/* PC */
@media (min-width: 1024px){
  .rb-slider.rb-voice-slider{
    width: 100%;
    margin: 0 auto 20px auto;
    padding: 0 0 10px 0;
    position: relative;
  }

  .rb-slider.rb-voice-slider .rb-slider__pagination{
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 24px 0 8px;
    gap: 12px;
  }

  .rb-voice-slider__bullet{
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: #ddd;
    opacity: 1;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.2s ease;
  }

  .rb-voice-slider__bullet.is-active{
    background: #4aaa4c;
    transform: scale(1.25);
  }
}

/* SP */
@media (max-width: 1023.98px){
  .rb-slider.rb-voice-slider{
    margin: 0 0 10px 0;
    padding: 0 0 5px 0;
  }

  .rb-slider.rb-voice-slider .rb-slider__pagination{
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 10px 0 5px;
    gap: 15px;
  }

  .rb-voice-slider__bullet{
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: #ddd;
    opacity: 1;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.2s ease;
  }

  .rb-voice-slider__bullet.is-active{
    background: #4aaa4c;
    transform: scale(1.25);
  }
}


/* =========================================================
   任意：PC専用 / SP専用 表示制御
   - HTMLに rb-voice-slider--pc / --sp を付けて使う
   ========================================================= */

@media (max-width: 1023.98px){
  .rb-voice-slider--pc{ display: none !important; }
}
@media (min-width: 1024px){
  .rb-voice-slider--sp{ display: none !important; }
}

/* 視覚的に（スクリーンリーダーには読み上げ） */
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap; /* 折り返し防止 */
  border: 0;
}

/* キーボード操作でフォーカス時のみ表示（任意） */
.sr-only-focusable:focus,
.sr-only-focusable:active {
  position: static !important;
  width: auto; height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: normal;
}

/* =========================================================
   rb_breadcrumb デザイン調整（要件：家アイコン/区切りアイコン/丸文字/モバイル省略/左余白ゼロ）
   ========================================================= */

/* 全体：左余白ゼロ + 左揃え + 丸文字 */
.rb-breadcrumb{
  margin-left: 0 !important;
  padding-left: 0 !important;
  text-align: left;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size:80%;
}

/* リスト：左余白ゼロ */
.rb-breadcrumb__list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;          /* PCは折り返しOK */
  gap: 6px;
  align-items: center;
}

/* 区切り：文字 ">" を消して、アイコンに置き換え */
.rb-breadcrumb__sep{
  font-size: 0;             /* ">" を非表示 */
  line-height: 0;
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  opacity: .65;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 14px 14px;
  /* chevron-right (SVG) */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24'%3E%3Cpath fill='%23666' d='M9.29 6.71a1 1 0 0 0 0 1.41L13.17 12l-3.88 3.88a1 1 0 1 0 1.41 1.41l4.59-4.59a1 1 0 0 0 0-1.41L10.7 6.7a1 1 0 0 0-1.41.01Z'/%3E%3C/svg%3E");
}

/* リンク */
.rb-breadcrumb__link{
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.rb-breadcrumb__link:hover{
  text-decoration: underline;
}

/* ホーム（先頭）リンクの前に家アイコン */
.rb-breadcrumb__item:first-child .rb-breadcrumb__link::before{
  content: "";
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  display: inline-block;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 16px 16px;
  /* home (SVG) */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath fill='%23666' d='M12 3l9 8h-2v9a1 1 0 0 1-1 1h-5v-6H11v6H6a1 1 0 0 1-1-1v-9H3l9-8z'/%3E%3C/svg%3E");
}

/* 現在地 */
.rb-breadcrumb__current{
  opacity: .85;
}

/* -----------------------------
   モバイル：1行省略（横1行固定＋末尾…）
   ----------------------------- */
@media screen and (max-width: 768px){
  .rb-breadcrumb__list{
    flex-wrap: nowrap;      /* 1行固定 */
    overflow: hidden;       /* はみ出しを隠す */
    white-space: nowrap;
  }

  /* 最後（現在地）だけ縮んで省略対象にする */
  .rb-breadcrumb__item{
    min-width: 0;
  }
  .rb-breadcrumb__current{
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* リンク類は縮まない（途中が潰れないように） */
  .rb-breadcrumb__link{
    flex: 0 0 auto;
  }
}

/* =========================================================
   カウントダウンバナー 完全版
   ========================================================= */

/* PC/タブレットは非表示（ここだけ強制） */
@media screen and (min-width: 960px) {
  #relaxbody-bottom-banner {
    display: none !important;
  }
}

/* ===============================
   スマホのみ（959px以下）
   =============================== */
@media screen and (max-width: 959px){

  #relaxbody-bottom-banner{
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;

    display: block !important;
    margin: 0 !important;
    transform: none !important;

    background-color: #ffdd41;
    text-align: center;
    font-family: sans-serif;
    padding: 10px;
    font-size: 14px;
    line-height: 1.5;
    font-weight: bold;

    z-index: 2147483647;
    box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
    color: inherit;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
  }

  /* 子要素クリック干渉防止 */
  #relaxbody-bottom-banner *{
    pointer-events: none;
  }

  #relaxbody-bottom-banner strong{
    display: block;
    font-size: 16px;
    color: #4aaa4c;
  }

  #relaxbody-bottom-banner .text-label{
    color: #000;
    margin-left: 4px;
    font-weight: normal;
  }

  #relaxbody-bottom-banner .countdown-box{
    display: inline-block;
    background: #fff;
    color: #4aaa4c;
    padding: 2px 6px;
    margin: 0 2px;
    border-radius: 4px;
    min-width: 36px;
    text-align: center;
    font-weight: bold;
    font-size: 14px;
    white-space: nowrap;
  }

  /* hiddenクラス時は非表示 */
  #relaxbody-bottom-banner.hidden{
    display: none !important;
  }

  /* ===============================
     バナー表示中のページ下余白
     （隙間が気になる場合は数値を微調整）
     =============================== */
  body.rb-banner-active{
    padding-bottom: 65px !important;
  }

  /* 固定UI（ページトップボタンなど）を上に逃がす */
  body.rb-banner-active .c-fixBtn,
  body.rb-banner-active .c-fixBtnWrap,
  body.rb-banner-active .c-pagetop,
  body.rb-banner-active .p-pagetop,
  body.rb-banner-active .swell-to-top,
  body.rb-banner-active #pagetop{
    bottom: 75px !important;
  }
}

/* =========================
   SP: 画像6枚グリッド（3列×2行）
   ========================= */

@media screen and (max-width: 782px) {

:root{
  --pad: 10px;    /* 外側余白（自由に調整OK） */
  --gapx: 5px;   /* 横の間隔 */
  --gapy: 10px;   /* 縦の間隔 */
}

.v{
  width: 100%;
  margin: 0 auto 15px auto;
  padding: 0 var(--pad) var(--pad) var(--pad);
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* ← 3列に修正 */
  gap: var(--gapy) var(--gapx);
  box-sizing: border-box;
}

.v__item{ display:block; }

.v__item img{
  width: 100%;   /* ← 1frごとの幅にフィット */
  height: auto;
  display: block;
}
}
/* ===== PC表示 ===== */
:root {
  --w: 1200px;     /* 全体の幅 */
  --pad: 20px;     /* 外側余白 */
  --gapx: 15px;    /* 横の間隔 */
  --gapy: 40px;    /* 縦の間隔 */
}

.v {
  width: var(--w);
  margin: 0 auto 40px auto;
  padding: var(--pad);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gapy) var(--gapx);
  box-sizing: border-box;
}

.v__item img {
  width: 100%;
  height: auto;
  display: block;
}

/* =====================================================
   RB動画モーダル：PC修正版（hiddenが必ず効く）
   - 表示しっぱなしの不具合を修正
   - SP側は一切変更しない
   ===================================================== */

/* ---- PCのみ（960px以上） ---- */
@media screen and (min-width: 960px){

  /* hidden属性がある限り、絶対に表示しない（最重要） */
  #rb-lightbox[hidden]{
    display: none !important;
  }

  /* hiddenが外れた時だけ表示 */
  #rb-lightbox:not([hidden]){
    position: fixed;
    inset: 0;
    z-index: 2147483647;
    display: grid !important;
    place-items: start center; /* margin-topを効かせるため上寄せ */
  }

  /* 背景 */
  #rb-lightbox .rb-backdrop{
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.55);
    backdrop-filter: blur(2px);
  }

  /* ダイアログ：PC指定（ご希望のサイズ＆位置） */
  #rb-lightbox .rb-dialog{
    position: relative;
    width: 750px;
    height: 700px;
    margin-top: 150px;
    max-width: calc(100vw - 40px);
    max-height: calc(100vh - 260px);
    background:#000;
    border-radius: 16px;
    box-shadow: 0 30px 70px rgba(0,0,0,.35);
    overflow: hidden;
  }

  /* 埋め込み領域 */
  #rb-lightbox .rb-frame,
  #rb-lightbox .rb-frame iframe,
  #rb-lightbox .rb-frame video{
    width: 100%;
    height: 100%;
    display:block;
    border:0;
  }

  #rb-lightbox .rb-frame video{
    object-fit: contain;
    background:#000;
  }

  /* ×ボタン（SVG表示でズレ排除） */
  #rb-lightbox .rb-close{
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 10;
    width: 52px;
    height: 52px;
    border: 0;
    border-radius: 999px;
    background: rgba(255,255,255,.92);
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(0,0,0,.22);
    -webkit-tap-highlight-color: transparent;

    font-size: 0;
    color: transparent;
    line-height: 0;
  }

  #rb-lightbox .rb-close::before{
    content:"";
    position:absolute;
    inset:-10px; /* タップ領域拡張 */
  }

  #rb-lightbox .rb-close::after{
    content:"";
    position:absolute;
    inset:0;
    margin:auto;
    width: 22px;
    height: 22px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 22px 22px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23222' d='M18.3 5.71a1 1 0 0 0-1.41 0L12 10.59 7.11 5.7A1 1 0 0 0 5.7 7.11L10.59 12 5.7 16.89a1 1 0 1 0 1.41 1.41L12 13.41l4.89 4.89a1 1 0 0 0 1.41-1.41L13.41 12l4.89-4.89a1 1 0 0 0 0-1.4Z'/%3E%3C/svg%3E");
  }

  #rb-lightbox .rb-close:hover{
    background:#fff;
  }
}

/* =====================================================
   SPは“現状維持”：ここには何も書かない（変更しない）
   ===================================================== */
@media (max-width: 1023.98px) {

  .rb-video-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.92);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .rb-video-frame {
    position: relative;
    width: 100%;
    height: 100%;
  }
  @supports (height: 100svh) {
    .rb-video-frame { height: 100svh; }
  }

  .rb-video-frame iframe,
  .rb-video-frame video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    outline: none;
    object-fit: contain;
    background: #000;
  }

  .rb-video-close {
    position: fixed;
    top: 12px;
    right: 12px;
    z-index: 10000;
    appearance: none;
    border: none;
    background: none;
    color: #fff;
    font-size: 36px;
    line-height: 1;
    padding: 8px;
    cursor: pointer;
    text-shadow:
      0 2px 6px rgba(0,0,0,.85),
      0 0 2px rgba(0,0,0,.85);
  }

  body.is-video-open {
    position: fixed;
    width: 100%;
    overflow: hidden;
    touch-action: none;
  }
}