@charset "UTF-8";
/*
Author: c.nz
Version: 1.0
*/
/* ---------------------------------------------------
	acms リセット
------------------------------------------------------ */
.acms-entry .entry-container {
  margin: 0;
}

.entry {
  border: none;
  width: 100%;
  max-width: 100%;
  margin: 0 auto 5rem;
}

.entry-title {
  text-align: center;
  font-size: 3rem;
  line-height: 1.2;
  font-weight: 500;
}

.acms-grid, .acms-grid-r {
  margin: 0;
}

.entry-column tr:nth-child(odd) {
  background: none;
}

.acms-admin-form .acms-admin-form-select, .acms-admin-form select {
  -moz-appearance: none;
  -webkit-appearance: none;
}

/* メディアユニットの調整 */
.acms-entry [class*=column-eximage], .acms-entry [class*=column-media], .acms-entry [class*=column-video], .acms-entry [class*=column-youtube] {
  padding-left: 0;
  padding-right: 0;
}

.acms-entry [class*=column-media].img-full {
  width: 100%;
  max-width: 100%;
}

.acms-entry [class*=column-media].acms-col-sm-12,
.acms-entry [class*=column-media].acms-col-sm-10,
.acms-entry [class*=column-media].acms-col-sm-8,
.acms-entry [class*=column-media].acms-col-sm-6,
.acms-entry [class*=column-media].acms-col-sm-4 {
  width: 100%;
}

.acms-entry [class*=column-media-auto],
.acms-entry [class*=column-media-left],
.acms-entry [class*=column-media-center],
.acms-entry [class*=column-media-right] {
  float: none;
}

.acms-entry [class*=column-media-auto] *,
.acms-entry [class*=column-media-left] *,
.acms-entry [class*=column-media-center] *,
.acms-entry [class*=column-media-right] * {
  max-width: 100%;
}

.acms-entry [class*=column-media-auto] img,
.acms-entry [class*=column-media-left] img,
.acms-entry [class*=column-media-center] img,
.acms-entry [class*=column-media-right] img {
  border-radius: 2rem;overflow: hidden;
}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation:landscape) {
  .acms-entry [class*=column-media-auto],
  .acms-entry [class*=column-media-left],
  .acms-entry [class*=column-media-center],
  .acms-entry [class*=column-media-right] {
    width:calc(100% - 3rem);margin-left: auto;margin-right: auto;
  }
}


.acms-entry [class*=column-media-auto] > * {
  margin-right: auto;
}

.acms-entry [class*=column-media-left] > * {
  margin-right: auto;
}

.acms-entry [class*=column-media-center] > * {
  margin: auto;
}

.acms-entry [class*=column-media-right] > * {
  margin-left: auto;
}

.acms-entry [class*=column-media-auto] > a,
.acms-entry [class*=column-media-left] > a,
.acms-entry [class*=column-media-center] > a,
.acms-entry [class*=column-media-right] > a {
  display: inline-block;
}

.acms-entry [class*=column-media].img-full > * {
  max-width: 100%;
}

.acms-entry [class*=column-media].img-full > img,
.acms-entry [class*=column-media].img-full > a > img {
  max-width: 100%;
  height: auto;
}

.acms-entry [class*=column-media].acms-col-sm-12 > * { max-width: 120rem; }
.acms-entry [class*=column-media].acms-col-sm-10 > * { max-width: 100rem; }
.acms-entry [class*=column-media].acms-col-sm-8  > * { max-width: 80rem; }
.acms-entry [class*=column-media].acms-col-sm-6  > * { max-width: 60rem; }
.acms-entry [class*=column-media].acms-col-sm-4  > * { max-width: 40rem; }

.entry-column em { /*font-style: italic;*/
  font-style: normal;
  font-weight: bold;
  text-decoration: underline;
}

.message-back-link {
  display: inline-block;
  margin: 5rem auto;
  text-align: center;
  border: none;
  padding: 1rem 2rem;
}

/* ---------------------------------------------------
	ダイレクト編集用調整
------------------------------------------------------ */
.js-edit_inplace-hovering {
  width: 100% !important;
  max-width: 100%;
}

.acms-admin-table-admin-edit th {
  width: auto;
}

/* ---------------------------------------------------
	グループ用調整
------------------------------------------------------ */
.acms-grid > * {
  max-width: 120rem;
  margin-left: auto;
  margin-right: auto;
}

@media screen and (max-width: 1024px) {
  .acms-grid > * {
    max-width: 96rem;
  }
}
@media print {
  .acms-grid > * {
    max-width: 96rem;
  }
}
.gu-bg-gray {
  background: #eee;
  padding: 10rem 0;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  box-sizing: border-box;
}
.gu-bg-gray > * {
  max-width: 120rem;
  margin-left: auto;
  margin-right: auto;
  padding-left: 3rem;
  padding-right: 3rem;
  box-sizing: border-box;
}

.gu-bg-gray > .column-table {
  padding-left: 0;
  padding-right: 0;
}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .gu-bg-gray {
    padding: 5rem 1.5rem;   /* ← 上下+左右をまとめて指定 */
  }
  .gu-bg-gray > * {
    padding-left: 0;        /* ← 子要素側の余白は削除(二重防止) */
    padding-right: 0;
  }
}

/* ------------------------------
　　gu-bg-gray 内：左右パディングの二重がけ解消
------------------------------ */
@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
	/* 入れ子の中の要素も含めて左右余白を打ち消す */
	.entry-column .gu-bg-gray h2,
	.entry-column .gu-bg-gray h3,
	.entry-column .gu-bg-gray h4,
	.entry-column .gu-bg-gray h5,
	.entry-column .gu-bg-gray p,
	.entry-column .gu-bg-gray ul,
	.entry-column .gu-bg-gray ol,
	.entry-column .gu-bg-gray .pic_txt {
		padding-left: 0;
		padding-right: 0;
	}

	/* 幅で余白を取っている要素は幅を戻す */
	.entry-column .gu-bg-gray .column-table,
	.entry-column .gu-bg-gray [class*="column-media-auto"],
	.entry-column .gu-bg-gray [class*="column-media-left"],
	.entry-column .gu-bg-gray [class*="column-media-center"],
	.entry-column .gu-bg-gray [class*="column-media-right"] {
		width: 100%;
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
	}

	/* 見出しの装飾位置を左端に合わせ直す */
	.entry-column .gu-bg-gray h2::after {
		left: 0;
	}

	.entry-column .gu-bg-gray h4::before {
		left: 0;
	}
}

/* カラム */
.l-2col-l {
  width: 59rem;
  max-width: 59rem;
  margin-left: calc((100% - 120rem) / 2);
  margin-right: 1rem;
}

.l-2col-r {
  width: 59rem;
  max-width: 59rem;
  margin-right: calc((100% - 120rem) / 2);
  margin-left: 1rem;
}

.l-3col-l {
  float: left;
  width: 38.4rem;
  max-width: 38.4rem;
  margin-left: calc((100% - 120rem) / 2);
}

.l-3col-c {
  float: left;
  width: 38.4rem;
  max-width: 38.4rem;
  margin: 0 2.4rem;
}

.l-3col-r {
  float: left;
  width: 38.4rem;
  max-width: 38.4rem;
  margin-right: calc((100% - 120rem) / 2);
}

@media screen and (max-width: 1280px) {
  /* カラム */
  .l-2col-l {
    width: 46.09375vw;
    margin-left: calc((100% - 93.75vw) / 2);
    margin-right: 0.78125vw;
  }
  .l-2col-r {
    width: 46.09375vw;
    margin-right: calc((100% - 93.75vw) / 2);
    margin-left: 0.78125vw;
  }
  .l-3col-l {
    float: left;
    width: 30vw;
    max-width: 38.4rem;
    margin-left: calc((100% - 93.75vw) / 2);
  }
  .l-3col-c {
    float: left;
    width: 30vw;
    max-width: 38.4rem;
    margin: 0 1.875vw;
  }
  .l-3col-r {
    float: left;
    width: 30vw;
    max-width: 38.4rem;
    margin-right: calc((100% - 93.75vw) / 2);
  }
}
@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .acms-grid > * {
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  /* yahBGカラー */
  [class*=group-bg-] {
    max-width: 100%;
    padding: 5rem 0;
  }
  [class*=group-bg-] > * {
    max-width: 100%;
  }
  /* カラム */
  .l-2col-l {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
  }
  .l-2col-r {
    width: 100%;
    max-width: 100%;
    margin-right: 0;
  }
  .l-3col-l {
    float: none;
    width: 100%;
    max-width: 100%;
    margin-left: 0;
  }
  .l-3col-c {
    float: left;
    width: 100%;
    max-width: 100%;
    margin: 0;
  }
  .l-3col-r {
    float: left;
    width: 100%;
    max-width: 100%;
    margin-right: 0;
  }
}
@media print {
  .l-2col-l {
    width: 48rem;
    margin-left: 1rem;
    margin-right: 1rem;
  }
  .l-2col-r {
    width: 48rem;
    margin-right: 1rem;
    margin-left: 1rem;
  }
  .l-3col-l {
    float: left;
    width: 32rem;
    max-width: 32rem;
    margin-left: 1rem;
  }
  .l-3col-c {
    float: left;
    width: 32rem;
    max-width: 32rem;
    margin: 0 1rem;
  }
  .l-3col-r {
    float: left;
    width: 32rem;
    max-width: 32rem;
    margin-right: 1rem;
  }
}

/* ---------------------------------------------------
	汎用ユニット
------------------------------------------------------ */
.entry-column {counter-reset: flow;}

/* ------見出し大------ */
.entry-column h2{font-weight: 700;font-family: "Zen Kaku Gothic New";font-size: 3.6rem;line-height: 1.6;color: #103A44;margin: 0 auto 6rem;padding: 0;border-left: none;letter-spacing: 0.05em;position: relative;padding-left: 2.6rem;}
.entry-column h2.taC{padding-left:0;}
.entry-column h2::after{content:"";width: 0.4rem;height: 100%;border-radius: 10rem;background:#F39353;position: absolute;left: 0;top: 0;}
.entry-column h2.taC::after{content:"";width: 10rem;height: 0.4rem;display:block;background:#F39353;margin:3.4rem auto 0;position: static;}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape){
  .entry-column h2{font-size: 3rem;line-height: 1.4;letter-spacing: 0.01em;padding:0 1.5rem 0 3.9rem;margin-bottom: 4rem;}
  .entry-column h2::after{width: 0.4rem;left: 1.5rem;}
   .entry-column h2.taC{padding-left: 1.5rem; padding-right: 1.5rem;}
  .entry-column h2.taC::after{width: 6rem;height: 0.3rem;margin:2rem auto 0;}
  .pic_txt .row_txt h2 {
    padding: 0 0 0 2rem;
    position: relative;
  }
  .pic_txt .row_txt h2::after {
    content: "";
    width: 0.4rem;
    height: 100%;
    border-radius: 10rem;
    background: #F39353;
    position: absolute;
    left: 0;
    top: 0;
  }
}

/* グループは左右パディングを解除して見出しと左端を揃える */
.gu-bg-gray > .column-group {
	padding-left: 0;
	padding-right: 0;
}

/* 写真と地図の間隔 */
.entry-column .column-group.acms-cssgrid {
	gap: 4rem;
}

/* ------見出し中------ */
.entry-column h3{font-family: "Zen Kaku Gothic New";font-weight: 700;font-size: 3rem;line-height: 1.6;color:#48A99E;margin: 0 auto 3rem;padding: 0;background: none;letter-spacing: 0.03em;}
.entry-column h3.tit-flow {
  color: #103A44;
  font-size: 2.6rem;
  text-align: left;
  position: relative;
  border-bottom: none;
  display: block;
  padding-left: 7rem;
}
.entry-column h3.tit-flow::before {
  content: counter(flow, decimal-leading-zero);
  counter-increment: flow 1;
  position: absolute;
  left: 0;
  top: calc((2.6rem * 1.6 - 5.6rem) / 2);
  margin-top: 0;
  letter-spacing: 0;
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 1;
  aspect-ratio: 1/1;
  width: 5.6rem;
  color: #48A99E;
  justify-content: center;
  align-items: center;
  display: flex;
  font-family: "Roboto";
  flex-shrink: 0;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 56'%3E%3Ccircle cx='28' cy='28' r='27' fill='none' stroke='%2348A99E' stroke-width='2' pathLength='56' stroke-dasharray='1 1'/%3E%3C/svg%3E");
  background-size: 100% 100%;
  background-repeat: no-repeat;
  border-radius: 50%;
}

/* ★追加：複数行のとき、丸の上端を文字の上端に合わせる */
.entry-column h3.tit-flow.is-multi {
  align-items: flex-start;
}
.entry-column h3.tit-flow.is-multi::before {
  margin-top: calc((2.6rem * 1.6 - 2.6rem) / 2);
}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape){
    .entry-column h3{
    font-size: 2.8rem;
    line-height: 1.4;
    letter-spacing: 0.01em;
    padding: 0 1.5rem;
  }
  .entry-column h3.tit-flow {
    font-size: 2.4rem;
    padding-left: 7.5rem; 
  }
  .entry-column h3.tit-flow::before {
    left: 1.5rem;
    border: none;
    width: 5.1rem;
    font-size: 2.2rem;
    top: calc((2.4rem * 1.4 - 5.1rem) / 2);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 56'%3E%3Ccircle cx='28' cy='28' r='27' fill='none' stroke='%2348A99E' stroke-width='2.2' pathLength='52' stroke-dasharray='1 1'/%3E%3C/svg%3E");
  }

  /* ★追加：SP版 */
  .entry-column h3.tit-flow.is-multi::before {
    margin-top: calc((2.4rem * 1.4 - 2.4rem) / 2);
  }

  .pic-ontxt .txt h3,
  .pic-ontxt .txt h5 {
    padding: 0;
  }

  /* 画像に重ねたテキスト内の見出し大：縦線を左端に置き、文字をその右へ */
  .pic-ontxt .txt h2 {
    padding: 0 0 0 2rem;
  }
  .pic-ontxt .txt h2::after {
    left: 0;
  }
  .pic-ontxt .txt h2.taC {
    padding: 0;
  }
}

/* ------見出し小------ */
.entry-column h4 {font-family: "Zen Kaku Gothic New";font-weight: 700;font-size: 2.4rem;line-height: 1.6;color: #103A44;padding: 0 0 0 3rem;margin: 0 auto 2rem;position: relative;}
.entry-column h4::before{
	content: "";
	position: absolute;
	left: 0;
	top: 1.92rem;
	transform: translateY(-50%);
	width: 1.6rem;
	aspect-ratio: 1/1;
	background:#48A99E;
	border-radius: 50%;
}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape){
  .entry-column h4 {
		display: flex;
		align-items: flex-start;
		gap: 1rem;
		padding: 0 1.5rem;
	}
	.entry-column h4::before {
		position: static;
		left: auto;
		top: auto;
		transform: none;
		flex-shrink: 0;
		margin-top: 1.12rem;
	}
}

/* ------見出し最小------ */
.entry-column h5 {font-family: "Zen Kaku Gothic New";font-weight: 700;font-size: 2.2rem;line-height: 1.6;padding: 0;margin: 0 auto 2rem;color: #103A44;}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape){
  .entry-column h5 {font-size: 2rem;line-height: 1.4;letter-spacing: 0.01em;padding: 0 1.5rem;}
}

/* ------本文------ */
.entry-column p {font-size: 1.8rem;line-height:2;margin: 0 auto 4rem;padding: 0;color:#103A44;font-weight: 400;}
.entry-column p span .taL, .entry-column p span .taC, .entry-column p span .taR {display: block;}
.entry-column p.flow-txt {margin:0;}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape){
  .entry-column p {margin: 0 auto 4rem;padding: 0 1.5rem;}
}

/* ------テキストリード文------ */
.entry-column p.lead-txt{font-size: 2rem;line-height: 2.4;text-align: center;letter-spacing: 0.03em;font-weight: 500;}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape){
  .entry-column p.lead-txt{
    line-height: 2;
    letter-spacing: 0.01em;
    text-align: left;   /* ← 追加 */
    font-size: 1.8rem;
  }
}

/* ------リストの直前にあるpタグの余白調整------ */
.entry-column p:has(+ ul),
.entry-column p:has(+ ol) {
  margin-bottom: 1rem;
}

/* ------リスト------ */
.entry-column ul, .entry-column ol{padding: 0;margin: 0 auto;}
.entry-column ul li, .entry-column ol li {padding: 0;margin: 0;font-size: 1.8rem;line-height: 1.8;color: #103A44;}
.entry-column ul {margin-bottom: 1rem;list-style: none;}
.entry-column ul li {padding-left: 2.5rem;position: relative;margin-bottom: 0.7rem;}
.entry-column ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5rem;
  transform: none;
  width: 2rem;
  height: 2rem;
  background: url(../images/common/ico-li@2x.png) no-repeat center;
  background-size: 2rem 2rem;
}
.entry-column ol {counter-reset: oldef;margin-bottom: 1rem;list-style: none;}
.entry-column ol li {padding-left: 2.5rem; position: relative;margin-bottom: 0.5rem;}
.entry-column ol li::before {
  counter-increment: oldef;
  content: counter(oldef);
  color: #48A99E;
  font-family: "Roboto", sans-serif;
  font-weight: 700;
  font-size: 1.8rem;
  display: block;
  width: 2rem;
  position: absolute;
  top: 0;
  left: 0;
  text-align: center;
  line-height: 2;
}
.entry-column ul li p,
.entry-column ol li p {
  margin: 0;
}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape){
  .entry-column ul, .entry-column ol{padding: 0 1.5rem;}
}

/* ------地図・iframe------ */
.column-map-auto, .column-map-left {margin-bottom: 4rem;}
.gmap-iframe {margin-bottom: 4rem;}
.gmap-iframe iframe{max-width: 100%;}


/* ---------------------------------------------------
	テキストリンク
------------------------------------------------------ */
.txt-link {justify-content: flex-start;margin-bottom: 4rem;}
.txt-link .row_col{display: inline-block;margin-right: 6rem;margin-bottom: 1rem;}
.txt-link .row_col a{position: relative;display: inline-block;color: #103A44;font-size: 1.8rem;line-height: 1.8;text-align: left;
text-decoration: underline;font-weight: 500;}
.txt-link .row_col a:hover{color: #F39353;opacity:1;}
.txt-link .row_col:hover {text-decoration: none;}

.txt-link .row_col.blank a::after {content: "";display: inline-block;width: 1.6rem;height: 1.6rem;vertical-align: middle;margin-left: 1rem;background: url(../images/common/ico-blank@2x.png) no-repeat center;background-size:contain;}
.txt-link.row-l {justify-content: flex-start;}
.txt-link.row-l .row_col {text-align: left;}
.txt-link.row-c {justify-content: center;}
.txt-link.row-c .row_col {text-align: center;}
.txt-link.row-r {justify-content: flex-end;}
.txt-link.row-r .row_col {text-align: right;}
.txt-link.num-1 .row_col {display: inline-block;width: 100%;margin-right: 0;}
.txt-link.num-2 .row_col {display: inline-block;width: 49%;margin-right: 2%;}
.txt-link.num-2 .row_col:nth-child(2n) {margin-right: 0;}
.txt-link.num-2 .row_col:last-child {margin-right: 0;}
.txt-link.num-3 .row_col {display: inline-block;width: 32%;margin-right: 2%;}
.txt-link.num-3 .row_col:nth-child(3n) {margin-right: 0;}
.txt-link.num-3 .row_col:last-child {margin-right: 0;}
.txt-link.num-4 .row_col {display: inline-block;width: 23.5%;margin-right: 2%;}
.txt-link.num-4 .row_col:nth-child(4n) {margin-right: 0;}
.txt-link.num-4 .row_col:last-child {margin-right: 0;}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .txt-link {padding: 0 1rem; margin-bottom: 2rem;}
  .txt-link .row_col {margin-right: 1.5rem;}
  .txt-link.num-2 .row_col {width: 100%;margin-right: 0;}
  .txt-link.num-3 .row_col {width: 100%;margin-right: 0;}
  .txt-link.num-4 .row_col {width: 100%;margin-right: 0;}
}
@media screen and (max-width: 896px) and (orientation: landscape) {
  .txt-link {padding: 0 1rem;}
}

/* ---------------------------------------------------
	ボタンリンク
------------------------------------------------------ */
.btnlink .row_col a, .btn-link a, a.btn-link {position: relative;display: inline-block;min-width: 25rem;width: 100%;max-width: 100%;padding: 1.9rem 5.5rem 1.9rem 5rem;color: #fff;font-size: 1.8rem;font-weight:700;text-align:center;text-decoration: none;background-color: #48A99E;border-radius: 10rem;letter-spacing: 0.03em;line-height: 1.2;}
.btnlink .row_col a::after, .btn-link a::after, a.btn-link::after {content: "";position: absolute;top: 50%;right:2.8rem;display: block;width: 2rem;height: 2rem;margin-top: -1rem;background: url("../images/common/ico-arrow-right-btn.svg") no-repeat center;background-size: 100%;}
.btnlink .row_col a:hover, .btn-link a:hover, a.btn-link:hover{background:#F39353;opacity: 1;}

.btnlink .row_col.blank a::after, .btn-link a[target=_blank].btn-link::after, a[target=_blank].btn-link::after {content: "";position: absolute;top: 50%;right: 2.9rem;display: block;width: 1.8rem;height: 1.8rem;margin-top: -0.9rem;background: url("../images/common/ico-blank-btn.png") no-repeat center;background-size: 100%;}

/* ---4分割専用設定--- */
.btnlink.num-4 .row_col a,.content_row.box_row4 .btn-link{color:#48A99E;background: transparent;text-align: left;padding: 0;width: fit-content;transition: color 0.25s ease;}
.btnlink.num-4 .row_col a:hover,.content_row.box_row4 .btn-link:hover{background: transparent;color:#F39353;}
.btnlink.num-4 .row_col a::before,.content_row.box_row4 .btn-link::before{content: "";position:relative;top:auto;right:auto;display:inline-block;width: 2rem;height: 2rem;margin-top:0;background: url("../images/common/ico-arrow-right-btn-4.svg") no-repeat center;background-size: 100%;margin-right: 0.8rem;transform: translateY(0.3rem);}
.btnlink.num-4 .row_col a::after,.content_row.box_row4 .btn-link::after{display: none;}
.btnlink.num-4 .row_col.blank a::after,.content_row.box_row4 .btn-link.blank{content: "";display: inline-block;width: 1.6rem;height: 1.6rem;vertical-align: middle;margin-left: 1rem;background: url(../images/common/ico-blank@2x.png) no-repeat center;background-size:contain;position: relative;top: 0;right: 0;transform: translateY(0.3rem);position: relative;}


/* -----ファイル用ボタン----- */
.btnlink .row_col.blank a[href$=".pdf"]::before, .btnlink .row_col a.icon-pdf::before {content: "";position: absolute;top: 50%;left: 1.8rem;display: block;width: 2.4rem;height: 2.4rem;margin-top: -1.2rem;background: url("../images/common/ico-pdf.svg") no-repeat center;background-size: 100%;}

.btnlink .row_col.blank a[href$=".docx"]::before, .btnlink .row_col.blank a[href$=".doc"]::before, .btnlink .row_col a.icon-doc::before {content: "";position: absolute;top: 50%;left: 1.8rem;display: block;width: 2.4rem;height: 2.4rem;margin-top: -1.2rem;background: url("../images/common/ico-doc.svg") no-repeat center;background-size: 100%;}

.btnlink .row_col.blank a[href$=".xlsx"]::before, .btnlink .row_col.blank a[href$=".xls"]::before, .btnlink .row_col a.icon-xls::before {content: "";position: absolute;top: 50%;left: 1.8rem;display: block;width: 2.4rem;height: 2.4rem;margin-top: -1.2rem;background: url("../images/common/ico-xlsx.svg") no-repeat center;background-size: 100%;}

.btnlink .row_col.blank a[href$=".pptx"]::before, .btnlink .row_col.blank a[href$=".ppt"]::before, .btnlink .row_col a.icon-ppt::before {content: "";position: absolute;top: 50%;left: 1.8rem;display: block;width: 2.4rem;height: 2.4rem;margin-top: -1.2rem;background: url("../images/common/ico-ppt.svg") no-repeat center;background-size: 100%;}

.btnlink .row_col a.icon-file::before {content: "";position: absolute;top: 50%;left: 1.8rem;display: block;width: 2.4rem;height: 2.4rem;margin-top: -1.2rem;background: url("../images/common/ico-folder.svg") no-repeat center;background-size: 100%;}


.btnlink .row_col.blank a[href$=".pptx"], .btnlink .row_col.blank a[href$=".ppt"], .btnlink .row_col.blank a[href$=".xlsx"], .btnlink .row_col.blank a[href$=".xls"], .btnlink .row_col.blank a[href$=".docx"], .btnlink .row_col.blank a[href$=".doc"], .btnlink .row_col.blank a[href$=".pdf"], .btnlink .row_col a.icon-file, .btnlink .row_col a.icon-ppt, .btnlink .row_col a.icon-xls, .btnlink .row_col a.icon-doc, .btnlink .row_col a.icon-pdf{padding: 2.4rem 5rem 2.4rem 5.2rem;background: #FFF;border-radius: 1rem;border: 0.1rem solid #103A44;color: #103A44;width:100%;text-align: left;}

.btnlink .row_col.blank a[href$=".pptx"]::after, .btnlink .row_col.blank a[href$=".ppt"]::after, .btnlink .row_col.blank a[href$=".xlsx"]::after, .btnlink .row_col.blank a[href$=".xls"]::after, .btnlink .row_col.blank a[href$=".docx"]::after, .btnlink .row_col.blank a[href$=".doc"]::after, .btnlink .row_col.blank a[href$=".pdf"]::after, .btnlink .row_col a.icon-file::after, .btnlink .row_col a.icon-ppt::after, .btnlink .row_col a.icon-xls::after, .btnlink .row_col a.icon-doc::after, .btnlink .row_col a.icon-pdf::after{display: none !important;;}

.btnlink .row_col.blank a[href$=".pptx"]:hover, .btnlink .row_col.blank a[href$=".ppt"]:hover, .btnlink .row_col.blank a[href$=".xlsx"]:hover, .btnlink .row_col.blank a[href$=".xls"]:hover, .btnlink .row_col.blank a[href$=".docx"]:hover, .btnlink .row_col.blank a[href$=".doc"]:hover, .btnlink .row_col.blank a[href$=".pdf"]:hover, .btnlink .row_col a.icon-file:hover, .btnlink .row_col a.icon-ppt:hover, .btnlink .row_col a.icon-xls:hover, .btnlink .row_col a.icon-doc:hover, .btnlink .row_col a.icon-pdf:hover{background: #103A441A;}

.btnlink {justify-content: flex-start;margin-bottom: 6rem;font-feature-settings: "palt";}

/* --- 分割設定など --- */
.btnlink .row_col {width: auto;max-width: 100%;margin-bottom: 4rem;}

.btnlink.row-l {justify-content: flex-start;text-align: left;}
.btnlink.row-l .row_col {margin-right: auto;}
.btnlink.row-c { justify-content: center; text-align: center; }
.btnlink.row-c .row_col { margin-right: 0; margin-left: 0; }
.btnlink.row-r {justify-content: flex-end;text-align: right;}
.btnlink.row-r .row_col {margin-left: auto;}
.btnlink.num-1 {width: 100%;}
.btnlink.num-1 .row_col {max-width: -moz-fit-content;max-width: fit-content;}
.btnlink.num-2 .row_col {width: 49%;max-width: 49%;margin-right: 2%;}
.btnlink.num-2 .row_col:nth-child(2n), .btnlink.num-2 .row_col:last-child {margin-right: 0;}
.btnlink.num-3 .row_col {width: 30%;max-width: 30%;margin-right: 5%;}
.btnlink.num-3 .row_col:nth-child(3n), .btnlink.num-3 .row_col:last-child {margin-right: 0;}
.btnlink.num-4 .row_col {width: 23.5%;max-width: 23.5%;margin-right: 2%;}
.btnlink.num-4 .row_col:nth-child(4n), .btnlink.num-4 .row_col:last-child {margin-right: 0;}

a.btn-link {width: auto;margin-right: 1rem;line-height: 1.2;}
a.btn-link:hover {text-decoration: none !important;}
.btn-link a {width: auto;margin-right: 1rem;line-height: 1.2;}
.btn-link a:hover {text-decoration: none !important;}

/* -----アンカーリンク用ボタン----- */
.btnlink .row_col a[href^="#"]{padding: 2rem 5.6rem;text-align: center;background: #E8ECEB;color: #103A44;width: 100%;box-sizing: border-box;}
.btnlink .row_col a[href^="#"]::before{display: none;}
.btnlink .row_col a[href^="#"]::after,.btnlink .row_col.blank a[href^="#"]::after,.btnlink .row_col.blank a[href^="#"]::after{right: 2.6rem;width: 2.4rem;height: 2.4rem;margin-top: -1.2rem;background: url("../images/common/ico-arrow-bottom-btn.svg") no-repeat center;background-size: 100%;transition: transform 0.2s;top: 50%;position: absolute;transform: translateY(0);display: block!important;}
.btnlink .row_col a[href^="#"]:hover{opacity: 1;background: #E8ECEB;}
.btnlink .row_col a[href^="#"]:hover::after{transform: translateY(0.6rem);}
.btnlink.num-4 .row_col a[href^="#"] {
  padding: 1.25rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: nowrap;
}
.btnlink.num-4 .row_col a[href^="#"]::after {
  position: static;      /* absolute解除 */
  top: auto;
  right: auto;
  margin-top: 0;
  transform: none;
  flex-shrink: 0;         /* 矢印は縮まないようにする */
}
.btnlink.num-4 .row_col a[href^="#"]:hover::after {
  transform: translateY(0.6rem);
}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
    .btnlink { display: flex; flex-wrap: wrap; margin-bottom: 3rem; padding: 0 1rem; }
  .btnlink .row_col { width: 100%; max-width: 100%; margin-right: 0; margin-bottom: 1rem; }
  .btnlink.num-1 .row_col { width: -moz-fit-content; width: fit-content; }
  .btnlink .row_col:last-of-type { margin-bottom: 0; }
  .btnlink.num-2 .row_col { width: 100%; max-width: 100%; margin-right: 0; }
  .btnlink.num-3 .row_col { width: 100%; max-width: 100%; margin-right: 0; }
  .btnlink.num-4 .row_col { width: 100%; max-width: 100%; margin-right: 0; }
  .btn-link, .btnlink .row_col a { padding: 2rem 5rem; }
  .btn-link::after, .btnlink .row_col a::after { right: 3rem; }
  a[target=_blank].btn-link::after, .btnlink .row_col.blank a::after { right: 2.5rem; }
  .btn-link { margin-right: 0; margin-top: 1rem; }
  .btn-link a { width: 100%; margin-right: 0; }
}
@media screen and (max-width: 896px) and (orientation: landscape) {
  .btnlink { padding: 0 1rem; }
  .btn-link, .btnlink .row_col a { padding: 2.5rem; }
  .btn-link::after, .btnlink .row_col a::after { right: 1rem; }
  a[target=_blank].btn-link::after, .btnlink .row_col.blank a::after { right: 1rem; }
  /* ファイルアイコン */
  .btnlink .row_col a.icon-pdf, .btnlink .row_col.blank a[href$=".pdf"], .btnlink .row_col a.icon-doc, .btnlink .row_col.blank a[href$=".doc"], .btnlink .row_col.blank a[href$=".docx"], .btnlink .row_col a.icon-xls, .btnlink .row_col.blank a[href$=".xls"], .btnlink .row_col.blank a[href$=".xlsx"], .btnlink .row_col a.icon-ppt, .btnlink .row_col.blank a[href$=".ppt"], .btnlink .row_col.blank a[href$=".pptx"], .btnlink .row_col a.icon-file { padding: 2.5rem 3.6rem 2.5rem 4rem; }
  /* ー＊ー＊ー＊ー＊ー */
  .btnlink .row_col a.icon-pdf::before, .btnlink .row_col.blank a[href$=".pdf"]::before { left: 1rem; }
  .btnlink .row_col a.icon-doc::before, .btnlink .row_col.blank a[href$=".doc"]::before, .btnlink .row_col.blank a[href$=".docx"]::before { left: 1rem; }
  .btnlink .row_col a.icon-xls::before, .btnlink .row_col.blank a[href$=".xls"]::before, .btnlink .row_col.blank a[href$=".xlsx"]::before { left: 1rem; }
  .btnlink .row_col.blank a::after { right: 1rem; }
  .btnlink .row_col a.icon-ppt::before, .btnlink .row_col.blank a[href$=".ppt"]::before, .btnlink .row_col.blank a[href$=".pptx"]::before { left: 1rem; }
  .btnlink .row_col a.icon-file::before { left: 1rem; }
}

/* ---------------------------------------------------
	コラム
------------------------------------------------------ */
.column_unit {width: 100%;margin: 0 auto 4rem;}
.column_unit > .box {width: 100%;border: 0.2rem dashed #103A44;padding: 4rem;box-sizing: border-box;border-radius: 2rem;position: relative;}
.column_unit > .box .content-wrap {display: block;}
.column_unit > .box .txt {width: calc(100% - 40rem);}
.column_unit > .box .txt p {margin-bottom: 0;font-size: 2.2rem;line-height: 1.8;text-align: left;}
.column_unit > .box .img {position: absolute;top: 4rem;right: 4rem;width: 30%;max-width: 36rem;margin-left: 0;}
.column_unit > .box .img img {width: 100%;height: auto;display: block;}
.column_unit > .box .content-wrap:not(:has(.img)) .txt {
  width: 100%;
}
.column_unit.column_important {}
.column_unit.column_important > .box {border: 0.2rem dashed #CD0000;}
.column_unit.column_important > .box h2{color: #CD0000;}
.column_unit.column_important > .box h2::after{background: #CD0000;}
.column_unit.column_important > .box h3{color: #CD0000;}
.column_unit.column_important > .box h4{color: #CD0000;}
.column_unit.column_important > .box h4::before{background: #CD0000;}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .column_unit { width: calc(100% - 3rem); margin: 0 auto 3rem; }
  .column_unit h2, .column_unit h3, .column_unit h5 { padding: 0; }
/* ▼ 置き換え後 */
.column_unit h4 {
  padding: 0;
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
.column_unit h4::before {
  position: static;
  left: auto;
  top: auto;
  transform: none;
  flex-shrink: 0;
  margin-top: 1.12rem;
}
  .column_unit > .box { display: block; width: 100%; padding: 2rem; }
  .column_unit > .box .content-wrap { display: block; }
  .column_unit > .box .txt { width: 100%; margin-bottom: 2rem; }
  .column_unit > .box .txt p { padding: 0; margin-bottom: 0; font-size: 1.8rem; }
  .column_unit > .box .img { position: static; width: 100%; max-width: 100%; margin-left: 0; margin-top: 0; }
}

/* ---------------------------------------------------
	画像＋テキスト（左右配置）
------------------------------------------------------ */
.pic_txt {margin-bottom: 6rem;align-items: flex-start;}
.pic_txt .row_pic{width: 50%; max-width: 60rem;border-radius: 2rem;overflow: hidden;}
.pic_txt .row_pic.row_pic_w30 { width: 30%; max-width: 36rem; }
.pic_txt .row_pic.row_pic_w40 { width: 40%; max-width: 48rem; }
.pic_txt .row_pic.row_pic_w60 { width: 60%; max-width: 72rem; }
.pic_txt .row_pic.row_pic_w70 { width: 70%; max-width: 84rem; }
.pic_txt.pic_right .row_pic { width: 50%; max-width: 60rem; order: 10; }
.pic_txt.pic_right .row_pic.row_pic_w30 { width: 30%; max-width: 36rem; order: 10; }
.pic_txt.pic_right .row_pic.row_pic_w40 { width: 40%; max-width: 48rem; order: 10; }
.pic_txt.pic_right .row_pic.row_pic_w60 { width: 60%; max-width: 72rem; order: 10; }
.pic_txt.pic_right .row_pic.row_pic_w70 { width: 70%; max-width: 84rem; order: 10; }
.pic_txt.pic_right .row_pic img + img { margin-top: 2rem; }
.pic_txt .row_txt { width: 46.667%; max-width: 56rem; }
.pic_txt .row_txt.row_txt_w66 { width: 66.667%; max-width: 79rem; }
.pic_txt .row_txt.row_txt_w56 { width: 56.667%; max-width: 67rem; }
.pic_txt .row_txt.row_txt_w36 { width: 36.667%; max-width: 44rem; }
.pic_txt .row_txt.row_txt_w26 { width: 26.667%; max-width: 32rem; }
.pic_txt .row_txt p { margin-bottom: 0; }
.pic_txt .row_txt p + .btn-link { margin-top: 4rem; }
.pic_txt .row_txt p .btn-link a { width: 36rem; max-width: 100%; color: #fff; }
.pic_txt .row_txt p + .btn-link a { color: #fff; }
.pic_txt .row_txt p .btn-link.btnL { margin-left: 0; margin-right: auto; }
.pic_txt .row_txt p .btn-link.btnR { margin-left: auto; margin-right: 0; }
.pic_txt .row_txt p .btn-link.btnC { margin-left: auto; margin-right: auto; }

.pic_txt .row_txt .btn-link { display: flex; }
.pic_txt .row_txt .btn-link.btnL { justify-content: flex-start; }
.pic_txt .row_txt .btn-link.btnC { justify-content: center; }
.pic_txt .row_txt .btn-link.btnR { justify-content: flex-end; }
.pic_txt .row_txt .btn-link a { width: -moz-fit-content; width: fit-content; margin-right: 0; }

.border-caution { width: 100%; border:0.2rem dashed #CD0000; padding: 4rem; box-sizing: border-box; margin: 0 auto 6rem;border-radius: 2rem;}
.border-caution .pic_txt { margin-bottom: 0; }
.border-caution .pic_txt .row_pic {border-radius: 1rem;}

.border-standard { width: 100%; border:0.2rem dashed #103A44; padding: 4rem; box-sizing: border-box; margin: 0 auto 6rem; background: #FFF; border-radius: 2rem;}
.border-standard .pic_txt { margin-bottom: 0; }
.border-standard .pic_txt .row_pic {border-radius: 1rem;}


@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .pic_txt { margin-bottom: 3rem; padding: 0 1.5rem;}
  .pic_txt .row_pic { width: 100%; max-width: 100%; margin-bottom: 2rem; text-align: center; }
  .pic_txt .row_pic.row_pic_w30, .pic_txt .row_pic.row_pic_w40, .pic_txt .row_pic.row_pic_w60, .pic_txt .row_pic.row_pic_w70 { width: 100%; max-width: 100%; }
  .pic_txt.pic_right .row_pic { width: 100%; max-width: 100%; order: 0; }
  .pic_txt.pic_right .row_pic.row_pic_w30, .pic_txt.pic_right .row_pic.row_pic_w40, .pic_txt.pic_right .row_pic.row_pic_w60, .pic_txt.pic_right .row_pic.row_pic_w70 { width: 100%; max-width: 100%; order: 0; }
  .pic_txt .row_txt { width: 100%; max-width: 100%; padding: 0;}
  .pic_txt .row_txt.row_txt_w66, .pic_txt .row_txt.row_txt_w56, .pic_txt .row_txt.row_txt_w36, .pic_txt .row_txt.row_txt_w26 { width: 100%; max-width: 100%; }
  .pic_txt .row_txt p { padding: 0; }
    .pic_txt .row_txt h3 { padding: 0; }
  .pic_txt .row_txt h5 { padding: 0; }
  .pic_txt .row_txt p + .btn-link { margin-top: 2rem; }
  .pic_txt .row_txt .btn-link {padding: 0;}
  .pic_txt .row_txt p .btn-link.btnL, .pic_txt .row_txt p .btn-link.btnC, .pic_txt .row_txt p .btn-link.btnR { margin-right: auto; margin-left: auto; }
  .border-caution { padding: 1.5rem; margin: 0 auto 3rem; width: calc(100% - 3rem); }
  .border-caution .pic_txt{padding: 0;}
  .border-caution .pic_txt .row_txt { padding: 0; }
  .border-standard { padding: 1.5rem; margin: 0 auto 3rem; width: calc(100% - 3rem); }
  .border-standard .pic_txt{padding: 0; }
  .border-standard .pic_txt .row_txt { padding: 0; }

  .pic_txt .row_txt h4 {
    padding: 0;
    display: flex;
    align-items: flex-start;
    gap: 1rem;
  }

  .pic_txt .row_txt h4::before {
    position: static;
    left: auto;
    top: auto;
    transform: none;
    flex-shrink: 0;
    margin-top: 1.12rem;
  }

  .border-caution h2,.border-standard h2{padding: 0 0 0 1.5rem;}
  .border-caution h2::after,.border-standard h2::after{left: 0;}
  .border-caution h3,.border-standard h3{padding:0;}
  .border-caution h4,.border-standard h4{padding: 0 0 0 3rem;}
  .border-caution h4::before,.border-standard h4::before{left: 0;}
  .border-caution h5,.border-standard h5{padding:0;}

}
@media screen and (max-width: 896px) and (orientation: landscape) {
.pic_txt .row_txt { padding: 0; }
.pic_txt .row_txt_w26 .txt_btn a { padding: 2.5rem 1.6rem; }
.pic_txt .row_txt_w26 .txt_btn a::after { right: 2rem; }
.entry-column .content_row { padding: 0 4rem; }
.entry-column .content_row h2 { padding: 0; font-size: 3rem; }
.entry-column .content_row h3 { padding: 0; font-size: 2.8rem; }
.entry-column .content_row h4 { width: 100%; }
.entry-column .content_row h5 { padding: 0; }
.entry-column .content_row p { padding: 0; font-size: 1.6rem; }
.border-caution { width: calc(100% - 8rem); padding: 2rem; }
.border-caution .content_row { padding: 0; }
.border-standard { width: calc(100% - 8rem); padding: 2rem; }
.border-standard .content_row { padding: 0; }
}

.pic_txt .row_txt .sns-link { margin-top: 3rem; }
.pic_txt .row_txt .sns-link-tit {
  font-size: 1.6rem;
  font-weight: 700;
  color: #103A44;
  margin-bottom: 1.5rem;
}
.pic_txt .row_txt .sns-link-list {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  list-style: none;
  padding: 0;
  margin: 0;
}
.pic_txt .row_txt .sns-link-list li {
  margin: 0;
  padding: 0;
  list-style: none;
}
.pic_txt .row_txt .sns-link-list li::before {
  content: none;
  display: none;
}
.pic_txt .row_txt .sns-link-list a {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  background: rgba(72, 169, 158, 0.10);
  border-radius: 1rem;
  padding: 1.2rem 2.4rem;
  font-family: "Noto Sans JP";
  font-size: 1.8rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.8; /* 180% */
  color: #103A44;
  text-decoration: none;
  transition: opacity 0.2s;
}
.pic_txt .row_txt .sns-link-list a:hover { opacity: 0.7; }
.pic_txt .row_txt .sns-link-list a::before {
  content: "";
  display: inline-block;
  width: 2.4rem;
  height: 2.4rem;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.pic_txt .row_txt .sns-link-list a.icon-twitter::before {
  background-image: url("../images/common/ico-x.svg");
}
.pic_txt .row_txt .sns-link-list a.icon-facebook::before {
  background-image: url("../images/common/ico-facebook.svg");
}
.pic_txt .row_txt .sns-link-list a.icon-instagram::before {
  background-image: url("../images/common/ico-instagram.svg");
}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .pic_txt .row_txt .sns-link-list { gap: 1rem; }
  .pic_txt .row_txt .sns-link-list a { padding: 1rem 1.8rem; font-size: 1.5rem; }
}
/* ▲▲▲ ここまで追加 ▲▲▲ */

/* ---------------------------------------------------
	画像＋テキスト（画像に重ねて配置）
------------------------------------------------------ */
.pic-ontxt { margin-bottom: 4rem; position: relative; display: flex; justify-content: center; align-items: center; flex-wrap: wrap; }

/* ---------------------------------------------------
	画像＋テキスト（画像に重ねて配置）
------------------------------------------------------ */
.pic-ontxt { margin-bottom: 4rem; position: relative; display: flex; justify-content: center; align-items: center; flex-wrap: wrap; }
.pic-ontxt .img { position: relative; z-index: 100; order: 1; }
.pic-ontxt .img img{overflow: hidden;border-radius: 2rem;}
.pic-ontxt .txt { background:#fff;border-radius: 2rem; padding: 5rem; position: relative; z-index: 200; order: 2;box-shadow: 0 0 2rem #0000001A;}
.pic-ontxt .txt p { margin-bottom: 0; }
.pic-ontxt .txt .taC { text-align: center; }
.pic-ontxt .txt .taR { text-align: right; }
.pic-ontxt.ontxt-top .img { width: 100%; order: 10; }
.pic-ontxt.ontxt-top .txt { width: calc(100% - 10rem); margin: 0 auto -15rem; }
.pic-ontxt.ontxt-bottom .img { width: 100%; }
.pic-ontxt.ontxt-bottom .txt { width: calc(100% - 10rem); margin: -15rem auto 0; }
.pic-ontxt.ontxt-left { flex-wrap: nowrap; }
.pic-ontxt.ontxt-left .img { width: 70%; margin-left: auto; order: 10; }
.pic-ontxt.ontxt-left .txt { width: 50%; margin: 5rem -20% 5rem 0; }
.pic-ontxt.ontxt-right { flex-wrap: nowrap; }
.pic-ontxt.ontxt-right .img { width: 70%; margin-right: auto; }
.pic-ontxt.ontxt-right .txt { width: 50%; margin: 5rem 0 5rem -20%; }

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .pic-ontxt { margin-bottom: 2rem; max-width: calc(100% - 3rem);margin-left: auto;margin-right: auto;}
  .pic-ontxt.ontxt-left, .pic-ontxt.ontxt-right { flex-wrap: wrap; }
  .pic-ontxt.ontxt-top .img, .pic-ontxt.ontxt-bottom .img, .pic-ontxt.ontxt-left .img, .pic-ontxt.ontxt-right .img { width: 100%; order: 1; }
  .pic-ontxt.ontxt-top .txt, .pic-ontxt.ontxt-bottom .txt, .pic-ontxt.ontxt-left .txt, .pic-ontxt.ontxt-right .txt { width: calc(100% - 2rem); margin: -5rem auto 0; padding: 2rem; order: 2; }
  .pic-ontxt .txt p {
    padding: 0;
  }

  .pic-ontxt .txt h4 {
    padding: 0;                 /* ← 4方向すべて明示的にリセット */
    display: flex;
    align-items: flex-start;
    gap: 1rem;
  }

  .pic-ontxt .txt h4::before {
    position: static;
    left: auto;                 /* ← left指定を明示的に無効化 */
    top: auto;
    transform: none;
    flex-shrink: 0;
    margin-top: 1.12rem;
  }
}

/* ---------------------------------------------------
	画像＋テキスト（縦分割）共通調整
------------------------------------------------------ */
.box_row2 .btn-link,.box_row3 .btn-link,.box_row4 .btn-link{margin-top: 2rem;width: 100%;}
.box_row2 h2,.box_row3 h2,.box_row4 h2{margin-bottom: 2rem;}
.box_row2 h3,.box_row3 h3,.box_row4 h3{margin-bottom: 2rem;}
.box_row2 h4,.box_row3 h4,.box_row4 h4{margin-bottom: 2rem;}
.box_row2 h5,.box_row3 h5,.box_row4 h5{margin-bottom: 2rem;}
@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape){
  .box_row2,.box_row3,.box_row4{padding: 0 1.5rem;}
  .box_row2 h2,.box_row3 h2,.box_row4 h2{padding: 0 0 0 2rem;}
  .box_row2 h2::after,.box_row3 h2::after,.box_row4 h2::after{left:0;}
  .box_row2 h3,.box_row3 h3,.box_row4 h3{padding: 0}
  .box_row2 h4,.box_row3 h4,.box_row4 h4{padding: 0 0 0 3rem;}
  .box_row2 h4::before,.box_row3 h4::before,.box_row4 h4::before{left: 0;}
  .box_row2 h5,.box_row3 h5,.box_row4 h5{padding: 0}
}

/* ---------------------------------------------------
	画像＋テキスト（縦：2分割）※センターから表示する
------------------------------------------------------ */
.box_row2 { justify-content: space-between; margin-bottom: 4rem; }
.box_row2 h4 { margin-bottom: 1rem; }
.box_row2 .row_col { width: 58rem; max-width: 48.333%; margin-bottom: 4rem; }
.box_row2 .row_col .col_pic {margin-bottom: 2rem;text-align: center;border-radius: 2rem;overflow: hidden;}
.box_row2 .row_col .col_txt p { padding: 0; }

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .box_row2 h4 { width: 100%; margin-bottom: 1rem; padding: 0 0 0 3rem; }
  .box_row2 .row_col { width: 100%; max-width: 100%; margin-bottom: 2rem; }
  .box_row2 .row_col .col_pic { margin-bottom: 1.5rem; }
  .box_row2 .row_col + .row_col { margin-top: 3rem; }
  .box_row2 .row_col .col_txt { padding:0; }
  .box_row2 .row_col .col_txt p{ padding:0; }
}
@media screen and (max-width: 896px) and (orientation: landscape) {
  .box_row2 .row_col .col_txt { padding: 0; }
}
/* ---------------------------------------------------
	画像＋テキスト（縦：3分割）※センターから表示する
------------------------------------------------------ */
.box_row3 { justify-content: center; margin-bottom: 4rem; }
.box_row3 h4 { margin-bottom: 1rem; }
.box_row3 .row_col { width: 37.3rem; max-width: 31.084%; margin-right: 3.37%; margin-bottom: 4rem; }
.box_row3 .row_col:nth-of-type(3n) { margin-right: 0; }
.box_row3 .row_col:last-of-type { margin-right: 0; }
.box_row3 .row_col .col_pic { margin-bottom: 2rem; text-align: center;border-radius: 2rem;overflow: hidden; }
.box_row3 .row_col .col_txt p { margin: 0; }
.box_row3 .row_col .col_btn { margin-top: 2rem; text-align: left; }
.box_row3 .row_col .col_btn a { display: inline-block; border: 0.1rem solid #0EA7AC; padding: 2rem 2rem; text-decoration: none; width: 100%; min-width: 36rem; }
.box_row3 .row_col .col_btn a::before { content: url(../images/common/ico-arrow-cr.png); margin-right: 1rem; }

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .box_row3 { margin-bottom: 5rem; }
  .box_row3 h4 { width: calc(100% - 2rem); margin-bottom: 1rem; padding: 0 0 0 3rem;margin: 2rem 0; }
  .box_row3 .row_col { width: 100%; max-width: 100%; margin-right: 0; }
  .box_row3 .row_col:last-of-type { margin-bottom: 0; }
  .box_row3 .row_col .col_pic { margin-bottom: 1.5rem; }
  .box_row3 .row_col .col_txt { padding: 0; }
  .box_row3 .row_col .col_txt p{ padding: 0; }
}
@media screen and (max-width: 896px) and (orientation: landscape) {
.box_row3 h4 { width: 100%; }
.box_row3 .row_col .col_txt { padding: 0; }
}
/* ---------------------------------------------------
	画像＋テキスト（縦：4分割）※センターから表示する
------------------------------------------------------ */
.box_row4 { justify-content: center; margin-bottom: 4rem; }
.box_row4 h5 { margin-bottom: 2rem; }
.box_row4 .row_col { width: 22.5%; margin-right: 3.33%; margin-bottom: 4rem; }
.box_row4 .row_col:nth-of-type(4n) { margin-right: 0; }
.box_row4 .row_col:last-of-type { margin-right: 0; }
.box_row4 .row_col .col_pic { margin-bottom: 2rem; text-align: center;border-radius: 2rem;overflow: hidden; }

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .box_row4 { margin-bottom: 5rem; justify-content: space-between; }
  .box_row4 h4 { padding: 0 0 0 3rem; }
  .box_row4 h5 { margin-bottom: 1rem; margin-left: 0; margin-right: 0; text-align: left; }
  .box_row4 .row_col { width: 100%; max-width: 100%; margin-right: 0; }
  .box_row4 .row_col:last-of-type { margin-bottom: 0; }
  .box_row4 .row_col .col_pic { margin-bottom: 1.5rem; }
  .box_row4 .row_col .col_txt{padding: 0;}
  .box_row4 .row_col .col_txt p{padding: 0;margin: 0;}
}
@media screen and (max-width: 896px) and (orientation: landscape) {
  .box_row4 .row_col .col_txt h5 { padding: 0; }
}

/* ------------------------------
　　SP：縦分割の見出し小の左端を数字付き見出しと揃える
------------------------------ */
@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .entry-column .box_row2 h4,
  .entry-column .box_row3 h4,
  .entry-column .box_row4 h4 {
    padding-left: 0;
  }
}

/* ---------------------------------------------------
	タイトル＋テキスト（左右配置）
------------------------------------------------------ */
.tit-and-txt-wrap { display: flex; align-items: flex-start; flex-wrap: wrap;margin-bottom: 4rem; }
.tit-and-txt-wrap .text-wrap { width: 47%; }
.tit-and-txt-wrap .tit-wrap { width: 50%; }
.tit-and-txt-wrap .tit-wrap.w70 { width: 70%; }
.tit-and-txt-wrap .tit-wrap.w70 + .text-wrap { width: 27%; }
.tit-and-txt-wrap .tit-wrap.w60 { width: 60%; }
.tit-and-txt-wrap .tit-wrap.w60 + .text-wrap { width: 37%; }
.tit-and-txt-wrap .tit-wrap.w50 { width: 50%; }
.tit-and-txt-wrap .tit-wrap.w50 + .text-wrap { width: 47%; }
.tit-and-txt-wrap .tit-wrap.w40 { width: 40%; }
.tit-and-txt-wrap .tit-wrap.w40 + .text-wrap { width: 57%; }
.tit-and-txt-wrap .tit-wrap.w30 { width: 30%; }
.tit-and-txt-wrap .tit-wrap.w30 + .text-wrap { width: 67%; }
.tit-and-txt-wrap.pos-top { align-items: flex-start; }
.tit-and-txt-wrap.pos-middle { align-items: center; }
.tit-and-txt-wrap.pos-under { align-items: flex-end; }

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .tit-and-txt-wrap .tit-wrap { width: 100% !important; }
  .tit-and-txt-wrap .text-wrap { width: 100% !important; }
  .tit-and-txt-wrap .btn-link{padding: 0 1.5rem;}
  .tit-and-txt-wrap .text-wrap p {
    padding: 0 1.5rem;
  }
  .tit-and-txt-wrap .tit-wrap h3 {
    padding: 0 1.5rem;
  }
}

/* ---------------------------------------------------
	Q&A
------------------------------------------------------ */
.faq-group {max-width: 120rem;margin: 0 auto 4rem;}

.faq-group .faq-content {margin: 0 auto 4rem; }

.faq-group .faq-content .faq-q {position: relative; padding:2.8rem 7rem 2.8rem 4rem; text-align: left; font-family: "Zen Kaku Gothic New"; font-size: 2.4rem;background: #D6EBE8;border-radius: 1rem;font-weight: 700;display: flex;justify-content: flex-start;align-items: center;color: #103A44;cursor: pointer;margin: 0;}
.faq-group .faq-content .faq-q::before {content: "Q"; margin-right: 1rem;left: 0;display: inline-block;margin-right: 2.2rem;font-size: 4rem;line-height: 1;font-family:"Roboto";color: #48A99E;}
.faq-group .faq-content .faq-q::after{content:"";width: 1.9rem;aspect-ratio: 1/1;position: absolute;top: 50%;transform: translateY(-50%);right: 3.6rem;background:url("../images/common/ico-faq.svg") no-repeat center/contain;display: block;}

.faq-group .faq-content .faq-q.open::after{background-image:url("../images/common/ico-faq-open.svg")}

.faq-group .faq-content .faq-a {
	position: relative;
	padding: 2.8rem 4rem 2.8rem 8.2rem;
	font-size: 1.8rem;
	line-height: 2;
	font-weight: 400;
	display: none;
	margin: 0;
}

.faq-group .faq-content .faq-a::before {
	content: "A";
	position: absolute;
	left: 4rem;
	top: 2.8rem;
	display: inline-block;
	margin-right: 0;
	font-size: 4rem;
	line-height: 1;
	font-family: "Roboto";
	color: #F39353;
	font-weight: 700;
}

/* FAQ集約ページ（全ページから自動集約）の下余白 */
.faq-group:has(.faq-page-title) {
	margin-bottom: 10rem;
}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
	.faq-group .faq-content .faq-a {
		padding: 2rem 2rem 2rem 5.6rem;
	}
	.faq-group .faq-content .faq-a::before {
		left: 2rem;
		top: 2rem;
		font-size: 3.5rem;
		margin-right: 0;
	}
}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
	.faq-group:has(.faq-page-title) {
		margin-bottom: 6rem;
	}
}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .faq-group { max-width: 100%; margin: 0 auto 2rem; padding: 0 1rem; }

  .faq-group .faq-content .faq-q::before{font-size: 3.5rem;margin-right: 1.6rem;}
  .faq-group .faq-content .faq-q{font-size: 2rem;padding:2rem 5rem 2rem 2rem;}
  .faq-group .faq-content .faq-q::after{right: 1.5rem;width: 1.6rem;}
}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
	.faq-group .faq-content .faq-a a {
		display: inline;
		word-break: break-all;
	}
}

/* ---------------------------------------------------
	流れ・手順用
------------------------------------------------------ */
.custom-flow {counter-reset: flownum;margin-bottom: 4rem;}
.flow-box {
  position: relative;
  padding:6rem;
  display: flex;
  gap: 6rem;   /* ← 追加 */
  border-radius: 2rem;
  background: #E8ECEB;
  margin-bottom: 4.2rem;
}

.flow-box::after{content:"";clip-path: polygon(0 0, 50% 100%, 100% 0);background: #48A99E;width: 3.5rem;height: 1.5rem;position: absolute;bottom:-3rem;left: 50%;transform: translateX(-50%);}

.flow-box:last-of-type{margin-bottom: 0;}
.flow-box:last-of-type::after{display: none;}

.flow-box h3.tit-flow{position: relative; margin-bottom: 3rem;margin-left:0;margin-right:0;}
.flow-box h3.tit-flow::before {counter-increment: flownum; content: counter(flownum,decimal-leading-zero);font-size: 2.4rem; font-family: "Roboto";font-weight:700;display:flex;justify-content: center;align-items: center;}

.flow-content {display:block;width: 100%; max-width: 120rem; margin: 0 auto;}
.flow-content::before, .flow-content::after { content: ""; display: none; }

.flow-box .flow-img { width:36rem;flex-shrink:0;max-width: 100%;}
.flow-box .flow-img img{overflow: hidden;border-radius: 1rem;}
.flow-content .flow-txt { width:100%;}

.flow-box.no-img .flow-img { display: none; }
.flow-content.no-img .flow-txt { width: 100%; max-width: 100%; }
.flow-content.no-img .flow-txt strong { font-weight: bold; }

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .flow-box { position: relative; padding:3rem; display: block;width: calc(100% - 3rem);margin-left: auto;margin-right: auto;}
  .flow-box h3.tit-flow{
    padding:0 0 0 6rem;
    font-size: 2.4rem;
    line-height: 1.4;
    letter-spacing: 0.01em;
    color: #103A44;
    margin-bottom: 2rem;
  }
  .flow-box p.flow-txt{
    padding:0;
    margin-bottom: 2rem;
    font-size: 1.6rem;
    line-height: 1.8;
    color: #103A44;
  }
  .flow-box .flow-content { display: block; width: 100%; max-width: 120rem; }
  .flow-box .flow-content .flow-img { width: 100%; max-width: 100%; text-align: center; margin-bottom: 1rem; }
  .flow-box .flow-content .flow-txt { width: 100%; max-width: 100%; }
}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .entry-column .flow-box h3.tit-flow::before {
    left: 0;
  }
}

/* ---------------------------------------------------
	テーブル
------------------------------------------------------ */

.column-table {
	width: 100%;
	margin: 0 auto 4rem;
	border: 0.1rem solid #7D999C;
	border-radius: 1rem;
	overflow: hidden;
}
.column-table table {
	border-collapse: collapse;
	border-spacing: 0;
	width: 100%;
}
.column-table table tr {
	width: 100%;
	empty-cells: show;
	table-layout: fixed;
	background: #FFF;
}

/* 基本：右ボーダーのみ持つ。下ボーダーは持たせない */
.column-table table tr th, .column-table table tr td {
	padding: 1.4rem 2rem;
	font-size: 1.8rem;
	border-left: 0.1rem solid #7D999C;
	border-bottom: 0.1rem solid #7D999C;
	vertical-align: middle;
}

/* 行の下ボーダーは tr にまとめて1本だけ引く */
.column-table table tr:not(:last-child) {
	box-shadow: none;
}

.column-table table tr th {
	background: #EAF8F4;
	color: #103A44;
	text-align: left;
	width: 25%;
}
.column-table table tr td {
	background: #fff;
	color: #103A44;
}

.column-table- table tr th:last-child,.column-table- table tr td:last-child{border-right: none;}
.column-table- table tr:last-child th,.column-table- table tr:last-child td{border-bottom: none;}

/* スクロールを促すテーブル */
.column-table .js-table-unit-scroll-hint,
.column-table .acms-table-scrollable {
	border-collapse: separate;
	border-spacing: 0;
	width: 100%;
}

/* 1行目は上線不要（外枠が担う） */
.column-table table tr:first-of-type th,
.column-table table tr:first-of-type td {
	border-top: none;
}
.column-table .js-table-unit-scroll-hint th,
.column-table .acms-table-scrollable th {
	background: #EAF8F4;
	color: #103A44;
	text-align: left;
}
.column-table .js-table-unit-scroll-hint td,
.column-table .acms-table-scrollable td {
	background: #fff;
	color: #103A44;
}
.column-table .js-table-unit-scroll-hint tr:last-child th,
.column-table .js-table-unit-scroll-hint tr:last-child td,
.column-table .acms-table-scrollable tr:last-child th,
.column-table .acms-table-scrollable tr:last-child td {
	border-bottom: none;
}

/* rowspan セルの下線は消す */
.column-table table th[rowspan],
.column-table table td[rowspan] {
	border-bottom: none;
}

/* スクロールヒントのラッパー対応 */
.column-table:has(.scroll-hint) {
	border: none;
}
.column-table .scroll-hint {
	width: 100%;
	border: 0.1rem solid #7D999C;
	border-radius: 1rem;
	overflow: hidden;
	padding: 0;
	margin: 0;
	box-sizing: border-box;
}
.column-table .js-table-unit-scroll-hint tr th:first-child,
.column-table .js-table-unit-scroll-hint tr td:first-child {
	border-left: none;
}



@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .column-table { margin: 0 auto 3rem;width: calc(100% - 3rem); }
  .gu-bg-gray > .column-table {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;   /* ← 追加 */
  }
  .column-table- { margin: 0 auto 2rem;width: calc(100% - 3rem);}
  .column-table- table tr th, .column-table- table tr td { padding: 1rem; font-size: 1.8rem; display: block; }
  .column-table- table tr th { width: 100%; }
  .column-table- table.js-table-unit-scroll-hint { table-layout: auto; }
  .column-table- table.acms-table-scrollable { table-layout: auto; }
}

@media screen and (max-width: 896px) and (orientation: landscape) {
  .column-table- { padding: 0 4rem; }
  .column-table- table.js-table-unit-scroll-hint { table-layout: auto; }
  .column-table- table.js-table-unit-scroll-hint th, .column-table- table.js-table-unit-scroll-hint td { display: table-cell !important; white-space: nowrap; }
  .column-table- table.acms-table-scrollable { table-layout: auto; }
  .column-table- table.acms-table-scrollable th, .column-table- table.acms-table-scrollable td { display: table-cell !important; white-space: nowrap; }
}

/* ---------------------------------------------------
	罫線
------------------------------------------------------ */
.entry-column hr.hr-line {margin: 0 auto;border-bottom: 0.1rem dashed #103A44;}

/* ---------------------------------------------------
	余白
------------------------------------------------------ */
.hr_margin {margin: 0 auto;border: none !important;display: inline-block;}

.margin-s { margin-bottom: 2rem; }
.margin-m { margin-bottom: 4rem; }
.margin-l { margin-bottom: 6rem; }
@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .margin-s { margin-bottom: 1rem; }
  .margin-m { margin-bottom: 2rem; }
  .margin-l { margin-bottom: 3rem; }
}

/* ------------------------------
　　sdgs
------------------------------ */
.sdgs-unit-wrap {
  width: 100%;
  max-width: 120rem;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  margin: auto;
  margin-bottom: 6rem;
}
.sdgs-unit-wrap img {
  display: block;
  width: 26rem;
  height: 26rem;
  -o-object-fit: cover;
     object-fit: cover;
  margin-right: 4rem;
}
.sdgs-unit-wrap .text {
  width: 90rem;
}
.sdgs-unit-wrap > *:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 1240px) {
  .sdgs-unit-wrap {
    width: 120rem;
    margin: auto;
    margin-bottom: 6rem;
  }
  .sdgs-unit-wrap img {
    width: 26rem;
    height: 26rem;
    margin-right: 4rem;
  }
  .sdgs-unit-wrap .text {
    width: 90rem;
  }
}
@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .sdgs-unit-wrap {
    width: 100%;
  }
  .sdgs-unit-wrap img {
    margin-right: auto;
    margin: auto;
    margin-bottom: 2rem;
  }
  .sdgs-unit-wrap .text {
    width: 100%;
  }
}

/* ---------------------------------------------------
	slider 共通
------------------------------------------------------ */
.slick-prev, .slick-next {
  background: none;
}
.slick-prev::before, .slick-next::before {
  content: "";
  display: none;
}

.slide-inft {
  max-width: 100rem;
  margin: 0 auto;
  display: none;
}
.slide-inft.slick-initialized {
  display: block;
}
.slide-inft .slick-next, .slide-inft .slick-prev {
  width: 3rem;
  height: 5.4rem;
  margin-top: -2.7rem;
}
.slide-inft .slick-prev {
  background: url("../images/common/ico-slider-prev@2x.png") no-repeat;
  left: -5rem;
}
.slide-inft .slick-next {
  background: url("../images/common/ico-slider-next@2x.png") no-repeat;
  right: -5rem;
}
.slide-inft .slick-slide img {
  max-width: 100rem;
  max-height: 66rem;
}

.slide-inft-thumb {
  max-width: 88rem;
  margin: 0 auto 4rem;
  display: none;
}
.slide-inft-thumb.slick-initialized {
  display: block;
}
.slide-inft-thumb .slick-track {
  display: flex;
  justify-content: space-between;
}
.slide-inft-thumb .slick-track::before, .slide-inft-thumb .slick-track::after {
  display: none;
}
.slide-inft-thumb .slick-slide {
  max-width: 17rem;
}
.slide-inft-thumb .slick-next, .slide-inft-thumb .slick-prev {
  width: 1.5rem;
  height: 2.7rem;
  top: 50%;
  margin-top: -1.4rem;
}
.slide-inft-thumb .slick-prev {
  background: url("../images/common/ico-slider-prev.png") no-repeat;
  left: -3rem;
}
.slide-inft-thumb .slick-next {
  background: url("../images/common/ico-slider-next.png") no-repeat;
  right: -3rem;
}

.slide-inf {
  max-width: 100rem;
  margin: 0 auto 4rem;
  display: none;
}
.slide-inf.slick-initialized {
  display: block;
}
.slide-inf .slick-next, .slide-inf .slick-prev {
  width: 3rem;
  height: 5.4rem;
  margin-top: -2.7rem;
}
.slide-inf .slick-prev {
  background: url("../images/common/ico-slider-prev@2x.png") no-repeat;
  left: -5rem;
}
.slide-inf .slick-next {
  background: url("../images/common/ico-slider-next@2x.png") no-repeat;
  right: -5rem;
}
.slide-inf .slick-slide img {
  max-width: 100rem;
  max-height: 66rem;
}

.slick-list:focus::before {
  border: none;
}

.slick-slide .slide-img-cap {
  margin-bottom: 2rem;
}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .slide-inft {
    max-width: 100%;
    margin: 0 auto;
  }
  .slide-inft .slick-next, .slide-inft .slick-prev {
    display: none !important;
    width: 8rem;
    height: 1.5rem;
    margin-top: -0.7rem;
    top: 11rem;
  }
  .slide-inft .slick-prev {
    background: url("../img/common/ico_slide_arrow_left.png") no-repeat;
    left: 0;
  }
  .slide-inft .slick-next {
    background: url("../img/common/ico_slide_arrow_right.png") no-repeat;
    right: 0;
  }
  .slide-inft .slick-slide img {
    max-width: 100%;
    max-height: 25rem;
  }
  .slide-inft-thumb {
    max-width: 100%;
    margin: 0 auto 4rem;
  }
  .slide-inft-thumb .slick-track {
    display: flex;
    justify-content: space-between;
    margin-bottom: 2rem;
  }
  .slide-inft-thumb .slick-track::before, .slide-inft-thumb .slick-track::after {
    display: none;
  }
  .slide-inft-thumb .slick-slide {
    max-width: 17rem;
  }
  .slide-inft-thumb .slick-next, .slide-inft-thumb .slick-prev {
    top: 40%;
  }
  .slide-inf {
    max-width: 100%;
    margin: 0 auto 4rem;
  }
  .slide-inf .slick-next, .slide-inf .slick-prev {
    display: none !important;
    width: 8rem;
    height: 1.5rem;
    margin-top: -0.7rem;
    top: 11rem;
  }
  .slide-inf .slick-prev {
    background: url("../img/common/ico_slide_arrow_left.png") no-repeat;
    left: 0;
  }
  .slide-inf .slick-next {
    background: url("../img/common/ico_slide_arrow_right.png") no-repeat;
    right: 0;
  }
  .slide-inf .slick-slide img {
    max-width: 100%;
    max-height: 25rem;
  }
  .slick-slide .slide-img-cap {
    margin-bottom: 1rem;
    line-height: 1.6;
  }
}

/* ---------------------------------------------------
	背景
------------------------------------------------------ */
.bgontxt{
  max-width: 100%;
  width: 100%;
  margin-bottom: 4rem;
  min-height: 31.25vw; /* 1920:600 = 600/1920 = 31.25vw */
  box-sizing: border-box;
  display: flex;
  align-items: center;   /* コンテンツを縦中央に */
  justify-content: center;
}
.bgontxt .container{
  max-width: 120rem;
  margin: auto;
  padding: 10rem 0;
  width: 100%;
}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape){
  .bgontxt{
    min-height: 31.25vw; /* 比率を維持したまま画面幅に追従 */
  }
  .bgontxt .container{padding: 5rem 1.5rem;}
}

/* ------------------------------
　　WEB予約CTA
------------------------------ */
.unit-cta{border-radius: 2rem;background: #48A99E;padding: 5.5rem 8rem 7.6rem;margin-bottom: 4rem;}
.unit-cta .cta-title{color: #fff;text-align: center;font-family: "Zen Kaku Gothic New";margin-bottom: 4.5rem;font-weight: 700;letter-spacing: 0.03em;line-height: 1.6;font-size: 3rem;}
.unit-cta .box{display: flex;gap: 4rem;}
.unit-cta .box .left,.unit-cta .box .right{width: calc((100%/2) - (4rem/2));border-radius: 2rem;background: #fff;padding: 3.1rem 5.8rem 3.7rem;}
.unit-cta .box .left h4,.unit-cta .box .right h4{text-align: center;padding: 0;}
.unit-cta .box .left h4::before,.unit-cta .box .right h4::before{display: none;font-family:"Noto Sans JP";line-height:1;letter-spacing: 0;margin-bottom: 1rem;}

.unit-cta .box .left{}
.unit-cta .box .left .tel{margin: 0;font-family:"Zen Maru Gothic";color: #48A99E;line-height: 1;font-size: 4.2rem;font-weight: 900;text-align: center;}
.unit-cta .box .left .tel small{font-family: "Noto Sans JP";font-weight: 400;font-size: 1.4rem;line-height: 1.6;display: block;color: #103A44;margin-top: 0.7rem;}
.unit-cta .box .right{}
.unit-cta .box .right .btn-link{width: 100%;}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape){
  .unit-cta{padding: 2rem 1rem;max-width: calc(100% - 2rem);margin-left: auto;margin-right: auto;}
  .unit-cta .cta-title{padding: 0;font-size: 2.5rem;margin-bottom: 3rem;}
  .unit-cta .box{display:block;}

  .unit-cta .box .left{margin-bottom: 2rem;}
  .unit-cta .box .left,.unit-cta .box .right{width:100%;border-radius: 1rem;padding:2rem 1rem;}
  .unit-cta .box .left .tel{font-size: 3.6rem;}
  .unit-cta .box .left .tel small{font-size: 1.4rem;}
  .unit-cta .box .left h4,
	.unit-cta .box .right h4 {
		display: block;
		text-align: center;
		padding: 0;
	}
}
.unit-cta .box .right .btn-link,
 .unit-cta .box .right .btn-link a {
  color: #fff;
}

/* ------------------------------
　　メリット
------------------------------ */
.unit-merit{display: flex;align-items: flex-start;justify-content: space-between;gap:6rem;background: #fff;box-shadow: 0 0 2rem #0000001A;border-radius: 2rem;padding: 6rem;margin-bottom: 8rem;}
.unit-merit .left,.unit-merit .right{width: calc((100%/2) - (6rem/2));}

.unit-merit .left{}
.unit-merit .left .num{font-size: 6rem;font-weight: 700;font-family: "Roboto";margin-bottom: 4rem;line-height: 1;color: #48A99E;}
.unit-merit .left .merit-title{
  font-family: "Zen Kaku Gothic New";
  font-size: 3rem;
  line-height: 1.6;
  letter-spacing: 0.03em;
  font-weight: 700;
  color: #103A44;
  margin-bottom: 6rem;
}
.unit-merit .left .merit-text{margin-bottom: 0;color:#103A44;font-weight: 400;font-size: 1.8rem;line-height: 2;}
.unit-merit .right{}

.unit-merit .right img{overflow: hidden;border-radius: 2rem;}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape){
  .unit-merit{display:flex;flex-direction:column;gap: 0;padding: 3rem;width: calc(100% - 3rem);margin-left: auto;margin-right: auto;}
  .unit-merit .left{display:contents;}
  .unit-merit .left,.unit-merit .right{width: 100%;}
  .unit-merit .right{order: 2;margin-bottom: 2rem;}
  .unit-merit .left .num{font-size: 5rem;margin: 0 0 1.7rem 0;order: 1;text-align: left;}

  .unit-merit .left .merit-title{
  font-size: 2.8rem;
  line-height: 1.4;
  letter-spacing: 0.01em;
  color: #103A44;
  margin: 0 0 2rem 0;
  padding: 0;
  order: 3;
  text-align: left;
}
  .unit-merit .left .merit-title strong,
  .unit-merit .left .merit-title .highlight{
    color: #48A99E;
    font-weight: 700;
  }

  .unit-merit .left .merit-text{
  font-size: 1.6rem;
  line-height: 1.8;
  padding: 0;
  order: 4;
  text-align: left;
}
  .unit-merit .right img{border-radius: 1rem;}
}

/* ------------------------------
　　商品情報
------------------------------ */
.unit-product{
  width: 100%;
  max-width: 120rem;
  margin: 0 auto 4rem;
  background-color: #E8EDEB;
  background-image: url("../images/common/group-bg-product.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  border-radius: 2rem;
  overflow: hidden;
  padding: 6rem;
  box-sizing: border-box;
}
.unit-product .product-inner{
  background: #fff;
  border-radius: 1rem;
  padding: 6rem 6rem 6.5rem 6rem;
  box-sizing: border-box;
}
.unit-product .wrap{display: flex;gap: 6rem;align-items: flex-start;margin-bottom: 6rem;}
.unit-product .wrap .img-box{width: 37%;flex-shrink: 0;}
.unit-product .wrap .img-box .active-img{margin-bottom: 1.5rem;}
.unit-product .wrap .img-box .active-img img{overflow: hidden;border-radius: 1rem;}
.unit-product .wrap .img-box .minibox{display: flex;align-items: flex-start;justify-content: flex-start;flex-wrap: wrap;gap: 1rem;}
.unit-product .wrap .img-box .minibox .click_pic{aspect-ratio: 60/45;width: 6rem;height: auto;object-fit: cover;display:block;cursor: pointer;}

.unit-product .wrap .txt-box{}
.unit-product .wrap .txt-box h4{padding-left: 0;}
.unit-product .wrap .txt-box h4::before{display: none;}

/* グループ内に入った場合 */
.column-group .unit-product{
	width: 100%;
	max-width: 100%;
	padding: 0;
	margin: 0 0 4rem;
	background: none;
	border-radius: 0;
}
.column-group .unit-product:last-child{
	margin-bottom: 0;
}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape){
    .unit-product{padding:1.5rem;width: calc(100% - 3rem);border-radius: 1rem;margin-left: auto;margin-right: auto;}
  .unit-product .product-inner{padding: 3rem;border-radius: 1rem;}
  .unit-product .wrap{display: block;}
  .unit-product .wrap .img-box{width: 100%;margin-bottom: 2rem;}

  .unit-product .wrap .txt-box h3{padding: 0;}
  .unit-product .wrap .txt-box h4{padding: 0;}
  .unit-product .wrap .txt-box p{padding: 0;}
    .unit-product .wrap .txt-box h2,
  .unit-product .wrap .txt-box h3,
  .unit-product .wrap .txt-box h4,
  .unit-product .wrap .txt-box h5 {
    font-family: "Zen Kaku Gothic New";
  }
  .unit-product .wrap .txt-box p {
    font-family: "Noto Sans JP";
  }
  .unit-product .column-table-{width: 100%;}
  .unit-product .column-table- table{display: grid;grid-template-columns: 1fr;}
  .unit-product .column-table- table thead,
  .unit-product .column-table- table tbody,
  .unit-product .column-table- table tr{display: contents;}
  .unit-product .column-table- table th,.unit-product .column-table- table td{display: block;width: 100%;}
  .unit-product .column-table- table th:nth-of-type(1){order: 1;}
  .unit-product .column-table- table td:nth-of-type(1){order: 2;}
  .unit-product .column-table- table th:nth-of-type(2){order: 3;}
  .unit-product .column-table- table td:nth-of-type(2){order: 4;}
  .unit-product .column-table- table th:nth-of-type(3){order: 5;}
  .unit-product .column-table- table td:nth-of-type(3){order: 6;}

    /* グループ背景の中に入った場合 */
  .column-group .unit-product{
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding: 0;
    background: none;
  }
}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape){
  .unit-product .column-table- table th,
  .unit-product .column-table- table td {
    border-right: none;
  }
}

/* ------------------------------
　　グループユニット
------------------------------ */
/* 背景1 波線　*/
.column-group.bg1{position: relative;background: url("../images/common/group-bg1c.png")repeat-y center/100% auto;max-width: 100%;width: 100%;margin-top: 30rem;margin-bottom: 30rem;}
.column-group.bg1 > *{max-width: 120rem;margin-left: auto;margin-right: auto;}
.column-group.bg1::before{content:"";background: url("../images/common/group-bg1h.png")no-repeat bottom/100% auto;max-width: 100%;position: absolute;width: 100%;height: 26.4rem;top:-26.4rem;}
.column-group.bg1::after{content:"";background: url("../images/common/group-bg1f.png")no-repeat top/100% auto;max-width: 100%;position: absolute;width: 100%;height: 26.4rem;bottom: -26.4rem;}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape){
  .column-group.bg1{margin-top: 10rem;margin-bottom: 10rem;}
  
}

/* 背景2 模様　*/
/*.column-group.bg2{
  position: relative;
  background: url("../images/common/group-bg2.png")repeat-y center/100% auto;
  padding: 6rem;
  border-radius: 1rem;
  overflow: hidden;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  box-sizing: border-box;
}*/
.column-group.bg2{
  position: relative;
  background: url("../images/common/group-bg2-2.png") repeat-y center/100% auto;
  padding: 6rem;
  border-radius: 1rem;
  overflow: hidden;
  width: 100%;
  max-width: 120rem;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}
.column-group.bg2 > * {
  max-width: 120rem;
  margin-left: auto;
  margin-right: auto;
}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape){
  .column-group.bg2{
    background: url("../images/common/group-bg2-2-sp.png") repeat-y center/100% auto;
    padding: 1.5rem 1.5rem 2.9rem;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    border-radius: 0;
  }
}

/* ------------------------------
　　グループ背景内：左右パディングの二重がけ解消
------------------------------ */
@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
	.column-group.bg2 > .pic_txt,
	.column-group.bg2 .pic_txt {
		padding-left: 0;
		padding-right: 0;
	}

	.column-group.bg2 > h2,
	.column-group.bg2 > h3,
	.column-group.bg2 > h4,
	.column-group.bg2 > h5,
	.column-group.bg2 > p,
	.column-group.bg2 > ul,
	.column-group.bg2 > ol {
		padding-left: 0;
		padding-right: 0;
	}

	/* h2 の縦線は左端に寄せ直す */

	.column-group.bg2 > h2::after {
		left: 0;
	}
}

.entry-column table {
	border-radius: 1rem;
	border-collapse: collapse;
	overflow: hidden;
	width: 100%;
}

.entry-column table:not(.js-table-unit-scroll-hint) td,
.entry-column table:not(.js-table-unit-scroll-hint) th {
	background: #fff;
	color: #103A44;
	font-size: 1.8rem;
	padding: 1.4rem 2rem;
	border: none;
}

.entry-column table th {
	background: #EAF8F4;
	text-align: left;
}

/* ← 順番を .entry-column .column-table に修正 */
.entry-column .column-table table tr:first-child th,
.entry-column .column-table table tr:first-child td {
	border-top: none;
}
/* 最終行は下線不要 */
.column-table table tr:last-of-type th,
.column-table table tr:last-of-type td {
	border-bottom: none;
}
.entry-column .column-table table tr th:first-child,
.entry-column .column-table table tr td:first-child {
	border-left: none;
}

.unit-product table {
	border: 0.1rem solid #7D999C;
	border-radius: 1rem;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	width: 100%;
}
.unit-product table th {
	background: #EAF8F4;
	border-bottom: 0.1rem solid #7D999C;
	border-right: 0.1rem solid #7D999C;
	color: #103A44;
	text-align: center;
	font-size: 1.8rem;
	padding: 1.4rem 2rem;
}
.unit-product table td {
	background: #fff;
	border-bottom: 0.1rem solid #7D999C;
	border-right: 0.1rem solid #7D999C;
	color: #103A44;
	text-align: center;
	font-size: 1.8rem;
	padding: 1.4rem 2rem;
}
.unit-product table tr th:last-child,
.unit-product table tr td:last-child {
	border-right: none;
}
.unit-product table tr:last-child th,
.unit-product table tr:last-child td {
	border-bottom: none;
}



/* ---------------------------------------------------
	PC/SP画像入れ替えユニット
------------------------------------------------------ */
.pcsp-img .pc-img,
.pcsp-img .sp-img {
  width: -moz-fit-content;
  width: fit-content;
  max-width: 100%;
}
.pcsp-img .pc-img img,
.pcsp-img .sp-img img {
  max-width: 100%;
  height: auto;
}
.pcsp-img.row-l .pc-img,
.pcsp-img.row-l .sp-img {
  margin-right: auto;
  margin-left: 0;
}
.pcsp-img.row-c .pc-img,
.pcsp-img.row-c .sp-img {
  margin-left: auto;
  margin-right: auto;
}
.pcsp-img.row-r .pc-img,
.pcsp-img.row-r .sp-img {
  margin-left: auto;
  margin-right: 0;
}

/* ------------------------------
　　背景色（グレー）※単独ユニット
------------------------------ */
.unit-bg-gray {
  background: #eee;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 10rem 0;
  margin-bottom: 4rem;
  box-sizing: border-box;
}
.unit-bg-gray .unit-bg-gray-inner {
  max-width: 120rem;
  margin: 0 auto;
  padding: 0 3rem;
  box-sizing: border-box;
}
.unit-bg-gray .unit-bg-gray-inner h2,
.unit-bg-gray .unit-bg-gray-inner h3 {
  text-align: center;
}
.unit-bg-gray .unit-bg-gray-inner .btn-link {
  text-align: center;
}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
  .unit-bg-gray {
    padding: 5rem 0;
  }
  .unit-bg-gray .unit-bg-gray-inner {
    padding: 0 1.5rem;
  }
}
.unit-bg-gray-item {
  margin-bottom: 3rem;
}
.unit-bg-gray-item:last-child {
  margin-bottom: 0;
}

.column-group.gu-bg-media {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 40px 20px; /* お好みで調整してください */
}

.tcol-emerald {
  color: #48A99E;
}

/* ------------------------------
　　汎用テーブル指定の打ち消し（th背景・罫線を復帰）
------------------------------ */
.entry-column .unit-product table th,
.entry-column .column-table table th {
	background: #EAF8F4;
}

/* 罫線も消えている場合はこちらも */
.entry-column .unit-product table th,
.entry-column .unit-product table td {
	border-bottom: 0.1rem solid #7D999C;
	border-right: 0.1rem solid #7D999C;
}
.entry-column .unit-product table tr th:last-child,
.entry-column .unit-product table tr td:last-child {
	border-right: none;
}
.entry-column .unit-product table tr:last-child th,
.entry-column .unit-product table tr:last-child td {
	border-bottom: none;
}


/* ============================================================
   商品ラインナップユニット（custom_lineup）
   ※ テーマ側の .entry-column p / h3 に負けるため .entry-column を付けて指定
   ============================================================ */

.entry-column .unit-lineup{
  width: 100%;
  max-width: 120rem;
  margin: 3rem auto 6rem;
  box-sizing: border-box;
}

/* カードを載せるグレーの箱 */
.entry-column .unit-lineup-tray{
  padding: 4rem;
  background-color: #E8EDEB;
  background-image: url("../images/common/group-bg-lineup.jpg");
  background-repeat: repeat;
  background-position: top center;
  background-size: auto;
  border-radius: 2rem;
  overflow: hidden;
  box-sizing: border-box;
}

.entry-column .unit-lineup-plain .unit-lineup-tray{
  padding: 0;
  background: none;
}

/* 商品カード */
.entry-column .unit-lineup-item{
  display: grid;
  grid-template-columns: 40rem 1fr;
  gap: 6rem;
  padding: 6rem 5.9rem 4rem 6.1rem;
  background: #fff;
  border-radius: 1rem;
  box-sizing: border-box;
}
.entry-column .unit-lineup-item + .unit-lineup-item{
  margin-top: 3rem;
}
.entry-column .unit-lineup-plain .unit-lineup-item{
  border: 0.1rem solid #D6DEDD;
}

.entry-column .unit-lineup-plain.unit-lineup-pic .unit-lineup-item{border:none;}

/* 画像を右に配置する場合 */
.entry-column .unit-lineup-imgR .unit-lineup-item{
  grid-template-columns: 1fr 40rem;
}
.entry-column .unit-lineup-imgR .unit-lineup-media{ order: 2; }
.entry-column .unit-lineup-imgR .unit-lineup-body { order: 1; }

.entry-column .unit-lineup-media{
  background: #EFEFEF;
  border-radius: 1rem;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.entry-column .unit-lineup-media.ver_pic{background:none;aspect-ratio: auto;border-radius:0;}

.entry-column .unit-lineup-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}



.entry-column .unit-lineup-media .img-box{flex-shrink: 0;}
.entry-column .unit-lineup-media .img-box .active-img{margin-bottom: 1.5rem;}
.entry-column .unit-lineup-media .img-box .active-img img{overflow: hidden;border-radius: 1rem;}
.entry-column .unit-lineup-media .img-box .minibox{display: flex;align-items: flex-start;justify-content: flex-start;flex-wrap: wrap;gap: 1rem;}
.entry-column .unit-lineup-media .img-box .minibox .click_pic{aspect-ratio: 60/45;width: 6rem;height: auto;object-fit: cover;display:block;cursor: pointer;}

.entry-column .unit-lineup-body{
  min-width: 0;
}

/* 商品名 */
.entry-column .unit-lineup-name{
  font-family: "Zen Kaku Gothic New";
  font-weight: 700;
  font-size: 3rem;
  line-height: 1.6;
  letter-spacing: 0.03em;
  color: #48A99E;
  margin: 0 0 2rem;
  padding: 0;
  background: none;
}

/* 価格 */
.entry-column .unit-lineup-price{
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: #103A44;
  margin: 0 0 2rem;
  padding: 0;
}

/* 説明文 */
.entry-column .unit-lineup-txt{
  font-size: 1.8rem;
  line-height: 2;
  color: #103A44;
  margin: 0 0 3rem;
  padding: 0;
}

/* スペック表 */
.entry-column .unit-lineup-spec{
  margin: 0;
  padding-top: 3rem;
  border-top: 0.1rem dashed #A9BCBD;
  display: grid;
  grid-template-columns: 12rem 1fr;
  align-items: center;
  row-gap: 2.2rem;
  column-gap: 3.2rem;
  font-size: 1.4rem;
  line-height: 1.7;
}
.entry-column .unit-lineup-spec dt{
  font-weight: 700;
  color: #103A44;
  margin: 0;
}
.entry-column .unit-lineup-spec dd{
  margin: 0;
  color: #103A44;
}

.entry-column .unit-lineup-body .btn-link{
  margin-top: 3rem;
}

/* スマートフォン */
@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape){
  .entry-column .unit-lineup{
    width: calc(100% - 3rem);
    margin: 0 auto 4rem;
  }
  .entry-column .unit-lineup-tray{ padding: 2rem 1.5rem; border-radius: 1rem; }
  .entry-column .unit-lineup-item,
  .entry-column .unit-lineup-imgR .unit-lineup-item{
    grid-template-columns: 1fr;
    gap: 2rem;
    padding: 2rem;
  }
  .entry-column .unit-lineup-imgR .unit-lineup-media{ order: 0; }
  .entry-column .unit-lineup-imgR .unit-lineup-body { order: 0; }
  .entry-column .unit-lineup-item + .unit-lineup-item{ margin-top: 2rem; }
  .entry-column .unit-lineup-media{ aspect-ratio: 4 / 3; }

  .entry-column .unit-lineup-media .wrap .img-box{width: 100%;margin-bottom: 2rem;}

  .entry-column .unit-lineup-name{ font-size: 2.2rem; line-height: 1.4; margin-bottom: 1.5rem; }
  .entry-column .unit-lineup-price{ font-size: 2rem; margin-bottom: 1.5rem; }
  .entry-column .unit-lineup-txt{ font-size: 1.6rem; margin-bottom: 2rem; line-height: 1.8;}
  .entry-column .unit-lineup-spec{
    grid-template-columns: 9rem 1fr;
    column-gap: 1.2rem;
    row-gap: 1rem;
    padding-top: 2rem;
    font-size: 1.3rem;
  }
  .entry-column .unit-lineup-body .btn-link{ margin-top: 2rem; }
}

/* ============================================================
   管理画面用（admin.css などに追記）
   ============================================================ */
.acms-admin-table-admin-edit.layout-lineup .image-area{
  width: 22rem;
  vertical-align: top;
}
.acms-admin-table-admin-edit.layout-lineup .fit-width{
  width: 100%;
}
.acms-admin-table-admin-edit.layout-lineup .fit-width th{
  width: 130px;
  white-space: nowrap;
  vertical-align: middle;
}
.acms-admin-form-width-quarter{ width: 26%; margin-right: 4px; }
.acms-admin-form-width-half{ width: 70%; }
.lineup-spec-row.is-hidden{ display: none; }
.js-lineup-spec-add{ margin-top: 2px; }

/* ---------------------------------------------------
	テーブルユニット：微小な縦スクロール抑止
------------------------------------------------------ */
.column-table {
	overflow: hidden !important;
}

.column-table .scroll-hint,
.column-table .scroll-hint-inner,
.column-table .js-table-unit-scroll-hint-wrapper {
	overflow-y: hidden !important;
	overflow-x: auto !important;
	max-height: none !important;
	height: auto !important;
}

.column-table table {
	display: table !important;
	vertical-align: top;
}

.column-table table td,
.column-table table th {
	vertical-align: middle;
}

/* グループ内：商品ラインナップ（複数画像）の余白調整 */
.column-group .unit-lineup-pic {
	margin-top: 0;
	margin-bottom: 0;
}
.column-group .unit-lineup-pic .unit-lineup-tray {
	padding: 0;
	background: none;
	border-radius: 0;
}

/* 追加した項目同士の間隔 */
.column-group .unit-lineup-pic + .unit-lineup-pic {
	margin-top: 6rem;
}
.column-group .unit-lineup-pic .unit-lineup-item + .unit-lineup-item {
	margin-top: 6rem;
}


/* 2カラムグループ内：写真とGoogleマップのサイズを揃える */
.column-group.acms-cssgrid .column-media img,
.column-group.acms-cssgrid .gmap-iframe iframe {
	width: 58rem;
	max-width: 100%;
	height: 38.7rem;
	object-fit: cover;
	border-radius: 2rem;
	display: block;
}

.column-group.acms-cssgrid .column-media,
.column-group.acms-cssgrid .gmap-iframe {
	margin-bottom: 6rem;
}

.column-group.acms-cssgrid .column-media > div {
	width: auto !important;
}

@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
	.column-group.acms-cssgrid .column-media img,
	.column-group.acms-cssgrid .gmap-iframe iframe {
		width: 100%;
		height: auto;
		aspect-ratio: 580 / 387;
	}
}

/* ------------------------------
   WEB予約CTAユニット
------------------------------ */
.unit-cta {
	position: relative;
	width: 100%;
	max-width: 120rem;
	margin: 0 auto 2.5rem;   /* 0 auto → 0 auto 2.5rem（下に25px）に変更 */
	padding: 5.5rem 6rem 6rem;
	border-radius: 2rem;
	background: #48A99E;
	color: #fff;
}

/* バッジ（SVG） */
.unit-cta-badge {
	position: absolute;
	top: -2.5rem;      /* ← カードの高さが分かり次第、正確な値に差し替えます */
	left: 11.9rem;
	width: 11.5rem;
	height: 11.3rem;
}

/* タイトル */
.unit-cta .cta-title {
	margin: 0 0 2.9rem;
	color: #fff;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 3rem;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.03em;
}

/* WEBから予約申し込みボタン */
.unit-cta-webbtn {
	margin-bottom: 4rem;
}

.unit-cta-webbtn .btn-link {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	width: 67.6rem;
	max-width: 100%;
	height: 10rem;   /* 6.6rem → 10rem（100px）に変更 */
	border-radius: 99.9rem;
	background: #fff;
	color: #103A44 !important;
	font-family: "Noto Sans JP";
	font-size: 3rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-decoration: none;
	margin: 0 auto;
}

/* 外部リンクアイコン：テキストと同じ色で右端に表示 */
/* 外部リンクアイコン：テキストと同じ色で右端に表示 */
.unit-cta .unit-cta-webbtn a.btn-link::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 3rem;
	display: block;
	width: 4rem;     /* 2rem → 4rem（40px）に戻す */
	height: 4rem;    /* 2rem → 4rem（40px）に戻す */
	margin-top: 0;
	transform: translateY(-50%);
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 19H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 19H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* ホバー時：色は変えず、不透明度のみ変更 */
.unit-cta-webbtn .btn-link:hover {
	background: #fff !important;
	color: #103A44 !important;
	opacity: 0.7;   /* 1 → 0.7 に変更 */
}

/* 下段：お問い合わせボタン＋電話番号 */
.unit-cta-sub {
	display: flex;
	align-items: stretch;
	justify-content: center;
	gap: 3.3rem;
}

.unit-cta-contact-btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	flex: 0 0 20rem;
	width: 20rem;         /* 幅：200px（変更なし） */
	height: 7.2rem;       /* 追加：高さ72px */
	align-self: center;   /* 追加：電話番号エリアと縦中央で揃える */
	border: 0.1rem solid #fff;
	border-radius: 1rem;
	color: #fff !important;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.6;
	text-align: center;
	text-decoration: none;
}

.unit-cta-sub .tel {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	margin: 0;
	color: #fff;
	font-family: "Zen Maru Gothic", sans-serif;   /* "Roboto" → "Zen Maru Gothic" に変更 */
	font-size: 3.6rem;
	font-weight: 700;
	line-height: 1.2;
}

.unit-cta-sub .tel small {
	margin-top: 0.8rem;   /* 0.6rem → 0.8rem（8px）に変更 */
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.5;
}

/* PCでは「・」を非表示 */
.unit-cta-sep {
	display: none;
}

/* ------------------------------
   WEB予約CTAユニット：SP
------------------------------ */
@media screen and (max-width: 767px), (max-width: 896px) {
	.unit-cta {
		width: calc(100% - 3rem);
		margin: 11rem auto 6rem;   /* 下の余白 2.5rem → 6rem（60px）に変更 */
		padding: 3.2rem 2.4rem 3.1rem;
		border-radius: 1rem;
	}

	.unit-cta-badge {
		top: -10rem;     /* -7.8rem → -10.3rem（カードへの重なり量を維持） */
		left: 0;
		width: 11.3rem;    /* 9rem → 11.3rem（113px） */
		height: 11.3rem;   /* auto → 11.3rem（113px） */
	}

	/* タイトル */
	.unit-cta .cta-title {
		margin-bottom: 2.2rem;   /* 2.4rem → 2.2rem（22px）に変更 */
		padding: 0;
		font-size: 2.4rem;
		line-height: 1.6;
	}

	/* WEBボタン */
	.unit-cta-webbtn {
		margin-bottom: 3.45rem;
	}

	.unit-cta-webbtn .btn-link {
		width: 30rem;
		max-width: 100%;
		height: 6rem;
		margin: 0 auto;
		padding: 0 2rem;
		gap: 0.8rem;
		font-size: 1.8rem;
	}

	/* アイコン：テキストの右隣に配置 */
	.unit-cta .unit-cta-webbtn a.btn-link::after {
		position: static;
		flex: 0 0 2.4rem;
		width: 2.4rem;
		height: 2.4rem;
		transform: none;
	}

	/* 下段：縦並び・中央揃え */
	.unit-cta-sub {
		flex-direction: column;
		align-items: center;
		gap: 0.8rem;   /* 1rem → 0.8rem（8px）に変更 */
	}

	/* お問い合わせ：枠なし＋下線の1行テキスト */
	.unit-cta-contact-btn {
		flex-direction: row;
		flex: none;
		width: 100%;
		height: auto;
		padding: 0 0 1rem;
		border: none;
		border-bottom: 0.1rem solid #fff;
		border-radius: 0;
		font-size: 1.6rem;
		line-height: 1.5;
    font-family: "Noto Sans JP";
	}

	/* 改行を消して「・」を表示 */
	.unit-cta-br {
		display: none;
	}

	.unit-cta-sep {
		display: inline;
	}

	/* 電話番号・受付時間：中央揃え */
	.unit-cta-sub .tel {
		align-items: center;
		text-align: center;
		font-size: 3.2rem;   /* 2.6rem → 3.2rem（32px）に変更 */
		line-height: 1;
	}

	.unit-cta-sub .tel small {
		margin-top: 0.4rem;
		font-size: 1.4rem;   /* 1.2rem → 1.4rem（14px）に変更 */
		font-weight: 400;
    line-height: 1.6;
	}
}

/* ------------------------------
　　SP：見出し小（h4）のフォントサイズ・行間
------------------------------ */
@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
	.entry-column h4 {
		font-size: 2.2rem;
		line-height: 1.4;
		letter-spacing: 0.01em;
	}

	/* 丸アイコンを1行目の中央に合わせる（行の高さ − 丸の大きさ）÷ 2 */
	.entry-column h4::before,
	.column_unit h4::before,
	.pic_txt .row_txt h4::before,
	.pic-ontxt .txt h4::before {
		margin-top: calc((1.4em - 1.6rem) / 2);
	}
}

/* ------------------------------
　　SP：商品情報テーブルの罫線（thの線をトル／tdの下辺に線）
------------------------------ */
@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
	.entry-column .unit-product table th,
	.entry-column .unit-product table tr:last-child th {
		border-right: none;
		border-bottom: none;
	}
	.entry-column .unit-product table td,
	.entry-column .unit-product table tr:last-child td {
		border-right: none;
		border-bottom: 0.1rem solid #7D999C;
	}
	/* 一番下のセルは外枠と重なるので下線なし */
	.entry-column .unit-product table tr:last-child td:last-child {
		border-bottom: none;
	}
}

/* ------------------------------
　　SP：商品情報の見出し・本文フォントサイズ
------------------------------ */
@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
	.unit-product .wrap .txt-box h3.product-name {
		font-size: 2.2rem;
	}
	.entry-column .unit-product .wrap .txt-box p {
		font-size: 1.6rem;
    line-height: 1.8;
	}
}

/* ------------------------------
　　SP：商品ラインナップ（複数画像）グレー背景の余白
------------------------------ */
@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
	/* 単独で置いた場合 */
	.entry-column .unit-lineup-pic .unit-lineup-tray {
		padding: 1.5rem 1.5rem 2.9rem;
	}

	/* グループ背景の中に入った場合：余白はグループ側（1.5rem 1.5rem 2.9rem）に任せる */
	.entry-column .column-group .unit-lineup-pic {
		width: 100%;
		margin-left: 0;
		margin-right: 0;
	}
	.entry-column .column-group .unit-lineup-pic .unit-lineup-tray {
		padding: 0;
	}
}

/* ------------------------------
　　SP：4分割アンカーボタン 文字を中央・矢印を右端に固定
------------------------------ */
@media screen and (max-width: 767px), (max-width: 896px) and (orientation: landscape) {
	.btnlink.num-4 .row_col a[href^="#"] {
		position: relative;
		padding: 1.25rem 5rem;   /* 左右は矢印と文字が重ならない幅 */
	}
	/* 左側の透明な要素は不要なので消す */
	.btnlink.num-4 .row_col a[href^="#"]::before {
		display: none;
	}
	.btnlink.num-4 .row_col a[href^="#"]::after {
		position: absolute;
		top: 50%;
		right: 2.6rem;
		margin-top: -1.2rem;
	}
}

/* ---------------------------------------------------
	ボタンリンク：ボタン同士の間隔を column-gap で確保
	（配置設定の margin 打ち消しに影響されないようにする）
------------------------------------------------------ */
.content_row.btnlink.num-2,
.content_row.btnlink.num-4 {
	column-gap: 2%;
}
.content_row.btnlink.num-3 {
	column-gap: 5%;
}
.content_row.btnlink.num-2 .row_col,
.content_row.btnlink.num-3 .row_col,
.content_row.btnlink.num-4 .row_col {
	margin-right: 0;
	margin-left: 0;
}

/* ボタンリンク：分割表示時はボタンの最小幅を解除（枠からはみ出して間隔が消えるのを防ぐ） */
.content_row.btnlink.num-2 .row_col a,
.content_row.btnlink.num-3 .row_col a,
.content_row.btnlink.num-4 .row_col a {
	min-width: 0;
}

/* ------------------------------
   WEB予約CTA：iPhoneの電話番号自動リンクで色が変わるのを防ぐ
------------------------------ */
.unit-cta .tel a,
.unit-cta .tel a:link,
.unit-cta .tel a:visited,
.unit-cta a[href^="tel:"] {
	color: inherit !important;
	text-decoration: none;
}

/* ---------------------------------------------------
	テーブル：罫線を1px固定にして、にじみ（影のような見え方）を防ぐ
	※ remだと画面幅によって1px未満になりにじむため
------------------------------------------------------ */
.column-table,
.column-table .scroll-hint,
.column-table table th,
.column-table table td,
.unit-product table,
.unit-product table th,
.unit-product table td {
	border-width: 1px !important;
}

/* ---------------------------------------------------
	テーブル：外部CSS由来の上線・右線を消して二重線を防ぐ
	（このテーブルは各セルの「左線＋下線」だけで罫線を構成）
------------------------------------------------------ */
.entry-column .column-table table th,
.entry-column .column-table table td {
	border-top: none !important;
	border-right: none !important;
}

