@charset "utf-8";


/*Google Fontsの読み込み
---------------------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+1:wght@100..900&display=swap');

/*Font Awesomeの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css");

/*lightbox.cssの読み込み
---------------------------------------------------------------------------*/
@import url(https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.10.0/css/lightbox.css);


/*opa1のキーフレーム設定
---------------------------------------------------------------------------*/
@keyframes opa1 {
	0% {opacity: 0;}
	100% {opacity: 1;}
}


/*animation1のキーフレーム設定（開閉ブロックのアニメーションに使用）
---------------------------------------------------------------------------*/
@keyframes animation1 {
	0% {left: -200px;}
	100% {left: 0px;}
}



/*全体の設定
---------------------------------------------------------------------------*/
body * {box-sizing: border-box;}
html,
body {
	height: auto;
	min-height: 100%;
	font-size: 15px;
}


	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

	html, body {
		font-size: 14px;	/*基準となるフォントサイズ。*/
	}

	}/*追加指定ここまで*/

body {
	font-family: "M PLUS 1", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;	/*フォント種類*/
	font-weight: 300;
	font-optical-sizing: auto;
	letter-spacing: 0.1rem;
	text-indent: 0.1rem;
	-webkit-text-size-adjust: none;
	margin: 0;padding: 0;
	line-height: 2.5;		/*行間*/
	background: #5a9545;		/*背景色*/
	color: #fff;			/*文字色*/
}

/* スマホで横にカタカタ動かないようにする */
html,
body{
  max-width: 100%;
  overflow-x: hidden;
}


/*リセット*/
figure {margin: 0;}
dd {margin: 0;}
nav,ul,li {margin: 0;padding: 0;}
nav ul {list-style: none;}
h1,h2,h3,h4 {font-weight: 400;}

/*table全般の設定*/
table {border-collapse:collapse;}

/*画像全般の設定*/
img {border: none;max-width: 100%;height: auto;vertical-align: middle;}

/*videoタグ*/
video {max-width: 100%;}

/*iframeタグ*/
iframe {width: 100%;}

/*他*/
input {font-size: 1rem;}
strong {font-weight: 500;}


/*リンクテキスト全般の設定
---------------------------------------------------------------------------*/
a {
	color: #fff;	/*文字色*/
	transition: 0.3s;	/*hoverまでにかける時間。0.3秒。*/
}

/*マウスオン時*/
a:hover {
	text-decoration: none;
}


/*header（ロゴとメニューが入ったブロック）
---------------------------------------------------------------------------*/
header {
	width: 250px;		/*幅*/
	padding: 0 2vw;		/*ヘッダー内の余白。上下、左右への順番。*/
	margin-top: 3vw;	/*ヘッダーの上に空けるスペース*/
	text-align: center;	/*テキストをセンタリング*/
}

@media screen and (max-width: 899px){
  header{
    margin-top: 5vw;   /* スマホだけ余白をつける */
  }
}

@media screen and (min-width:900px) {
  header {
    position: fixed;
    left: 0px;
    top: 20px;
    /* margin-top はなくてOK（上の 0 が効く） */
  }
}


/*ロゴ*/
header #logo img {display: block;}
header #logo {
	padding: 10px;margin: 0;
}

/*ロゴ下の小文字*/
header #logo span {
	display: block;
	font-size: 0.7rem;	/*文字サイズを70%に*/
}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

	header {
		position: fixed;	/*スクロールしても動かないようにする設定*/
		left: 0px;
		top: 0px;
    margin-top: 0;     /* ← この1行を追加（PCだけ上の余白ゼロ） */

	}

	}/*追加指定ここまで*/

	/*画面の高さが500px以下の追加指定*/
	@media screen and (max-height:800px) {

	header {
		position: absolute;	/*メニューが切れて見えなくならないように、fixedを中止する*/
	}

	}/*追加指定ここまで*/


/*mainブロック（右側のsectionを囲むブロック）
---------------------------------------------------------------------------*/

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

	main {
		margin-left: 250px;	/*headerのwidthに合わせる*/
	}

	}/*追加指定ここまで*/


/*main内のh2*/
main h2 {
	font-size: 1.8rem;	/*文字サイズを2倍*/
  line-height: 1.6;   /* ← 単位なしがおすすめ（= 2rem × 1.6） */
}

/*main内のh3*/
main h3 {
	font-size: 1.3rem;	/*文字サイズを1.5倍*/
}



/*メニューブロック初期設定
---------------------------------------------------------------------------*/
/* PC では常に表示しておく */
#menubar{
  display:block;
}

/* スマホ幅のときだけ、ハンバーガーで開閉する */
.small-screen #menubar{
  display:none;                 /* 通常は隠す */
}
.small-screen #menubar.display-block{
  display:block;                /* ハンバーガーONで表示 */
}



/*メニュー
---------------------------------------------------------------------------*/
/*メニューブロック全体*/
#menubar ul {
	margin: 3rem 0;	/*メニューブロックの外側に空けるスペース*/
}

/*メニュー一個あたり*/
#menubar nav a {
	text-decoration: none;
	display: block;
	background: #5a9545;                         /* 緑背景に変更 */
	border: 1px solid rgba(255,255,255,0.25);    /* うっすら白い枠 */
	color: #fff;
	padding: 0.6rem 0.7rem;
	margin: 0.45rem 0;
	border-radius: 5px;
}


/*マウスオン次*/
#menubar nav a:hover {
	background: rgba(0,0,0,0.9);	/*背景色。透明度を変更して濃くします。*/
	border: 1px solid rgba(255,255,255,0.9);	/*枠線。透明度を変更して濃くします。*/
}

/*900px以下画面でのメニュー
---------------------------------------------------------------------------*/
/*メニューブロック全体*/
.small-screen #menubar.display-block {
	position: fixed;overflow: auto;z-index: 100;
	left: 0px;top: 0px;
	width: 100%;
	height: 100%;
	padding-top: 80px;
	background: rgba(0,0,0,0.8);		/*背景色*/
	animation: animation1 0.2s both;	/*animation1を実行する。0.2sは0.2秒の事。*/
}
.small-screen #menubar ul {
	margin: 3rem;	/*メニューブロックの外側に空けるスペース*/
}


/*３本バー（ハンバーガー）アイコン設定
---------------------------------------------------------------------------*/
/*３本バーを囲むブロック*/
#menubar_hdr {
	animation: opa1 0s 0.2s both;
	position: fixed;z-index: 101;
	cursor: pointer;
	right: 0;			/*右からの配置場所指定*/
	top: 0;				/*上からの配置場所指定*/
	padding: 16px 14px;		/*上下、左右への余白*/
	width: 46px;			/*幅（３本バーが出ている場合の幅になります）*/
	height: 46px;			/*高さ*/
	display: flex;					/*flexボックスを使う指定*/
	flex-direction: column;			/*子要素（３本バー）部分。flexはデフォルトで横並びになるので、それを縦並びに変更。*/
	justify-content: space-between;	/*並びかたの種類の指定*/
	background: #d30c44;	/*背景色*/
}

/*バー１本あたりの設定*/
#menubar_hdr span {
	display: block;
	transition: 0.3s;	/*アニメーションにかける時間。0.3秒。*/
	border-top: 1.5px solid #fff;	/*線の幅、線種、色*/
}

/*×印が出ている状態の設定。※１本目および２本目のバーの共通設定。*/
#menubar_hdr.ham span:nth-of-type(1),
#menubar_hdr.ham span:nth-of-type(3) {
	transform-origin: center center;	/*変形の起点。センターに。*/
	width: 20px;						/*バーの幅*/
}

/*×印が出ている状態の設定。※１本目のバー。*/
#menubar_hdr.ham span:nth-of-type(1){
	transform: rotate(45deg) translate(3.8px, 5px);	/*回転45°と、X軸Y軸への移動距離の指定*/
}

/*×印が出ている状態の設定。※３本目のバー。*/
#menubar_hdr.ham span:nth-of-type(3){
	transform: rotate(-45deg) translate(3.8px, -5px);	/*回転-45°と、X軸Y軸への移動距離の指定*/
}

/*×印が出ている状態の設定。※２本目のバー。*/
#menubar_hdr.ham span:nth-of-type(2){
	display: none;	/*２本目は使わないので非表示にする*/
}


/*メニュー内にあるソーシャルメディアのアイコン
---------------------------------------------------------------------------*/
ul.icons {
	list-style: none;
	margin: 0;padding: 0;
	display: flex;
	justify-content: center;
}
ul.icons li {
	margin-right: 10px;	/*アイコン同士の余白*/
}
ul.icons i {
	font-size: 20px;	/*Font Awesomeのアイコンサイズ*/
}


/*section
---------------------------------------------------------------------------*/
/*フェード設定*/
.section::before {
  opacity: 1;              /* 初期状態では非表示 */
  transition: opacity 1s;  /* 1秒かけてフェードイン/フェードアウト */
}

/* 共通：背景レイヤー */
.body-bg-layer {
  /* position: fixed; などで全画面に敷く要素 */
}

/* デフォルト（section1 用） */
body[data-active-section="section1"] .body-bg-layer {
  /* section1 用の背景 */
}

body[data-active-section="section2"] .body-bg-layer {
  /* section2 用の背景 */
}

body[data-active-section="section3"] .body-bg-layer {
  /* section3 用の背景 */
}

/* …という感じで増やす */

/*section要素*/
section {
	padding: 2vw 5vw;	/*ボックス内の余白。上下、左右への順番。*/
}

/*４つのsectionブロックの共通設定*/
#section1,#section2,#section3,#section4 {
	min-height: calc(100dvh - 50px);	/*最低の高さ。100dvhは画面の高さ100%のこと。50pxは下のmarginの値。*/
	margin-bottom: 50px;	/*ボックスの下に空けるスペース*/
	padding: 5vw;			/*ボックス内の余白*/
}
	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

	#section1,#section2,#section3,#section4 {
		border-radius: 3vw 0 0 3vw;	/*角丸の指定。左上、右上、右下、左下への順番。*/
	}

	}/*追加指定ここまで*/


/*背景画像を置く為の設定*/
#section1::before,#section2::before,#section3::before,#section4::before {
	content: '';
	position: fixed;z-index: -1;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/*section1の設定*/
#section1 {
	color: #fff;	/*文字色*/
}
#section1::before {
	background: url('../images/section1.jpg') no-repeat center center / cover;	/*背景画像の読み込み*/
}

/*section2の設定*/
#section2 {
	background-color: rgba(59,96,94,0.6);	/*背景色。３つ目までの数字はrgbでの色指定。最後の小数点は透明度。*/
	color: #fff;	/*文字色*/
}
#section2::before {
	background: url('../images/section2.jpg') no-repeat center center / cover;	/*背景画像の読み込み*/
}

/*section3の設定*/
#section3 {
	background-color: rgba(100,88,79,0.6);	/*背景色。３つ目までの数字はrgbでの色指定。最後の小数点は透明度。*/
	color: #fff;	/*文字色*/
}
#section3::before {
	background: url('../images/section3.jpg') no-repeat center center / cover;	/*背景画像の読み込み*/
}

/*section4の設定*/
#section4 {
	color: #fff;	/*文字色*/
}
#section4::before {
	background: #437737;	/*section4だけは背景画像ではなく、単に背景色だけ指定しました。*/
}

	/*縦向き端末から見た場合に背景画像をチェンジする*/
	@media (orientation: portrait) {

	#section1::before {
		background-image: url('../images/section1_portrait.jpg');
	}
	#section2::before {
		background-image: url('../images/section2_portrait.jpg');
	}
	#section3::before {
		background-image: url('../images/section3_portrait.jpg');
	}

	}/*追加指定ここまで*/

/*背景色を入れない場合（画像だけを表示したい場合）*/
.no-bgcolor {background-color: transparent !important;}


/*フッター設定
---------------------------------------------------------------------------*/
footer small {font-size: 100%;}
footer {
	font-size: 0.8rem;
	text-align: center;		/*内容をセンタリング*/
	padding-bottom: 1rem;
}

/*リンクテキスト*/
footer a {color: inherit;text-decoration: none;}


/*お知らせブロック
---------------------------------------------------------------------------*/
/*記事の下に空ける余白*/
.new dd {
	padding-bottom: 1rem;
}

/*ブロック内のspan。日付の横のアイコン的な部分の共通設定*/
.new dt span {
	display: inline-block;
	text-align: center;
	line-height: 1.8;		/*行間（アイコンの高さ）*/
	border-radius: 3px;		/*角を丸くする指定*/
	padding: 0 0.5rem;		/*上下、左右へのブロック内の余白*/
	width: 6rem;			/*幅。６文字分。*/
	transform: scale(0.8);	/*80%のサイズに縮小*/
	background: rgba(255,255,255,0.8);		/*背景色*/
	color: #333;			/*文字色*/
}

	/*画面幅700px以上の追加指定*/
	@media screen and (min-width:700px) {

	/*ブロック全体*/
	.new {
		display: grid;	/*gridを使う指定*/
		grid-template-columns: auto 1fr;	/*横並びの指定。日付とアイコン部分の幅は自動で、内容が入るブロックは残り幅一杯とる。*/
	}

	}/*追加指定ここまで*/


/*list-grid（gallery.htmlでサムネイルを表示している部分の設定です）
---------------------------------------------------------------------------*/
/*listブロックを囲む外側のボックス*/
.list-grid-trimming {
	display: grid;
	grid-template-columns: repeat(4, 1fr);	/*ここの「4」の数字が横に並べる数です。3列がいいなら(3, 1fr)です。*/
	gap: 1rem;	/*マージン的な数値。サムネイル間を１文字分あけます。*/
}

/*ボックスを正方形にトリミングする為の指定なので変更しない。*/
.list-grid-trimming .list {
	position: relative;
	overflow: hidden;
	height: 0;
	padding-top: 100%;
}
.list-grid-trimming .list a {
	display: block;
	position: absolute;
	left: 0px;
	top: 0px;
	width: 100%;
	height: 100%;
}
.list-grid-trimming .list img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: 0.5s;	/*マウスオン時にかける時間。0.5秒。*/
}

/*マウスオン時の画像*/
.list-grid-trimming .list img:hover {
	transform: scale(1.1);	/*1.1倍に拡大*/
	filter: contrast(1.3);	/*コントラストを1.3倍*/
}


/*PAGE TOP（↑）設定
---------------------------------------------------------------------------*/
.pagetop-show {display: block;}

/*ボタンの設定*/
.pagetop a {
	display: block;text-decoration: none;text-align: center;z-index: 99;
	animation: opa1 0.2s 0.2s both;	/*一瞬ボタンが出ちゃうのを隠す為の応急措置*/
	position: fixed;	/*スクロールに追従しない(固定で表示)為の設定*/
	right: 20px;		/*右からの配置場所指定*/
	bottom: 20px;		/*下からの配置場所指定*/
	color: #fff;		/*文字色*/
	font-size: 1.5rem;	/*文字サイズ*/
	background: rgba(0,0,0,0.2);	/*背景色。0,0,0は黒の事で0.2は色が20%出た状態。*/
	width: 60px;		/*幅*/
	line-height: 60px;	/*高さ*/
	border-radius: 50%;	/*円形にする*/
}

/*その他
---------------------------------------------------------------------------*/
.clearfix::after {content: "";display: block;clear: both;}
.l {text-align: left !important;}
.c {text-align: center !important;}
.r {text-align: right !important;}
.ws {width: 95%;display: block;}
.wl {width: 95%;display: block;}
.mb0 {margin-bottom: 0px !important;}
.mb30 {margin-bottom: 30px !important;}
.look {display: inline-block;padding: 0px 10px;background: #000;border: 1px solid #fff;border-radius: 3px;margin: 5px 0; word-break: break-all;}
.small {font-size: 0.75em;}
.large {font-size: 2em; letter-spacing: 0.1em;}
.color-check, .color-check a {color: #ffcf0d;}
.pc {display: none;}
.dn {display: none !important;}
.block {display: block !important;}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

		.ws {width: 48%;display: inline;}
		.sh {display: none;}
		.pc {display: block;}

	}/*画面幅900px以上の追加指定ここまで*/

/* =========================
   料金セクション UI（サイズ切替/カード）
   ========================= */
.section.pricing { --gap: 12px; }
.size-switch {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gap);
  margin: 1rem 0 1.25rem;
}
@media (min-width: 700px){
  .size-switch { grid-template-columns: repeat(5, 1fr); }
}
@media (min-width: 1100px){
  .size-switch { grid-template-columns: repeat(9, 1fr); }
}
.size-btn{
  appearance: none;
  border: 1px solid rgba(255,255,255,.6);
  background: rgba(0,0,0,.35);
  color: #fff;
  padding: .55rem .8rem;
  border-radius: 6px;
  cursor: pointer;
  line-height: 1.2;
  font-size: .95rem;
  transition: transform .08s ease, background .2s ease, border-color .2s ease;
}
.size-btn:hover{ background: rgba(0,0,0,.55); }
.size-btn.is-active{
  background: #d30c44;
  border-color: #fff;
  font-weight: 500;
}

/* 料金カード */
.price-cards{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--gap);
}
@media (min-width: 700px){
  .price-cards{ grid-template-columns: repeat(1,1fr); }
}
@media (min-width: 1100px){
  .price-cards{ grid-template-columns: repeat(3,1fr); }
}
.price-cards .card[hidden]{ display: none !important; }

.card{
  background: rgba(0,0,0,.45);
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 10px;
  overflow: clip;
  backdrop-filter: blur(2px);
}
.card-body{ padding: 1rem 1rem 1.1rem; }
.card .row{
  display: grid;
  grid-template-columns: 1fr auto;
  column-gap: .75rem;
  align-items: baseline;
  padding: .45rem 0;
  border-bottom: 1px dashed rgba(255,255,255,.18);
}
.card .row:first-child{
  grid-template-columns: 1fr;
  border-bottom: 0;
  padding-top: 0;
  margin-bottom: .25rem;
}
.card .label{ opacity: .95; }
.card .price{
  font-variant-numeric: tabular-nums;
  font-weight: 500;
}

/* 注意書き */
.section.pricing .note{
  margin-top: .8rem;
  padding: .6rem .8rem;
  background: rgba(0,0,0,.35);
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 8px;
}

/* =========================
   祈念品ギャラリー（4→レスポンシブ）
   ========================= */
.list-grid-trimming{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
@media (min-width: 700px){
  .list-grid-trimming{ grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1100px){
  .list-grid-trimming{ grid-template-columns: repeat(4, 1fr); }
}

/* =========================
   モーダル（問い合わせタブ）
   ========================= */
.inquiry-tab{
  position: fixed;
  right: 16px;
  bottom: 20px;
  z-index: 120;
  border: none;
  border-radius: 999px;
  padding: .9rem 1.1rem;
  background: #d30c44;
  color: #fff;
  font-size: 1rem;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(0,0,0,.25);
}
.inquiry-modal{
  position: fixed;
  inset: 0;
  z-index: 130;
  display: none;
}
.inquiry-modal.open{ display: block; }
.inquiry-backdrop{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(2px);
}
.inquiry-panel{
  position: absolute;
  inset: 6vh 5vw auto 5vw;
  background: #1a1a1a;
  color: #fff;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 12px;
  padding: 1rem;
  max-height: 88vh;
  overflow: hidden;
  box-shadow: 0 12px 32px rgba(0,0,0,.4);
}
@media (min-width: 900px){
  .inquiry-panel{
    inset: 8vh 12vw auto 12vw;
    padding: 1.1rem 1.2rem;
  }
}
.inq-close{
  position: absolute;
  right: .4rem;
  top: .2rem;
  border: none;
  background: transparent;
  color: #fff;
  font-size: 1.5rem;
  padding: .3rem .5rem;
  cursor: pointer;
}



/* =========================
   料金（#section3 .pricing）
   ========================= */
.section.pricing { --gap: 12px; --card-bg: rgba(0,0,0,.45); --card-bd: rgba(255,255,255,.32); }
.section.pricing * { box-sizing: border-box; }
.section.pricing h2 { margin-top: 0; }

/* サイズ切替ボタン */
.size-switch{
  display: grid; gap: var(--gap);
  grid-template-columns: repeat(3, 1fr);
  margin: 1rem 0 1.25rem;
}
@media (min-width: 700px){ .size-switch{ grid-template-columns: repeat(5,1fr); } }
@media (min-width: 1100px){ .size-switch{ grid-template-columns: repeat(9,1fr); } }

.size-btn{
  appearance: none; cursor: pointer;
  border: 1px solid rgba(255,255,255,.65);
  background: rgba(0,0,0,.35);
  color: #fff; padding: .6rem .8rem; border-radius: 7px;
  font: inherit; line-height: 1.2; text-align: center;
  transition: background .2s ease, border-color .2s ease, transform .06s ease-in-out;
}
.size-btn:hover{ background: rgba(0,0,0,.55); }
.size-btn.is-active{ background: #d30c44; border-color: #fff; font-weight: 500; }
.size-btn:focus-visible{ outline: 2px solid #fff; outline-offset: 2px; }

/* 料金カードグリッド */
.price-cards{
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: var(--gap);
  grid-template-columns: 1fr;
}
@media (min-width: 700px){ .price-cards{ grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1100px){ .price-cards{ grid-template-columns: repeat(3,1fr); } }

/* data-size フィルタ用（JSで hidden が付く想定） */
.price-cards .card[hidden]{ display: none !important; }

/* カード */
.card{
  background: var(--card-bg);
  border: 1px solid var(--card-bd);
  border-radius: 12px;
  overflow: clip; /* 角丸で中身を切る */
  backdrop-filter: blur(2px);
}
.card-body{ padding: 1rem 1rem 1.1rem; }

/* 行レイアウト */
.card .row{
  display: grid;
  grid-template-columns: 1fr auto;
  column-gap: .75rem;
  align-items: baseline;
  padding: .5rem 0;
  border-bottom: 1px dashed rgba(255,255,255,.2);
}
.card .row:first-child{
  grid-template-columns: 1fr;
  border-bottom: 0;
  padding-top: 0; margin-bottom: .25rem;
}

/* テキスト */
.card .label{ opacity: .95; }
.card .price{
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  white-space: nowrap;
}

/* 注意書き */
.section.pricing .note{
  margin-top: .9rem;
  padding: .7rem .9rem;
  background: rgba(0,0,0,.35);
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 8px;
}

/* ==================================================
   かご棺・有料オプション
================================================== */

.casket-option {
  --casket-main: #8b6c4b;
  --casket-dark: #49382b;
  --casket-text: #302b27;
  --casket-muted: #746a62;
  --casket-bg: #f8f4ed;
  --casket-card: #ffffff;
  --casket-line: #e3d8ca;

  padding: clamp(64px, 8vw, 105px) 20px;
  background:
    linear-gradient(
      rgba(248, 244, 237, 0.96),
      rgba(248, 244, 237, 0.96)
    );
  color: var(--casket-text);
}

.casket-option__inner {
  width: min(1100px, 100%);
  margin: 0 auto;
}

.casket-option__heading {
  max-width: 780px;
  margin: 0 auto 34px;
  text-align: center;
}

.casket-option__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 90px;
  min-height: 30px;
  margin-bottom: 12px;
  padding: 5px 14px;
  background: var(--casket-main);
  border-radius: 999px;
  color: #ffffff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1;
}

.casket-option__eyebrow {
  margin: 0 0 7px;
  color: var(--casket-main);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.6;
}

.casket-option__heading h2 {
  margin: 0;
  color: var(--casket-dark);
  font-family:
    "Yu Mincho",
    "YuMincho",
    "Hiragino Mincho ProN",
    serif;
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.45;
}

.casket-option__heading h2 span {
  font-size: 1.1em;
}

.casket-option__lead {
  margin: 18px auto 0;
  color: var(--casket-muted);
  font-size: 15px;
  line-height: 1.9;
}

.casket-option__price-note {
  display: inline-block;
  margin: 18px auto 0;
  padding: 8px 16px;
  background: #fff4e6;
  border: 1px solid #e7c9a5;
  border-radius: 8px;
  color: #76522f;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.6;
}

/* 商品画像 */
.casket-option__visual {
  width: min(720px, 100%);
  margin: 0 auto 42px;
  padding: 22px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid var(--casket-line);
  border-radius: 22px;
  box-shadow: 0 14px 38px rgba(73, 56, 43, 0.1);
  text-align: center;
}

.casket-option__visual img {
  display: block;
  width: 100%;
  max-height: 430px;
  object-fit: contain;
  margin: 0 auto;
}

.casket-option__visual p {
  margin: 13px 0 0;
  color: var(--casket-muted);
  font-size: 11px;
  line-height: 1.6;
}

/* サイズカード */
.casket-size-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  align-items: stretch;
}

.casket-size-card {
  display: flex;
  min-width: 0;
  min-height: 100%;
  padding: 22px;
  flex-direction: column;
  background: var(--casket-card);
  border: 1px solid var(--casket-line);
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(73, 56, 43, 0.07);
}

.casket-size-card__head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 17px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--casket-line);
}

.casket-size-card__size {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 48px;
  height: 36px;
  padding: 0 12px;
  background: var(--casket-dark);
  border-radius: 6px;
  color: #ffffff;
  font-family: Arial, sans-serif;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.casket-size-card__label {
  color: var(--casket-muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
}

.casket-size-card__spec {
  display: grid;
  gap: 14px;
  margin: 0;
}

.casket-size-card__spec div {
  margin: 0;
}

.casket-size-card__spec dt {
  margin: 0 0 3px;
  color: var(--casket-main);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.5;
}

.casket-size-card__spec dd {
  margin: 0;
  color: var(--casket-text);
  font-size: 13px;
  line-height: 1.75;
}

.casket-size-card__price {
  margin: auto 0 0;
  padding-top: 20px;
  color: var(--casket-dark);
  font-size: 14px;
  font-weight: 700;
  text-align: right;
  white-space: nowrap;
}

.casket-size-card__price span {
  margin-right: 3px;
  font-family: Arial, sans-serif;
  font-size: 25px;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.casket-size-card__price small {
  margin-left: 4px;
  color: var(--casket-muted);
  font-size: 10px;
  font-weight: 500;
}

/* 注意事項 */
.casket-option__caution {
  margin-top: 28px;
  padding: 22px 24px;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid var(--casket-line);
  border-radius: 14px;
}

.casket-option__caution h3 {
  margin: 0 0 10px;
  padding: 0;
  border: 0;
  color: var(--casket-dark);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
}

.casket-option__caution p {
  margin: 7px 0 0;
  color: var(--casket-muted);
  font-size: 12px;
  line-height: 1.8;
}

.casket-option__caution p:first-of-type {
  margin-top: 0;
}

/* タブレット */
@media screen and (max-width: 900px) {
  .casket-size-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* スマートフォン */
@media screen and (max-width: 600px) {
  .casket-option {
    padding: 50px 14px;
  }

  .casket-option__heading {
    margin-bottom: 26px;
    text-align: left;
  }

  .casket-option__heading h2 {
    font-size: 27px;
  }

  .casket-option__lead {
    margin-top: 13px;
    font-size: 14px;
  }

  .casket-option__price-note {
    margin-top: 14px;
    font-size: 12px;
  }

  .casket-option__visual {
    margin-bottom: 26px;
    padding: 13px;
    border-radius: 15px;
  }

  .casket-size-list {
    grid-template-columns: 1fr;
    gap: 13px;
  }

  .casket-size-card {
    padding: 18px;
  }

  .casket-size-card__head {
    margin-bottom: 13px;
  }

  .casket-size-card__price span {
    font-size: 23px;
  }

  .casket-option__caution {
    margin-top: 22px;
    padding: 18px 16px;
  }
}

/* --- 重なり回避（最下部に追加） --- */
:root{
  --fab-h: 52px;   /* 見積もりボタンの高さ（目安） */
  --fab-gap: 12px; /* 2つのボタンのすき間 */
}

/* 見積もりボタン：右下固定 */
.inquiry-tab{
  position: fixed !important;
  right: 16px !important;
  bottom: 16px !important;
  z-index: 10000 !important;
}

/* TOPへ戻るボタン：見積もりの上にずらす（縦積み） */
.pagetop a{
  right: 16px !important;
  bottom: calc(16px + var(--fab-h) + var(--fab-gap)) !important;
  z-index: 9999 !important;
}

/* モバイルで少しゆとりを増やす（任意） */
@media (max-width: 480px){
  :root{ --fab-h: 58px; --fab-gap: 14px; }
  .inquiry-tab{ right: 12px!important; bottom: 12px !important; }
  .pagetop a{ right: 12px !important; }
}

/* もし見積もりを縦タブ版（画面右中央）に戻す場合は、下を有効化して下部の競合を無効にする */
/*
.inquiry-tab{
  writing-mode: vertical-rl; text-orientation: mixed;
  top: 50% !important; bottom: auto !important; transform: translateY(-50%);
}
.pagetop a{ bottom: 16px !important; } 
*/

/* ベース（PC） */
.biz-table{
  width: 100%;
  border-collapse: collapse;
  font-size: 1rem;
  line-height: 1.7;
  border: 1px solid #e5e7eb;
}
.biz-table th,
.biz-table td{
  padding: 12px 14px;
  border-bottom: 1px solid #e5e7eb;
  vertical-align: top;
}
.biz-table th{
  width: 14em;                 /* ラベル列の幅 */
  background: #f8fafc;
  text-align: left;
  font-weight: 600;
  color: #374151;
}
.biz-table td{
  background: #f8fafc;
  color: #111827;
  overflow-wrap: anywhere;      /* 長い文でも折り返し */
}

/* スマホ：行ごとに2列グリッドへ */
@media (max-width: 640px){
  .biz-table{ border: none; }
  .biz-table tr{
    display: grid;
    grid-template-columns: 8.5em 1fr; /* 左=ラベル / 右=値 */
    gap: 6px 10px;
    border-bottom: 1px solid #e5e7eb;
    padding: 10px 0;
  }
  .biz-table th,
  .biz-table td{
    border: none;
    padding: 0 0;
  }
  .biz-table th{
    background: transparent;
    color: #6b7280;
    font-size: 0.95rem;
    line-height: 1.5;
  }
  .biz-table td{
    font-size: 1rem;
    line-height: 1.7;
  }
}

/* 文字を少し大きく見せたい場合（任意） */
@media (max-width: 640px){
  .biz-table{ font-size: 1.05rem; }
}

.Inner {
  margin-left: auto;
  margin-right: auto;
  max-width: 1200px;
}

p{
  margin: 0;
  padding: 0;
}
li{
  list-style: none;
}

/* フローチャート用に横線は消す */
.List-Item {
  border-top: none;
  width: 100%;
}

@media screen and (max-width: 540px) {
  .List-Item {
    border-top: 0;
  }
}
.List-Item:nth-of-type(1) {
  border-top: 0;
}
.List-Item-Content {
  margin-left: auto;
  margin-right: auto;
  padding-top: 30px;
  padding-bottom: 30px;
  max-width: 1100px;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 540px) {
  .List-Item-Content {
    padding-top: 15px;
    padding-bottom: 15px;
    flex-wrap: wrap;
  }
}
.List-Item-Content.one {
  padding-top: 0;
}
.List-Item-Content-Number {
  position: relative;
  margin-right: 40px;
  border-radius: 50%;
  width: 80px;
  height: 80px;
  line-height: 80px;
  text-align: center;
  background: #5bc8ac;
  color: #fff;
  font-size: 36px;
}
@media screen and (max-width: 540px) {
  .List-Item-Content-Number {
    margin-right: 20px;
    width: 40px;
    height: 40px;
    line-height: 40px;
    font-size: 24px;
  }
}

.List-Item-Content-Title {
  margin-right: 48px;
  flex-basis: 298px;
  color: #5bc8ac;
  font-size: 24px;
}
@media screen and (max-width: 540px) {
  .List-Item-Content-Title {
    margin-right: 0;
    max-width: 230px;
    font-size: 18px;
  }
}
.List-Item-Content-Description {
  line-height: 1.5;
  font-size: 16px;
}
@media screen and (max-width: 540px) {
  .List-Item-Content-Description {
    margin-left: 60px;
    max-width: 260px;
    font-weight: normal;
    font-size: 13px;
  }
}

/* =========================
   ペットのお見送りのながれ（フローチャート）
   ========================= */

.Inner{
  margin-left: auto;
  margin-right: auto;
  max-width: 1200px;
}

.List-Item{
  width: 100%;
}

.List-Item-Content{
  margin-left: auto;
  margin-right: auto;
  max-width: 1100px;
  padding-top: 30px;
  padding-bottom: 30px;
  display: flex;
  align-items: center;
}

.List-Item-Content.one{
  padding-top: 0;
}

@media screen and (max-width: 540px){
  .List-Item-Content{
    padding-top: 15px;
    padding-bottom: 15px;
    flex-wrap: wrap;
  }
}

/* 丸い番号（正円＋固定幅カラム） */
.List-Item-Content-Number{
  position: relative;
  flex: 0 0 80px;      /* 幅を固定 */
  margin-right: 30px;
  width: 80px;
  height: 80px;
  line-height: 80px;
  border-radius: 50%;
  text-align: center;
  background: #5bc8ac;
  color: #fff;
  font-size: 36px;
}
.List-Item-Content-Number{
  position: relative;
  z-index: 1;   /* 丸を前面に */
}

@media screen and (max-width: 540px){
  .List-Item-Content-Number{
    flex: 0 0 40px;
    margin-right: 20px;
    width: 40px;
    height: 40px;
    line-height: 40px;
    font-size: 24px;
  }
}






/* 緑のタイトル枠：横幅をそろえる */
.List-Item-Content-Title{
  flex: 0 0 240px;          /* 全ステップ共通の横幅 */
  max-width: 240px;
  margin-right: 40px;
  padding: .4rem .8rem;
  background: #5bc8ac;
  color: #fff;
  font-size: 1.05rem;
  line-height: 1.4;
  border-radius: 4px;
}

@media screen and (max-width: 540px){
  .List-Item-Content-Title{
    flex: 0 0 220px;
    max-width: 220px;
    margin-right: 0;
    font-size: .95rem;
    line-height: 1.4;
  }
}

/* 説明文 */
.List-Item-Content-Description{
  line-height: 1.7;
  font-size: 16px;
}

@media screen and (max-width: 540px){
  .List-Item-Content-Description{
    margin-left: 60px;  /* 丸の分だけ右にずらす */
    max-width: 260px;
    font-size: 13px;
  }
}

/* フローチャート：緑枠タイトルの文字サイズ・行間調整 */
.List-Item-Content-Title{
  margin-right: 48px;
  flex-basis: 298px;
  /* 背景色と文字色はそのまま（上の指定が効いている） */
  font-size: 1.1rem;   /* 全体的に少し小さめ */
  line-height: 1.4;    /* 行間をキュッと締める */
  padding: 0.5rem 0.8rem; /* 余白はお好みで調整 */
}

/* スマホ時はさらに少しだけ小さく */
@media screen and (max-width: 540px) {
  .List-Item-Content-Title{
    font-size: 0.95rem;
    line-height: 1.4;
    margin-right: 0;
    max-width: 230px;
  }
}



/* === スマホ幅用（見た目調整） ====================== */
@media screen and (max-width: 700px){

  /* 1行目：番号＋タイトル、2行目：説明文 */
  .List-Item-Content{
    align-items: flex-start;
    flex-wrap: wrap;
  }

  /* 丸い番号を小さく・正円のまま */
  .List-Item-Content-Number{
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    line-height: 32px;
    font-size: 18px;
    margin-right: 12px;
    margin-bottom: 4px;
  }



  /* 緑の枠：幅をそろえて、少し小さめの文字＋行間 */
  .List-Item-Content-Title{
    flex: 1 1 calc(100% - 44px);   /* 「番号＋少しの余白」を引いた幅 */
    max-width: none;
    margin-right: 0;
    padding: .35rem .6rem;
    font-size: .95rem;
    line-height: 1.4;
  }

  /* 説明文は2行目で左をそろえる */
  .List-Item-Content-Description{
    flex-basis: 100%;
    margin-left: 44px;             /* 番号＋余白ぶんだけ右に寄せる */
    margin-top: .2rem;
    max-width: none;
    font-size: .85rem;
    line-height: 1.6;
  }
}

/* =========================
   section1 ふわっと・フワフワ画像
   ========================= */

/* 画像コンテナ：中央寄せ */
#section1 .hero-fuwafuwa{
  text-align: center;
  margin: 2rem auto 0;
}

/* 初期状態：透明＋少し下にずらす */
#section1 .hero-fuwafuwa-img{
  max-width: 1100px;
  width: 95%;
  opacity: 0;
  transform: translateY(40px);
}

/* スマホ時：縦画像を少し大きめ＋左に寄せる */
@media (max-width: 768px){
  #section1 .hero-fuwafuwa{
    padding-right: 0;           /* 右余白で小さくなっていた分をリセット */
  }

  #section1 .hero-fuwafuwa-img{
    max-width: 500px;           /* 画像の上限サイズ（好みで調整） */
    width: 100%;                /* 画面幅より少し大きめに表示 */
    margin-left: -10%;          /* 少し左にずらして、右側のボタンと被りにくくする */
  }
}



/* is-show が付いた時だけフワッと動く */
#section1 .hero-fuwafuwa-img.is-show{
  animation: fadeUpFluffy 2.4s ease-out forwards;
}

@keyframes fadeUpFluffy{
  0%{
    opacity: 0;
    transform: translateY(40px);
  }
  40%{
    opacity: 1;
    transform: translateY(0);
  }
  70%{
    opacity: 1;
    transform: translateY(-10px);
  }
  100%{
    opacity: 1;
    transform: translateY(0);
  }
}

/* 画面が狭いときは少しゆっくり */
@media (max-width: 480px){
  #section1 .hero-fuwafuwa-img.is-show{
    animation-duration: 2.8s;
  }
}

/* PCでは、背景画像を「メインエリアだけ」に制限する */
@media screen and (min-width:900px){
  #section1::before,
  #section2::before,
  #section3::before,
  #section4::before{
    left: 250px;                     /* ヘッダー（メニュー）幅と同じ */
    width: calc(100% - 250px);       /* 残りを背景画像にする */
  }
}

/* =========================
   section1 電話案内ボックス
   ========================= */
.hero-call{
  max-width: 520px;
  margin: 1.8rem auto 0;
  padding: 0.9rem 1.2rem 1.1rem;
  background: rgba(0,0,0,0.55);   /* 半透明の黒ベール */
  border-radius: 12px;
  text-align: center;
  box-shadow: 0 6px 16px rgba(0,0,0,0.35);
}

.hero-call p{
  margin: 0 0 .3rem;
}

.hero-call strong{
  font-size: 1.05rem;
}

/* 電話ボタン */
.hero-tel-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .65rem 1.3rem;
  border-radius: 999px;
  background: #d30c44;
  color: #fff;
  font-weight: 600;
  text-decoration: none;
  font-size: 1rem;
}

.hero-tel-btn i{
  font-size: 1rem;
}

.hero-tel-btn:hover{
  background: #b00a3a;
}

/* 「受付時間～」を少し小さく */
.hero-call p:last-child{
  font-size: .9rem;
}


/* ===== セクションごとのベール最終調整 ===== */

/* section1 はベール無し（猫写真クリア） */
#section1::after{
  background: transparent !important;
}

/* section2 は薄いベール */
#section2::after{
  background: rgba(0,0,0,.15) !important;
}

/* section3 は少し濃いベール（好みで調整可） */
#section3::after{
  background: rgba(0,0,0,.22) !important;
}

/* section4 は不要なら透明にしておく */
#section4::after{
  background: transparent !important;
}

/* =========================
   ペットが亡くなったら（jyunbi）専用デザイン
   ========================= */

#jyunbi{
  background: rgba(255,255,255,0.95);
  color: #1f2933;
  max-width: 980px;
  margin: 0 auto 48px;
  padding: 2.6rem 7vw 3rem;
  border-radius: 12px;
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
}

/* メイン見出し */
#jyunbi h2{
  margin-top: 0;
  margin-bottom: 1.8rem;
  font-size: 1.9rem;
  letter-spacing: .06em;
  color: #0f172a;
  text-align: left;
  border-left: 5px solid #5a9545;
  padding-left: .9rem;
}

/* セクション見出し */
#jyunbi h3{
  margin-top: 2.2rem;
  margin-bottom: .9rem;
  font-size: 1.25rem;
  color: #14532d;
  border-left: 3px solid rgba(20,83,45,.4);
  padding-left: .7rem;
}

/* 小見出し（Q&Aなど） */
#jyunbi h4{
  margin-top: 1.6rem;
  margin-bottom: .4rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: #374151;
}

/* 本文・補足 */
#jyunbi p{
  color: #1f2933;
}
#jyunbi .small{
  color: #6b7280;
}

/* 箇条書き：普通の黒文字＋黒ポチに戻す */
#jyunbi ul{
  padding-left: 1.4em;
  margin: .3rem 0 1.2rem;
}
#jyunbi ul li{
  list-style: disc;
  margin-bottom: .75rem;
}

/* 電話・中央揃えの段落を少し強調 */
#jyunbi p.c{
  margin: 1.6rem 0;
}
#jyunbi p.c strong{
  display: block;
  margin-bottom: .4rem;
  font-size: 1.02rem;
}
#jyunbi p.c a[href^="tel:"]{
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  color: #ffffff;
  text-decoration: none;
  letter-spacing: .06em;
}
#jyunbi p.c a[href^="tel:"]:hover{
  text-decoration: underline;
}

/* リンク色（読み物っぽく） */
/* jyunbi 内のリンク色（白背景用） */
#jyunbi a{
  color: #2563eb;          /* 好きな色でOK。濃い青など見える色に */
  text-decoration: underline;
}

#jyunbi a:hover{
  text-decoration: none;   /* 下線消したいならこのまま */
}

/* jyunbi：電話番号リンクだけ白にする */
#jyunbi .hero-call a[href^="tel:"],
#jyunbi p.c a[href^="tel:"]{
  color: #ffffff;
  text-decoration: none;
}


/* jyunbi：電話ボタンだけ白文字に戻す */
#jyunbi a.hero-tel-btn{
  color: #ffffff;
  text-decoration: none;
}

#jyunbi a.hero-tel-btn:hover{
  text-decoration: underline;
}

/* 図・写真：ほんのり影をつける */
#jyunbi figure{
  margin: 1.5rem auto;
  text-align: center;
}
#jyunbi figure img{
  border-radius: 8px;
  box-shadow: 0 6px 18px rgba(0,0,0,.16);
}

/* スマホで余白だけ少し圧縮 */
@media (max-width: 600px){
  #jyunbi{
    padding: 2.2rem 1.4rem 2.6rem;
    margin-bottom: 32px;
  }
  #jyunbi h2{
    font-size: 1.6rem;
  }
}
/* jyunbi 専用：問い合わせボタン */
#jyunbi .jyunbi-cta{
  margin: 2rem 0 0;
  text-align: center;
}

#jyunbi .jyunbi-btn{
  display: inline-block;
  padding: 0.85rem 1.8rem;
  border-radius: 999px;
  background: #d30c44;
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-decoration: none;
  box-shadow: 0 6px 18px rgba(0,0,0,.25);
  border: 1px solid rgba(255,255,255,.85);
}

#jyunbi .jyunbi-btn:hover{
  background: #b00a3a;
  box-shadow: 0 4px 12px rgba(0,0,0,.25);
  transform: translateY(1px);
}

@media (max-width: 600px){
  #jyunbi .jyunbi-btn{
    width: 100%;
    max-width: 360px;
    font-size: .95rem;
  }
}
/* jyunbi：ぶら下げインデント用 */
#jyunbi .hang{
  padding-left: 1.5em;   /* 全体を少し右へ */
  text-indent: -1.5em;   /* 1行目だけ左へ戻す → 2行目以降がそろう */
}

/* =========================
   TOP 専用の調整（順番変更に伴う見た目整理）
   ========================= */

/* ファーストビューのCTAボタン */
.hero-cta{
  margin-top: 1.4rem;
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
  justify-content: center;
}
.hero-btn{
  display: inline-block;
  padding: .75rem 1.6rem;
  border-radius: 999px;
  font-size: .95rem;
  letter-spacing: .06em;
  text-decoration: none;
  border: 1px solid transparent;
  white-space: nowrap;
}
.hero-btn.primary{
  background: #d30c44;
  border-color: rgba(255,255,255,.85);
  color: #fff;
  font-weight: 600;
}
.hero-btn.secondary{
  background: rgba(0,0,0,.32);
  border-color: rgba(255,255,255,.7);
  color: #fff;
}

@media (max-width: 480px){
  .hero-btn{
    flex: 1 1 100%;
    text-align: center;
  }
}

/* 読み物セクションは「明るい背景＋黒文字」に統一 */
#section2,
#section3,
#section5{
  background-color: rgba(247,250,244,0.96);
  color: #222;
}

/* 柩かご料金は料金セクションと近いトーンに */
#section3b{
  background-color: #345f32;
  color: #fff;
}

/* 2,3,4は背景画像のベールを外してスッキリさせる */
#section2::before,
#section3::before,
#section4::before{
  background: none;
}

/* 読み物セクション内のリンクカラー（念のため） */
#section2 a,
#section3 a,
#section5 a{
  color: #2563eb;
}

/* 祈念品ギャラリーの上に少し余白 */
#section5 .list-grid-trimming{
  margin-top: 1.4rem;
}

/* ヒーロー内の電話ボタン */
.hero-call{
  margin-top: 1.2rem;
}

.hero-tel-btn{
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .75rem 1.8rem;
  border-radius: 999px;
  background: #d30c44;
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-decoration: none;
  border: 1px solid rgba(255,255,255,.85);
  box-shadow: 0 6px 18px rgba(0,0,0,.35);
}

.hero-tel-btn i{
  font-size: 1rem;
}

.hero-tel-btn:hover{
  background: #b00a3a;
  box-shadow: 0 4px 12px rgba(0,0,0,.35);
  transform: translateY(1px);
}

/* スマホ時は横いっぱいに */
@media (max-width: 480px){
  .hero-tel-btn{
    width: 100%;
    justify-content: center;
  }
}

/* jyunbi（ペットが亡くなったら）用：電話ボックスを少し明るく */
#jyunbi .hero-call{
  background: rgba(0,0,0,.12);      /* 濃いグレー → うすいグレー */
  color: #111827;                   /* 黒っぽい文字に */
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
}

#jyunbi .hero-call p{
  color: inherit;                   /* p も黒にそろえる */
}

#jyunbi .hero-call strong{
  color: #111827;
}

/* =========================
   ご利用案内（about）用カードレイアウト
   ========================= */

#usage{
  background: rgba(255,255,255,0.97);
  color: #111827;
  max-width: 980px;
  margin: 0 auto 48px;
  padding: 2.4rem 7vw 3rem;
  border-radius: 12px;
  box-shadow: 0 10px 24px rgba(0,0,0,.14);
}

/* メイン見出し */
#usage h2{
  margin-top: 0;
  margin-bottom: 1.8rem;
  font-size: 1.9rem;
  letter-spacing: .06em;
  color: #0f172a;
  border-left: 5px solid #5a9545;
  padding-left: .9rem;
}

/* 小見出し（番号付きのタイトルなど） */
#usage h3{
  margin-top: 2.2rem;
  margin-bottom: .8rem;
  font-size: 1.25rem;
  color: #14532d;
  border-left: 3px solid rgba(20,83,45,.45);
  padding-left: .7rem;
}

/* さらに細かい見出しがあれば */
#usage h4{
  margin-top: 1.4rem;
  margin-bottom: .4rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: #374151;
}

/* 本文・リスト */
#usage p,
#usage li{
  color: #111827;
  line-height: 1.9;
}
#usage .small{
  color: #6b7280;
}

/* 箇条書きは黒ポチに戻す */
#usage ul{
  padding-left: 1.4em;
  margin: .4rem 0 1.2rem;
}
#usage ul li{
  list-style: disc;
}

/* 番号付きリスト */
#usage ol{
  padding-left: 1.6em;
  margin: .4rem 0 1.4rem;
}

/* 表（biz-table）をカード風に */
#usage .biz-table{
  margin-top: 1rem;
  background: #f9fafb;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #e5e7eb;
}
#usage .biz-table th,
#usage .biz-table td{
  border-bottom: 1px solid #e5e7eb;
  padding: 10px 14px;
}
#usage .biz-table th{
  background: #eef2ff;
  color: #1f2937;
  font-weight: 600;
}
#usage .biz-table td{
  color: #111827;
}

/* スマホ時、余白だけ少し圧縮 */
@media (max-width: 600px){
  #usage{
    padding: 2rem 1.4rem 2.6rem;
    margin-bottom: 32px;
  }
  #usage h2{
    font-size: 1.6rem;
  }
}

/* ご利用案内内のリンク色調整 */
#usage a{
  color: #2563eb;               /* 落ち着いた青 */
  text-decoration: underline;   /* リンクだと分かるように */
}
#usage a:hover{
  text-decoration: none;
}
/* =========================
   火葬車について（写真まわり）
   ========================= */
#section6 .vehicle-photo{
  margin: 1.8rem auto 2rem;
  max-width: 720px;
  text-align: center;
}

#section6 .vehicle-photo img{
  width: 200%;
  border-radius: 12px;
  box-shadow: 0 10px 26px rgba(0,0,0,.35);
}

#section6 .vehicle-photo figcaption{
  margin-top: .7rem;
  font-size: .9rem;
  opacity: .9;
}

#section6{
  padding-bottom: 200px;  /* 今 190 前後なら 10〜20 だけ増やすイメージ */
}

/* =========================
   草・虹・犬猫：重なり順の最終調整
   ========================= */

/* footer-scene 自体は「層」にしない */
.footer-scene{
  z-index: auto !important;  /* ← ここで z-index:0 を打ち消す */
}

/* 虹だけいちばん奥へ（本文より後ろ） */
.footer-rainbow-wrap,
.footer-rainbow{
  z-index: -1;               /* マイナスなので本文より奥 */
}

/* 本文は 0（基準の層） */
main{
  position: relative;
  z-index: 0;
}

/* 草むら：本文より前 */
.footer-grass{
  z-index: 10;               /* = 本文より手前 */
}

/* 犬・猫：草むらよりさらに手前 */
.footer-pet{
  z-index: 11;
}


/* 火葬車セクション：虹より上で終わるように下に余白 */
#section6{
  padding-bottom: 190px;   /* 必要なら 170〜210px で微調整 */
}

/* 本文を虹より手前側に出すための保険 */
main{
  position: relative;
  z-index: 1;
}



/* 火葬車セクション：画像サイズ調整用 */
#section6 img {
  max-width: 360px;   /* ←ここだけ数字を変えれば大きさを調整できます */
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto 2rem;
}

/* 火葬車ページの本文を読みやすくする用 */
#section6 p,
#section6 li {
  text-shadow:
    0 0 4px rgba(0, 0, 0, 0.35),
    0 0 8px rgba(0, 0, 0, 0.35);
}
/* 火葬車セクション全体の下に余白を追加 */
#section6{
  padding-bottom: 180px;   /* 好みで 160〜200px くらいで微調整可 */
}

/* =========================
   スマホ用：草＋犬猫＋虹＋ボタンの微調整
   ========================= */
@media (max-width: 600px){

  /* 草＋虹＋犬猫 全体の高さを少し低めに */
  .footer-scene{
    height: 90px;
  }

  /* 草むらは少し低くしてリピート */
  .footer-grass{
    height: 55px;
    background-size: auto 55px;
  }

  /* 虹：少し小さくして、PCと同じ位置関係を維持 */
  .footer-rainbow-wrap{
    width: 200px;
    height: 200px;
  }
  .footer-rainbow{
    width: 200px;
  }

  /* 犬・猫：相対的に大きくなりすぎないよう縮小＋位置調整 */
  .footer-pet{
    bottom: 4px;
    height: 60px;
  }
  .footer-pet-dog{
    left: 16px;
  }
  .footer-pet-cat{
    left: 80px;
  }

  /* 火葬車の文章が虹の下に潜り込まないよう、下余白を少し増やす */
  #section6{
    padding-bottom: 170px;
  }

  /* ボタンが足元のイラストと被りにくいよう位置だけ微調整 */
  .inquiry-tab{
    right: 12px !important;
    bottom: 12px !important;
  }
  .pagetop a{
    right: 12px !important;
    bottom: calc(12px + var(--fab-h) + var(--fab-gap)) !important;
  }
}

/* =========================
   画面下：草むら＋犬猫＋虹（レイヤー分離版）
   ========================= */

/* 虹レイヤー：本文より奥（z-index:-1） */
.footer-rainbow-layer{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  height: 130px;
  pointer-events: none;
  z-index: -1;      /* 本文(main)より奥へ */
}

/* 虹コンテナ：右下から生える */
.footer-rainbow-wrap{
  position: absolute;
  right: 0;
  bottom: 0;
  width: 260px;
  height: 260px;
  overflow: visible;
}

.footer-rainbow{
  position: absolute;
  right: 0;
  bottom: 0;
  width: 260px;
  height: auto;
  opacity: 0;
  transform-origin: 100% 100%;
  animation: footer-rainbow-arc 2.5s ease-out 1 forwards;
}

/* 草＋犬猫レイヤー：本文より手前（z-index:10） */
.footer-scene{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  height: 130px;
  pointer-events: none;
  z-index: 10;
}

/* 草むら：最前面レイヤーの中で一番奥 */
.footer-grass{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 70px;
  background-image: url("../images/grass.png");
  background-repeat: repeat-x;
  background-position: bottom left;
  background-size: auto 70px;
  z-index: 1;
}

/* 犬・猫：草より前 */
.footer-pet{
  position: absolute;
  bottom: 8px;
  height: 78px;
  width: auto;
  animation: pet-yurayura 3s ease-in-out infinite;
  z-index: 2;
}

.footer-pet-dog{
  left: 40px;
  animation-delay: 0.2s;
}
.footer-pet-cat{
  left: 120px;
  animation-delay: 0.5s;
}

/* 虹アニメーション（そのまま再利用） */
@keyframes footer-rainbow-arc{
  0%{
    opacity: 0;
    transform: rotate(90deg);
  }
  25%{
    opacity: 1;
  }
  100%{
    opacity: 1;
    transform: rotate(0deg);
  }
}

/* 犬猫のぷかぷかアニメ（そのまま再利用） */
@keyframes pet-yurayura{
  0%,100%{ transform: translateY(0); }
  50%{ transform: translateY(-4px); }
}

/* 本文(main)は基準レイヤー */
main{
  position: relative;
  z-index: 0;
}

/* =========================
   画面下：草むら＋犬猫＋虹（PC・スマホ共通）
   ========================= */

/* 本文(main)を基準レイヤーにする */
main{
  position: relative;
  z-index: 0;
}

/* 虹レイヤー：本文より奥（常に一番奥） */
.footer-rainbow-layer{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  height: 130px;
  pointer-events: none;
  z-index: -1;      /* ← ここで main より奥に */
}

.footer-rainbow-wrap{
  position: absolute;
  right: 0;
  bottom: 0;
  width: 260px;
  height: 260px;
  overflow: visible;
}

.footer-rainbow{
  position: absolute;
  right: 0;
  bottom: 0;
  width: 260px;
  height: auto;
  opacity: 0;
  transform-origin: 100% 100%;
  animation: footer-rainbow-arc 2.5s ease-out 1 forwards;
}

/* 草＋犬猫レイヤー：本文より手前（虹より前） */
.footer-scene{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  height: 130px;
  pointer-events: none;
  z-index: 10;     /* main(0) より前、虹(-1) より後ろ */
}

/* 草むら：レイヤー内の奥 */
.footer-grass{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 70px;
  background-image: url("../images/grass.png");
  background-repeat: repeat-x;
  background-position: bottom left;
  background-size: auto 70px;
  z-index: 1;
}

/* 犬・猫：草よりさらに手前 */
.footer-pet{
  position: absolute;
  bottom: 8px;
  height: 78px;
  width: auto;
  animation: pet-yurayura 3s ease-in-out infinite;
  z-index: 2;
}

.footer-pet-dog{
  left: 40px;
  animation-delay: 0.2s;
}
.footer-pet-cat{
  left: 120px;
  animation-delay: 0.5s;
}

/* 虹アニメーション（既存のものを流用） */
@keyframes footer-rainbow-arc{
  0%{
    opacity: 0;
    transform: rotate(90deg);
  }
  25%{
    opacity: 1;
  }
  100%{
    opacity: 1;
    transform: rotate(0deg);
  }
}

/* 犬猫のぷかぷかアニメ（既存のものを流用） */
@keyframes pet-yurayura{
  0%,100%{ transform: translateY(0); }
  50%{ transform: translateY(-4px); }
}

/* =========================
   ボタンとの重なり調整（PC・スマホ共通）
   ========================= */

:root{
  --fab-h: 52px;   /* 見積もりボタン高さの目安 */
  --fab-gap: 12px; /* ボタン同士のすき間 */
}

/* 見積もりボタン */
.inquiry-tab{
  position: fixed !important;
  right: 16px !important;
  bottom: 16px !important;
  z-index: 10000 !important;
}

/* ページトップボタン */
.pagetop a{
  position: fixed;
  right: 16px !important;
  bottom: calc(16px + var(--fab-h) + var(--fab-gap)) !important;
  z-index: 10001 !important;
}


/* =========================
   スマホ用：ヒーローロゴ
   ========================= */

/* 共通（まずは非表示にしておく） */
.hero-logo-sp{
  display: none;
}

/* スマホ幅のみ表示・位置決め */
@media (max-width: 768px){
  .hero-logo-sp{
    display: block;
    position: fixed;      /* 画面左上に固定 */
    left: 16px;
    top: 18px;
    z-index: 120;         /* 文字・背景より前、メニューより少し下くらい */
    pointer-events: none; /* ロゴでタップを邪魔しない */
  }
  .hero-logo-sp img{
    height: 40px;         /* ロゴの大きさ。大きければ数字を下げる */
    width: auto;
  }
}
/* ヒーローコピーを読みやすくする影 */
#section1 h2,
#section1 p{
  text-shadow:
    0 0 10px rgba(0,0,0,1.9),
    0 0 10px rgba(0,0,0,1.9);
}

/* スマホではヘッダーのロゴを隠す */
@media (max-width: 900px){
  header #logo{
    display: none;
  }
}

/* --- スマホ専用ヒーローロゴ --- */
.hero-logo-sp{
  display: none;          /* PCでは非表示 */
}

/* スマホだけ表示＆センター配置 */
@media (max-width: 900px){
  .hero-logo-sp{
    position: absolute;
    left: 50%;
    top: 32px;            /* ロゴの縦位置。高ければ数字を小さくする */
    transform: translateX(-50%);
    z-index: 15;          /* 背景より前、メニューよりは下でよければ 15〜20 くらい */
    width: 80%;
    max-width: 320px;
    pointer-events: none;
    opacity: 1;
    transition: opacity .3s ease, transform .3s ease;
  }

  /* スクロール後に隠す用クラス */
  .hero-logo-sp.is-hidden{
    opacity: 0;
    transform: translate(-50%, -8px);
  }

  /* スマホではヘッダーの元ロゴは消す */
  header #logo{
    display: none;
  }
}

/* テンプレート提供クレジット（メニュー直下） */
.tp-credit{
  margin-top: 1rem;        /* メニューからの「距離」はここで調整する */
  font-size: 0.7rem;
  line-height: 1.4;
  text-align: center;
}
.tp-credit a{
  color: inherit;
  text-decoration: none;
}

/* PC 幅でも、位置は header 内でメニューのすぐ下に出すだけ */
@media (min-width: 900px){
  header{
    /* すでにある指定にこれを足す（上の余白が欲しければ padding-top で調整） */
    margin-top: 0;          /* もし 5vw が邪魔なら 0 にする */
  }
}


#section-area .inner {
  max-width: 1000px;
  margin: 0 auto;
}


.section-area .area-flex {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  align-items: flex-start;
}

.section-area .area-text {
  flex: 1 1 320px;
}

.section-area .area-map {
  flex: 0 0 320px;
}

.section-area .area-map-placeholder {
  border: 1px dashed rgba(255,255,255,0.4);
  padding: 40px 20px;
  text-align: center;
  font-size: 0.9rem;
  opacity: 0.8;
}

.section-area .area-rules dt {
  font-weight: 700;
  margin-bottom: 4px;
}

.section-area .area-rules dd {
  margin: 0;
}

.section-area .area-note {
  font-size: 0.9rem;
  margin-top: 0.8em;
}

/* スマホ対応 */
@media (max-width: 768px) {
  .section-area .area-flex {
    flex-direction: column;
  }
  .section-area .area-map {
    order: -1; /* スマホでマップを先に見せたい場合はこのまま／不要なら削除 */
  }
}


/* スマホ専用：細長い縦タブ（仮申し込み・お問い合わせ） */
@media (max-width: 768px){
  .inquiry-tab{
    position: fixed;
    right: 0;
    left: auto;
    top: 70%;                 /* 位置。高ければ 65〜70%、もっと下なら 75〜80% に */
    bottom: auto;
    transform: translateY(-50%);

    /* 縦長・細身にする部分 */
    writing-mode: vertical-rl;
    text-orientation: mixed;
    width: 52px;              /* タブの太さ */
    height: 230px;            /* 縦の長さ（好みで 200〜260 くらいに調整） */
    padding: .4rem .3rem;     /* 余白は細め */
    box-sizing: border-box;

    /* 角は丸くしない */
    border-radius: 0 !important;

    /* 文字の見え方 */
    display: flex;
    align-items: center;      /* 中央寄せ */
    justify-content: center;
    font-size: .9rem;
    line-height: 1.6;

    /* 影そのまま使いたければ残す */
    box-shadow: 0 6px 18px rgba(0,0,0,.25);
  }
}


/* =========================
   移動費 料金カード
   ========================= */

.visit-fee{
  margin-top: 2.4rem;
}

.visit-fee h3{
  margin-bottom: .8rem;
  font-size: 1.35rem;
  border-left: 3px solid rgba(255,255,255,.7);
  padding-left: .7rem;
}

.visit-fee-lead{
  margin-bottom: 1.4rem;
  opacity: .9;
}

/* カードの並び */
.visit-fee-cards{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}

@media (min-width: 700px){
  .visit-fee-cards{
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1100px){
  .visit-fee-cards{
    grid-template-columns: repeat(3, 1fr);
  }
}

/* カード本体 */
.visit-fee-card{
  background: rgba(0,0,0,.45);
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 14px;
  padding: .95rem 1rem 1.05rem;
  box-shadow: 0 8px 20px rgba(0,0,0,.35);
}

/* タグ（上部のラベル） */
.visit-fee-tag{
  display: inline-block;
  padding: .2rem .7rem;
  border-radius: 999px;
  background: rgba(0,0,0,.55);
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .06em;
}
.visit-fee-tag.free{
  background: #eab308;
  color: #1f2937;
}

/* 距離・金額・時間 */
.visit-fee-range{
  margin: .55rem 0 .2rem;
  font-size: 1rem;
  font-weight: 600;
}

.visit-fee-price{
  margin: 0;
  font-size: 1.2rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.visit-fee-time{
  margin-top: .2rem;
  font-size: .9rem;
  opacity: .9;
}

/* 備考 */
.visit-fee-note{
  margin-top: 1rem;
  font-size: .85rem;
  opacity: .9;
}

/* ご訪問エリア画像：レイアウト＋ふわっと */
/* ご訪問エリア画像：共通サイズ */
#section-area .area-badge{
  max-width: 260px;   /* ← ここを 260px くらいに戻す */
  width: 100%;
  height: auto;

  /* ふわっと用 初期値はそのまま */
  opacity: 0;
  transform: translateY(20px);
  filter: drop-shadow(0 6px 14px rgba(0,0,0,.35));
  transition:
    opacity .7s ease,
    transform .7s ease;
}


/* 1枚目（鹿児島＋都城マップ）だけ大きく */
#section-area .area-badges img.area-badge:first-of-type{
  max-width: 420px;      /* 好みで 360〜450px の範囲で調整 */
}

/* 共通スタイル */
#section-area .area-badge{
  max-width: 260px;
  width: 100%;
  height: auto;
  opacity: 0;
  transform: translateY(20px);
  filter: drop-shadow(0 6px 14px rgba(0,0,0,.35));
  transition:
    opacity .7s ease,
    transform .7s ease;
}

/* 1枚目だけ大きく */
#section-area .area-badges img.area-badge:first-of-type{
  max-width: 420px;
}

/* ふわっと出現時 */
#section-area .area-badge.is-show{
  opacity: 1;
  transform: translateY(0);
}



/* ふわっと出現時 */
#section-area .area-badge.is-show{
  opacity: 1;
  transform: translateY(0);
}

/* 下段センター：「お伺いいたします！」 */
#section-area .area-badge:nth-child(3){
  grid-column: 1 / -1;   /* 1行ぜんぶ使う */
  justify-self: center;  /* 真ん中 */
  margin-top: 4px;
}

/* スマホは少し小さめに */
@media (max-width: 600px){
  #section-area .area-badges{
    grid-template-columns: repeat(2, minmax(140px, 1fr));
  }
  #section-area .area-badge{
    max-width: 400px;
  }
  #section-area .area-badge:nth-child(1){
    max-width: 240px;   /* スマホ用に少しだけ大きく */
  }
}


/* =========================
   料金表：スマホ用の最終調整
   ========================= */
@media (max-width: 768px){

  /* 見出し */
  #section3 .pricing h2{
    margin-top: 0;
    margin-bottom: .8rem;
    font-size: 1.5rem;
    text-align: center;
  }

  /* サイズ切替ボタン */
  #section3 .pricing .size-switch{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin: .8rem 0 1rem;
  }

  #section3 .pricing .size-btn{
    border: 1px solid rgba(255,255,255,.65);
    background: rgba(0,0,0,.35);
    color: #fff;
    padding: .45rem .3rem;
    border-radius: 6px;
    font-size: .8rem;
    line-height: 1.4;
    text-align: center;
    white-space: normal;
  }

  /* 料金カード本体 */
  #section3 .pricing .price-cards{
    display: grid;
    grid-template-columns: 1fr;   /* スマホは1列 */
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  #section3 .pricing .card{
    background: rgba(0,0,0,.55);
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 10px;
    padding: .8rem .9rem .9rem;
  }

  #section3 .pricing .card .row{
    display: grid;
    grid-template-columns: 1fr auto;
    column-gap: .5rem;
    align-items: baseline;
    padding: .4rem 0;
    border-bottom: 1px dashed rgba(255,255,255,.25);
  }

  #section3 .pricing .card .row:first-child{
    grid-template-columns: 1fr;
    border-bottom: none;
    padding-top: 0;
    margin-bottom: .25rem;
  }

  #section3 .pricing .card .label{
    font-size: .9rem;
  }

  #section3 .pricing .card .price{
    font-size: 1rem;
    font-weight: 600;
    white-space: nowrap;
  }

  /* 注意書き */
  #section3 .pricing .note{
    margin-top: .9rem;
    padding: .7rem .8rem;
    font-size: .85rem;
  }
}




/* =========================
   火葬車ページ：燃やせるもの／燃やせないもの／かご棺カード
   ========================= */

#section6 .fire-info{
  margin-top: 2.4rem;
}

#section6 .fire-info-title{
  margin: 0 0 1rem;
  font-size: 1.4rem;
  border-left: 3px solid rgba(255,255,255,.8);
  padding-left: .7rem;
}

/* カードを横並び → 狭い画面では縦並び */
#section6 .fire-info-grid{
  display: grid;
  gap: 1.2rem;
}

@media (min-width: 900px){
  #section6 .fire-info-grid{
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}

/* 共通カード */
#section6 .fire-box{
  background: rgba(0,0,0,.55);
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.35);
  padding: 1rem 1.1rem 1.2rem;
  box-shadow: 0 8px 20px rgba(0,0,0,.35);
}

#section6 .fire-box h4{
  margin: 0 0 .6rem;
  font-size: 1.05rem;
}

/* テキスト */
#section6 .fire-box p{
  margin: 0 0 .5rem;
}

#section6 .fire-box ul{
  margin: .2rem 0 .8rem;
  padding-left: 1.2em;
}

#section6 .fire-box li{
  list-style: disc;
  margin-bottom: .35rem;
}

/* 小さめ注記 */
#section6 .fire-box .small{
  font-size: .8rem;
  opacity: .9;
}

/* かご棺ボックスは少しだけ背景を明るく */
#section6 .fire-box.fire-casket{
  background: rgba(0,0,0,.45);
  border-color: rgba(255,255,255,.45);
  margin-top: 1.4rem;
}

/* スマホ時の詰め具合 */
@media (max-width: 600px){
  #section6 .fire-box{
    padding: .9rem .9rem 1.05rem;
  }
  #section6 .fire-info-title{
    font-size: 1.2rem;
  }
}


/* ここで囲んだところは途中改行させない */
.no-break {
  display: inline-block;  /* これが重要 */
  white-space: nowrap;
  word-break: keep-all;   /* 念のため */
}

/* 両端揃え用 */
.t-justify,
.t-justify p,
.t-justify li{
  text-align: justify;           /* 両端揃え */
  text-justify: inter-character; /* 日本語用に文字間で調整 */
}

/* ご訪問エリア：基本ルールをカード風に */
#section-area .area-rules-box{
  margin-top: 1.6rem;
  padding: 1rem 1.2rem 1.1rem;
  border-radius: 12px;
  background: rgba(0,0,0,.45);
  border: 1px solid rgba(255,255,255,.35);
  box-shadow: 0 8px 20px rgba(0,0,0,.35);
}

/* 見出し行 */
#section-area .area-rules-box dt{
  margin: 0 0 .4rem;
  font-weight: 600;
  font-size: 1.05rem;
  border-bottom: 1px solid rgba(255,255,255,.3);
  padding-bottom: .3rem;
}

/* 本文リスト */
#section-area .area-rules-box dd{
  margin: 0;
}
#section-area .area-rules-box ul{
  margin: .4rem 0 0;
  padding-left: 1.2em;
}
#section-area .area-rules-box li{
  margin-bottom: .25rem;
}
#section-area .area-rules-box li + li{
  border-top: 1px dashed rgba(255,255,255,.25); /* 行の区切りでテーブル感 */
  padding-top: .3rem;
}

/* 注記 */
#section-area .area-rules-box .note{
  margin-top: .9rem;
  font-size: .85rem;
  opacity: .9;
}


/* ページ内カテゴリボックス（１・２・３…） */
.jyunbi-block {
  position: relative;
  margin: 2rem 0;
  border-radius: 16px;
  overflow: hidden;
}

/* 写真レイヤー：本文より手前（z-index:0） */
.jyunbi-block::before {
  content: "";
  position: absolute;
  inset: 0;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  z-index: 0;
}

/* 白いベール：写真の上、文字の下（z-index:1） */
.jyunbi-block::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.85);
  z-index: 1;
}

/* 中身（テキスト）を一番手前に（z-index:2） */
.jyunbi-block-inner {
  position: relative;
  padding: 1.8rem 1.6rem;
  z-index: 2;
}

/* １・２・３…ごとに別の写真を指定 */
.jyunbi-block1::before {
  background-image: url("../images/jyunbi_bg1.jpg");
}
.jyunbi-block2::before {
  background-image: url("../images/jyunbi_bg2.jpg");
}
.jyunbi-block3::before {
  background-image: url("../images/jyunbi_bg3.jpg");
}
.jyunbi-block4::before {
  background-image: url("../images/jyunbi_bg4.jpg");
}
.jyunbi-block5::before {
  background-image: url("../images/jyunbi_bg5.jpg");
}

/* スマホ時：左右いっぱいに広げる */
@media (max-width: 768px) {
  .jyunbi-block {
    border-radius: 0;
    margin-left: -1rem;
    margin-right: -1rem;
  }

  .jyunbi-block-inner {
    padding: 1.5rem 1.2rem;
  }
}

/* jyunbi：4. してもよいこと／控えた方がよいこと の2カラム */
#jyunbi .jyunbi-cols{
  display: grid;
  grid-template-columns: 1fr 1fr;   /* PCでは2列 */
  gap: 1.4rem 2rem;                 /* 上下・左右のすき間 */
  align-items: flex-start;
}

/* カラム内の見出しは上にくっつける */
#jyunbi .jyunbi-col h4{
  margin-top: 0;
}

/* スマホでは1列に崩す */
@media (max-width: 768px){
  #jyunbi .jyunbi-cols{
    grid-template-columns: 1fr;     /* 1列レイアウト */
  }
}

/* 4. してもよいこと／控えた方がよいこと：カラム背景付き */
#jyunbi .jyunbi-col{
  background: rgba(248, 250, 252, 0.96); /* 共通のうすい背景 */
  border-radius: 12px;
  padding: 1rem 1.2rem 1.1rem;
  box-shadow: 0 4px 12px rgba(15,23,42,0.06);
}

/* 左：してもよいこと（やさしい緑系） */
#jyunbi .jyunbi-col:nth-child(1){
  border-top: 3px solid #22c55e;
}

/* 右：控えた方がよいこと（注意感のあるオレンジ系） */
#jyunbi .jyunbi-col:nth-child(2){
  border-top: 3px solid #f97316;
}

/* 中の見出しやリストの余白を少し整える */
#jyunbi .jyunbi-col h4{
  margin-top: 0;
  margin-bottom: .6rem;
}

#jyunbi .jyunbi-col ul{
  margin: 0;
  padding-left: 1.2em;
}
/* ペットが亡くなったら（jyunbi）内は文字を詰めて普通の組み方にする */
#jyunbi,
#jyunbi p,
#jyunbi li{
  letter-spacing: 0;   /* body の 0.1rem を無効化 */
  text-indent: 0;      /* 1文字字下げもオフ */
  line-height: 1.9;    /* お好みで。読みやすい程度に */
}

/* 必要なら Q&A 全体にも同じ指定をかける */
#jyunbi h3,
#jyunbi h4{
  letter-spacing: 0;
}

/* ペット慰霊塔・樹木葬 共通レイアウト */
.pet-memorial {
  padding: 3rem 1.5rem;
  max-width: 1000px;
  margin: 0 auto;
  font-size: 15px;
  line-height: 1.8;
}

.pet-memorial-notice {
  background: #829975;
  border-left: 4px solid #c5b28a;
  padding: 1rem 1.2rem;
  margin-bottom: 2.5rem;
}

.pet-memorial-notice p {
  margin: 0;
}

/* 各セクション */
.pet-section {
  margin-bottom: 3rem;
}

.pet-section-inner {
  display: flex;
  gap: 2rem;
  align-items: center;
}

/* 画像・テキスト */
.pet-image img {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: 6px;
}

.pet-text h2 {
  font-size: 1.4rem;
  margin-top: 0;
  margin-bottom: 1rem;
}

.pet-text p {
  margin-top: 0;
  margin-bottom: 0.8rem;
}

.pet-price {
  margin-top: 1rem;
  font-weight: bold;
  font-size: 1rem;
}

.pet-note {
  font-size: 0.9em;
  color: #ffffff;
}

/* スマホ時は縦並び */
@media (max-width: 768px) {
  .pet-section-inner {
    flex-direction: column;
    align-items: flex-start;
  }

  .pet-memorial {
    padding: 2rem 1rem;
  }
}

#section1,
#section2,
#section3,
#section4,
#section3b,
#section5{
  scroll-margin-top: 20px;
}

/* section4 の「移動費の基本ルール」をカード風に */
#section4 .fire-info-grid{
  margin-top: 1.6rem;
  padding: 1rem 1.2rem 1.1rem;
  border-radius: 12px;
  background: rgba(0,0,0,.45);
  border: 1px solid rgba(255,255,255,.35);
  box-shadow: 0 8px 20px rgba(0,0,0,.35);
}

/* 見出し行 */
#section4 .fire-info-grid dt{
  margin: 0 0 .4rem;
  font-weight: 600;
  font-size: 1.05rem;
  border-bottom: 1px solid rgba(255,255,255,.3);
  padding-bottom: .3rem;
}

/* 本文リスト */
#section4 .fire-info-grid dd{
  margin: 0;
}
#section4 .fire-info-grid ul{
  margin: .4rem 0 0;
  padding-left: 1.2em;
}
#section4 .fire-info-grid li{
  margin-bottom: .25rem;
}
#section4 .fire-info-grid li + li{
  border-top: 1px dashed rgba(255,255,255,.25);
  padding-top: .3rem;
}

/* 注記（下の p.note） */
#section4 .fire-info-grid .note,
#section4 .visit-fee .note{
  margin-top: .9rem;
  font-size: .85rem;
  opacity: .9;
}

/* 火葬車ページ：かごしま＋お伺い＋車レイアウト */
#section6 .area-badges{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr)); /* 上段2枚並び */
  gap: 12px;
  justify-items: center;
  max-width: 650px;
  margin: 1.8rem auto 1.2rem;
}

/* 上段2枚（かごしま／お伺い） */
#section6 .area-badges img.area-badge:nth-of-type(1),
#section6 .area-badges img.area-badge:nth-of-type(2){
  max-width: 400px;
}

/* 下段センター：車画像 */
#section6 .area-badge-car{
  grid-column: 1 / -1;    /* 2列ぶち抜き */
  max-width: 420px;
  margin-top: 4px;
}

/* スマホ時：少しコンパクトに */
@media (max-width: 600px){
  #section6 .area-badges{
    max-width: 100%;
    gap: 10px;
  }
  #section6 .area-badges img.area-badge:nth-of-type(1),
  #section6 .area-badges img.area-badge:nth-of-type(2){
    max-width: 200px;
  }
  #section6 .area-badge-car{
    max-width: 320px;
  }
}
/* 火葬車ページ：かごしま＋お伺い＋車の配置 */
#section6 .area-badges{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr)); /* 上段2枚 */
  gap: 12px;
  justify-items: center;
  max-width: 650px;
  margin: 1.8rem auto 1.2rem;
}

/* 上段2枚（かごしま／お伺い） */
#section6 .area-badge-map,
#section6 .area-badge-call{
  max-width: 400px;
}

/* 下段センター：車 */
#section6 .area-badge-car{
  grid-column: 1 / -1;      /* 2列ぶち抜きで中央 */
  max-width: 420px;
  margin-top: 4px;
}

/* スマホ時は少し小さく */
@media (max-width: 600px){
  #section6 .area-badges{
    max-width: 100%;
    gap: 10px;
  }
  #section6 .area-badge-map,
  #section6 .area-badge-call{
    max-width: 200px;
  }
  #section6 .area-badge-car{
    max-width: 320px;
  }
}

/* --- フワッと登場の共通初期値（section6専用） --- */
#section6 .area-badge{
  opacity: 0;
  transform: translateY(20px);
  filter: drop-shadow(0 6px 14px rgba(0,0,0,.35));
  transition:
    opacity .7s ease,
    transform .7s ease;
}

/* 表示された時（is-show 付与済み） */
#section6 .area-badge.is-show{
  opacity: 1;
  transform: translateY(0);
}

/* 順番制御：車 → かごしま → お伺い の順で出る */
#section6 .area-badge-car{
  transition-delay: 0s;     /* 先に出る */
}
#section6 .area-badge-map{
  transition-delay: .25s;   /* 少し遅れて */
}
#section6 .area-badge-call{
  transition-delay: .5s;    /* さらに遅れて */
}
/* かごしま・お伺いだけ揺らす（車は揺らさない） */
#section6 .area-badge-map.is-show,
#section6 .area-badge-call.is-show{
  animation: pet-yurayura 3s ease-in-out infinite;
}

/* 火葬車セクション：かごしま／お伺いだけ大きく */
#section6 .area-badge-map,
#section6 .area-badge-call{
  max-width: 460px;   /* ← 好みで 400〜480 の範囲で調整OK */
  width: 100%;
}

/* スマホ時は少しだけ控えめに */
@media (max-width: 600px){
  #section6 .area-badge-map,
  #section6 .area-badge-call{
    max-width: 320px;
  }
}

.pagetop a{
  position: fixed;
  z-index: 10001; /* 問い合わせボタンより少し上にしておく */
}


/* --- 料金表示の修正 --- */

/* 1. カード内の文字色を強制的に「白」にする（背景に埋もれるのを防ぐ） */
.card .label,
.card .price {
  color: #ffffff !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* 2. セクションIDが3でも4でもスタイルが当たるように調整 */
.section.pricing .card .row {
  display: grid !important;
  grid-template-columns: 1fr auto !important; /* ラベルを左、金額を右に */
  align-items: center !important;
  gap: 10px !important;
}

/* 3. スマホで金額がはみ出さないように調整 */
@media (max-width: 768px) {
  .section.pricing .card .price {
    font-size: 1.1rem !important; /* 金額を少し大きく */
    font-weight: 700 !important;
    min-width: 80px; /* 数字が入るスペースを確保 */
    text-align: right;
  }
}
/* =========================================
   ヒーロー画像上：料金（数字）オーバーレイ
   置き場所は「各プラン名の文字の下」を狙う
   → 位置は CSS変数（--x / --y）で微調整しやすくする
   ========================================= */

/* 画像＋数字の基準（この中が % の基準になる） */
#section1 .hero-fuwafuwa-inner{
  position: relative;
}

/* 数字を画像の上に全面展開 */
#section1 .hero-price-overlay{
  position: absolute;
  inset: 0;
  pointer-events: none;
}

/* 数字そのもの */
#section1 .p-item{
  position: absolute;
  left: var(--x, 50%);
  top: var(--y, 50%);

  /* 「左右中央」にだけ寄せる。縦は top 値で決める（ここが調整しやすい） */
  transform: translateX(-50%);

  color: #e60012;
  font-family: "M PLUS 1", sans-serif;
  font-weight: 800;
  white-space: nowrap;
  line-height: 1.1;

  text-shadow:
    2px 2px 0 #fff,
   -2px -2px 0 #fff,
    2px -2px 0 #fff,
   -2px 2px 0 #fff;
}

/* =========================
   PC（横画像）
   ========================= */
@media (min-width: 769px){
  #section1 .p-item{ font-size: 1.45rem; }

  /* まずは「見出し（青）の直下」基準の初期値 */
  #section1 .p-bring  { --x: 26%; --y: 33%; }
  #section1 .p-pickup { --x: 48%; --y: 33%; }
  #section1 .p-trust  { --x: 68%; --y: 33%; }
  #section1 .p-attend { --x: 88%; --y: 33%; }

  /*
    もし列ごとにズレるなら、ここだけ個別に 0.5〜1% ずつ動かす。
    例）bring だけ少し下げたい → --y: 35%;
        pickup だけ右へ → --x: 45%;
  */
}

/* =========================
   SP（縦画像）
   ========================= */
@media (max-width: 768px){
  #section1 .p-item{ font-size: 1.15rem; }

  /* 上段2つ：見出しの下 */
  #section1 .p-bring  { --x: 40%; --y: 19%; }
  #section1 .p-pickup { --x: 73%; --y: 18%; }

  /* 下段2つ：見出しの下 */
  #section1 .p-trust  { --x: 40%; --y: 62%; }
  #section1 .p-attend { --x: 73%; --y: 62%; }
}

/* =========================
   ヒーロー画像上の金額表示（iPhone対策・1本化）
   対象HTML：
   .hero-fuwafuwa-inner / .hero-price-overlay / .p-item
   ========================= */

/* 画像＋数字の基準（これが無いと top/left が迷子） */
#section1 .hero-fuwafuwa-inner{
  position: relative;
}

/* picture はブロック化して高さ計算を安定させる（Safari対策） */
#section1 .hero-fuwafuwa-inner picture,
#section1 .hero-fuwafuwa-inner img{
  display: block;
}

/* 数字レイヤーを画像にぴったり被せる */
#section1 .hero-price-overlay{
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
}

/* 数字共通 */
#section1 .p-item{
  position: absolute;
  left: var(--x);
  top:  var(--y);
  transform: translate(-50%, -50%);
  white-space: nowrap;

  color: #e60012;
  font-weight: 800;
  font-family: "M PLUS 1", sans-serif;
  text-shadow:
    2px 2px 0 #fff,
    -2px -2px 0 #fff,
    2px -2px 0 #fff,
    -2px 2px 0 #fff;

  /* 端末幅で自然に変わるように（はみ出し抑制） */
  font-size: clamp(14px, 3.6vw, 20px);
  line-height: 1.05;
}

/* --- 座標（PC：横長画像）--- */
@media (min-width: 769px){
  #section1 .p-item{ font-size: clamp(16px, 1.8vw, 22px); }

  /* 必要ならここを微調整（% を 0.5〜2 ずつ動かす） */
  #section1 .p-bring  { --x: 26%; --y: 33%; }
  #section1 .p-pickup { --x: 48%; --y: 33%; }
  #section1 .p-trust  { --x: 68%; --y: 33%; }
  #section1 .p-attend { --x: 88%; --y: 33%; }
}

/* --- 座標（スマホ：縦長画像）--- */
@media (max-width: 768px){
  #section1 .p-item{
    font-size: clamp(13px, 4.4vw, 18px);
  }

  #section1 .p-bring  { --x: 40%; --y: 19%; }
  #section1 .p-pickup { --x: 73%; --y: 18%; }
  #section1 .p-trust  { --x: 40%; --y: 62%; }
  #section1 .p-attend { --x: 73%; --y: 62%; }
}

/* iPhoneで「ほんの少し大きくてはみ出す」 */
@media (max-width: 430px){
  #section1 .p-item{
    font-size: clamp(11px, 4.2vw, 12px);
  }
}

/* 右下の重なり順を整理 */
.pagetop { position: fixed; z-index: 10000; }
.inquiry-tab { position: fixed; z-index: 9990; }

/* PCではハンバーガーを消す */
.large-screen #menubar_hdr { display: none !important; }

/* 念のため：PCではメニューを出す（テンプレ側が隠す場合の保険） */
.large-screen #menubar { display: block !important; }



@media (max-width: 768px){
  p, li, dd, td, th, a{
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  /* URLや英数字が特に長い場合の保険 */
  a{
    word-break: break-all;
  }
}

/* =========================
   ヒーロー画像上の金額表示（スマホ文字サイズ小さめ版）
   ========================= */

#section1 .hero-fuwafuwa-inner{ position: relative; }
#section1 .hero-fuwafuwa-inner picture,
#section1 .hero-fuwafuwa-inner img{ display:block; }

#section1 .hero-price-overlay{
  position:absolute;
  inset:0;
  z-index:5;
  pointer-events:none;
}

#section1 .p-item{
  position:absolute;
  left: var(--x);
  top:  var(--y);
  transform: translate(-50%, -50%);
  white-space: nowrap;

  color:#e60012;
  font-weight:800;
  font-family:"M PLUS 1", sans-serif;
  text-shadow: 2px 2px 0 #fff, -2px -2px 0 #fff, 2px -2px 0 #fff, -2px 2px 0 #fff;

  line-height: 1.05;
}

/* PC */
@media (min-width: 769px){
  #section1 .p-item{ font-size: clamp(16px, 1.8vw, 22px); }
  #section1 .p-bring  { --x: 26%; --y: 33%; }
  #section1 .p-pickup { --x: 48%; --y: 33%; }
  #section1 .p-trust  { --x: 68%; --y: 33%; }
  #section1 .p-attend { --x: 88%; --y: 33%; }
}

/* スマホ（ここを小さく） */
@media (max-width: 768px){
  #section1 .p-item{ font-size: clamp(11px, 3.2vw, 15px) !important; }

  #section1 .p-bring  { --x: 42%; --y: 19%; }
  #section1 .p-pickup { --x: 75%; --y: 18%; }
  #section1 .p-trust  { --x: 42%; --y: 62%; }
  #section1 .p-attend { --x: 75%; --y: 62%; }
}

/* iPhone小さめ（最終保険） */
@media (max-width: 430px){
  #section1 .p-item{ font-size: 12px !important; }
}

/* =========================
   スマホ：問い合わせボタンを最下部・左右ぴったり（フッターバー化）
   ========================= */
@media (max-width: 768px){
  .inquiry-tab{
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    top: auto !important;

    width: 100% !important;
    height: auto !important;

    /* 縦書き解除 */
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    transform: none !important;

    /* 両脇ぴったり＝角丸なし */
    border-radius: 0 !important;

    /* 押しやすい高さ */
    padding: 14px 12px !important;
    padding-bottom: calc(14px + env(safe-area-inset-bottom)) !important; /* iPhone下の安全域 */
    text-align: center !important;

    z-index: 10000 !important;
  }

  /* PAGE TOP をバーの上に逃がす（必要なら） */
  .pagetop a{
    bottom: calc(16px + 56px + env(safe-area-inset-bottom)) !important;
  }
}
/* =========================
   スマホ：問い合わせボタン（Pixel7基準で安定）
   ========================= */
@media (max-width: 768px){
  .inquiry-tab{
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    top: auto !important;

    /* 縦タブ指定を完全に無効化 */
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    transform: none !important;

    /* 見た目を端末差なく安定 */
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;
    border-radius: 0 !important;
    text-decoration: none !important;

    /* 端末差が出やすい body の指定を打ち消す */
    letter-spacing: 0 !important;
    text-indent: 0 !important;

    /* Pixel7(412px)に合う基準値：大きすぎず小さすぎず */
    font-size: clamp(14px, 3.9vw, 16px) !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;

    /* 高さを一定に寄せる（端末ごとのフォント描画差を吸収） */
    min-height: 56px !important;
    padding: 12px 10px !important;
    padding-bottom: calc(12px + env(safe-area-inset-bottom)) !important;

    /* 折り返しを原則禁止（端末差の元なので固定） */
    white-space: nowrap !important;

    z-index: 10000 !important;
  }
}

/* 小さい端末だけ「必ず1行」を守るための保険（省略表示） */
@media (max-width: 390px){
  .inquiry-tab{
    font-size: 13px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;

    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
}
/* =========================
   スマホ全体の見栄えを Pixel 7（412px想定）に寄せて安定化
   目的：改行位置のブレ、行間のブレ、詰まり/空き過ぎを抑制
   ========================= */
@media (max-width: 900px){

  /* 1) まず「全体の組版」をスマホ向けにリセット */
  html, body{
    font-size: 15px;                 /* Pixel7で気持ち良い基準 */
    line-height: 1.85;               /* 2.5 はスマホでは間延びしやすい */
    letter-spacing: 0;               /* ← 改行ブレの最大原因を止める */
    text-indent: 0;                  /* ← これも改行/幅計算を狂わせる */
    -webkit-text-size-adjust: 100%;  /* iOS勝手拡大を抑える */
  }

  /* 2) 本文の改行・折返しを「読みやすい方向」に統一 */
  p, li, dd, dt, td, th, a, span{
    overflow-wrap: anywhere;
    word-break: normal;
    line-break: strict;              /* 日本語の禁則を安定させる */
  }

  /* 3) 見出しスケールを Pixel7に合わせて段階設計（端末差が出にくい） */
  main h2{
    font-size: clamp(22px, 5.3vw, 28px);
    line-height: 1.35;
    letter-spacing: 0.02em;          /* 見出しだけ少しだけ許可 */
  }
  main h3{
    font-size: clamp(18px, 4.6vw, 22px);
    line-height: 1.45;
    letter-spacing: 0.01em;
  }

  /* 4) セクション余白をスマホで締めて“間延び”を防ぐ */
  section{
    padding: 20px 16px;
  }
  #section1,#section2,#section3,#section4,#section3b,#section5,#section6{
    min-height: auto;                /* 100dvh 指定があると端末UIでブレやすい */
    margin-bottom: 28px;
    padding: 22px 16px;
    border-radius: 0;                /* 角丸の差で印象が変わるのを統一 */
  }

  /* 5) 影（text-shadow）が強すぎると端末で太く見えがち → 軽く統一 */
  #section1 h2,
  #section1 p{
    text-shadow:
      0 0 6px rgba(0,0,0,.55),
      0 0 12px rgba(0,0,0,.45);
  }

  /* 6) カード系の文字密度を揃える（pricing / tiles / 各種カード） */
  .card, .tile, .visit-fee-card, #section6 .fire-box, #section-area .area-rules-box{
    letter-spacing: 0;
    text-indent: 0;
  }
  .card .label, .card .price{
    line-height: 1.35;
  }

  /* 7) 画像の“はみ出し/寄り”を抑える（見た目が機種で変わりやすい） */
  img, picture, video{
    max-width: 100%;
    height: auto;
  }
}

/* =========================
   section1 縦画像（スマホ）をセンタリング
   ========================= */
@media (max-width: 768px){
  /* 外側で中央寄せ（確実） */
  #section1 .hero-fuwafuwa{
    display: flex;
    justify-content: center;
  }

  /* 画像コンテナを中央に固定 */
  #section1 .hero-fuwafuwa-inner{
    width: 100%;
    max-width: 520px;     /* 好みで 480〜600px で調整可 */
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* 以前の「左にずらす」を無効化 */
  #section1 .hero-fuwafuwa-img{
    width: 100%;
    max-width: 520px;
    margin-left: auto !important;
    margin-right: auto !important;
    transform: translateY(40px); /* 既存のアニメ初期値を維持したい場合 */
  }

  /* 画像自体も中央に（念のため） */
  #section1 .hero-fuwafuwa-inner img{
    display: block;
    margin-left: auto;
    margin-right: auto;
  }
}


.youtube{
  width: 100%;
  max-width: 900px;     /* 好みで：動画が横に伸びすぎない上限 */
  margin: 0 auto;
  position: relative;
  aspect-ratio: 16 / 9; /* ここが効く */
}

.youtube iframe{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

    h2 {
      text-align: center;
    }
   .video-grid{
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr; /* スマホは1列 */
}

@media (min-width: 700px) and (max-width: 1100px){
  .video-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* iPad帯は2列 */
  }
}

@media (min-width: 1101px){
  .video-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr)); /* PCは3列など */
  }
}

    .video-card {
      background: #fff;
      border-radius: 8px;
      overflow: hidden;
      box-shadow: 0 2px 6px rgba(0,0,0,0.1);
      transition: transform 0.2s;
    }
    .video-card:hover {
      transform: scale(1.02);
    }
    .video-thumb img {
      width: 100%;
      display: block;
    }
    .video-title {
      padding: 10px;
      font-size: 14px;
      font-weight: bold;
    }

/* =========================
   biz-table：スマホは th を上、td を下（縦積み）
   ========================= */
@media (max-width: 640px){

  .biz-table{ border: none; }

  .biz-table tr{
    display: grid;
    grid-template-columns: 1fr;  /* 1列にする */
    gap: 6px;
    border-bottom: 1px solid #e5e7eb;
    padding: 12px 0;
  }

  .biz-table th,
  .biz-table td{
    border: none;
    padding: 0;
    width: auto;
  }

  .biz-table th{
    background: transparent;
    color: #6b7280;
    font-size: .95rem;
    line-height: 1.4;
  }

  .biz-table td{
    font-size: 1rem;
    line-height: 1.7;
  }
}

/* =========================
   biz-table：スマホだけ
   th＝中央 / td＝左（長文が読みやすい）
   ========================= */
@media (max-width: 640px){
  .biz-table tr{
    justify-items: stretch;     /* td を左で読める幅にする */
  }

  .biz-table th{
    text-align: center;
  }

  .biz-table td{
    text-align: left;
  }
}
@media (max-width: 640px){
  .biz-table th{ text-align: center; }

  .biz-table tr.biz-center td{ text-align: center; }
  .biz-table tr.biz-left   td{ text-align: left; }
}


.contact-tabs,
.contact-tabs *{
  box-sizing: border-box;
}

.contact-tabs{
  position: fixed;
  z-index: 9999;
}

.contact-tab{
  text-decoration: none;
  transition: opacity .2s ease, transform .2s ease;
}

.contact-tab:hover{
  opacity: .94;
}

/* =========================
   PC：右側の縦タブ
   ========================= */
@media (min-width: 769px){

  .contact-tabs{
    right: 0;
    bottom: 48px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 14px;
  }

  .contact-tabs__main{
    display: flex;
    flex-direction: column;
    gap: 10px;
    border-radius: 16px 0 0 16px;
    overflow: hidden;
  }

  .contact-tab{
    width: 72px;
    min-height: 150px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    padding: 14px 8px;
    box-shadow: 0 8px 24px rgba(0,0,0,.18);
  }

  .contact-tab:hover{
    transform: translateX(-2px);
  }

  .contact-tab--consult{
    background: #ffffff;
    color: #222222;
    border: 1px solid #dddddd;
    border-radius: 16px 0 0 16px;
  }

  .contact-tab--entry,
  .contact-tab--tel{
    background: #8b1e2d;
    color: #ffffff;
    border-radius: 0;
  }

  .contact-tab--entry{
    border-radius: 16px 0 0 0;
  }

  .contact-tab--tel{
    border-radius: 0 0 0 16px;
  }

  .contact-tab__label,
  .contact-tab__sub{
    writing-mode: vertical-rl;
    text-orientation: upright;
    text-align: center;
  }

  .contact-tab__label{
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .08em;
    line-height: 1.8;
  }

  .contact-tab__sub{
    margin-top: 8px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.5;
  }

  .contact-tab__hours{
    display: none;
  }
}

/* =========================
   スマホ：下部3分割
   ========================= */
@media (max-width: 768px){

  .contact-tabs{
    left: 0;
    right: 0;
    bottom: 0;
    display: grid;
    grid-template-columns: 1fr 2fr;
    width: 100%;
    box-shadow: 0 -4px 16px rgba(0,0,0,.16);
  }

  .contact-tabs__main{
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .contact-tab{
    min-height: 70px;
    padding: 10px 8px calc(10px + env(safe-area-inset-bottom));
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-radius: 0;
  }

  .contact-tab--consult{
    background: #ffffff;
    color: #222222;
    border-top: 1px solid #dddddd;
    border-right: 1px solid #dddddd;
  }

  .contact-tab--entry,
  .contact-tab--tel{
    background: #8b1e2d;
    color: #ffffff;
  }

  .contact-tab--tel{
    border-left: 1px solid rgba(255,255,255,.28);
  }

  .contact-tab__label{
    display: block;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: 0;
    writing-mode: horizontal-tb;
    text-orientation: mixed;
  }

  .contact-tab__sub{
    display: block;
    margin-top: 2px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.3;
  }

  .contact-tab__hours{
    display: block;
    margin-top: 2px;
    font-size: 9px;
    line-height: 1.25;
    color: rgba(255,255,255,.86);
  }

  body{
    padding-bottom: 86px;
  }
}


/* =========================
   メモリアル商品
   ========================= */
.top-memorial-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:24px;
  margin-top:30px;
}

.top-memorial-card{
  background:#fff;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 8px 24px rgba(0,0,0,.08);
}

.top-memorial-card__link{
  display:block;
  color:inherit;
  text-decoration:none;
}

.top-memorial-card__image{
  aspect-ratio:4 / 3;
  background:#f3f3f3;
  overflow:hidden;
}

.top-memorial-card__image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.top-memorial-card__placeholder{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#888;
  font-size:13px;
}

.top-memorial-card__body{
  padding:16px;
}

.top-memorial-card__category{
  margin:0 0 8px;
  font-size:12px;
  color:#8b7760;
}

.top-memorial-card__title{
  margin:0;
  font-size:22px;
  line-height:1.5;
}

.top-memorial-card__subtitle{
  margin:8px 0 0;
  font-size:14px;
  line-height:1.8;
  color:#666;
}

@media (max-width: 900px){
  .top-memorial-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px){
  .top-memorial-grid{
    grid-template-columns:1fr;
    gap:18px;
  }

  .top-memorial-card__title{
    font-size:18px;
  }
}

/* =========================================================
   訪問ペット火葬 Q&Aページ
   /pet-faq/index.php 用
========================================================= */

.faq-page{
  max-width: 1040px;
  margin: 0 auto;
  padding: 48px 20px 120px;
  color: #222;
  line-height: 1.9;
}

/* ヘッダー */
.faq-hero{
  text-align: center;
  margin-bottom: 36px;
}

.faq-hero__label{
  display: inline-block;
  padding: 6px 16px;
  border-radius: 999px;
  background: rgba(255,255,255,.9);
  color: #8b1e2d;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
  margin-bottom: 14px;
}

.faq-hero h1{
  margin: 0;
  color: #fff;
  font-size: clamp(28px, 5vw, 42px);
  line-height: 1.35;
  letter-spacing: .05em;
  text-shadow:
    0 0 8px rgba(0,0,0,.55),
    0 0 14px rgba(0,0,0,.45);
}

.faq-hero p{
  margin: 16px auto 0;
  max-width: 720px;
  color: #fff;
  font-size: 15px;
  text-shadow:
    0 0 6px rgba(0,0,0,.5),
    0 0 12px rgba(0,0,0,.35);
}

/* 検索 */
.faq-search{
  background: rgba(255,255,255,.96);
  border-radius: 22px;
  padding: 22px;
  box-shadow: 0 10px 30px rgba(0,0,0,.16);
  margin-bottom: 34px;
  position: sticky;
  top: 10px;
  z-index: 5;
}

.faq-search input{
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #d8d8d8;
  border-radius: 999px;
  padding: 15px 20px;
  font-size: 16px;
  outline: none;
  background: #fff;
  color: #222;
}

.faq-search input:focus{
  border-color: #8b1e2d;
  box-shadow: 0 0 0 4px rgba(139,30,45,.14);
}

.faq-search__note{
  margin-top: 10px;
  font-size: 13px;
  color: #666;
}

/* カテゴリ */
.faq-category{
  margin-top: 34px;
  background: rgba(255,255,255,.96);
  border-radius: 24px;
  padding: 24px;
  box-shadow: 0 10px 26px rgba(0,0,0,.12);
}

.faq-category h2{
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 22px;
  margin: 0 0 16px;
  padding-bottom: 10px;
  color: #14532d;
  border-bottom: 1px solid #dde6d8;
  text-align: left;
}

.faq-category h2::before{
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #8b1e2d;
  flex: 0 0 auto;
}

/* Q&A本体 */
.faq-list{
  display: grid;
  gap: 12px;
}

.faq-item{
  background: #fff;
  border-radius: 18px;
  border: 1px solid #e5e7eb;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
}

.faq-item[hidden]{
  display: none;
}

.faq-q{
  width: 100%;
  appearance: none;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  padding: 20px 56px 20px 22px;
  font-size: 16px;
  font-weight: 700;
  color: #222;
  position: relative;
  line-height: 1.6;
  letter-spacing: 0;
}

.faq-q::before{
  content: "Q";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #8b1e2d;
  color: #fff;
  font-size: 14px;
  margin-right: 10px;
  vertical-align: 1px;
}

.faq-q::after{
  content: "＋";
  position: absolute;
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
  color: #8b1e2d;
  font-size: 22px;
  font-weight: 400;
}

.faq-item.is-open .faq-q::after{
  content: "−";
}

.faq-a{
  display: none;
  padding: 0 24px 22px 62px;
  color: #333;
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: 0;
}

.faq-item.is-open .faq-a{
  display: block;
}

.faq-a::before{
  content: "A";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #f3e4e6;
  color: #8b1e2d;
  font-weight: 700;
  font-size: 13px;
  margin-right: 10px;
  margin-left: -40px;
}

/* 検索結果なし */
.faq-empty{
  display: none;
  text-align: center;
  padding: 34px 20px;
  color: #333;
  background: rgba(255,255,255,.96);
  border-radius: 18px;
  border: 1px dashed #ddd;
  margin-top: 24px;
}

.faq-empty.is-show{
  display: block;
}

/* 下部CTA */
.faq-bottom-cta{
  margin-top: 48px;
  padding: 30px 24px;
  border-radius: 26px;
  background: linear-gradient(135deg, #8b1e2d, #d30c44);
  color: #fff;
  text-align: center;
  box-shadow: 0 10px 26px rgba(0,0,0,.16);
}

.faq-bottom-cta h2{
  margin: 0 0 10px;
  font-size: 24px;
  color: #fff;
}

.faq-bottom-cta p{
  margin: 0 0 20px;
  color: rgba(255,255,255,.92);
}

.faq-bottom-cta__buttons{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

.faq-bottom-cta__buttons a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  padding: 13px 20px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0;
}

.faq-bottom-cta__mail{
  background: #fff;
  color: #8b1e2d;
}

.faq-bottom-cta__tel{
  background: #222;
  color: #fff;
}

/* スマホ */
@media (max-width: 768px){
  .faq-page{
    padding: 34px 14px 130px;
  }

  .faq-hero h1{
    font-size: 26px;
  }

  .faq-search{
    position: static;
    padding: 16px;
    border-radius: 18px;
  }

  .faq-category{
    padding: 18px 14px;
    border-radius: 18px;
  }

  .faq-category h2{
    font-size: 19px;
  }

  .faq-q{
    padding: 17px 48px 17px 16px;
    font-size: 15px;
  }

  .faq-a{
    padding: 0 18px 20px 56px;
    font-size: 14px;
  }

  .faq-bottom-cta{
    padding: 24px 16px;
  }

  .faq-bottom-cta__buttons{
    display: grid;
    grid-template-columns: 1fr;
  }

  .faq-bottom-cta__buttons a{
    width: 100%;
    min-width: 0;
  }
}

/* =========================================================
   Q&Aページ：スマホでもPCに近い見え方に統一
========================================================= */

@media (max-width: 768px){

  .faq-page{
    max-width: 1040px;
    margin: 0 auto;
    padding: 42px 16px 120px;
  }

  .faq-hero{
    margin-bottom: 36px;
  }

  .faq-hero h1{
    font-size: clamp(28px, 7vw, 42px);
    line-height: 1.35;
    letter-spacing: .05em;
  }

  .faq-hero p{
    max-width: 720px;
    font-size: 15px;
    line-height: 1.9;
  }

  .faq-search{
    position: sticky;
    top: 10px;
    z-index: 5;
    padding: 22px;
    border-radius: 22px;
    margin-bottom: 34px;
  }

  .faq-search input{
    padding: 15px 20px;
    font-size: 16px;
  }

  .faq-category{
    margin-top: 34px;
    padding: 24px;
    border-radius: 24px;
  }

  .faq-category h2{
    font-size: 22px;
    line-height: 1.5;
    margin: 0 0 16px;
    padding-bottom: 10px;
  }

  .faq-list{
    gap: 12px;
  }

  .faq-item{
    border-radius: 18px;
  }

  .faq-q{
    padding: 20px 56px 20px 22px;
    font-size: 16px;
    line-height: 1.6;
  }

  .faq-q::before{
    width: 28px;
    height: 28px;
    font-size: 14px;
    margin-right: 10px;
  }

  .faq-q::after{
    right: 22px;
    font-size: 22px;
  }

  .faq-a{
    padding: 0 24px 22px 62px;
    font-size: 15px;
    line-height: 1.9;
  }

  .faq-a::before{
    width: 26px;
    height: 26px;
    font-size: 13px;
    margin-right: 10px;
    margin-left: -40px;
  }

  .faq-bottom-cta{
    margin-top: 48px;
    padding: 30px 24px;
    border-radius: 26px;
  }

  .faq-bottom-cta h2{
    font-size: 24px;
  }

  .faq-bottom-cta__buttons{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
  }

  .faq-bottom-cta__buttons a{
    width: auto;
    min-width: 220px;
  }
}

/* =========================================================
   Q&A検索窓：スマホでは折りたたみ式
========================================================= */

.faq-search-toggle,
.faq-search-close{
  display: none;
}

/* PCでは今まで通り検索窓を表示 */
.faq-search-body{
  display: block;
}

.faq-search-row{
  display: flex;
  gap: 10px;
  align-items: center;
}

/* スマホだけ折りたたみ */
@media (max-width: 768px){

  .faq-search{
    padding: 12px !important;
    border-radius: 18px !important;
    margin-bottom: 24px !important;
    position: static !important;
  }

  .faq-search-toggle{
    display: flex;
    width: 100%;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    background: #8b1e2d;
    color: #fff;
    font: inherit;
    font-weight: 700;
    letter-spacing: 0;
    cursor: pointer;
  }

  .faq-search-toggle::before{
    content: "🔍";
    margin-right: 6px;
    font-size: 14px;
  }

  .faq-search-body{
    display: none;
    margin-top: 12px;
  }

  .faq-search.is-open .faq-search-body{
    display: block;
  }

  .faq-search.is-open .faq-search-toggle{
    display: none;
  }

  .faq-search-row{
    display: grid;
    grid-template-columns: 1fr 42px;
    gap: 8px;
  }

  .faq-search input{
    padding: 13px 16px !important;
    font-size: 15px !important;
  }

  .faq-search-close{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 50%;
    background: #222;
    color: #fff;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
  }

  .faq-search__note{
    font-size: 12px;
    margin-top: 8px;
  }
}

/* =========================
   メニュー文字サイズ調整
   ========================= */

#menubar nav a{
  font-size: 0.9rem;
  line-height: 1.45;
  padding: 0.5rem 0.6rem;
  margin: 0.35rem 0;
}

/* スマホの開閉メニューは少しだけ大きめに残す */
@media (max-width: 899px){
  #menubar nav a{
    font-size: 0.95rem;
    line-height: 1.5;
    padding: 0.65rem 0.8rem;
    margin: 0.45rem 0;
  }
}

/* =========================================================
   TOPページ用 ランダムQ&A表示
========================================================= */

.top-faq-pickup{
  padding: 56px 20px;
}

.top-faq-pickup__head{
  max-width: 900px;
  margin: 0 auto 26px;
  text-align: center;
}

.top-faq-pickup__head span{
  display: inline-block;
  padding: 5px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.9);
  color: #8b1e2d;
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 10px;
}

.top-faq-pickup__head h2{
  margin: 0;
  color: #fff;
  font-size: clamp(24px, 4vw, 34px);
  text-shadow:
    0 0 8px rgba(0,0,0,.55),
    0 0 14px rgba(0,0,0,.45);
}

.top-faq-pickup__head p{
  color: #fff;
  text-shadow:
    0 0 6px rgba(0,0,0,.45),
    0 0 12px rgba(0,0,0,.3);
}

.top-faq-pickup__list{
  max-width: 1040px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.top-faq-pickup__item{
  background: rgba(255,255,255,.96);
  border: 1px solid #e5e7eb;
  border-radius: 20px;
  padding: 18px;
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
  color: #222;
}

.top-faq-pickup__cat{
  display: inline-block;
  margin-bottom: 10px;
  font-size: 12px;
  color: #8b1e2d;
  background: #f3e4e6;
  border-radius: 999px;
  padding: 4px 10px;
  font-weight: 700;
}

.top-faq-pickup__item h3{
  margin: 0 0 10px;
  font-size: 16px;
  line-height: 1.6;
  color: #222;
}

.top-faq-pickup__item p{
  margin: 0;
  color: #444;
  font-size: 14px;
  line-height: 1.8;
}

.top-faq-pickup__more{
  text-align: center;
  margin-top: 26px;
}

@media (max-width: 1100px){
  .top-faq-pickup__list{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px){
  .top-faq-pickup__list{
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   Q&Aページ：二重スクロール対策
   bodyだけをスクロールさせる
========================================================= */

/* ページ全体は body スクロールに統一 */
html,
body{
  height: auto !important;
  min-height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
}

/* FAQページ本体はスクロール領域にしない */
.faq-page{
  height: auto !important;
  min-height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

/* main や section 側にもスクロールを持たせない */
main,
section,
.faq-category,
.faq-list{
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

/* 下部固定ボタンに本文が隠れないようにする */
body{
  padding-bottom: 90px;
}

/* スマホでは下部3分割ボタン分だけ余白を確保 */
@media (max-width: 768px){
  body{
    padding-bottom: calc(96px + env(safe-area-inset-bottom));
  }

  .faq-page{
    padding-bottom: calc(120px + env(safe-area-inset-bottom)) !important;
  }
}

/* FAQ検索窓を固定しない */
.faq-search{
  position: static !important;
  top: auto !important;
}

/* =========================================================
   TOPページ用 ランダムQ&A表示：4枚表示＋ボタン化
========================================================= */

.top-faq-pickup{
  padding: 58px 20px 64px;
}

.top-faq-pickup__list{
  max-width: 1120px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.top-faq-pickup__item{
  min-height: 360px;
  padding: 20px 20px 22px;
  border-radius: 22px;
}

.top-faq-pickup__cat{
  max-width: 100%;
  padding: 8px 14px;
  border-radius: 999px;
  line-height: 1.6;
}

.top-faq-pickup__item h3{
  font-size: 15px;
  line-height: 1.75;
}

.top-faq-pickup__item p{
  font-size: 13.5px;
  line-height: 1.9;
}

.top-faq-pickup__more{
  margin-top: 30px;
  text-align: center;
}

.top-faq-pickup__more a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 240px;
  padding: 13px 28px;
  border-radius: 999px;
  background: #8b1e2d;
  color: #ffffff;
  border: 1px solid rgba(255,255,255,.9);
  text-decoration: none;
  font-weight: 700;
  letter-spacing: .04em;
  box-shadow: 0 8px 22px rgba(0,0,0,.22);
}

.top-faq-pickup__more a:hover{
  background: #6f1723;
  transform: translateY(1px);
}

/* タブレットは2列 */
@media (max-width: 1100px){
  .top-faq-pickup__list{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* スマホは1列 */
@media (max-width: 640px){
  .top-faq-pickup{
    padding: 42px 14px 56px;
  }

  .top-faq-pickup__list{
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .top-faq-pickup__item{
    min-height: auto;
  }

  .top-faq-pickup__more a{
    width: 100%;
    max-width: 320px;
  }
}


/* =========================
   section1 ヒーロー文字の視認性改善
   ※下の記事を隠さない安全版
   ========================= */

#section1 > h2.c,
#section1 > p.c{
  width: min(92%, 760px);
  margin-left: auto;
  margin-right: auto;
  color: #ffffff;
  text-shadow:
    0 2px 4px rgba(0,0,0,.85),
    0 0 10px rgba(0,0,0,.65);
}

#section1 > h2.c{
  margin-bottom: 16px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: .04em;
}

#section1 > p.c{
  margin-top: 0;
  padding: 14px 18px;
  background: rgba(0,0,0,.32);
  border-radius: 10px;
  line-height: 1.95;
  font-size: 15px;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

#section1 > p.c strong{
  font-weight: 500;
}

@media (max-width: 768px){
  #section1 > h2.c{
    width: 94%;
    font-size: clamp(24px, 6vw, 30px);
    line-height: 1.45;
  }

  #section1 > p.c{
    width: 94%;
    padding: 12px 14px;
    font-size: 14px;
    line-height: 1.9;
    background: rgba(0,0,0,.36);
  }
}

/* =========================
   お支払い方法
   ========================= */

.payment-methods {
  margin: 24px 0;
  padding: 22px;
  border: 1px solid #e2e2e2;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.96);
  color: #333;
  text-indent: 0;
}

.payment-methods__title {
  margin: 0 0 16px;
  color: #333;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  text-shadow: none;
}

.payment-methods__items {
  display: flex;
  align-items: stretch;
  gap: 12px;
  flex-wrap: wrap;
}

.payment-method {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 112px;
  min-height: 68px;
  padding: 8px 12px;
  border: 1px solid #d8d8d8;
  border-radius: 8px;
  background: #fff;
  color: #333;
  text-indent: 0;
  text-shadow: none;
}

.payment-method--cash {
  font-size: 17px;
  font-weight: 700;
}

.payment-method--paypay img {
  display: block;
  width: 58px;
  height: auto;
  max-width: none;
  object-fit: contain;
}

.payment-methods__note {
  margin: 14px 0 0;
  color: #555;
  font-size: 14px;
  line-height: 1.7;
  text-indent: 0;
  text-shadow: none;
}

@media screen and (max-width: 600px) {
  .payment-methods {
    padding: 18px;
  }

  .payment-method {
    width: 104px;
    min-height: 64px;
  }

  .payment-method--paypay img {
    width: 54px;
  }
}
/* 支払い方法内ではsection1の文字影を解除 */
#section1 .payment-methods p {
  text-shadow: none;
  text-indent: 0;
}

#section1 .payment-methods__title {
  color: #333;
  text-shadow: none;
}

#section1 .payment-methods__note {
  color: #555;
  text-shadow: none;
}

/* 支払い方法を小さく・控えめに */
#section1 .payment-methods {
  width: fit-content;
  max-width: 100%;
  margin: 18px 0;
  padding: 14px 16px;
  border-radius: 8px;
}

#section1 .payment-methods__title {
  margin: 0 0 10px;
  font-size: 15px;
  font-weight: 600;
  text-shadow: none;
}

#section1 .payment-methods__items {
  gap: 8px;
}

#section1 .payment-method {
  width: 86px;
  min-height: 50px;
  padding: 6px 10px;
  border-radius: 6px;
}

#section1 .payment-method--cash {
  font-size: 14px;
  font-weight: 600;
}

#section1 .payment-method--paypay img {
  width: 42px;
  height: auto;
}

#section1 .payment-methods__note {
  margin-top: 9px;
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: #666;
  text-shadow: none;
}

/* 支払い方法：小さく・中央揃え */
#section1 .payment-methods {
  width: min(100%, 330px);
  margin: 16px auto;
  padding: 12px 14px;
  text-align: center;
  border-radius: 8px;
}

#section1 .payment-methods__title {
  margin: 0 0 9px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  text-shadow: none;
}

#section1 .payment-methods__items {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
}

#section1 .payment-method {
  width: 76px;
  min-height: 46px;
  padding: 5px 8px;
  border-radius: 6px;
}

#section1 .payment-method--cash {
  font-size: 13px;
  font-weight: 600;
}

#section1 .payment-method--paypay img {
  width: 38px;
  height: auto;
}

#section1 .payment-methods__note {
  margin: 8px 0 0;
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: 0;
  text-align: center;
  color: #666;
  text-shadow: none;
}


.pet-points {
  position: relative;
  overflow: hidden;
  padding: clamp(64px, 8vw, 110px) 20px;
  background:
    radial-gradient(
      circle at 50% 55%,
      rgba(246, 225, 191, 0.34) 0,
      rgba(246, 225, 191, 0.12) 35%,
      transparent 68%
    ),
    #fffdf9;
}

.pet-points__inner {
  width: min(1180px, 100%);
  margin: 0 auto;
}

.pet-points__heading {
  position: relative;
  z-index: 2;
  margin-bottom: 30px;
  text-align: center;
}

.pet-points__label {
  margin: 0 0 8px;
  color: #a9835b;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.pet-points__heading h2 {
  margin: 0;
  color: #493628;
  font-family:
    "Yu Mincho",
    "YuMincho",
    "Hiragino Mincho ProN",
    serif;
  font-size: clamp(27px, 4vw, 45px);
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.4;
}

.pet-points__heading > p:last-child {
  margin: 15px 0 0;
  color: #74675d;
  font-size: clamp(14px, 1.8vw, 17px);
  line-height: 1.9;
}

.pet-points__stage {
  position: relative;
  min-height: 610px;
}

.pet-points__car {
  position: absolute;
  z-index: 2;
  top: 53%;
  left: 50%;
  display: block;
  width: min(54%, 610px);
  height: auto;
  filter: drop-shadow(0 22px 22px rgba(65, 47, 34, 0.18));
  transform: translate(-50%, -50%);
}

/* 吹き出しの配置 */

.pet-point {
  position: absolute;
  z-index: 3;
  width: clamp(185px, 20vw, 250px);
}

.pet-point--01 {
  top: 5%;
  left: 2%;
  --pet-delay: 0.08s;
}

.pet-point--02 {
  top: 4%;
  right: 2%;
  --pet-delay: 0.2s;
}

.pet-point--03 {
  top: 48%;
  left: 0;
  --pet-delay: 0.32s;
}

.pet-point--04 {
  top: 47%;
  right: 0;
  --pet-delay: 0.44s;
}

.pet-point--05 {
  bottom: 0;
  left: 50%;
  width: clamp(240px, 31vw, 390px);
  transform: translateX(-50%);
  --pet-delay: 0.56s;
}

/* 吹き出し本体 */

.pet-point__body {
  position: relative;
  display: flex;
  min-height: 128px;
  padding: 22px 20px 20px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 2px solid rgba(173, 139, 101, 0.35);
  border-radius: 34px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 12px 35px rgba(73, 54, 40, 0.1);
  text-align: center;
  transform-origin: center;
}

.pet-point__body strong {
  display: block;
  color: #4b3729;
  font-size: clamp(16px, 1.7vw, 21px);
  font-weight: 700;
  line-height: 1.5;
}

.pet-point__body small {
  display: block;
  margin-top: 7px;
  color: #81756c;
  font-size: 12px;
  line-height: 1.6;
}

.pet-point__icon {
  display: grid;
  width: 36px;
  height: 36px;
  margin-bottom: 9px;
  place-items: center;
  border-radius: 50%;
  background: #ad8b65;
  color: #fff;
  font-family: Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

/* 吹き出しの三角部分 */

.pet-point__body::after {
  position: absolute;
  width: 20px;
  height: 20px;
  border: solid rgba(173, 139, 101, 0.35);
  background: #fff;
  content: "";
}

.pet-point--tail-right .pet-point__body::after {
  top: 50%;
  right: -11px;
  border-width: 2px 2px 0 0;
  transform: translateY(-50%) rotate(45deg);
}

.pet-point--tail-left .pet-point__body::after {
  top: 50%;
  left: -11px;
  border-width: 0 0 2px 2px;
  transform: translateY(-50%) rotate(45deg);
}

.pet-point--tail-top .pet-point__body::after {
  top: -11px;
  left: 50%;
  border-width: 2px 0 0 2px;
  transform: translateX(-50%) rotate(45deg);
}

/* JavaScriptが有効な場合だけ待機状態にする */

.pet-points.is-ready .pet-points__car {
  opacity: 0;
}

.pet-points.is-ready .pet-point__body {
  opacity: 0;
}

/* 表示アニメーション */

.pet-points.is-show .pet-points__car {
  animation: petCarAppear 0.8s ease-out forwards;
}

.pet-points.is-show .pet-point__body {
  animation: petBubblePop 0.68s
    cubic-bezier(0.2, 1.45, 0.45, 1)
    var(--pet-delay)
    forwards;
}

@keyframes petCarAppear {
  0% {
    opacity: 0;
    transform: translate(-50%, calc(-50% + 28px));
  }

  100% {
    opacity: 1;
    transform: translate(-50%, -50%);
  }
}

@keyframes petBubblePop {
  0% {
    opacity: 0;
    transform: translateY(22px) scale(0.3);
  }

  55% {
    opacity: 1;
    transform: translateY(-5px) scale(1.12);
  }

  76% {
    transform: translateY(2px) scale(0.95);
  }

  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.sp-only {
  display: none;
}

/* タブレット・スマートフォン */

@media screen and (max-width: 800px) {
  .pet-points {
    padding-right: 16px;
    padding-left: 16px;
  }

  .pet-points__stage {
    display: grid;
    min-height: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  .pet-points__car {
    position: relative;
    top: auto;
    left: auto;
    width: min(92%, 530px);
    margin: 0 auto 14px;
    grid-column: 1 / -1;
    transform: none;
  }

  .pet-point,
  .pet-point--01,
  .pet-point--02,
  .pet-point--03,
  .pet-point--04,
  .pet-point--05 {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    width: auto;
    transform: none;
  }

  .pet-point--05 {
    grid-column: 1 / -1;
  }

  .pet-point__body {
    min-height: 145px;
    padding: 20px 12px;
    border-radius: 24px;
  }

  .pet-point__body::after {
    display: none;
  }

  @keyframes petCarAppear {
    0% {
      opacity: 0;
      transform: translateY(28px);
    }

    100% {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

@media screen and (max-width: 520px) {
  .pet-points__stage {
    grid-template-columns: 1fr;
  }

  .pet-point--05 {
    grid-column: auto;
  }

  .pet-point__body {
    min-height: 118px;
  }

  .sp-only {
    display: block;
  }
}

/* 動きを減らす設定への配慮 */

@media (prefers-reduced-motion: reduce) {
  .pet-points.is-ready .pet-points__car,
  .pet-points.is-ready .pet-point__body {
    opacity: 1;
  }

  .pet-points.is-show .pet-points__car,
  .pet-points.is-show .pet-point__body {
    animation: none;
  }
}


.voice-pop {
  position: relative;
  overflow: hidden;
  padding: clamp(65px, 8vw, 110px) 20px 0;
  background:
    radial-gradient(
      circle at 50% 100%,
      rgba(238, 221, 198, 0.28),
      transparent 58%
    ),
    #fffdf9;
}

.voice-pop__inner {
  width: min(1200px, 100%);
  margin: 0 auto;
}

.voice-pop__heading {
  margin-bottom: clamp(38px, 5vw, 65px);
  text-align: center;
}

.voice-pop__label {
  margin: 0 0 8px;
  color: #a98563;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.voice-pop__heading h2 {
  margin: 0;
  color: #4a3528;
  font-family:
    "Yu Mincho",
    "YuMincho",
    "Hiragino Mincho ProN",
    serif;
  font-size: clamp(30px, 4.5vw, 48px);
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.4;
}

.voice-pop__heading > p:last-child {
  margin: 14px 0 0;
  color: #76685e;
  font-size: clamp(14px, 1.7vw, 17px);
  line-height: 1.9;
}

.voice-pop__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: end;
  gap: clamp(12px, 2vw, 28px);
}

.voice-pop__item {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: center;
}

/* 吹き出し表示前 */

.voice-pop__bubble-wrap {
  position: relative;
  z-index: 2;
  width: 100%;
  opacity: 0;
  transform: translateY(30px) scale(0.45);
  transform-origin: center bottom;
}

/* 吹き出し本体 */

.voice-pop__bubble {
  position: relative;
  display: grid;
  width: 100%;
  min-height: 190px;
  padding: 30px 18px;
  place-items: center;
  border: 2px solid var(--bubble-color);
  border-radius: 42% 42% 40% 40% / 38% 38% 45% 45%;
  background: rgba(255, 255, 255, 0.96);
  box-shadow:
    0 16px 35px rgba(76, 55, 40, 0.1),
    inset 0 0 0 7px rgba(255, 255, 255, 0.55);
  text-align: center;
}

/* 吹き出しのしっぽ */

.voice-pop__bubble::after {
  position: absolute;
  bottom: -14px;
  left: 50%;
  width: 27px;
  height: 27px;
  border-right: 2px solid var(--bubble-color);
  border-bottom: 2px solid var(--bubble-color);
  background: #fff;
  content: "";
  transform: translateX(-50%) rotate(45deg);
}

.voice-pop__bubble p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #49362b;
  font-size: clamp(16px, 1.55vw, 21px);
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.65;
}

.voice-pop__bubble--pink {
  --bubble-color: #e8aaa0;
}

.voice-pop__bubble--green {
  --bubble-color: #9fb99d;
}

.voice-pop__bubble--blue {
  --bubble-color: #9eb9d2;
}

.voice-pop__bubble--purple {
  --bubble-color: #b5a6ca;
}

/* 人物イラスト */

.voice-pop__person {
  position: relative;
  z-index: 1;
  display: block;
  width: min(90%, 245px);
  height: auto;
  margin-top: 20px;
  opacity: 0;
  filter: drop-shadow(0 12px 14px rgba(72, 53, 40, 0.1));
  transform: translateY(35px);
}

/* セクションが画面に入った時 */

.voice-pop.is-show .voice-pop__bubble-wrap {
  animation:
    voiceBubblePop 0.75s
    cubic-bezier(0.2, 1.5, 0.45, 1)
    var(--delay)
    forwards;
}

.voice-pop.is-show .voice-pop__bubble {
  animation:
    voiceBubbleFloat var(--float-time)
    ease-in-out
    calc(var(--delay) + 0.8s)
    infinite;
}

.voice-pop.is-show .voice-pop__person {
  animation:
    voicePersonAppear 0.75s
    ease-out
    calc(var(--delay) + 0.25s)
    forwards;
}

/* ポコッと表示 */

@keyframes voiceBubblePop {
  0% {
    opacity: 0;
    transform: translateY(35px) scale(0.35);
  }

  55% {
    opacity: 1;
    transform: translateY(-8px) scale(1.1);
  }

  75% {
    transform: translateY(3px) scale(0.96);
  }

  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* 表示後のふわふわ */

@keyframes voiceBubbleFloat {
  0%,
  100% {
    transform: translateY(0) rotate(-0.4deg);
  }

  50% {
    transform: translateY(-10px) rotate(0.4deg);
  }
}

/* 人物は静かに表示 */

@keyframes voicePersonAppear {
  0% {
    opacity: 0;
    transform: translateY(35px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* タブレット */

@media screen and (max-width: 900px) {
  .voice-pop__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 48px;
  }

  .voice-pop__bubble {
    min-height: 175px;
  }
}

/* スマートフォン */

@media screen and (max-width: 560px) {
  .voice-pop {
    padding-right: 16px;
    padding-left: 16px;
  }

  .voice-pop__list {
    grid-template-columns: 1fr;
    gap: 45px;
  }

  .voice-pop__item {
    width: min(310px, 100%);
    margin: 0 auto;
  }

  .voice-pop__bubble {
    min-height: 155px;
    padding: 25px 18px;
    border-radius: 38px;
  }

  .voice-pop__person {
    width: min(72%, 210px);
  }
}

/* 動きを抑える設定 */

@media (prefers-reduced-motion: reduce) {
  .voice-pop__bubble-wrap,
  .voice-pop__person {
    opacity: 1;
    transform: none;
  }

  .voice-pop.is-show .voice-pop__bubble-wrap,
  .voice-pop.is-show .voice-pop__bubble,
  .voice-pop.is-show .voice-pop__person {
    animation: none;
  }
}

/* ==================================================
   火葬料金・画像アコーディオン
   PC：2列 / スマートフォン：1列
================================================== */

#section4.pricing {
  --pricing-main: #657f78;
  --pricing-dark: #3f5952;
  --pricing-light: #f4f7f6;
  --pricing-line: #dce5e2;
  --pricing-text: #26332f;
  --pricing-muted: #687570;

  position: relative;
  z-index: 0;
  width: min(1080px, calc(100% - 40px));
  margin-inline: auto;
  padding-top: 24px;
  color: var(--pricing-text);
  letter-spacing: 0;
  text-indent: 0;
}

/* 見出し */
#section4 .pricing__heading {
  width: min(100%, 860px);
  margin: 0 auto 34px;
  padding: 28px 36px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.82);
  border-radius: 18px;
  box-shadow: 0 12px 32px rgba(40, 54, 49, 0.16);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  text-align: center;
}

#section4 .pricing__en {
  display: inline-block;
  margin: 0 0 12px;
  padding: 6px 12px;
  background: rgba(63, 89, 82, 0.94);
  border-radius: 999px;
  color: #ffffff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  line-height: 1;
  text-transform: uppercase;
}

#section4 .pricing__heading h2 {
  margin: 0;
  color: #2f443e;
  font-size: clamp(1.8rem, 3.3vw, 2.8rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
  text-shadow: none;
}

#section4 .pricing__heading h2 span {
  display: inline-block;
  margin-left: 0.35em;
  color: #556963;
  font-size: 0.78em;
  font-weight: 600;
  letter-spacing: 0.02em;
}

#section4 .pricing__lead {
  max-width: 680px;
  margin: 16px auto 0;
  color: #465954;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.9;
  text-align: center;
}

/* カード一覧 */
#section4 .price-accordion {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 26px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#section4 .price-accordion__item {
  overflow: hidden;
  min-width: 0;
  background: #ffffff;
  border: 1px solid var(--pricing-line);
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(50, 73, 67, 0.09);
  transition:
    border-color 0.3s ease,
    box-shadow 0.3s ease,
    transform 0.3s ease;
}

#section4 .price-accordion__item:hover {
  border-color: rgba(101, 127, 120, 0.55);
  box-shadow: 0 16px 38px rgba(50, 73, 67, 0.14);
  transform: translateY(-3px);
}

#section4 .price-accordion__item.is-open {
  border-color: var(--pricing-main);
  box-shadow: 0 18px 40px rgba(50, 73, 67, 0.16);
}

#section4 .price-accordion__trigger {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  color: inherit;
  background: transparent;
  border: 0;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

#section4 .price-accordion__trigger:focus-visible {
  outline: 3px solid rgba(101, 127, 120, 0.4);
  outline-offset: -3px;
}

#section4 .price-accordion__visual {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 4 / 3;
  background: #e9efed;
}

#section4 .price-accordion__visual::after {
  content: none;
}

#section4 .price-accordion__visual img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
  object-position: center;
  transition: transform 0.45s ease;
}

#section4 .price-accordion__item:hover .price-accordion__visual img {
  transform: scale(1.015);
}

/* バナー画像内に文字が入っているため、HTML側の重ね文字は非表示 */
#section4 .price-accordion__overlay,
#section4 .price-accordion__weight,
#section4 .price-accordion__animals {
  display: none;
}

#section4 .price-accordion__action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 60px;
  padding: 14px 20px;
  color: var(--pricing-dark);
  background: #ffffff;
  border-top: 1px solid var(--pricing-line);
}

#section4 .price-accordion__action-text {
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.03em;
}

#section4 .price-accordion__icon {
  position: relative;
  display: block;
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  background: var(--pricing-light);
  border-radius: 50%;
}

#section4 .price-accordion__icon::before,
#section4 .price-accordion__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 11px;
  height: 2px;
  background: var(--pricing-main);
  border-radius: 2px;
  transform: translate(-50%, -50%);
  transition: transform 0.3s ease;
}

#section4 .price-accordion__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

#section4 .price-accordion__item.is-open .price-accordion__icon::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

/* 開閉部分 */
#section4 .price-accordion__panel {
  display: grid;
  grid-template-rows: 0fr;
  background: var(--pricing-light);
  transition: grid-template-rows 0.38s ease;
}

#section4 .price-accordion__item.is-open .price-accordion__panel {
  grid-template-rows: 1fr;
}

#section4 .price-accordion__panel-inner {
  min-height: 0;
  overflow: hidden;
}

#section4 .price-accordion__prices {
  padding: 10px 20px 20px;
}

#section4 .price-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 68px;
  padding: 14px 2px;
  border-bottom: 1px solid var(--pricing-line);
}

#section4 .price-row:last-child {
  border-bottom: 0;
}

#section4 .price-row__label {
  min-width: 0;
  color: var(--pricing-text);
  font-size: 0.94rem;
  font-weight: 700;
  line-height: 1.45;
}

#section4 .price-row__label small {
  display: block;
  margin-top: 3px;
  color: var(--pricing-muted);
  font-size: 0.75rem;
  font-weight: 500;
}

#section4 .price-row__price {
  flex: 0 0 auto;
  color: var(--pricing-dark);
  font-size: 0.9rem;
  font-weight: 700;
  white-space: nowrap;
}

#section4 .price-row__price > span {
  margin-right: 2px;
  font-family: Arial, sans-serif;
  font-size: 1.45rem;
  font-weight: 700;
  letter-spacing: -0.03em;
}

/* 料金表下の注意書き */
#section4.pricing > .note {
  margin-top: 24px;
  padding: 18px 20px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid var(--pricing-line);
  border-radius: 14px;
  color: #4f5f59;
  font-size: 0.84rem;
  line-height: 1.8;
}

#section4.pricing > .note a {
  color: #355f83;
}

@media screen and (max-width: 640px) {
  #section4.pricing {
    width: min(100% - 28px, 520px);
    padding-top: 12px;
  }

  #section4 .pricing__heading {
    margin-bottom: 22px;
    padding: 18px 16px;
    border-radius: 14px;
    text-align: left;
  }

  #section4 .pricing__en {
    margin-bottom: 10px;
    font-size: 0.72rem;
  }

  #section4 .pricing__heading h2 {
    font-size: 1.65rem;
    line-height: 1.45;
    letter-spacing: 0.02em;
  }

  #section4 .pricing__heading h2 span {
    display: block;
    margin-top: 4px;
    margin-left: 0;
    font-size: 0.68em;
  }

  #section4 .pricing__lead {
    margin-top: 12px;
    font-size: 0.9rem;
    line-height: 1.8;
    text-align: left;
  }

  #section4 .price-accordion {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  #section4 .price-accordion__item {
    border-radius: 14px;
  }

  #section4 .price-accordion__item:hover {
    transform: none;
  }

  #section4 .price-accordion__action {
    min-height: 56px;
    padding: 12px 17px;
  }

  #section4 .price-accordion__action-text {
    font-size: 0.9rem;
  }

  #section4 .price-accordion__prices {
    padding: 8px 16px 18px;
  }

  #section4 .price-row {
    gap: 12px;
    min-height: 64px;
  }

  #section4 .price-row__label {
    font-size: 0.87rem;
  }

  #section4 .price-row__price {
    font-size: 0.82rem;
  }

  #section4 .price-row__price > span {
    font-size: 1.25rem;
  }

  #section4.pricing > .note {
    padding: 15px 16px;
    font-size: 0.8rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  #section4 .price-accordion__item,
  #section4 .price-accordion__visual img,
  #section4 .price-accordion__panel,
  #section4 .price-accordion__icon::after {
    transition: none;
  }
}


@media screen and (max-width: 767px) {
  .pet-points {
    padding: 56px 14px 60px;
  }

  .pet-points__heading {
    margin-bottom: 30px;
  }

  .pet-points__heading h2 {
    font-size: 26px;
    line-height: 1.45;
  }

  .pet-points__heading > p:last-child {
    margin-top: 10px;
    font-size: 14px;
    line-height: 1.8;
  }

  .pet-points__stage {
    position: relative;
    display: grid;
    min-height: 0;
    grid-template-columns: minmax(105px, 38%) minmax(0, 62%);
    gap: 12px;
    align-items: center;
  }

  .pet-points__car {
    position: sticky;
    z-index: 2;
    top: 90px;
    left: auto;
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    margin: 0;
    align-self: start;
    filter: drop-shadow(0 10px 12px rgba(65, 47, 34, 0.16));
    transform: none;
  }

  .pet-point,
  .pet-point--01,
  .pet-point--02,
  .pet-point--03,
  .pet-point--04,
  .pet-point--05 {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    width: 100%;
    margin: 0;
    transform: none;
  }

  .pet-point--01,
  .pet-point--02,
  .pet-point--03,
  .pet-point--04,
  .pet-point--05 {
    grid-column: 2;
  }

  .pet-point--01 {
    grid-row: 1;
  }

  .pet-point--02 {
    grid-row: 2;
  }

  .pet-point--03 {
    grid-row: 3;
  }

  .pet-point--04 {
    grid-row: 4;
  }

  .pet-point--05 {
    grid-row: 5;
  }

  .pet-points__car {
    grid-column: 1;
    grid-row: 1 / 6;
  }

  .pet-point__body {
    display: grid;
    min-height: 0;
    padding: 12px 10px;
    grid-template-columns: 34px minmax(0, 1fr);
    column-gap: 9px;
    row-gap: 2px;
    align-items: center;
    justify-content: initial;
    border-width: 1px;
    border-radius: 15px;
    box-shadow: 0 7px 20px rgba(73, 54, 40, 0.08);
    text-align: left;
  }

  .pet-point__icon {
    width: 32px;
    height: 32px;
    margin: 0;
    grid-column: 1;
    grid-row: 1 / 3;
    font-size: 10px;
  }

  .pet-point__body strong {
    grid-column: 2;
    grid-row: 1;
    font-size: 14px;
    line-height: 1.45;
  }

  .pet-point__body small {
    margin: 0;
    grid-column: 2;
    grid-row: 2;
    font-size: 10px;
    line-height: 1.45;
  }

  .pet-point__body::after {
    display: none;
  }

  .pet-points.is-show .pet-points__car {
    animation: petCarMobileAppear 0.75s ease-out forwards;
  }

  .pet-points.is-show .pet-point__body {
    animation: petPointMobileAppear 0.55s
      ease-out
      var(--pet-delay)
      forwards;
  }

  @keyframes petCarMobileAppear {
    0% {
      opacity: 0;
      transform: translateX(-20px);
    }

    100% {
      opacity: 1;
      transform: translateX(0);
    }
  }

  @keyframes petPointMobileAppear {
    0% {
      opacity: 0;
      transform: translateX(24px);
    }

    70% {
      opacity: 1;
      transform: translateX(-3px);
    }

    100% {
      opacity: 1;
      transform: translateX(0);
    }
  }
}

@media screen and (max-width: 390px) {
  .pet-points {
    padding-right: 10px;
    padding-left: 10px;
  }

  .pet-points__stage {
    grid-template-columns: minmax(92px, 35%) minmax(0, 65%);
    gap: 8px;
  }

  .pet-point__body {
    padding: 10px 8px;
    grid-template-columns: 28px minmax(0, 1fr);
    column-gap: 7px;
    border-radius: 12px;
  }

  .pet-point__icon {
    width: 27px;
    height: 27px;
    font-size: 9px;
  }

  .pet-point__body strong {
    font-size: 12px;
  }

  .pet-point__body small {
    font-size: 9px;
  }
}
@media screen and (max-width: 767px) {
  .pet-points__car {
    width: 145%;
    max-width: none;
    margin-left: -30%;
  }
}

/* ==================================================
   出張費・地域別アコーディオン
   index2.php の button / panel 構造に対応
================================================== */

#section4 .visit-fee {
  --visit-main: #647f77;
  --visit-dark: #354d46;
  --visit-text: #26342f;
  --visit-muted: #68766f;
  --visit-light: #f3f7f5;
  --visit-line: #dbe5e1;

  width: min(920px, 100%);
  margin: 64px auto 0;
  padding: 0 0 20px;
  color: var(--visit-text);
  letter-spacing: 0;
  text-indent: 0;
}

/* 見出し */
#section4 .visit-fee__heading {
  width: min(100%, 860px);
  margin: 0 auto 30px;
  padding: 28px 32px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.84);
  border-radius: 18px;
  box-shadow: 0 14px 34px rgba(35, 49, 44, 0.18);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  text-align: center;
}

#section4 .visit-fee__en {
  display: inline-block;
  margin: 0 0 12px;
  padding: 6px 12px;
  background: rgba(47, 67, 61, 0.94);
  border-radius: 999px;
  color: #ffffff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.75rem;
  letter-spacing: 0.16em;
  line-height: 1;
  text-transform: uppercase;
}

#section4 .visit-fee__heading h3 {
  margin: 0;
  padding: 0;
  border: 0;
  color: var(--visit-dark);
  font-size: clamp(1.9rem, 3.2vw, 2.7rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.03em;
  text-shadow: none;
}

#section4 .visit-fee__lead {
  max-width: 700px;
  margin: 16px auto 0;
  color: #31443f;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.9;
  text-align: center;
}

#section4 .visit-fee__note {
  margin: 8px auto 0;
  color: #62726c;
  font-size: 0.82rem;
  line-height: 1.8;
  text-align: center;
}

/* アコーディオン */
#section4 .visit-fee-accordion {
  display: grid;
  gap: 14px;
}

#section4 .visit-fee-item {
  overflow: hidden;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid var(--visit-line);
  border-radius: 15px;
  box-shadow: 0 8px 24px rgba(48, 70, 63, 0.09);
  transition:
    border-color 0.3s ease,
    box-shadow 0.3s ease;
}

#section4 .visit-fee-item.is-open {
  border-color: var(--visit-main);
  box-shadow: 0 14px 32px rgba(48, 70, 63, 0.15);
}

#section4 .visit-fee-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: 100%;
  margin: 0;
  padding: 22px 24px;
  color: inherit;
  background: #ffffff;
  border: 0;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

#section4 .visit-fee-trigger:hover {
  background: #f8faf9;
}

#section4 .visit-fee-trigger:focus-visible {
  outline: 3px solid rgba(100, 127, 119, 0.35);
  outline-offset: -3px;
}

#section4 .visit-fee-trigger__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
}

#section4 .visit-fee-trigger__label {
  margin-bottom: 6px;
  color: var(--visit-main);
  font-size: 0.73rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

#section4 .visit-fee-trigger__area {
  color: var(--visit-text);
  font-size: clamp(1rem, 2vw, 1.22rem);
  font-weight: 700;
  line-height: 1.55;
}

#section4 .visit-fee-trigger__guide {
  margin-top: 5px;
  color: var(--visit-muted);
  font-size: 0.78rem;
  line-height: 1.5;
}

#section4 .visit-fee-trigger__icon {
  position: relative;
  display: block;
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  background: var(--visit-light);
  border-radius: 50%;
}

#section4 .visit-fee-trigger__icon::before,
#section4 .visit-fee-trigger__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 2px;
  background: var(--visit-main);
  border-radius: 2px;
  transform: translate(-50%, -50%);
  transition: transform 0.3s ease;
}

#section4 .visit-fee-trigger__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

#section4 .visit-fee-item.is-open .visit-fee-trigger__icon::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

/* 開閉パネル */
#section4 .visit-fee-panel {
  display: grid;
  grid-template-rows: 0fr;
  background: var(--visit-light);
  transition: grid-template-rows 0.38s ease;
}

#section4 .visit-fee-panel[hidden] {
  display: none !important;
}

#section4 .visit-fee-item.is-open .visit-fee-panel {
  grid-template-rows: 1fr;
}

#section4 .visit-fee-panel__inner {
  min-height: 0;
  overflow: hidden;
  padding-inline: 24px;
}

#section4 .visit-fee-item.is-open .visit-fee-panel__inner {
  padding-block: 22px 24px;
}

/* 往復時間・出張費 */
#section4 .visit-fee-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
}

#section4 .visit-fee-summary__item {
  padding: 18px;
  background: #ffffff;
  border: 1px solid var(--visit-line);
  border-radius: 12px;
}

#section4 .visit-fee-summary__item dt {
  margin-bottom: 7px;
  color: var(--visit-muted);
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.5;
}

#section4 .visit-fee-summary__item dd {
  margin: 0;
  color: var(--visit-dark);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.6;
}

#section4 .visit-fee-summary__item dd strong {
  color: var(--visit-dark);
  font-size: 1.25rem;
  white-space: nowrap;
}

#section4 .visit-fee-summary__item dd strong span {
  font-family: Arial, sans-serif;
  font-size: 1.5rem;
}

/* 距離一覧 */
#section4 .visit-fee-distance {
  margin-top: 18px;
}

#section4 .visit-fee-distance__title {
  margin: 0 0 8px;
  color: var(--visit-text);
  font-size: 0.85rem;
  font-weight: 700;
}

#section4 .visit-fee-distance ul {
  overflow: hidden;
  margin: 0;
  padding: 0;
  background: #ffffff;
  border: 1px solid var(--visit-line);
  border-radius: 12px;
  list-style: none;
}

#section4 .visit-fee-distance li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--visit-line);
}

#section4 .visit-fee-distance li:last-child {
  border-bottom: 0;
}

#section4 .visit-fee-distance li span {
  color: var(--visit-text);
  font-size: 0.88rem;
  line-height: 1.5;
}

#section4 .visit-fee-distance li strong {
  flex: 0 0 auto;
  color: var(--visit-muted);
  font-size: 0.82rem;
  white-space: nowrap;
}

/* 注意事項 */
#section4 .visit-fee-caution {
  margin-top: 28px;
  padding: 22px 24px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid var(--visit-line);
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(48, 70, 63, 0.08);
}

#section4 .visit-fee-caution h4 {
  margin: 0 0 12px;
  color: var(--visit-text);
  font-size: 1rem;
  font-weight: 700;
}

#section4 .visit-fee-caution ul {
  margin: 0;
  padding-left: 1.25em;
}

#section4 .visit-fee-caution li {
  margin-top: 7px;
  color: var(--visit-muted);
  font-size: 0.82rem;
  line-height: 1.75;
  list-style: disc;
}

#section4 .visit-fee-caution li:first-child {
  margin-top: 0;
}

@media screen and (max-width: 640px) {
  #section4 .visit-fee {
    width: 100%;
    margin-top: 48px;
    padding-bottom: 10px;
  }

  #section4 .visit-fee__heading {
    margin-bottom: 22px;
    padding: 18px 16px;
    border-radius: 14px;
    text-align: left;
  }

  #section4 .visit-fee__en {
    margin-bottom: 10px;
    font-size: 0.7rem;
  }

  #section4 .visit-fee__heading h3 {
    font-size: 1.65rem;
    line-height: 1.45;
  }

  #section4 .visit-fee__lead,
  #section4 .visit-fee__note {
    text-align: left;
  }

  #section4 .visit-fee__lead {
    margin-top: 12px;
    font-size: 0.9rem;
    line-height: 1.8;
  }

  #section4 .visit-fee__note {
    margin-top: 6px;
    font-size: 0.77rem;
    line-height: 1.75;
  }

  #section4 .visit-fee-trigger {
    gap: 14px;
    padding: 18px 16px;
  }

  #section4 .visit-fee-trigger__area {
    font-size: 1rem;
  }

  #section4 .visit-fee-trigger__icon {
    width: 32px;
    height: 32px;
  }

  #section4 .visit-fee-panel__inner {
    padding-inline: 15px;
  }

  #section4 .visit-fee-item.is-open .visit-fee-panel__inner {
    padding-block: 16px 18px;
  }

  #section4 .visit-fee-summary {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  #section4 .visit-fee-summary__item {
    padding: 15px;
  }

  #section4 .visit-fee-summary__item dd strong {
    font-size: 1.08rem;
  }

  #section4 .visit-fee-summary__item dd strong span {
    font-size: 1.35rem;
  }

  #section4 .visit-fee-distance li {
    align-items: flex-start;
    padding: 11px 13px;
  }

  #section4 .visit-fee-distance li span {
    font-size: 0.82rem;
  }

  #section4 .visit-fee-distance li strong {
    font-size: 0.76rem;
  }

  #section4 .visit-fee-caution {
    padding: 18px 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #section4 .visit-fee-item,
  #section4 .visit-fee-panel,
  #section4 .visit-fee-trigger__icon::after {
    transition: none;
  }
}

/* ==================================================
   出張費：地域一覧の視認性を最終調整
================================================== */

#section4 .visit-area-list {
  display: grid;
  gap: 14px;
  width: 100%;
  margin: 0;
}

/* 各地域カード */
#section4 .visit-area-item {
  overflow: hidden;
  width: 100%;
  margin: 0;
  color: #26342f;
  background: rgba(255, 255, 255, 0.96) !important;
  border: 1px solid rgba(100, 127, 119, 0.3);
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(35, 49, 44, 0.15);
}

/* 開いているカード */
#section4 .visit-area-item[open] {
  border-color: #647f77;
  box-shadow: 0 14px 30px rgba(35, 49, 44, 0.2);
}

/* クリックする地域名部分 */
#section4 .visit-area-summary {
  position: relative;
  display: block !important;
  width: 100%;
  min-height: 92px;
  margin: 0;
  padding: 18px 66px 18px 22px;
  color: #26342f !important;
  background: rgba(255, 255, 255, 0.98) !important;
  cursor: pointer;
  list-style: none !important;
  text-align: left;
}

/* 標準の三角マークを消す */
#section4 .visit-area-summary::-webkit-details-marker {
  display: none;
}

#section4 .visit-area-summary::marker {
  display: none;
  content: "";
}

/* 小さいラベル */
#section4 .visit-area-summary__label {
  display: block;
  margin: 0 0 5px;
  color: #647f77 !important;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
}

/* 地域名 */
#section4 .visit-area-summary__name {
  display: block;
  color: #26342f !important;
  font-size: clamp(15px, 1.8vw, 18px);
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0.01em;
  text-shadow: none !important;
}

/* 補助文 */
#section4 .visit-area-summary__guide {
  display: block;
  margin-top: 5px;
  color: #64736d !important;
  font-size: 12px;
  line-height: 1.5;
  text-shadow: none !important;
}

/* 右側の丸い開閉ボタン */
#section4 .visit-area-summary__icon {
  position: absolute;
  top: 50%;
  right: 20px;
  display: block;
  width: 34px;
  height: 34px;
  background: #edf3f1;
  border-radius: 50%;
  transform: translateY(-50%);
}

#section4 .visit-area-summary__icon::before,
#section4 .visit-area-summary__icon::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 2px;
  background: #54726a;
  border-radius: 2px;
  content: "";
  transform: translate(-50%, -50%);
}

#section4 .visit-area-summary__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
  transition: transform 0.25s ease;
}

#section4 .visit-area-item[open]
.visit-area-summary__icon::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

/* 開いた中身 */
#section4 .visit-area-content {
  padding: 20px 22px 22px;
  color: #26342f;
  background: #f3f7f5 !important;
  border-top: 1px solid #dbe5e1;
}

/* 時間・料金 */
#section4 .visit-area-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
}

#section4 .visit-area-summary-grid > div {
  padding: 16px;
  background: #ffffff;
  border: 1px solid #dbe5e1;
  border-radius: 10px;
}

#section4 .visit-area-summary-grid dt {
  margin: 0 0 5px;
  color: #68766f;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
}

#section4 .visit-area-summary-grid dd {
  margin: 0;
  color: #354d46;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.6;
}

/* 距離一覧 */
#section4 .visit-area-distance {
  margin-top: 16px;
}

#section4 .visit-area-distance > p {
  margin: 0 0 7px;
  color: #26342f;
  font-size: 13px;
  font-weight: 700;
}

#section4 .visit-area-distance ul {
  overflow: hidden;
  margin: 0;
  padding: 0;
  background: #ffffff;
  border: 1px solid #dbe5e1;
  border-radius: 10px;
}

#section4 .visit-area-distance li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 11px 14px;
  color: #26342f;
  border-bottom: 1px solid #dbe5e1;
  list-style: none;
}

#section4 .visit-area-distance li:last-child {
  border-bottom: 0;
}

#section4 .visit-area-distance li span {
  color: #26342f;
  font-size: 13px;
  line-height: 1.5;
}

#section4 .visit-area-distance li strong {
  flex: 0 0 auto;
  color: #68766f;
  font-size: 12px;
  white-space: nowrap;
}

.visit-area-content__note {
  margin: 16px 0 24px;
  padding: 12px 16px;
  color: #52635d;
  background: #edf5f1;
  border-left: 3px solid #86aa9c;
  border-radius: 0 6px 6px 0;
  font-size: 14px;
  line-height: 1.8;
}

/* スマートフォン */
@media screen and (max-width: 640px) {
  #section4 .visit-area-list {
    gap: 12px;
  }

  #section4 .visit-area-summary {
    min-height: 84px;
    padding: 15px 52px 15px 15px;
  }

  #section4 .visit-area-summary__name {
    font-size: 14px;
    line-height: 1.6;
  }

  #section4 .visit-area-summary__guide {
    font-size: 11px;
  }

  #section4 .visit-area-summary__icon {
    right: 12px;
    width: 30px;
    height: 30px;
  }

  #section4 .visit-area-content {
    padding: 14px;
  }

  #section4 .visit-area-summary-grid {
    grid-template-columns: 1fr;
    gap: 9px;
  }

  #section4 .visit-area-summary-grid > div {
    padding: 13px;
  }

  #section4 .visit-area-distance li {
    align-items: flex-start;
    padding: 10px 11px;
  }

  #section4 .visit-area-distance li span {
    font-size: 12px;
  }

  #section4 .visit-area-distance li strong {
    font-size: 11px;
  }
}




  /*お客様の声スマホ版 */
@media screen and (max-width: 560px) {
  .voice-pop {
    padding: 58px 10px 64px;
  }

  .voice-pop__heading {
    margin-bottom: 36px;
  }

  .voice-pop__heading h2 {
    font-size: 28px;
  }

  .voice-pop__heading > p:last-child {
    margin-top: 12px;
    font-size: 12px;
    line-height: 1.8;
  }

  .voice-pop__list {
    display: flex !important;
    flex-direction: column !important;
    gap: 26px !important;
  }

  /*
   * 各項目を2列のグリッドにする
   * 人物 82px＋吹き出し
   */

  .voice-pop__item,
  .voice-pop__item:nth-child(odd),
  .voice-pop__item:nth-child(even) {
    display: grid !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    grid-template-columns: 82px minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: center !important;
  }

  /*
   * 奇数
   * 人物｜吹き出し
   */

  .voice-pop__item:nth-child(odd) .voice-pop__person {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  .voice-pop__item:nth-child(odd) .voice-pop__bubble-wrap {
    grid-column: 2 !important;
    grid-row: 1 !important;
  }

  /*
   * 偶数
   * 吹き出し｜人物
   */

  .voice-pop__item:nth-child(even) {
    grid-template-columns: minmax(0, 1fr) 82px !important;
  }

  .voice-pop__item:nth-child(even) .voice-pop__bubble-wrap {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  .voice-pop__item:nth-child(even) .voice-pop__person {
    grid-column: 2 !important;
    grid-row: 1 !important;
  }

  /*
   * 人物画像
   */

  .voice-pop__person {
    position: relative !important;
    display: block !important;
    width: 82px !important;
    min-width: 82px !important;
    max-width: 82px !important;
    height: 82px !important;
    min-height: 82px !important;
    max-height: 82px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 5px solid #fff !important;
    border-radius: 50% !important;
    box-sizing: border-box !important;
    box-shadow: 0 8px 20px rgba(73, 54, 40, 0.14) !important;
    object-fit: cover !important;
    object-position: center center !important;
    overflow: hidden !important;
  }

  .voice-pop__item:nth-child(1) .voice-pop__person {
    background: #fbe7e4;
  }

  .voice-pop__item:nth-child(2) .voice-pop__person {
    background: #edf4e8;
  }

  .voice-pop__item:nth-child(3) .voice-pop__person {
    background: #eaf2f8;
  }

  .voice-pop__item:nth-child(4) .voice-pop__person {
    background: #f1ebf7;
  }

  /*
   * 吹き出し
   */

  .voice-pop__bubble-wrap {
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    opacity: 1;
    transform: none;
  }

  .voice-pop__bubble {
    position: relative !important;
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 106px !important;
    padding: 17px 16px !important;
    align-items: center !important;
    justify-content: flex-start !important;
    border-width: 1px !important;
    border-radius: 20px !important;
    box-sizing: border-box !important;
    background: rgba(255, 255, 255, 0.96) !important;
    box-shadow: 0 8px 22px rgba(73, 54, 40, 0.08) !important;
    text-align: left !important;
  }

  .voice-pop__bubble p {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    color: #49362b !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    line-height: 1.65 !important;
    text-align: left !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    white-space: normal !important;
  }

  /*
   * 奇数
   * 人物が左なので、しっぽも左
   */

  .voice-pop__item:nth-child(odd) .voice-pop__bubble::after {
    position: absolute !important;
    top: 50% !important;
    right: auto !important;
    bottom: auto !important;
    left: -9px !important;
    display: block !important;
    width: 17px !important;
    height: 17px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--bubble-color) !important;
    border-left: 1px solid var(--bubble-color) !important;
    background: #fff !important;
    content: "" !important;
    transform: translateY(-50%) rotate(45deg) !important;
  }

  /*
   * 偶数
   * 人物が右なので、しっぽも右
   */

  .voice-pop__item:nth-child(even) .voice-pop__bubble::after {
    position: absolute !important;
    top: 50% !important;
    right: -9px !important;
    bottom: auto !important;
    left: auto !important;
    display: block !important;
    width: 17px !important;
    height: 17px !important;
    border: 0 !important;
    border-top: 1px solid var(--bubble-color) !important;
    border-right: 1px solid var(--bubble-color) !important;
    background: #fff !important;
    content: "" !important;
    transform: translateY(-50%) rotate(45deg) !important;
  }

  /*
   * 表示アニメーション
   */

  .voice-pop.is-show .voice-pop__item:nth-child(odd) .voice-pop__bubble-wrap {
    animation: voiceBubbleMobileRight 0.65s
      cubic-bezier(0.2, 1.25, 0.45, 1)
      var(--delay)
      both !important;
  }

  .voice-pop.is-show .voice-pop__item:nth-child(even) .voice-pop__bubble-wrap {
    animation: voiceBubbleMobileLeft 0.65s
      cubic-bezier(0.2, 1.25, 0.45, 1)
      var(--delay)
      both !important;
  }

  .voice-pop.is-show .voice-pop__person {
    animation: voicePersonMobile 0.6s
      ease-out
      calc(var(--delay) + 0.1s)
      both !important;
  }

  .voice-pop.is-show .voice-pop__bubble {
    animation: voiceBubbleFloatMobile var(--float-time)
      ease-in-out
      calc(var(--delay) + 0.8s)
      infinite !important;
  }

  @keyframes voiceBubbleMobileRight {
    0% {
      opacity: 0;
      transform: translateX(20px) scale(0.94);
    }

    100% {
      opacity: 1;
      transform: translateX(0) scale(1);
    }
  }

  @keyframes voiceBubbleMobileLeft {
    0% {
      opacity: 0;
      transform: translateX(-20px) scale(0.94);
    }

    100% {
      opacity: 1;
      transform: translateX(0) scale(1);
    }
  }

  @keyframes voicePersonMobile {
    0% {
      opacity: 0;
      transform: translateY(16px) scale(0.9);
    }

    100% {
      opacity: 1;
      transform: translateY(0) scale(1);
    }
  }

  @keyframes voiceBubbleFloatMobile {
    0%,
    100% {
      transform: translateY(0);
    }

    50% {
      transform: translateY(-4px);
    }
  }
}


/* ---------------------------------
   ペットメモリアル用品
--------------------------------- */

.top-memorial-section {
  position: relative;
  overflow: hidden;
  padding-top: 90px;
  padding-bottom: 100px;
  background:
    radial-gradient(
      circle at 8% 10%,
      rgba(221, 233, 218, 0.7),
      transparent 28%
    ),
    radial-gradient(
      circle at 92% 90%,
      rgba(245, 225, 225, 0.65),
      transparent 28%
    ),
    #fbfaf7;
}

.top-memorial-heading {
  max-width: 760px;
  margin: 0 auto 46px;
  text-align: center;
}

.top-memorial-heading__en {
  margin: 0 0 10px;
  color: #a17d68;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.top-memorial-heading h2 {
  margin: 0 0 20px;
  color: #493f39;
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.06em;
}

.top-memorial-heading h2::after {
  content: "";
  display: block;
  width: 46px;
  height: 1px;
  margin: 20px auto 0;
  background: #b89986;
}

.top-memorial-heading > p:last-child {
  margin: 0;
  color: #716963;
  font-size: 15px;
  line-height: 2;
}

.top-memorial-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px 24px;
  max-width: 1120px;
  margin: 0 auto;
}

.top-memorial-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(104, 91, 81, 0.1);
  border-radius: 18px;
  box-shadow: 0 14px 36px rgba(72, 61, 53, 0.08);
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.top-memorial-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 42px rgba(72, 61, 53, 0.14);
}

.top-memorial-card__link {
  display: block;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.top-memorial-card__image {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #eeeae5;
}

.top-memorial-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.top-memorial-card:hover .top-memorial-card__image img {
  transform: scale(1.04);
}

.top-memorial-card__detail {
  position: absolute;
  right: 14px;
  bottom: 14px;
  padding: 7px 13px;
  color: #fff;
  background: rgba(67, 58, 52, 0.78);
  border-radius: 30px;
  font-size: 12px;
  letter-spacing: 0.08em;
  opacity: 0;
  transform: translateY(6px);
  transition:
    opacity 0.3s ease,
    transform 0.3s ease;
}

.top-memorial-card:hover .top-memorial-card__detail {
  opacity: 1;
  transform: translateY(0);
}

.top-memorial-card__body {
  padding: 22px 22px 26px;
}

.top-memorial-card__category {
  display: inline-block;
  margin: 0 0 11px;
  padding: 4px 10px;
  color: #8a6e5d;
  background: #f3ede8;
  border-radius: 30px;
  font-size: 11px;
  line-height: 1.4;
  letter-spacing: 0.08em;
}

.top-memorial-card__title {
  margin: 0 0 12px;
  color: #493f39;
  font-size: 19px;
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: 0.03em;
}

.top-memorial-card__subtitle {
  margin: 0;
  color: #756e68;
  font-size: 14px;
  line-height: 1.8;
}

.top-memorial-message {
  display: flex;
  align-items: center;
  gap: 26px;
  max-width: 900px;
  margin: 56px auto 0;
  padding: 30px 38px;
  background: rgba(255, 255, 255, 0.82);
  border-left: 3px solid #b99480;
  box-shadow: 0 10px 30px rgba(72, 61, 53, 0.06);
}

.top-memorial-message__mark {
  display: grid;
  flex: 0 0 74px;
  width: 74px;
  height: 74px;
  place-items: center;
  color: #fff;
  background: #a98572;
  border-radius: 50%;
  font-family: serif;
  font-size: 25px;
}

.top-memorial-message__label {
  margin: 0 0 5px;
  color: #9b7967;
  font-size: 12px;
  letter-spacing: 0.12em;
}

.top-memorial-message h3 {
  margin: 0 0 9px;
  color: #493f39;
  font-size: 20px;
  line-height: 1.5;
}

.top-memorial-message__body > p:last-child {
  margin: 0;
  color: #716963;
  font-size: 14px;
  line-height: 1.85;
}

.top-memorial-button-wrap {
  margin-top: 40px;
  text-align: center;
}

.top-memorial-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 34px;
  min-width: 320px;
  padding: 16px 25px;
  color: #fff;
  background: #805f50;
  border: 1px solid #805f50;
  border-radius: 50px;
  text-decoration: none;
  font-size: 15px;
  letter-spacing: 0.05em;
  transition:
    color 0.25s ease,
    background-color 0.25s ease;
}

.top-memorial-button:hover {
  color: #805f50;
  background: #fff;
}

.top-memorial-button__arrow {
  font-size: 18px;
  transition: transform 0.25s ease;
}

.top-memorial-button:hover .top-memorial-button__arrow {
  transform: translateX(4px);
}

.sp-only {
  display: none;
}

@media screen and (max-width: 768px) {
  .top-memorial-section {
    padding-top: 64px;
    padding-bottom: 70px;
  }

  .top-memorial-heading {
    margin-bottom: 32px;
    padding: 0 5px;
  }

  .top-memorial-heading h2 {
    font-size: 27px;
  }

  .top-memorial-heading > p:last-child br {
    display: none;
  }

  .top-memorial-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 12px;
  }

  .top-memorial-card {
    border-radius: 14px;
  }

  .top-memorial-card__body {
    padding: 16px 14px 20px;
  }

  .top-memorial-card__category {
    margin-bottom: 8px;
    font-size: 10px;
  }

  .top-memorial-card__title {
    font-size: 15px;
    line-height: 1.55;
  }

  .top-memorial-card__subtitle {
    font-size: 12px;
    line-height: 1.7;
  }

  .top-memorial-card__detail {
    display: none;
  }

  .top-memorial-message {
    display: block;
    margin-top: 36px;
    padding: 25px 22px;
  }

  .top-memorial-message__mark {
    width: 56px;
    height: 56px;
    margin: 0 auto 17px;
    font-size: 20px;
  }

  .top-memorial-message__body {
    text-align: center;
  }

  .top-memorial-message h3 {
    font-size: 18px;
  }

  .top-memorial-button {
    width: 100%;
    min-width: 0;
  }

  .sp-only {
    display: block;
  }
}

/* 商品ごとの加工内容 */
.top-memorial-message__options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 16px 0 12px;
  padding: 0;
  list-style: none;
}

.top-memorial-message__options li {
  position: relative;
  margin: 0;
  padding: 7px 13px 7px 28px;
  color: #6d584c;
  background: #f5eee9;
  border: 1px solid #dfcfc5;
  border-radius: 30px;
  font-size: 12px;
  line-height: 1.4;
}

.top-memorial-message__options li::before {
  content: "○";
  position: absolute;
  top: 50%;
  left: 11px;
  color: #a17d68;
  font-size: 11px;
  transform: translateY(-50%);
}

.top-memorial-message__note {
  margin: 0 !important;
  color: #806f65 !important;
  font-size: 12px !important;
  line-height: 1.7 !important;
}

/* リンク共通設定より優先してボタン色を固定 */
.top-memorial-section .top-memorial-button,
.top-memorial-section .top-memorial-button:link,
.top-memorial-section .top-memorial-button:visited {
  color: #ffffff !important;
  background-color: #805f50 !important;
  text-decoration: none !important;
}

.top-memorial-section .top-memorial-button span,
.top-memorial-section .top-memorial-button:link span,
.top-memorial-section .top-memorial-button:visited span {
  color: #ffffff !important;
}

.top-memorial-section .top-memorial-button:hover,
.top-memorial-section .top-memorial-button:focus {
  color: #805f50 !important;
  background-color: #ffffff !important;
  border-color: #805f50 !important;
}

.top-memorial-section .top-memorial-button:hover span,
.top-memorial-section .top-memorial-button:focus span {
  color: #805f50 !important;
}

@media screen and (max-width: 768px) {
  .top-memorial-message__options {
    justify-content: center;
  }

  .top-memorial-message__note {
    text-align: left;
  }
}

/* =========================================================
   TOPページ「相談の多いご質問」2列表示
========================================================= */

.top-faq-pickup__list {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 20px;
}

.top-faq-pickup__item {
  min-height: auto;
}

/* スマホも2列 */
@media screen and (max-width: 640px) {
  .top-faq-pickup__list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px;
  }

  .top-faq-pickup__item {
    min-width: 0;
    padding: 16px 13px 18px;
    border-radius: 16px;
  }

  .top-faq-pickup__cat {
    padding: 5px 9px;
    font-size: 10px;
    line-height: 1.4;
  }

  .top-faq-pickup__item h3 {
    font-size: 13px;
    line-height: 1.65;
  }

  .top-faq-pickup__item p {
    font-size: 12px;
    line-height: 1.75;
  }
}

@media screen and (max-width: 560px) {
  .voice-pop__bubble p {
    width: 100% !important;
    margin: 0 !important;
    font-size: 13px !important;
    line-height: 1.75 !important;
    letter-spacing: 0.02em !important;
    text-align: left !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    white-space: normal !important;
  }
}
@media screen and (max-width: 390px) {
  .voice-pop__bubble p {
    font-size: 12px !important;
    line-height: 1.7 !important;
  }
}

/* ==================================================
   TOPページ「よくある質問」リンクのクリック修正
================================================== */

.top-faq-pickup {
  position: relative !important;
  z-index: 20 !important;
  isolation: isolate;
  pointer-events: auto !important;
}

.top-faq-pickup__head,
.top-faq-pickup__list,
.top-faq-pickup__more {
  position: relative !important;
  z-index: 2 !important;
  pointer-events: auto !important;
}

.top-faq-pickup__more a {
  position: relative !important;
  z-index: 30 !important;
  display: inline-flex !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  touch-action: manipulation;
}

/* 装飾用の疑似要素はクリックを奪わない */
.top-faq-pickup::before,
.top-faq-pickup::after,
.top-faq-pickup__more::before,
.top-faq-pickup__more::after {
  pointer-events: none !important;
}


/* ==================================================
   section1 新ファーストビュー
   ================================================== */

#section1 .hero-fuwafuwa {
  display: flex;
  justify-content: center;
  width: 100%;
  margin: 0 auto 24px;
  text-align: left;
}

#section1 .hero-fuwafuwa-inner {
  position: relative;
  width: min(100%, 840px);
  margin: 0 auto;
  overflow: hidden;
  border-radius: 18px;
  box-shadow: 0 18px 45px rgba(24, 54, 28, 0.2);
}

#section1 .hero-fuwafuwa-inner picture {
  display: block;
}

#section1 .hero-main-image {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
}

/* 画像上のコピー */
#section1 .hero-copy {
  position: absolute;
  z-index: 2;
  top: 5%;
  left: 5%;
  width: 55%;
  color: #28452d;
  text-align: center;
  text-indent: 0;
}

#section1 .hero-copy__title {
  margin: 0 0 10px;
  color: #24432b;
  font-size: clamp(19px, 2.15vw, 28px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9),
    0 0 12px rgba(255, 255, 255, 0.85);
}

#section1 .hero-copy__text {
  margin: 0;
  padding: 0;
  color: #405345;
  background: transparent;
  font-size: clamp(11px, 1.15vw, 14px);
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.02em;
  text-shadow:
    0 1px 0 rgba(255, 255, 255, 0.95),
    0 0 10px rgba(255, 255, 255, 0.9);
}

/* 最低価格 */
#section1 .hero-min-price {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 13px;
  padding: 8px 17px;
  color: #24432b;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(82, 128, 72, 0.35);
  border-radius: 999px;
  box-shadow: 0 7px 18px rgba(34, 65, 38, 0.12);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

#section1 .hero-min-price__label {
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

#section1 .hero-min-price__amount {
  color: #d45f2f;
  font-size: clamp(21px, 2.4vw, 30px);
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}

#section1 .hero-min-price__amount small {
  margin-left: 2px;
  font-size: 13px;
  font-weight: 700;
}

#section1 .hero-min-price__note {
  color: #657168;
  font-size: 10px;
  font-weight: 500;
  white-space: nowrap;
}

/* 画像より下の要素 */
#section1 .payment-methods {
  margin: 20px auto 16px;
}

#section1 .hero-cta {
  margin: 18px auto 0;
}

#section1 .hero-call {
  margin: 22px auto 28px;
}

#section1 .youtube {
  width: min(100%, 900px);
  margin: 30px auto 0;
  overflow: hidden;
  background: #000;
  border-radius: 14px;
  box-shadow: 0 16px 40px rgba(24, 49, 27, 0.22);
  aspect-ratio: 16 / 9;
}

#section1 .youtube iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ==================================================
   スマホ
   ================================================== */

@media screen and (max-width: 768px) {
  #section1 .hero-fuwafuwa {
    margin-top: 72px;
  }

  #section1 .hero-fuwafuwa-inner {
    width: 100%;
    max-width: 540px;
    border-radius: 14px;
  }

  #section1 .hero-copy {
    top: 3.5%;
    left: 5%;
    width: 90%;
  }

  #section1 .hero-copy__title {
    margin-bottom: 7px;
    font-size: clamp(17px, 4.8vw, 23px);
    line-height: 1.42;
    letter-spacing: 0.02em;
  }

  #section1 .hero-copy__text {
    font-size: clamp(10px, 2.7vw, 13px);
    line-height: 1.65;
  }

  #section1 .hero-min-price {
    gap: 7px;
    margin-top: 9px;
    padding: 6px 12px;
  }

  #section1 .hero-min-price__label {
    font-size: 10px;
  }

  #section1 .hero-min-price__amount {
    font-size: clamp(19px, 6vw, 27px);
  }

  #section1 .hero-min-price__amount small {
    font-size: 11px;
  }

  #section1 .hero-min-price__note {
    font-size: 9px;
  }

  #section1 .youtube {
    margin-top: 24px;
    border-radius: 10px;
  }
}

/* 横幅がかなり狭い端末 */
@media screen and (max-width: 390px) {
  #section1 .hero-copy {
    top: 2.5%;
    left: 3%;
    width: 94%;
  }

  #section1 .hero-copy__title {
    font-size: 16px;
    line-height: 1.38;
  }

  #section1 .hero-copy__text {
    font-size: 10px;
    line-height: 1.55;
  }

  #section1 .hero-min-price {
    margin-top: 7px;
    padding: 5px 9px;
  }

  #section1 .hero-min-price__note {
    display: none;
  }
}

/* ==================================================
   ヒーロー画像の枠・影を削除
   ================================================== */

#section1 .hero-fuwafuwa-inner {
  overflow: visible;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

#section1 .hero-main-image {
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

/* ==================================================
   画像下の最低料金
   ================================================== */

#section1 .hero-price-below {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  width: fit-content;
  max-width: 100%;
  margin: 14px auto 22px;
  padding: 9px 20px;
  color: #28452d;
  background: rgba(255, 255, 255, 0.94);
  border: 0;
  border-radius: 999px;
  text-align: center;
  text-indent: 0;
  box-shadow: none;
}

#section1 .hero-price-below__label {
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}

#section1 .hero-price-below__amount {
  color: #d45f2f;
  font-size: clamp(25px, 3vw, 34px);
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}

#section1 .hero-price-below__amount small {
  margin-left: 3px;
  font-size: 13px;
  font-weight: 700;
}

#section1 .hero-price-below__note {
  color: #657168;
  font-size: 11px;
  white-space: nowrap;
}

/* スマホ */
@media screen and (max-width: 768px) {
  #section1 .hero-price-below {
    gap: 7px;
    width: min(100%, 340px);
    margin: 10px auto 18px;
    padding: 8px 12px;
  }

  #section1 .hero-price-below__label {
    font-size: 11px;
  }

  #section1 .hero-price-below__amount {
    font-size: clamp(23px, 7vw, 30px);
  }

  #section1 .hero-price-below__amount small {
    font-size: 11px;
  }

  #section1 .hero-price-below__note {
    font-size: 9px;
  }
}

@media screen and (max-width: 360px) {
  #section1 .hero-price-below {
    gap: 6px;
    padding-right: 9px;
    padding-left: 9px;
  }

  #section1 .hero-price-below__note {
    display: none;
  }
}

/* ヒーロー画像：角丸＋周囲を柔らかくぼかす */
#section1 .hero-fuwafuwa-inner {
  position: relative;
  overflow: hidden;
  border: 0;
  border-radius: 22px;
  background: transparent;
  box-shadow:
    0 10px 28px rgba(28, 52, 31, 0.18),
    0 0 20px rgba(255, 255, 255, 0.18);
}

/* 画像の縁を内側から柔らかくする */
#section1 .hero-fuwafuwa-inner::after {
  content: "";
  position: absolute;
  z-index: 6;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow:
    inset 0 0 10px rgba(255, 255, 255, 0.35),
    inset 0 0 22px rgba(255, 255, 255, 0.12);
}

/* 画像本体 */
#section1 .hero-main-image {
  display: block;
  width: 100%;
  height: auto;
  border: 0;
  border-radius: inherit;
  box-shadow: none;
}

/* 文字はぼかしレイヤーより前へ */
#section1 .hero-copy {
  z-index: 7;
}

/* スマホは角丸を少し控えめに */
@media screen and (max-width: 768px) {
  #section1 .hero-fuwafuwa-inner {
    border-radius: 15px;
    box-shadow:
      0 8px 20px rgba(28, 52, 31, 0.16),
      0 0 14px rgba(255, 255, 255, 0.15);
  }

  #section1 .hero-fuwafuwa-inner::after {
    box-shadow:
      inset 0 0 7px rgba(255, 255, 255, 0.28),
      inset 0 0 15px rgba(255, 255, 255, 0.1);
  }
}

/* ==================================================
   PC版：見出しの下を「説明文＋料金」の2列にする
   ================================================== */

@media screen and (min-width: 769px) {
  #section1 .hero-copy {
    top: 5%;
    left: 5%;
    width: 90%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);
    column-gap: 26px;
    row-gap: 10px;
    align-items: center;
  }

  /* 見出しは画像上部全体を使用 */
  #section1 .hero-copy__title {
    grid-column: 1 / -1;
    margin: 0;
    text-align: center;
  }

  /* 説明文は左側 */
  #section1 .hero-copy__text {
    grid-column: 1;
    margin: 0;
    text-align: center;
  }

  /* 料金は右側 */
  #section1 .hero-copy .hero-price-below {
    grid-column: 2;
    justify-self: center;
    margin: 0;
    padding: 9px 18px;
    background: rgba(255, 255, 255, 0.82);
  }
}

/* ==================================================
   スマホ版：縦並びへ戻す
   ================================================== */

@media screen and (max-width: 768px) {
  #section1 .hero-copy {
    display: block;
    top: 3.5%;
    left: 5%;
    width: 90%;
  }

  #section1 .hero-copy__title {
    margin-bottom: 7px;
  }

  #section1 .hero-copy .hero-price-below {
    display: inline-flex;
    margin: 9px auto 0;
  }
}

/* ==================================================
   PC版ヒーロー配置
   上段：メインコピーと事業説明
   下段：背の低いペットの頭上に料金
   ================================================== */

@media screen and (min-width: 769px) {
  #section1 .hero-copy {
    top: 5%;
    left: 5%;
    width: 90%;
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    grid-template-areas:
      "title description"
      "price price";
    column-gap: 34px;
    row-gap: 15px;
    align-items: center;
  }

  /* 左上：メインコピー */
  #section1 .hero-copy__title {
    grid-area: title;
    margin: 0;
    font-size: clamp(19px, 2vw, 25px);
    line-height: 1.5;
    text-align: center;
  }

  /* 右上：事業説明 */
  #section1 .hero-copy__text {
    grid-area: description;
    margin: 0;
    font-size: clamp(11px, 1.1vw, 14px);
    line-height: 1.8;
    text-align: center;
  }

  /* 2段目：小さいペットの頭上 */
  #section1 .hero-copy .hero-price-below {
    grid-area: price;
    justify-self: center;
    margin: 0;
    padding: 8px 22px;
    background: rgba(255, 255, 255, 0.86);
  }
}

/* ==================================================
   section1 行動ボタンのクリックを有効化
   ================================================== */

/* 背景・ぼかしレイヤーはクリックを受け取らない */
#section1::before,
#section1::after,
#section1 .hero-fuwafuwa-inner::after {
  pointer-events: none !important;
}

/* 行動ボタンを前面へ */
#section1 .hero-cta {
  position: relative;
  z-index: 50;
  pointer-events: auto;
}

/* リンク自体も明示的に有効化 */
#section1 .hero-cta .hero-btn {
  position: relative;
  z-index: 51;
  pointer-events: auto !important;
  cursor: pointer;
  touch-action: manipulation;
}

/* ==================================================
   透明な背景レイヤーがリンク操作を妨げないようにする
   ================================================== */

.body-bg-layer,
.section::before,
.section::after,
#section1::before,
#section1::after,
#section2::before,
#section2::after,
#section3::before,
#section3::after,
#section4::before,
#section4::after,
.hero-fuwafuwa-inner::after,
.footer-rainbow-layer,
.footer-scene {
  pointer-events: none !important;
}

/* ページ本体を背景レイヤーより前へ */
main {
  position: relative;
  z-index: 20;
}

/* 各セクション内の操作要素 */
main section {
  position: relative;
}

main a,
main button,
main summary,
main [role="button"] {
  position: relative;
  pointer-events: auto !important;
  cursor: pointer;
}

/* お見送りの流れ */
.Inner,
.List-Item,
.List-Item-Content {
  position: relative;
  pointer-events: auto;
}

.Inner a,
.List-Item a,
.List-Item-Content a {
  position: relative;
  z-index: 30;
  pointer-events: auto !important;
  cursor: pointer;
}

/* ========================================
   section3：お見送りのながれ
======================================== */

#section3.farewell-section {
  position: relative;
  z-index: 2;
  padding: 80px 20px;
  color: #3d4945;
  background:
    radial-gradient(
      circle at top left,
      rgba(210, 233, 222, 0.5),
      transparent 32%
    ),
    #f8fbf9;
}

#section3.farewell-section,
#section3.farewell-section * {
  box-sizing: border-box;
}

#section3 .Inner {
  width: min(1120px, 100%);
  margin: 0 auto;
}

/* 見出し */

#section3 .farewell-heading {
  margin-bottom: 38px;
  text-align: center;
}

#section3 .farewell-heading__en {
  margin: 0 0 7px;
  color: #749789;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

#section3 .farewell-heading h2 {
  margin: 0 0 15px;
  color: #314a42;
  font-size: clamp(26px, 3vw, 38px);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

#section3 .farewell-heading__lead {
  margin: 0;
  color: #687670;
  font-size: 15px;
  line-height: 1.8;
}

/* アコーディオン */

#section3 .farewell-accordions {
  display: grid;
  gap: 18px;
}

#section3 .farewell-plan {
  overflow: hidden;
  border: 1px solid #dce8e2;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 10px 30px rgba(57, 84, 74, 0.07);
}

#section3 .farewell-plan__summary {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 126px;
  padding: 24px 82px 24px 30px;
  cursor: pointer;
  list-style: none;
  transition:
    color 0.25s ease,
    background-color 0.25s ease;
}

#section3 .farewell-plan__summary::-webkit-details-marker {
  display: none;
}

#section3 .farewell-plan__summary::marker {
  display: none;
  content: "";
}

#section3 .farewell-plan__summary:hover {
  background: #f5faf7;
}

#section3 .farewell-plan[open] > .farewell-plan__summary {
  background: #edf6f1;
  border-bottom: 1px solid #dce8e2;
}

#section3 .farewell-plan__summary-text {
  display: grid;
  grid-template-columns:
    minmax(190px, 0.8fr)
    minmax(220px, 0.85fr)
    minmax(300px, 1.35fr);
  align-items: center;
  width: 100%;
}

#section3 .farewell-plan__label {
  padding-right: 26px;
  color: #708079;
  font-size: 13px;
  line-height: 1.7;
  letter-spacing: 0.04em;
}

#section3 .farewell-plan__title {
  padding: 4px 28px;
  border-right: 1px solid #cddbd5;
  border-left: 1px solid #cddbd5;
  color: #315f50;
  font-size: clamp(20px, 2vw, 26px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

#section3 .farewell-plan__description {
  padding-left: 28px;
  color: #596762;
  font-size: 14px;
  line-height: 1.8;
}


/* 開閉マーク */

#section3 .farewell-plan__toggle::before,
#section3 .farewell-plan__toggle::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 15px;
  height: 2px;
  border-radius: 2px;
  background: #568272;
  content: "";
  transform: translate(-50%, -50%);
  transition: transform 0.25s ease;
}

/* 閉じているとき：＋ */
#section3 .farewell-plan__toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

/* 開いているとき：－ */
#section3 .farewell-plan[open] .farewell-plan__toggle::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

/* トグルをボックス右端に固定 */
#section3 .farewell-plan__summary {
  position: relative;
  padding-right: 88px;
}

#section3 .farewell-plan__toggle {
  position: absolute !important;
  top: 50%;
  right: 24px;
  left: auto !important;
  z-index: 3;
  flex: none;
  transform: translateY(-50%);
}

@media (max-width: 600px) {
  #section3 .farewell-plan__summary {
    padding-right: 62px;
  }

  #section3 .farewell-plan__toggle {
    right: 16px;
  }
}

/* 折り畳み内部 */

#section3 .farewell-plan__body {
  padding: 42px 32px 34px;
}

#section3 .farewell-flow-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(175px, 1fr));
  gap: 28px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#section3 .farewell-flow-item {
  position: relative;
  min-width: 0;
}

/* ステップ間の矢印 */

#section3 .farewell-flow-item:not(:last-child)::after {
  position: absolute;
  top: 30px;
  right: -21px;
  z-index: 2;
  color: #89aa9d;
  content: "›";
  font-family: Arial, sans-serif;
  font-size: 26px;
  line-height: 1;
}

/* 番号 */

#section3 .farewell-flow-item__number {
  position: relative;
  z-index: 2;
  display: grid;
  width: 60px;
  height: 60px;
  margin: 0 auto -30px;
  place-items: center;
  border: 5px solid #ffffff;
  border-radius: 50%;
  color: #ffffff;
  background: #6f9989;
  box-shadow: 0 5px 14px rgba(59, 94, 80, 0.18);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 21px;
}

/* ステップカード */

#section3 .farewell-flow-item__content {
  height: calc(100% - 30px);
  min-height: 260px;
  padding: 50px 18px 22px;
  border: 1px solid #dfeae5;
  border-radius: 15px;
  background: #ffffff;
  text-align: left;
}

#section3 .farewell-flow-item__content h3 {
  margin: 0 0 14px;
  color: #36594d;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.55;
  text-align: center;
}

#section3 .farewell-flow-item__content p {
  margin: 0;
  color: #65736d;
  font-size: 13px;
  line-height: 1.9;
}

#section3 .farewell-flow-item__content a {
  color: #26775e;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

#section3 .farewell-flow-item__content a:hover {
  color: #194f3e;
}

/* 補足 */

#section3 .farewell-plan__note {
  margin: 26px 0 0;
  padding: 14px 18px;
  border-radius: 10px;
  color: #56655f;
  background: #f1f7f4;
  font-size: 13px;
  line-height: 1.8;
  text-align: center;
}

/* 持ち込み時の注意 */

#section3 .farewell-plan__caution {
  margin-top: 26px;
  padding: 18px 20px;
  border: 1px solid #e5d7b7;
  border-radius: 12px;
  background: #fffaf0;
}

#section3 .farewell-plan__caution strong {
  display: block;
  margin-bottom: 7px;
  color: #866a30;
  font-size: 14px;
}

#section3 .farewell-plan__caution p {
  margin: 0;
  color: #6d6453;
  font-size: 13px;
  line-height: 1.8;
}

/* タブレット */

@media (max-width: 980px) {
  #section3 .farewell-plan__summary-text {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  #section3 .farewell-plan__label,
  #section3 .farewell-plan__title,
  #section3 .farewell-plan__description {
    padding: 0;
    border: 0;
  }

  #section3 .farewell-plan__description {
    margin-top: 3px;
  }

  #section3 .farewell-flow-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 44px 24px;
  }

  #section3 .farewell-flow-item:not(:last-child)::after {
    display: none;
  }

  #section3 .farewell-flow-item__content {
    min-height: 215px;
  }
}

/* スマートフォン */

@media (max-width: 600px) {
  #section3.farewell-section {
    padding: 58px 15px;
  }

  #section3 .farewell-heading {
    margin-bottom: 28px;
  }

  #section3 .farewell-heading h2 {
    font-size: 25px;
  }

  #section3 .farewell-heading__lead {
    font-size: 14px;
  }

  #section3 .farewell-plan {
    border-radius: 14px;
  }

  #section3 .farewell-plan__summary {
    min-height: 0;
    padding: 20px 58px 20px 19px;
  }

  #section3 .farewell-plan__label {
    font-size: 11px;
  }

  #section3 .farewell-plan__title {
    font-size: 20px;
  }

  #section3 .farewell-plan__description {
    font-size: 12px;
    line-height: 1.65;
  }

  #section3 .farewell-plan__toggle {
    right: 16px;
    width: 32px;
    height: 32px;
  }

  #section3 .farewell-plan__body {
    padding: 30px 17px;
  }

  #section3 .farewell-flow-list {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  #section3 .farewell-flow-item:not(:last-child)::after {
    top: auto;
    right: auto;
    bottom: -34px;
    left: 50%;
    display: block;
    content: "⌄";
    transform: translateX(-50%);
  }

  #section3 .farewell-flow-item__number {
    width: 56px;
    height: 56px;
    margin-bottom: -28px;
    font-size: 19px;
  }

  #section3 .farewell-flow-item__content {
    min-height: 0;
    padding: 46px 19px 21px;
  }

  #section3 .farewell-flow-item__content h3 {
    margin-bottom: 10px;
    font-size: 16px;
  }

  #section3 .farewell-flow-item__content p {
    font-size: 13px;
  }

  #section3 .farewell-plan__note {
    text-align: left;
  }
}

#section4 .visit-fee__free-note {
  display: inline-block;
  margin: 14px auto 0;
  padding: 8px 16px;
  color: #34564d;
  background: #eef7f3;
  border: 1px solid #b8d7cc;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.6;
}

#section4 .visit-fee__note {
  margin-top: 9px;
}

#section3 .farewell-plan__stay {
  margin-top: 18px;
  padding: 18px 20px;
  border: 1px solid #d9e7e1;
  border-radius: 12px;
  background: #f5faf7;
}

#section3 .farewell-plan__stay strong {
  display: block;
  margin-bottom: 7px;
  color: #426b5c;
  font-size: 14px;
}

#section3 .farewell-plan__stay p {
  margin: 0;
  color: #5f6d67;
  font-size: 13px;
  line-height: 1.9;
}

#section3 .farewell-certificate {
  position: relative;
  margin-top: 28px;
  padding: 24px 26px;
  border: 1px solid #d9e7e1;
  border-radius: 14px;
  background: #ffffff;
  box-shadow: 0 8px 24px rgba(57, 84, 74, 0.06);
  text-align: center;
}

#section3 .farewell-certificate__label {
  margin: 0 0 6px;
  color: #78978b;
  font-size: 12px;
  letter-spacing: 0.12em;
}

#section3 .farewell-certificate h3 {
  margin: 0 0 10px;
  color: #36594d;
  font-size: 18px;
}

#section3 .farewell-certificate p:last-child {
  margin: 0;
  color: #63716b;
  font-size: 13px;
  line-height: 1.9;
}

@media (max-width: 600px) {
  #section3 .farewell-certificate {
    padding: 21px 18px;
    text-align: left;
  }
}


/* ========================================
   section2：訪問ペット火葬事業部について
======================================== */

#section2.about-story {
  --about-green: #55786c;
  --about-green-dark: #344f47;
  --about-green-light: #dce9e3;
  --about-cream: #f8f6ef;
  --about-text: #3d4844;
  --about-muted: #6e7a76;
  --spot-x: 82%;
  --spot-y: 14%;

  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 110px 24px 120px;
  color: var(--about-text);
  background:
    radial-gradient(
      circle at var(--spot-x) var(--spot-y),
      rgba(204, 229, 218, 0.72),
      transparent 28%
    ),
    linear-gradient(180deg, #fbfcfa 0%, #f5f8f6 55%, #faf8f2 100%);
}

#section2.about-story,
#section2.about-story * {
  box-sizing: border-box;
}

#section2 .about-story__ambient {
  position: absolute;
  top: -180px;
  right: -170px;
  z-index: -1;
  width: 500px;
  height: 500px;
  border: 1px solid rgba(91, 126, 113, 0.15);
  border-radius: 50%;
  pointer-events: none;
}

#section2 .about-story__ambient::before,
#section2 .about-story__ambient::after {
  position: absolute;
  content: "";
  border: 1px solid rgba(91, 126, 113, 0.11);
  border-radius: 50%;
}

#section2 .about-story__ambient::before {
  inset: 55px;
}

#section2 .about-story__ambient::after {
  inset: 120px;
  background: rgba(255, 255, 255, 0.18);
}

#section2 .about-story__inner {
  position: relative;
  z-index: 1;
  width: min(1080px, 100%);
  margin: 0 auto;
}

/* 見出し */

#section2 .about-story__heading {
  max-width: 820px;
  margin: 0 auto 54px;
  text-align: center;
}

#section2 .about-story__eyebrow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin: 0 0 24px;
  color: var(--about-green);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.15em;
}

#section2 .about-story__eyebrow::before,
#section2 .about-story__eyebrow::after {
  width: 42px;
  height: 1px;
  content: "";
  background: rgba(85, 120, 108, 0.42);
}

#section2 .about-story__heading h2 {
  margin: 0;
  color: var(--about-green-dark);
  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Noto Serif JP",
    serif;
  font-size: clamp(32px, 5vw, 58px);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.045em;
}

#section2 .about-story__heading h2 span {
  display: block;
}

#section2 .about-story__heading h2 span:last-child {
  color: #698d80;
}

#section2 .about-story__heading-lead {
  margin: 28px 0 0;
  color: var(--about-muted);
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.08em;
}

/* 導入文 */

#section2 .about-story__introduction {
  max-width: 820px;
  margin: 0 auto 55px;
  text-align: center;
}

#section2 .about-story__introduction p {
  margin: 0;
  font-size: 16px;
  line-height: 2.15;
  letter-spacing: 0.035em;
}

#section2 .about-story__introduction p + p {
  margin-top: 22px;
}

#section2 .about-story__introduction strong {
  color: var(--about-green-dark);
  font-size: 1.12em;
  font-weight: 700;
}

/* 4つの想い */

#section2 .about-story__voices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  max-width: 920px;
  margin: 0 auto;
}

#section2 .about-story__voice {
  position: relative;
  display: flex;
  min-height: 190px;
  align-items: center;
  padding: 38px 38px 34px 94px;
  overflow: hidden;
  border: 1px solid rgba(99, 130, 119, 0.16);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 16px 45px rgba(57, 77, 69, 0.07);
  backdrop-filter: blur(8px);
  transition:
    transform 0.35s ease,
    border-color 0.35s ease,
    box-shadow 0.35s ease;
}

#section2 .about-story__voice::after {
  position: absolute;
  right: 20px;
  bottom: -42px;
  color: rgba(89, 125, 111, 0.07);
  display: none;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 170px;
  line-height: 1;
  pointer-events: none;
}

#section2 .about-story__voice-number {
  position: absolute;
  top: 50%;
  left: 30px;
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 1px solid rgba(85, 120, 108, 0.28);
  border-radius: 50%;
  color: var(--about-green);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  transform: translateY(-50%);
}

#section2 .about-story__voice p {
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: 0.035em;
}

#section2 .about-story__voice strong {
  color: var(--about-green-dark);
  font-weight: 700;
}

@media (hover: hover) and (pointer: fine) {
  #section2 .about-story__voice:hover {
    border-color: rgba(85, 120, 108, 0.35);
    box-shadow: 0 22px 55px rgba(57, 77, 69, 0.12);
    transform: translateY(-5px);
  }
}

/* つなぎ */

#section2 .about-story__bridge {
  display: grid;
  grid-template-columns: minmax(30px, 1fr) auto minmax(30px, 1fr);
  gap: 24px;
  align-items: center;
  max-width: 780px;
  margin: 74px auto;
}

#section2 .about-story__bridge span {
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(85, 120, 108, 0.36)
  );
}

#section2 .about-story__bridge span:last-child {
  background: linear-gradient(
    90deg,
    rgba(85, 120, 108, 0.36),
    transparent
  );
}

#section2 .about-story__bridge p {
  margin: 0;
  color: var(--about-green-dark);
  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    "Noto Serif JP",
    serif;
  font-size: clamp(18px, 2.4vw, 24px);
  letter-spacing: 0.08em;
  text-align: center;
}

/* 古屋鋪の背景 */

#section2 .about-story__origin {
  position: relative;
  display: grid;
  grid-template-columns: 0.85fr 1.25fr;
  gap: 70px;
  padding: 72px;
  overflow: hidden;
  border-radius: 34px;
  color: #fff;
  background:
    radial-gradient(
      circle at 12% 0%,
      rgba(255, 255, 255, 0.14),
      transparent 30%
    ),
    linear-gradient(135deg, #46675c 0%, #304c43 100%);
  box-shadow: 0 24px 70px rgba(42, 67, 58, 0.2);
}

#section2 .about-story__origin::after {
  position: absolute;
  right: -110px;
  bottom: -170px;
  width: 390px;
  height: 390px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  content: "";
}

#section2 .about-story__origin-heading,
#section2 .about-story__origin-body {
  position: relative;
  z-index: 1;
}

#section2 .about-story__origin-label,
#section2 .about-story__promise-label {
  margin: 0 0 18px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

#section2 .about-story__origin-label {
  color: #cadfd6;
}

#section2 .about-story__origin h3 {
  margin: 0;
  color: #fff;
  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    "Noto Serif JP",
    serif;
  font-size: clamp(26px, 3.2vw, 38px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

#section2 .about-story__origin-body p {
  margin: 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: 15px;
  line-height: 2.15;
  letter-spacing: 0.035em;
}

#section2 .about-story__origin-body p + p {
  margin-top: 20px;
}

#section2 .about-story__origin-body strong {
  color: #fff;
  font-weight: 700;
}

/* 約束 */

#section2 .about-story__promise {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  gap: 34px;
  max-width: 900px;
  margin: 82px auto 0;
  padding: 48px 50px;
  border: 1px solid rgba(90, 124, 111, 0.2);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.68);
  box-shadow: 0 18px 55px rgba(57, 77, 69, 0.07);
}

#section2 .about-story__promise-mark {
  display: grid;
  width: 76px;
  height: 76px;
  place-items: center;
  border: 1px solid rgba(85, 120, 108, 0.28);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
}

#section2 .about-story__promise-mark i {
  color: #779b8e;
  font-size: 28px;
  line-height: 1;
}

#section2 .about-story__promise-label {
  color: var(--about-green);
}

#section2 .about-story__promise h3 {
  margin: 0 0 22px;
  color: var(--about-green-dark);
  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    "Noto Serif JP",
    serif;
  font-size: clamp(24px, 3vw, 34px);
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: 0.045em;
}

#section2 .about-story__promise-content > p:not(.about-story__promise-label) {
  margin: 0;
  font-size: 15px;
  line-height: 2.1;
  letter-spacing: 0.035em;
}

#section2 .about-story__promise-closing {
  margin-top: 22px !important;
  padding-top: 22px;
  border-top: 1px solid rgba(85, 120, 108, 0.18);
  color: var(--about-green-dark);
  font-weight: 600;
}

/* スクロール表示演出 */

#section2.about-story.is-motion-enabled [data-reveal] {
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity 0.85s ease var(--reveal-delay, 0ms),
    transform 0.85s cubic-bezier(0.22, 1, 0.36, 1)
      var(--reveal-delay, 0ms);
}

#section2.about-story.is-motion-enabled [data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* タブレット・スマートフォン */

@media (max-width: 800px) {
  #section2.about-story {
    padding: 82px 20px 90px;
  }

  #section2 .about-story__voices {
    grid-template-columns: 1fr;
  }

  #section2 .about-story__voice {
    min-height: 160px;
  }

  #section2 .about-story__origin {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 52px 40px;
  }

  #section2 .about-story__origin h3 br {
    display: none;
  }

  #section2 .about-story__promise {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  #section2.about-story {
    padding: 68px 16px 76px;
  }

  #section2 .about-story__heading {
    margin-bottom: 38px;
  }

  #section2 .about-story__eyebrow {
    font-size: 11px;
    line-height: 1.7;
    letter-spacing: 0.1em;
  }

  #section2 .about-story__eyebrow::before,
  #section2 .about-story__eyebrow::after {
    width: 22px;
  }

  #section2 .about-story__heading h2 {
    font-size: 31px;
    line-height: 1.55;
    letter-spacing: 0.025em;
  }

  #section2 .about-story__heading-lead {
    margin-top: 20px;
    font-size: 14px;
  }

  #section2 .about-story__introduction {
    margin-bottom: 40px;
    text-align: left;
  }

  #section2 .about-story__introduction p {
    font-size: 14px;
    line-height: 2;
  }

  #section2 .about-story__voice {
    min-height: 148px;
    padding: 30px 24px 28px 78px;
    border-radius: 20px;
  }

  #section2 .about-story__voice-number {
    left: 20px;
    width: 42px;
    height: 42px;
  }

  #section2 .about-story__voice p {
    font-size: 14px;
    line-height: 1.85;
  }

  #section2 .about-story__bridge {
    grid-template-columns: 1fr;
    gap: 16px;
    margin: 54px auto;
  }

  #section2 .about-story__bridge span {
    width: 70px;
    margin: 0 auto;
    background: rgba(85, 120, 108, 0.3);
  }

  #section2 .about-story__bridge span:last-child {
    background: rgba(85, 120, 108, 0.3);
  }

  #section2 .about-story__bridge p {
    font-size: 18px;
    line-height: 1.8;
  }

  #section2 .about-story__origin {
    gap: 26px;
    padding: 40px 24px;
    border-radius: 25px;
  }

  #section2 .about-story__origin h3 {
    font-size: 26px;
  }

  #section2 .about-story__origin-body p {
    font-size: 14px;
    line-height: 2;
  }

  #section2 .about-story__promise {
    gap: 24px;
    margin-top: 54px;
    padding: 34px 24px;
    border-radius: 24px;
  }

  #section2 .about-story__promise-mark {
    width: 64px;
    height: 64px;
  }

  #section2 .about-story__promise-content > p:not(.about-story__promise-label) {
    font-size: 14px;
    line-height: 2;
  }
}

@media (prefers-reduced-motion: reduce) {
  #section2.about-story,
  #section2.about-story * {
    scroll-behavior: auto !important;
    animation: none !important;
    transition: none !important;
  }
}

/* ========================================
   ペットが亡くなったら：ページ専用
   style2.cssの後に読み込む
======================================== */

#jyunbi.jyunbi-page,
#jyunbi.jyunbi-page * {
  box-sizing: border-box;
}

#jyunbi.jyunbi-page::before,
#jyunbi.jyunbi-page::after,
#jyunbi .jyunbi-block::before,
#jyunbi .jyunbi-block::after {
  content: none !important;
}

#jyunbi.jyunbi-page {
  position: relative;
  z-index: 2;
  width: min(1120px, calc(100% - 40px));
  max-width: none;
  margin: 0 auto 56px;
  padding: 70px 40px 90px;
  border-radius: 0 0 26px 26px;
  color: #3f4b47;
  background: #f7faf8;
  box-shadow: 0 14px 36px rgba(42, 70, 58, 0.12);
  letter-spacing: 0;
  text-indent: 0;
  line-height: 1.9;
}

#jyunbi p,
#jyunbi li {
  color: #4d5a55;
  letter-spacing: 0;
  text-indent: 0;
  line-height: 1.9;
}

#jyunbi a {
  color: #477b68;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

#jyunbi a:hover {
  color: #2f5e4e;
}

/* ページ見出し */

#jyunbi .jyunbi-heading {
  max-width: 850px;
  margin: 0 auto 42px;
  text-align: center;
}

#jyunbi .jyunbi-heading__en {
  margin: 0 0 8px;
  color: #789a8d;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

#jyunbi .jyunbi-heading h2 {
  margin: 0 0 22px;
  padding: 0;
  border: 0;
  color: #35443f;
  font-size: clamp(29px, 4vw, 42px);
  line-height: 1.4;
  text-align: center;
}

#jyunbi .jyunbi-heading__lead {
  margin: 0;
  color: #46544f;
  font-size: 16px;
  line-height: 2;
}

#jyunbi .jyunbi-heading__note {
  margin: 22px 0 0;
  padding: 14px 20px;
  border: 1px solid #e0e9e5;
  border-radius: 11px;
  color: #68736f;
  background: #fff;
  font-size: 13px;
  line-height: 1.8;
}

/* 最初の3つ */

#jyunbi .jyunbi-first {
  position: relative;
  margin: 0 0 30px;
  padding: 38px;
  overflow: hidden;
  border: 1px solid #dce9e3;
  border-radius: 24px;
  background:
    radial-gradient(
      circle at right top,
      rgba(194, 224, 209, 0.42),
      transparent 34%
    ),
    #f8fbf9;
}

#jyunbi .jyunbi-first__head {
  margin-bottom: 28px;
  text-align: center;
}

#jyunbi .jyunbi-first__head > span {
  display: inline-block;
  margin-bottom: 8px;
  color: #6f9284;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

#jyunbi .jyunbi-first__head h3 {
  margin: 0;
  padding: 0;
  border: 0;
  color: #35443f;
  font-size: clamp(21px, 3vw, 28px);
  line-height: 1.5;
  text-align: center;
}

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

#jyunbi .jyunbi-first-card {
  min-width: 0;
  padding: 27px 24px 24px;
  border: 1px solid rgba(218, 229, 224, 0.72);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(53, 78, 67, 0.07);
}

#jyunbi .jyunbi-first-card__number {
  display: flex;
  width: 42px;
  height: 42px;
  margin-bottom: 18px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #fff;
  background: #7ea393;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  letter-spacing: 0.04em;
}

#jyunbi .jyunbi-first-card h4 {
  margin: 0 0 10px;
  color: #35443f;
  font-size: 18px;
  font-weight: 600;
}

#jyunbi .jyunbi-first-card p {
  margin: 0;
  color: #5e6a66;
  font-size: 14px;
}

/* 電話・動画 */

#jyunbi .jyunbi-support-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 24px;
  margin-bottom: 42px;
}

#jyunbi .jyunbi-call,
#jyunbi .jyunbi-video-card {
  min-width: 0;
  padding: 31px;
  border-radius: 20px;
}

#jyunbi .jyunbi-call {
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: #fff;
  background: linear-gradient(145deg, #668e7f, #476f61);
  text-align: center;
}

#jyunbi .jyunbi-support-label {
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

#jyunbi .jyunbi-call .jyunbi-support-label,
#jyunbi .jyunbi-call h3,
#jyunbi .jyunbi-call__hours {
  color: #fff;
}

#jyunbi .jyunbi-call h3 {
  margin: 0 0 22px;
  padding: 0;
  border: 0;
  font-size: 19px;
  line-height: 1.7;
}

#jyunbi a.jyunbi-tel {
  display: flex;
  padding: 14px 18px;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border-radius: 999px;
  color: #3e6658;
  background: #fff;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

#jyunbi a.jyunbi-tel:hover {
  color: #315a4c;
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(29, 61, 49, 0.2);
}

#jyunbi .jyunbi-tel__label {
  padding: 3px 8px;
  border-radius: 999px;
  color: #fff;
  background: #749989;
  font-size: 11px;
  font-weight: 700;
}

#jyunbi .jyunbi-tel__number {
  font-family: Arial, sans-serif;
  font-size: clamp(20px, 3vw, 28px);
  font-weight: 700;
  letter-spacing: 0.03em;
}

#jyunbi .jyunbi-call__hours {
  margin: 16px 0 0;
  font-size: 12px;
  line-height: 1.7;
}

#jyunbi .jyunbi-video-card {
  border: 1px solid #e1e8e4;
  background: #fff;
  box-shadow: 0 10px 30px rgba(58, 76, 68, 0.07);
}

#jyunbi .jyunbi-video-card__head {
  margin-bottom: 18px;
}

#jyunbi .jyunbi-video-card__head .jyunbi-support-label {
  color: #789a8d;
}

#jyunbi .jyunbi-video-card h3 {
  margin: 0 0 6px;
  padding: 0;
  border: 0;
  color: #35443f;
  font-size: 20px;
}

#jyunbi .jyunbi-video-card__head > p:last-child {
  margin: 0;
  color: #68736f;
  font-size: 13px;
}

#jyunbi .jyunbi-video {
  position: relative;
  overflow: hidden;
  border-radius: 14px;
  aspect-ratio: 16 / 9;
  background: #dde5e1;
}

#jyunbi .jyunbi-video iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ページ内メニュー */

#jyunbi .jyunbi-index {
  margin: 0 0 58px;
  padding: 25px;
  border: 1px solid #dfe9e4;
  border-radius: 18px;
  background: #eef5f1;
}

#jyunbi .jyunbi-index__title {
  margin: 0 0 15px;
  color: #4b645a;
  font-size: 14px;
  font-weight: 700;
  text-align: center;
}

#jyunbi .jyunbi-index__links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

#jyunbi .jyunbi-index__links a {
  display: flex;
  min-width: 0;
  padding: 12px 13px;
  align-items: center;
  gap: 9px;
  border: 1px solid #dbe6e1;
  border-radius: 10px;
  color: #43564f;
  background: #fff;
  font-size: 13px;
  line-height: 1.5;
  text-decoration: none;
}

#jyunbi .jyunbi-index__links a:hover {
  border-color: #9ebcaf;
  background: #f9fcfa;
}

#jyunbi .jyunbi-index__links span {
  flex: 0 0 auto;
  color: #789a8d;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 700;
}

/* 詳細 */

#jyunbi .jyunbi-detail-heading,
#jyunbi .jyunbi-section-heading {
  margin: 0 0 28px;
  text-align: center;
}

#jyunbi .jyunbi-detail-heading > p,
#jyunbi .jyunbi-section-heading > p {
  margin: 0 0 6px;
  color: #789a8d;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

#jyunbi .jyunbi-detail-heading h3,
#jyunbi .jyunbi-section-heading h3 {
  margin: 0 0 8px;
  padding: 0;
  border: 0;
  color: #35443f;
  font-size: clamp(22px, 3vw, 30px);
  text-align: center;
}

#jyunbi .jyunbi-detail-heading > span {
  color: #71807a;
  font-size: 14px;
}

#jyunbi .jyunbi-block {
  position: relative;
  margin: 0 0 24px;
  padding: 0;
  overflow: visible;
  scroll-margin-top: 24px;
  border: 1px solid #dfe8e4;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 8px 26px rgba(57, 76, 68, 0.06);
}

#jyunbi .jyunbi-block-inner {
  position: relative;
  z-index: 1;
  padding: 34px 38px;
}

#jyunbi .jyunbi-block__heading {
  display: flex;
  margin-bottom: 24px;
  padding-bottom: 17px;
  align-items: center;
  gap: 14px;
  border-bottom: 1px solid #e6ece9;
}

#jyunbi .jyunbi-block__heading > span {
  display: flex;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #fff;
  background: #789a8d;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
}

#jyunbi .jyunbi-block__heading h3 {
  margin: 0;
  padding: 0;
  border: 0;
  color: #3e5f53;
  font-size: 22px;
  line-height: 1.5;
}

#jyunbi .jyunbi-block__lead {
  margin: 0 0 22px;
  padding: 15px 18px;
  border-left: 3px solid #91ad9f;
  border-radius: 0 9px 9px 0;
  background: #f3f7f5;
}

#jyunbi .jyunbi-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

#jyunbi .jyunbi-list > li {
  position: relative;
  margin: 0;
  padding: 0 0 20px 22px;
  list-style: none;
}

#jyunbi .jyunbi-list > li:last-child {
  padding-bottom: 0;
}

#jyunbi .jyunbi-list > li::before {
  content: "";
  position: absolute;
  top: 0.72em;
  left: 2px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #7ea393;
}

#jyunbi .jyunbi-list strong {
  display: block;
  margin-bottom: 4px;
  color: #3c4e47;
  font-size: 16px;
  font-weight: 700;
}

#jyunbi .jyunbi-list p {
  margin: 0;
}

#jyunbi .jyunbi-item-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

#jyunbi .jyunbi-item-grid article {
  padding: 19px;
  border: 1px solid #e1e9e5;
  border-radius: 13px;
  background: #f8fbf9;
}

#jyunbi .jyunbi-item-grid h4 {
  margin: 0 0 7px;
  color: #3e5f53;
  font-size: 16px;
  font-weight: 700;
}

#jyunbi .jyunbi-item-grid p {
  margin: 0;
  font-size: 14px;
}

#jyunbi .jyunbi-notice {
  margin: 20px 0 0;
  padding: 15px 18px;
  border: 1px solid #e8dfc9;
  border-radius: 11px;
  background: #fffaf0;
  font-size: 13px;
}

#jyunbi .jyunbi-cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

#jyunbi .jyunbi-col {
  padding: 23px;
  border-radius: 14px;
}

#jyunbi .jyunbi-col--okay {
  border: 1px solid #d8e9e1;
  border-top: 4px solid #75a18e;
  background: #f4faf7;
}

#jyunbi .jyunbi-col--caution {
  border: 1px solid #eadeda;
  border-top: 4px solid #c18a73;
  background: #fcf7f5;
}

#jyunbi .jyunbi-col h4 {
  margin: 0 0 16px;
  color: #3e514a;
  font-size: 18px;
  font-weight: 700;
}

#jyunbi .jyunbi-col ul {
  margin: 0;
  padding-left: 1.3em;
}

#jyunbi .jyunbi-col li {
  margin-bottom: 13px;
}

#jyunbi .jyunbi-col li:last-child {
  margin-bottom: 0;
}

#jyunbi .jyunbi-col li p {
  margin: 5px 0 0;
}

#jyunbi .jyunbi-check-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
  margin: 0 0 22px;
  padding: 0;
  list-style: none;
}

#jyunbi .jyunbi-check-list li {
  position: relative;
  margin: 0;
  padding: 14px 14px 14px 42px;
  border: 1px solid #e0e9e4;
  border-radius: 11px;
  background: #f7faf8;
  list-style: none;
}

#jyunbi .jyunbi-check-list li::before {
  content: "✓";
  position: absolute;
  top: 13px;
  left: 15px;
  color: #67917f;
  font-size: 17px;
  font-weight: 700;
}

#jyunbi .jyunbi-cta {
  margin: 27px 0 0;
  text-align: center;
}

#jyunbi a.jyunbi-btn {
  display: inline-flex;
  min-height: 52px;
  padding: 12px 27px;
  align-items: center;
  justify-content: center;
  border: 1px solid #a90a36;
  border-radius: 999px;
  color: #fff;
  background: #c90b3f;
  box-shadow: 0 7px 18px rgba(131, 12, 47, 0.18);
  font-weight: 700;
  text-decoration: none;
}

#jyunbi a.jyunbi-btn:hover {
  color: #fff;
  background: #a90a36;
  transform: translateY(-1px);
}

/* FAQ */

#jyunbi .jyunbi-faq {
  margin: 66px 0 0;
  scroll-margin-top: 24px;
}

#jyunbi .jyunbi-faq__list {
  display: grid;
  gap: 12px;
}

#jyunbi .jyunbi-faq__item {
  overflow: hidden;
  border: 1px solid #dfe8e4;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(57, 76, 68, 0.04);
}

#jyunbi .jyunbi-faq__item summary {
  position: relative;
  display: flex;
  min-height: 70px;
  padding: 17px 58px 17px 19px;
  align-items: center;
  gap: 13px;
  color: #3d4e47;
  cursor: pointer;
  font-weight: 600;
  list-style: none;
}

#jyunbi .jyunbi-faq__item summary::-webkit-details-marker {
  display: none;
}

#jyunbi .jyunbi-faq__item summary::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 20px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  color: #55796b;
  background: #edf4f0;
  font-size: 21px;
  font-weight: 400;
  line-height: 28px;
  text-align: center;
  transform: translateY(-50%);
}

#jyunbi .jyunbi-faq__item[open] summary::after {
  content: "−";
}

#jyunbi .jyunbi-faq__mark {
  display: flex;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #fff;
  background: #789a8d;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
}

#jyunbi .jyunbi-faq__mark--answer {
  color: #53766a;
  background: #e7f0eb;
}

#jyunbi .jyunbi-faq__answer {
  display: flex;
  padding: 19px;
  gap: 13px;
  border-top: 1px solid #e7ece9;
  background: #f8fbf9;
}

#jyunbi .jyunbi-faq__answer p {
  margin: 1px 0 0;
}

/* メッセージ */

#jyunbi .jyunbi-message {
  position: relative;
  margin: 66px 0 0;
  padding: 44px clamp(24px, 6vw, 70px);
  overflow: hidden;
  border: 1px solid #d9e6df;
  border-radius: 22px;
  background:
    radial-gradient(
      circle at left bottom,
      rgba(194, 224, 209, 0.5),
      transparent 38%
    ),
    #fff;
  text-align: center;
}

#jyunbi .jyunbi-message__en {
  margin: 0 0 6px;
  color: #789a8d;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

#jyunbi .jyunbi-message h3 {
  margin: 0 0 24px;
  padding: 0;
  border: 0;
  color: #35443f;
  font-size: clamp(22px, 3vw, 29px);
}

#jyunbi .jyunbi-message > p:not(.jyunbi-message__en):not(.jyunbi-message__signature) {
  max-width: 770px;
  margin: 0 auto 15px;
  text-align: left;
}

#jyunbi .jyunbi-message__signature {
  margin: 28px 0 0;
  color: #5b6d65;
  font-size: 13px;
  line-height: 1.7;
  text-align: right;
}

/* スマートフォン */

@media (max-width: 800px) {
  #jyunbi.jyunbi-page {
    width: min(100% - 28px, 1120px);
    margin-bottom: 40px;
    padding: 52px 18px 68px;
    border-radius: 0 0 20px 20px;
  }

  #jyunbi .jyunbi-heading {
    margin-bottom: 32px;
  }

  #jyunbi .jyunbi-heading__lead br,
  #jyunbi .jyunbi-heading__note br,
  #jyunbi .jyunbi-call h3 br {
    display: none;
  }

  #jyunbi .jyunbi-first {
    padding: 27px 17px;
    border-radius: 18px;
  }

  #jyunbi .jyunbi-first__cards,
  #jyunbi .jyunbi-support-grid,
  #jyunbi .jyunbi-cols,
  #jyunbi .jyunbi-item-grid,
  #jyunbi .jyunbi-check-list {
    grid-template-columns: 1fr;
  }

  #jyunbi .jyunbi-first-card {
    padding: 22px 20px;
  }

  #jyunbi .jyunbi-call,
  #jyunbi .jyunbi-video-card {
    padding: 24px 20px;
  }

  #jyunbi a.jyunbi-tel {
    flex-direction: column;
    gap: 4px;
  }

  #jyunbi .jyunbi-index {
    margin-bottom: 48px;
    padding: 19px 15px;
  }

  #jyunbi .jyunbi-index__links {
    grid-template-columns: 1fr;
  }

  #jyunbi .jyunbi-block-inner {
    padding: 26px 20px;
  }

  #jyunbi .jyunbi-block__heading {
    align-items: flex-start;
  }

  #jyunbi .jyunbi-block__heading h3 {
    padding-top: 5px;
    font-size: 19px;
  }

  #jyunbi .jyunbi-faq {
    margin-top: 54px;
  }

  #jyunbi .jyunbi-faq__item summary {
    padding: 15px 52px 15px 15px;
    align-items: flex-start;
  }

  #jyunbi .jyunbi-faq__item summary::after {
    right: 14px;
  }

  #jyunbi .jyunbi-faq__answer {
    padding: 17px 15px;
  }

  #jyunbi .jyunbi-message {
    margin-top: 54px;
    padding: 34px 20px;
  }

  #jyunbi .jyunbi-message__signature {
    text-align: left;
  }
}

@media (prefers-reduced-motion: reduce) {
  #jyunbi *,
  #jyunbi *::before,
  #jyunbi *::after {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}


/* ========================================
   火葬車ページ
======================================== */

#section6.vehicle-section {
  --vehicle-green: #426f59;
  --vehicle-green-dark: #2f5141;
  --vehicle-green-light: #e7f0e9;
  --vehicle-cream: #fbfaf6;
  --vehicle-text: #35463f;
  --vehicle-muted: #68776f;
  --vehicle-border: #d8e2dc;
  --vehicle-red: #8b1e2d;

  min-height: auto;
  margin: 0 0 50px;
  padding: 0 0 100px;
  overflow: hidden;
  color: var(--vehicle-text);
  background: #f5f8f5;
  line-height: 1.9;
  text-indent: 0;
  letter-spacing: 0.03em;
}

#section6.vehicle-section,
#section6.vehicle-section * {
  box-sizing: border-box;
}

#section6.vehicle-section::before,
#section6.vehicle-section::after {
  display: none;
}

#section6.vehicle-section p,
#section6.vehicle-section li {
  text-shadow: none;
}

#section6.vehicle-section img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 0;
}

#section6.vehicle-section a {
  color: inherit;
}

#section6 .vehicle-inner {
  width: min(1080px, calc(100% - 40px));
  margin: 0 auto;
}

#section6 .vehicle-content {
  padding: 80px 0;
  scroll-margin-top: 24px;
}

#section6 .vehicle-content + .vehicle-content {
  border-top: 1px solid var(--vehicle-border);
}

/* ファーストビュー */

#section6 .vehicle-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(420px, 1.08fr);
  align-items: center;
  gap: clamp(30px, 5vw, 72px);
  min-height: 700px;
  padding: 70px max(40px, 6vw);
  background:
    radial-gradient(
      circle at 84% 20%,
      rgba(255, 255, 255, 0.9),
      transparent 28%
    ),
    linear-gradient(135deg, #edf4ef 0%, #dceadd 100%);
}

#section6 .vehicle-eyebrow,
#section6 .vehicle-heading__en {
  margin: 0 0 8px;
  color: #648573;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

#section6 .vehicle-hero h2 {
  margin: 0 0 24px;
  color: var(--vehicle-green-dark);
  font-size: clamp(32px, 4vw, 54px);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.06em;
}

#section6 .vehicle-hero h2 span {
  color: var(--vehicle-green);
}

#section6 .vehicle-hero__lead {
  margin: 0;
  color: #465950;
  font-size: 16px;
  line-height: 2;
}

#section6 .vehicle-hero__points {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}

#section6 .vehicle-hero__points li {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 13px;
  color: var(--vehicle-green-dark);
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(66, 111, 89, 0.2);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
}

#section6 .vehicle-hero__points i {
  color: var(--vehicle-green);
}

#section6 .vehicle-hero__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}

#section6 .vehicle-button {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  padding: 12px 23px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
  transition:
    transform 0.2s ease,
    background-color 0.2s ease,
    color 0.2s ease;
}

#section6 .vehicle-button:hover {
  transform: translateY(-2px);
}

#section6 .vehicle-button--primary {
  color: #ffffff;
  background: var(--vehicle-green-dark);
}

#section6 .vehicle-button--outline {
  color: var(--vehicle-green-dark);
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid var(--vehicle-green);
}

#section6 .vehicle-hero__visual {
  position: relative;
  min-width: 0;
  padding-top: 80px;
}

/* 訪問ルートイラスト */

#section6 .vehicle-hero__visual {
  position: relative;
  min-width: 0;
  padding-top: 30px;
  text-align: center;
}

#section6 .vehicle-hero__area {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
  padding: 9px 17px;
  color: #355d49;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(83, 125, 103, 0.25);
  border-radius: 999px;
  box-shadow: 0 7px 20px rgba(38, 68, 52, 0.09);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
}

#section6 .vehicle-hero__area i {
  color: #6f9c83;
}

#section6 .vehicle-hero__car {
  display: block;
  width: min(590px, 100%);
  height: auto;
  margin: 0 auto;
  filter: drop-shadow(0 25px 20px rgba(30, 58, 43, 0.22));
}

@media (max-width: 768px) {
  #section6 .vehicle-hero__visual {
    padding-top: 10px;
  }

  #section6 .vehicle-hero__area {
    margin-bottom: 8px;
    padding: 8px 14px;
    font-size: 12px;
  }

  #section6 .vehicle-hero__car {
    width: min(440px, 100%);
  }
}

/* ページ内メニュー */

#section6 .vehicle-anchor-nav {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  width: min(960px, calc(100% - 40px));
  margin: -28px auto 0;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid var(--vehicle-border);
  border-radius: 15px;
  box-shadow: 0 12px 32px rgba(49, 76, 62, 0.12);
}

#section6 .vehicle-anchor-nav a {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: center;
  padding: 10px;
  color: var(--vehicle-green-dark);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
}

#section6 .vehicle-anchor-nav a + a {
  border-left: 1px solid var(--vehicle-border);
}

#section6 .vehicle-anchor-nav a:hover {
  background: var(--vehicle-green-light);
}

/* 見出し */

#section6 .vehicle-heading {
  max-width: 760px;
  margin: 0 auto 38px;
  text-align: center;
}

#section6 .vehicle-heading h3,
#section6 .vehicle-casket h3,
#section6 .vehicle-bottom-cta h3 {
  margin: 0 0 14px;
  color: var(--vehicle-green-dark);
  font-size: clamp(24px, 3vw, 34px);
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: 0.06em;
}

#section6 .vehicle-heading > p:last-child {
  margin: 0;
  color: var(--vehicle-muted);
}

/* 特徴 */

#section6 .vehicle-feature-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

#section6 .vehicle-feature-card {
  position: relative;
  min-width: 0;
  padding: 28px 22px;
  background: #ffffff;
  border: 1px solid var(--vehicle-border);
  border-radius: 18px;
  box-shadow: 0 10px 25px rgba(55, 79, 66, 0.07);
}

#section6 .vehicle-feature-card__number {
  position: absolute;
  top: 17px;
  right: 18px;
  color: #bdcfc4;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
  line-height: 1;
}

#section6 .vehicle-feature-card > i {
  display: grid;
  width: 46px;
  height: 46px;
  margin-bottom: 20px;
  place-items: center;
  color: #ffffff;
  background: var(--vehicle-green);
  border-radius: 50%;
  font-size: 18px;
}

#section6 .vehicle-feature-card h4 {
  margin: 0 0 10px;
  color: var(--vehicle-green-dark);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.55;
}

#section6 .vehicle-feature-card p {
  margin: 0;
  color: var(--vehicle-muted);
  font-size: 13px;
  line-height: 1.85;
}

/* 火葬場所 */

#section6 .vehicle-place__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  align-items: start;
  gap: 30px;
}

#section6 .vehicle-step-list {
  display: grid;
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#section6 .vehicle-step-list li {
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 18px;
  padding: 22px;
  background: #ffffff;
  border: 1px solid var(--vehicle-border);
  border-radius: 15px;
}

#section6 .vehicle-step-list li > span {
  display: grid;
  width: 54px;
  height: 54px;
  place-items: center;
  color: #ffffff;
  background: var(--vehicle-green);
  border-radius: 50%;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 16px;
}

#section6 .vehicle-step-list h4,
#section6 .vehicle-place__note h4 {
  margin: 0 0 5px;
  color: var(--vehicle-green-dark);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
}

#section6 .vehicle-step-list p,
#section6 .vehicle-place__note p {
  margin: 0;
  color: var(--vehicle-muted);
  font-size: 13px;
  line-height: 1.85;
}

#section6 .vehicle-place__note {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 16px;
  padding: 27px;
  background: #edf4ef;
  border-radius: 18px;
}

#section6 .vehicle-place__note > i {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  color: var(--vehicle-green);
  background: #ffffff;
  border-radius: 50%;
}

#section6 .vehicle-place__note a,
#section6 .vehicle-text-link,
#section6 .vehicle-faq__more a {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 17px;
  color: var(--vehicle-green-dark);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}

/* 一緒に入れられるもの */

#section6 .vehicle-item-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

#section6 .vehicle-item-card {
  padding: 29px;
  background: #ffffff;
  border: 1px solid var(--vehicle-border);
  border-radius: 18px;
}

#section6 .vehicle-item-card--ok {
  border-top: 5px solid #5b8c6e;
}

#section6 .vehicle-item-card--ng {
  border-top: 5px solid #9d6565;
}

#section6 .vehicle-item-card h4 {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 18px;
  color: var(--vehicle-green-dark);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
}

#section6 .vehicle-item-card h4 i {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  color: #ffffff;
  border-radius: 50%;
  font-size: 14px;
}

#section6 .vehicle-item-card--ok h4 i {
  background: #5b8c6e;
}

#section6 .vehicle-item-card--ng h4 i {
  background: #9d6565;
}

#section6 .vehicle-item-card ul {
  margin: 0 0 18px;
  padding-left: 1.3em;
}

#section6 .vehicle-item-card li {
  margin-bottom: 6px;
  color: #46564f;
  list-style: disc;
}

#section6 .vehicle-item-card p,
#section6 .vehicle-items__annotation {
  margin: 0;
  color: var(--vehicle-muted);
  font-size: 12px;
  line-height: 1.85;
}

#section6 .vehicle-items__annotation {
  margin-top: 15px;
  text-align: center;
}

/* かご棺 */

#section6 .vehicle-casket {
  display: grid;
  grid-template-columns: minmax(300px, 0.9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: clamp(30px, 6vw, 70px);
  margin: 20px 0 80px;
  padding: clamp(30px, 5vw, 58px);
  background: var(--vehicle-cream);
  border: 1px solid #e5dfd1;
  border-radius: 24px;
  scroll-margin-top: 24px;
}

#section6 .vehicle-casket__image {
  overflow: hidden;
  background: #ffffff;
  border-radius: 18px;
}

#section6 .vehicle-casket__image img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

#section6 .vehicle-casket__content > p:not(.vehicle-heading__en) {
  margin: 0 0 17px;
  color: var(--vehicle-muted);
}

#section6 .vehicle-casket__content ul {
  margin: 0;
  padding-left: 1.3em;
}

#section6 .vehicle-casket__content li {
  margin-bottom: 5px;
  list-style: disc;
}

/* FAQ */

#section6 .vehicle-faq__list {
  display: grid;
  gap: 11px;
  max-width: 850px;
  margin: 0 auto;
}

#section6 .vehicle-faq details {
  overflow: hidden;
  background: #ffffff;
  border: 1px solid var(--vehicle-border);
  border-radius: 13px;
}

#section6 .vehicle-faq summary {
  position: relative;
  padding: 19px 55px 19px 22px;
  color: var(--vehicle-green-dark);
  font-weight: 700;
  line-height: 1.65;
  cursor: pointer;
  list-style: none;
}

#section6 .vehicle-faq summary::-webkit-details-marker {
  display: none;
}

#section6 .vehicle-faq summary::before,
#section6 .vehicle-faq summary::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 22px;
  width: 15px;
  height: 2px;
  background: var(--vehicle-green);
  transform: translateY(-50%);
  transition: transform 0.2s ease;
}

#section6 .vehicle-faq summary::after {
  transform: translateY(-50%) rotate(90deg);
}

#section6 .vehicle-faq details[open] summary::after {
  transform: translateY(-50%) rotate(0);
}

#section6 .vehicle-faq details p {
  margin: 0;
  padding: 0 22px 20px;
  color: var(--vehicle-muted);
  font-size: 13px;
}

#section6 .vehicle-faq__more {
  margin: 24px 0 0;
  text-align: center;
}

/* 最終CTA */

#section6 .vehicle-bottom-cta {
  display: flex;
  width: min(1080px, calc(100% - 40px));
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  margin: 10px auto 0;
  padding: 42px;
  color: #ffffff;
  background: var(--vehicle-green-dark);
  border-radius: 24px;
}

#section6 .vehicle-bottom-cta h3 {
  margin-bottom: 8px;
  color: #ffffff;
  font-size: clamp(22px, 2.6vw, 30px);
}

#section6 .vehicle-bottom-cta p {
  margin: 0;
}

#section6 .vehicle-bottom-cta .vehicle-heading__en {
  color: #b8d3c5;
}

#section6 .vehicle-bottom-cta__buttons {
  display: flex;
  flex-shrink: 0;
  gap: 10px;
}

#section6 .vehicle-button--light {
  color: var(--vehicle-green-dark);
  background: #ffffff;
}

#section6 .vehicle-button--accent {
  color: #ffffff;
  background: var(--vehicle-red);
}

/* 表示アニメーション */

#section6 .vehicle-reveal {
  opacity: 1;
  transform: none;
}

#section6 .vehicle-reveal.is-reveal-waiting {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity 0.7s ease,
    transform 0.7s ease;
}

#section6 .vehicle-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* タブレット */

@media (max-width: 1100px) {
  #section6 .vehicle-hero {
    grid-template-columns: 1fr 1fr;
    padding-inline: 40px;
  }

  #section6 .vehicle-feature-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* スマホ */

@media (max-width: 768px) {
  #section6.vehicle-section {
    margin-bottom: 28px;
    padding: 0 0 80px;
    border-radius: 0;
  }

  #section6 .vehicle-hero {
    grid-template-columns: 1fr;
    gap: 35px;
    min-height: auto;
    padding: 55px 20px 65px;
    text-align: center;
  }

  #section6 .vehicle-hero h2 {
    font-size: clamp(28px, 8vw, 38px);
  }

  #section6 .vehicle-hero__lead br {
    display: none;
  }

  #section6 .vehicle-hero__points,
  #section6 .vehicle-hero__buttons {
    justify-content: center;
  }

  #section6 .vehicle-hero__visual {
    padding-top: 62px;
  }

  #section6 .vehicle-hero__car {
    width: min(440px, 100%);
    margin-top: 20px;
  }

  #section6 .vehicle-anchor-nav {
    grid-template-columns: repeat(2, 1fr);
    margin-top: -24px;
  }

  #section6 .vehicle-anchor-nav a:nth-child(even) {
    border-left: 1px solid var(--vehicle-border);
  }

  #section6 .vehicle-anchor-nav a:nth-child(n + 3) {
    border-top: 1px solid var(--vehicle-border);
  }

  #section6 .vehicle-content {
    padding: 62px 0;
  }

  #section6 .vehicle-feature-grid,
  #section6 .vehicle-place__layout,
  #section6 .vehicle-item-grid,
  #section6 .vehicle-casket {
    grid-template-columns: 1fr;
  }

  #section6 .vehicle-place__note {
    grid-template-columns: 1fr;
  }

  #section6 .vehicle-casket {
    gap: 28px;
    margin-bottom: 60px;
    padding: 24px;
  }

  #section6 .vehicle-bottom-cta {
    flex-direction: column;
    align-items: stretch;
    padding: 30px 24px;
    text-align: center;
  }

  #section6 .vehicle-bottom-cta__buttons {
    flex-direction: column;
  }
}

@media (max-width: 480px) {
  #section6 .vehicle-inner {
    width: min(100% - 30px, 1080px);
  }

  #section6 .vehicle-hero__points {
    display: grid;
    grid-template-columns: 1fr;
  }

  #section6 .vehicle-hero__points li {
    justify-content: center;
  }

  #section6 .vehicle-hero__buttons {
    display: grid;
  }

  #section6 .vehicle-feature-grid {
    grid-template-columns: 1fr;
  }

  #section6 .vehicle-step-list li {
    grid-template-columns: 44px 1fr;
    gap: 13px;
    padding: 18px;
  }

  #section6 .vehicle-step-list li > span {
    width: 44px;
    height: 44px;
  }

  #section6 .vehicle-item-card {
    padding: 23px 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #section6 .vehicle-reveal,
  #section6 .vehicle-reveal.is-reveal-waiting {
    opacity: 1;
    transform: none;
    transition: none;
  }
}



/* ========================================
   火葬車ページ：ボタン文字色の修正
======================================== */

#section6.vehicle-section a.vehicle-button--primary {
  color: #ffffff;
  background: #2f5141;
}

#section6.vehicle-section a.vehicle-button--outline {
  color: #2f5141;
  background: rgba(255, 255, 255, 0.55);
}

#section6.vehicle-section a.vehicle-button--light {
  color: #2f5141;
  background: #ffffff;
}

#section6.vehicle-section a.vehicle-button--accent {
  color: #ffffff;
  background: #8b1e2d;
}

/* ボタン内の文字を確実に表示 */
#section6.vehicle-section .vehicle-button {
  opacity: 1;
  text-shadow: none;
}

/* 見出しの不自然な途中改行を防ぐ */
#section6 .vehicle-hero__copy,
#section6 .vehicle-bottom-cta > div:first-child {
  min-width: 0;
}

#section6 .vehicle-hero h2 {
  font-size: clamp(30px, 3.4vw, 48px);
}

#section6 .vehicle-bottom-cta h3 {
  font-size: clamp(22px, 2.2vw, 28px);
}

#section6 .vehicle-nowrap {
  display: inline-block;
  white-space: nowrap;
}

/* ==================================================
   ページ全体の本文組版
   mainの初期値だけを両端揃えにし、各パーツの
   center / left指定はそのまま優先させる
================================================== */
main {
  text-align: justify;
  text-align-last: auto;
  text-justify: inter-character;
  line-break: strict;
  word-break: normal;
  overflow-wrap: anywhere;
}
/* ========================================
   持込火葬：ご来訪のしおり
======================================== */

#bringin-guide.bringin-guide {
  --bringin-green: #587c70;
  --bringin-green-dark: #38594e;
  --bringin-pale: #e8f1ed;
  --bringin-text: #3d4945;
  --bringin-muted: #6c7974;

  position: relative;
  isolation: isolate;
  padding: 100px 24px 110px;
  overflow: hidden;
  color: var(--bringin-text);
  background:
    radial-gradient(
      circle at 90% 8%,
      rgba(194, 221, 209, 0.52),
      transparent 28%
    ),
    linear-gradient(180deg, #f7faf8 0%, #f1f6f3 100%);
}

#bringin-guide.bringin-guide,
#bringin-guide.bringin-guide * {
  box-sizing: border-box;
}

#bringin-guide.bringin-guide::before {
  position: absolute;
  top: 65px;
  right: -140px;
  z-index: -1;
  width: 380px;
  height: 380px;
  border: 1px dashed rgba(88, 124, 112, 0.17);
  border-radius: 50%;
  content: "";
}

#bringin-guide .bringin-guide__inner {
  width: min(1120px, 100%);
  margin: 0 auto;
}

/* 見出し */

#bringin-guide .bringin-guide__heading {
  max-width: 780px;
  margin: 0 auto 58px;
  text-align: center;
}

#bringin-guide .bringin-guide__eyebrow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 0 0 18px;
  color: var(--bringin-green);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-align: center;
  text-align-last: center;
}

#bringin-guide .bringin-guide__eyebrow::before,
#bringin-guide .bringin-guide__eyebrow::after {
  width: 38px;
  height: 1px;
  content: "";
  background: rgba(88, 124, 112, 0.4);
}

#bringin-guide .bringin-guide__heading h2 {
  margin: 0;
  color: var(--bringin-green-dark);
  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    "Noto Serif JP",
    serif;
  font-size: clamp(30px, 4.5vw, 48px);
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: 0.055em;
  text-align: center;
}

#bringin-guide .bringin-guide__lead {
  margin: 22px 0 0;
  color: var(--bringin-muted);
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.04em;
  text-align: center;
  text-align-last: center;
}

#bringin-guide .bringin-guide__benefit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  margin: 22px auto 0;
  padding: 10px 20px;
  border: 1px solid rgba(88, 124, 112, 0.2);
  border-radius: 100px;
  color: var(--bringin-green-dark);
  background: rgba(255, 255, 255, 0.7);
  font-size: 14px;
  font-weight: 700;
  text-align: center;
  text-align-last: center;
}

#bringin-guide .bringin-guide__benefit i {
  color: #739789;
}

/* 地図 */

#bringin-guide .bringin-guide__map-shell {
  position: relative;
  width: calc(100% - 105px);
  margin-left: auto;
}

#bringin-guide .bringin-guide__map {
  position: relative;
  height: 540px;
  overflow: hidden;
  border: 10px solid rgba(255, 255, 255, 0.82);
  border-radius: 58px 16px 58px 16px;
  background: #dfe8e4;
  box-shadow: 0 25px 70px rgba(48, 76, 66, 0.16);
}

#bringin-guide .bringin-guide__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/* 重ねる案内カード */

#bringin-guide .bringin-guide__card {
  position: absolute;
  top: 50%;
  left: -105px;
  z-index: 2;
  width: min(400px, 43%);
  padding: 45px 38px 38px;
  border: 1px solid rgba(88, 124, 112, 0.18);
  border-radius: 12px 36px 12px 36px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 22px 60px rgba(48, 76, 66, 0.2);
  backdrop-filter: blur(12px);
  transform: translateY(-50%);
}

#bringin-guide .bringin-guide__card::before {
  position: absolute;
  top: 0;
  left: 36px;
  width: 54px;
  height: 7px;
  border-radius: 0 0 8px 8px;
  content: "";
  background: #82a397;
}

#bringin-guide .bringin-guide__reservation {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 22px;
  padding: 7px 13px;
  border-radius: 100px;
  color: #fff;
  background: var(--bringin-green);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

#bringin-guide .bringin-guide__card-label {
  margin: 0 0 11px;
  color: #809b91;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 11px;
  letter-spacing: 0.2em;
  text-align: left;
  text-align-last: left;
}

#bringin-guide .bringin-guide__card h3 {
  margin: 0;
  color: var(--bringin-green-dark);
  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    "Noto Serif JP",
    serif;
  font-size: clamp(21px, 2.3vw, 29px);
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: 0.03em;
  text-align: left;
}

/* 所在地 */

#bringin-guide .bringin-guide__address {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 10px;
  margin-top: 25px;
  padding-top: 23px;
  border-top: 1px solid rgba(88, 124, 112, 0.16);
  font-size: 14px;
  font-style: normal;
  line-height: 1.8;
  text-align: left;
}

#bringin-guide .bringin-guide__address i {
  margin-top: 5px;
  color: #739789;
  font-size: 17px;
}

#bringin-guide .bringin-guide__landmark {
  display: flex;
  gap: 9px;
  align-items: center;
  margin: 15px 0 0;
  color: var(--bringin-muted);
  font-size: 13px;
  line-height: 1.6;
  text-align: left;
  text-align-last: left;
}

#bringin-guide .bringin-guide__landmark i {
  color: #86a397;
}

/* 経路ボタン */

#bringin-guide .bringin-guide__button {
  display: flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  margin-top: 27px;
  padding: 13px 17px;
  border: 1px solid var(--bringin-green-dark);
  border-radius: 9px 22px 9px 22px;
  color: #fff;
  background: var(--bringin-green-dark);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  transition:
    color 0.25s ease,
    background 0.25s ease,
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

#bringin-guide .bringin-guide__button .fa-arrow-up-right-from-square {
  font-size: 10px;
  opacity: 0.7;
}

@media (hover: hover) and (pointer: fine) {
  #bringin-guide .bringin-guide__button:hover {
    color: var(--bringin-green-dark);
    background: #fff;
    box-shadow: 0 10px 25px rgba(48, 76, 66, 0.14);
    transform: translateY(-2px);
  }
}

#bringin-guide .bringin-guide__notice {
  margin: 30px 0 0;
  color: var(--bringin-muted);
  font-size: 13px;
  text-align: center;
  text-align-last: center;
}

#bringin-guide .bringin-guide__br-sp {
  display: none;
}

/* タブレット */

@media screen and (max-width: 900px) {
  #bringin-guide.bringin-guide {
    padding: 80px 20px 90px;
  }

  #bringin-guide .bringin-guide__map-shell {
    display: flex;
    width: 100%;
    flex-direction: column-reverse;
    gap: 22px;
  }

  #bringin-guide .bringin-guide__map {
    height: 430px;
    border-radius: 38px 12px 38px 12px;
  }

  #bringin-guide .bringin-guide__card {
    position: relative;
    top: auto;
    left: auto;
    width: min(620px, 100%);
    margin: 0 auto;
    transform: none;
  }
}

/* スマートフォン */

@media screen and (max-width: 520px) {
  #bringin-guide.bringin-guide {
    padding: 66px 16px 75px;
  }

  #bringin-guide .bringin-guide__heading {
    margin-bottom: 40px;
  }

  #bringin-guide .bringin-guide__heading h2 {
    font-size: 28px;
    line-height: 1.6;
    letter-spacing: 0.03em;
  }

  #bringin-guide .bringin-guide__br-sp {
    display: block;
  }

  #bringin-guide .bringin-guide__lead {
    font-size: 14px;
    line-height: 1.9;
  }

  #bringin-guide .bringin-guide__lead br {
    display: none;
  }

  #bringin-guide .bringin-guide__benefit {
    padding: 9px 14px;
    font-size: 12px;
  }

  #bringin-guide .bringin-guide__card {
    padding: 38px 24px 28px;
    border-radius: 10px 28px 10px 28px;
  }

  #bringin-guide .bringin-guide__card h3 {
    font-size: 22px;
  }

  #bringin-guide .bringin-guide__map {
    height: 350px;
    border-width: 7px;
    border-radius: 30px 10px 30px 10px;
  }

  #bringin-guide .bringin-guide__button {
    font-size: 12px;
  }

  #bringin-guide .bringin-guide__notice {
    font-size: 12px;
    line-height: 1.8;
  }
}
/* 到着後の案内 */

#bringin-guide .bringin-guide__arrival {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 13px;
  margin-top: 20px;
  padding: 17px;
  border: 1px solid rgba(88, 124, 112, 0.18);
  border-radius: 8px 20px 8px 20px;
  background: #f2f7f4;
  text-align: left;
}

#bringin-guide .bringin-guide__arrival > i {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  color: #ffffff;
  background: var(--bringin-green);
  font-size: 15px;
}

#bringin-guide .bringin-guide__arrival strong {
  display: block;
  color: var(--bringin-green-dark);
  font-size: 14px;
  line-height: 1.6;
}

#bringin-guide .bringin-guide__arrival p {
  margin: 7px 0 0;
  color: var(--bringin-muted);
  font-size: 12px;
  line-height: 1.8;
  text-align: justify;
  text-align-last: left;
}

@media screen and (max-width: 520px) {
  #bringin-guide .bringin-guide__arrival {
    grid-template-columns: 30px minmax(0, 1fr);
    padding: 15px;
  }

  #bringin-guide .bringin-guide__arrival > i {
    width: 30px;
    height: 30px;
    font-size: 13px;
  }
}

/* ========================================
   火葬車ページ：専用火葬炉
======================================== */

#section6 .vehicle-furnace {
  display: grid;
  grid-template-columns: minmax(320px, 1.05fr) minmax(0, 0.95fr);
  align-items: center;
  gap: clamp(30px, 5vw, 58px);
  margin-top: 36px;
  padding: clamp(24px, 4vw, 42px);
  overflow: hidden;
  background: #ffffff;
  border: 1px solid var(--vehicle-border);
  border-radius: 22px;
  box-shadow: 0 12px 30px rgba(55, 79, 66, 0.08);
}

#section6 .vehicle-furnace__image {
  margin: 0;
  overflow: hidden;
  background: #edf1ee;
  border-radius: 17px;
}

#section6 .vehicle-furnace__image img {
  width: 100%;
  aspect-ratio: 5 / 4;
  object-fit: cover;
  object-position: 46% 58%;
}

#section6 .vehicle-furnace__content h4 {
  margin: 0 0 16px;
  color: var(--vehicle-green-dark);
  font-size: clamp(21px, 2.5vw, 29px);
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

#section6 .vehicle-furnace__content > p:not(.vehicle-heading__en) {
  margin: 0;
  color: var(--vehicle-muted);
  font-size: 14px;
  line-height: 1.95;
}

/* 火葬炉：文章部分の整理 */

#section6 .vehicle-furnace__content {
  display: grid;
  gap: 18px;
  min-width: 0;
}

#section6 .vehicle-furnace__content .vehicle-heading__en,
#section6 .vehicle-furnace__content h4,
#section6 .vehicle-furnace__description {
  margin: 0;
}

#section6 .vehicle-furnace__description {
  color: var(--vehicle-muted);
  font-size: 14px;
  line-height: 2;
}

#section6 .vehicle-furnace__care {
  padding: 18px 19px;
  color: #40584c;
  background: #eef5f1;
  border-left: 4px solid #719681;
  border-radius: 0 12px 12px 0;
}

#section6 .vehicle-furnace__care p {
  margin: 0;
}

#section6 .vehicle-furnace__care-title {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 8px !important;
  color: #355446;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
}

#section6 .vehicle-furnace__care-title i {
  color: #719681;
}

#section6 .vehicle-furnace__care p:last-child {
  font-size: 13px;
  font-weight: 500;
  line-height: 1.95;
}

#section6 .vehicle-furnace__note {
  display: grid;
  grid-template-columns: 20px 1fr;
  gap: 10px;
  margin: 0;
  padding: 0 2px;
  color: #607168;
  background: transparent;
  font-size: 12px;
  line-height: 1.9;
}

#section6 .vehicle-furnace__note i {
  margin-top: 5px;
  color: #7f9d8e;
}

#section6 .vehicle-furnace__content .vehicle-text-link {
  width: fit-content;
  margin-top: 2px;
}

/* スマホ */

@media (max-width: 768px) {
  #section6 .vehicle-furnace {
    gap: 30px;
    padding: 20px 20px 25px;
  }

  #section6 .vehicle-furnace__content {
    gap: 21px;
  }

  #section6 .vehicle-furnace__content h4 {
    font-size: 20px;
    line-height: 1.7;
  }

  #section6 .vehicle-furnace__care {
    padding: 17px 16px;
  }

  #section6 .vehicle-furnace__content .vehicle-text-link {
    margin-top: 3px;
    padding-top: 2px;
  }
}

/* ========================================
   専用火葬炉：タブレット・スマホ
======================================== */

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

  #section6 .vehicle-furnace {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100%;
    min-width: 0;
    gap: 28px;
    margin-top: 28px;
    padding: 20px;
  }

  #section6 .vehicle-furnace__image {
    width: 100%;
    min-width: 0;
    margin: 0;
  }

  #section6 .vehicle-furnace__image img {
    display: block;
    width: 100% !important;
    max-width: none !important;
    aspect-ratio: 4 / 3;
    margin: 0 !important;
    object-fit: cover;
    object-position: 46% 57%;
  }

  #section6 .vehicle-furnace__content {
    display: grid;
    width: 100%;
    min-width: 0;
    gap: 20px;
    text-align: left;
  }

  #section6 .vehicle-furnace__content h4,
  #section6 .vehicle-furnace__content p,
  #section6 .vehicle-furnace__content a {
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: normal;
    writing-mode: horizontal-tb;
  }

  #section6 .vehicle-furnace__content h4 {
    margin: 0;
    font-size: 20px;
    line-height: 1.7;
  }

  #section6 .vehicle-furnace__care {
    margin: 0;
    padding: 17px 16px;
  }

  #section6 .vehicle-furnace__note {
    margin: 0;
  }
}

/* 持込火葬：案内カード下の余白を確保 */
@media screen and (min-width: 901px) {
  #bringin-guide .bringin-guide__map-shell {
    margin-bottom: 75px;
  }

  #bringin-guide .bringin-guide__notice {
    margin-top: 0;
  }
}

/* タブレット・スマートフォンはカードが通常配置なので不要 */
@media screen and (max-width: 900px) {
  #bringin-guide .bringin-guide__map-shell {
    margin-bottom: 0;
  }

  #bringin-guide .bringin-guide__notice {
    margin-top: 30px;
  }
}

/* ご遺骨の返却に関する料金案内 */

.pricing__return-note {
  width: min(680px, 100%);
  margin: 20px auto 0;
  padding: 16px 20px;
  border: 1px solid rgba(88, 124, 112, 0.24);
  border-radius: 12px;
  color: #596660;
  background: #f5f8f6;
}

.pricing__return-note-title {
  margin: 0 0 7px;
  color: #46685d;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.6;
  text-align
;
  text-align-last: center;
}

.pricing__return-note-text {
  margin: 0;
  font-size: 12px;
  line-height: 1.9;
  text-align: justify;
  text-align-last: center;
}

.pricing__return-note-text strong {
  color: #3f5f55;
  font-weight: 700;
}

@media screen and (max-width: 520px) {
  .pricing__return-note {
    margin-top: 17px;
    padding: 14px 16px;
    border-radius: 10px;
  }

  .pricing__return-note-title {
    font-size: 12px;
  }

  .pricing__return-note-text {
    font-size: 11px;
    line-height: 1.85;
  }
}