.template {
  margin: 40px 0;
}
.template p {
  margin: 0 0 20px 0;
}
.template p:last-child {
  margin: 0;
}
.template img {
  width: 100%;
}

.template-img-left,
.template-img-right {
  overflow: hidden;
}
.template-img-left .img {
  float: left;
  width: 280px;
}
.template-img-left .text {
  float: right;
  width: calc(100% - 310px);
}
.template-img-right .img {
  float: right;
  width: 280px;
}
.template-img-right .text {
  float: left;
  width: calc(100% - 310px);
}

.template-col2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
.template-col3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.template-col4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.template-col .col {
  text-align: center;
}

.template-table table {
  width: 100%;
}
.template-table th {
  padding: 20px;
  text-align: left;
  vertical-align: top;
}
.template-table td {
  padding: 20px;
  text-align: left;
  vertical-align: top;
}

.template-table .table1 th {
  border-bottom: var(--borderColor) 1px solid;
}
.template-table .table1 td {
  border-bottom: var(--borderColor) 1px solid;
}
.template-table .table2 th {
  background: var(--bgColor);
  border: var(--borderColor) 1px solid;
}
.template-table .table2 td {
  border: var(--borderColor) 1px solid;
}
.template-table .table3 th {
  padding: 10px;
  background: var(--bgColor);
  border: var(--borderColor) 1px solid;
}
.template-table .table3 td {
  padding: 10px;
  border: var(--borderColor) 1px solid;
}
.template-table .table4 th {
  border-right: var(--borderColor) 1px dashed;
  border-bottom: var(--borderColor) 1px dashed;
}
.template-table .table4 td {
  border-bottom: var(--borderColor) 1px dashed;
}
.template-table .table5 tr:nth-child(odd) th {
  background: var(--bgColor);
}
.template-table .table5 tr:nth-child(odd) td {
  background: var(--bgColor);
}

.template-img-left-table,
.template-img-right-table,
.template-text-left-table,
.template-text-right-table {
  overflow: hidden;
}
.template-img-left-table .img,
.template-text-left-table .text {
  float: left;
  width: 280px;
}
.template-img-right-table .img,
.template-text-right-table .text {
  float: right;
  width: 280px;
}
.template-img-left-table .table,
.template-text-left-table .table {
  float: right;
  width: calc(100% - 310px);
}
.template-img-right-table .table,
.template-text-right-table .table {
  float: left;
  width: calc(100% - 310px);
}

.template-dl-row dl dt {
  font-weight: bold;
}
.template-dl-row dl dd {
  margin: 0 0 20px 0;
}
.template-dl-row dl dd:last-child {
  margin: 0;
}

.template-dl-col dl {
  display: flex;
  flex-wrap: wrap;
}
.template-dl-col dl dt {
  width: 20%;
  font-weight: bold;
}
.template-dl-col dl dd {
  margin: 0 0 20px 0;
  padding: 0 0 0 20px;
  width: 80%;
}
.template-dl-col dl dd:last-child {
  margin: 0;
}

.template-backpattern1 {
  padding: 30px;
  background-color: var(--bgColor);
  background-image: repeating-linear-gradient(
    -45deg,
    var(--bodyBgColor) var(--bodyBgColor) 7px,
    transparent 0,
    transparent 14px
  );
  border-radius: 10px;
}
.template-backpattern2 {
  padding: 30px;
  border-top: var(--borderColor) 5px solid;
  box-shadow: 0 3px 10px 0 rgba(0, 0, 0, 0.1);
}

@media screen and (max-width: 599px) {
  .template-img-left .img,
  .template-img-right .img {
    float: none;
    margin: 0 0 20px 0;
    width: 100%;
  }
  .template-img-left .text,
  .template-img-right .text {
    float: none;
    width: 100%;
  }

  .template-col4 {
    grid-template-columns: repeat(2, 1fr);
  }

  .template-img-left-table .img,
  .template-text-left-table .text,
  .template-img-right-table .img,
  .template-text-right-table .text {
    float: none;
    margin: 0 0 20px 0;
    width: 100%;
  }
  .template-img-left-table .table,
  .template-text-left-table .table,
  .template-img-right-table .table,
  .template-text-right-table .table {
    float: none;
    width: 100%;
  }

  .template-dl-row dl dt {
    font-weight: bold;
  }
  .template-dl-row dl dd {
    margin: 0 0 20px 0;
  }
  .template-dl-row dl dd:last-child {
    margin: 0;
  }

  .template-dl-col dl {
    display: flex;
    flex-wrap: wrap;
  }
  .template-dl-col dl dt {
    width: 20%;
    font-weight: bold;
  }
  .template-dl-col dl dd {
    margin: 0 0 20px 0;
    padding: 0 0 0 20px;
    width: 80%;
  }
  .template-dl-col dl dd:last-child {
    margin: 0;
  }

  .template-backpattern1 {
    padding: 30px;
    background-color: var(--bgColor);
    background-image: repeating-linear-gradient(
      -45deg,
      var(--bodyBgColor) var(--bodyBgColor) 7px,
      transparent 0,
      transparent 14px
    );
    border-radius: 10px;
  }
  .template-backpattern2 {
    padding: 30px;
    border-top: var(--borderColor) 5px solid;
    box-shadow: 0 3px 10px 0 rgba(0, 0, 0, 0.1);
  }
}

/* 管理画面用のスタイル */
.cke_editable .template {
  padding: 20px;
  background: #eee;
}
.cke_editable .template img {
  width: auto;
  max-width: 100%;
}

/* 商品検索窓のカテゴリー選択のスタイル */
.psc > ul {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 2px;
}
.psc > ul > li {
  position: relative;
}
.psc > ul > li > a {
  display: block;
  height: 44px;
  line-height: 44px;
  text-align: center;
  background: var(--bgColor);
  border-radius: 1px;
}
.psc ul.child {
  visibility: hidden;
  opacity: 0;
  position: absolute;
  top: 120%;
  left: 0;
  padding: 15px;
  width: 100%;
  background: var(--bodyBgColor);
  box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.12);
  transition: all 0.2s ease;
  z-index: 1;
}
.psc ul.child.open {
  visibility: visible;
  opacity: 1;
  top: 100%;
}
.psc ul.child > li > a {
  display: block;
}
.psc ul.child > li > a:before {
  content: "\f105";
  margin: 0 5px 0 0;
  font-family: FontAwesome;
}
.psc ul.child > li > ul {
  padding: 5px 5px 5px 20px;
}
.psc ul.child > li > ul > li > a {
  display: block;
  padding: 3px 0;
  font-size: 1.3rem;
}


/* 簡易EC_リッチ化エリア用CSS */

/* ======================================
2023/05/24 added by nakazato
======================================== */

/*ECTOP-RICH*/

/*横幅100%の背景*/
/*単色背景*/
.rich-w100 {
	width: 100vw !important;
	position: relative;
	background: #f5f0ec;
	transform: translateX(-50%);
	text-align: center;
	left: 50%;
	padding: 5em 0 5em 0;
	color: #333;
	margin-bottom: 50px;
}

.rich-w100-inner {
	margin: 1em auto 1em;
	width: 1180px;
}
.rich-w100-inner h3 {
	color: #333;
	font-size: 35px;
	line-height: 4rem;
	/*text-shadow: #000000 1px 0 10px;*/
	margin: 20px auto 35px;
}
.rich-w100-inner h4 {
	color: #333;
	font-size: 2rem;
	line-height: 4rem;
	/*text-shadow: #000000 1px 0 10px;*/
	margin: 3rem auto 2.5rem;
}
.rich-w100-inner p{
	margin: 0 auto 26px;
	font-size: 1.8rem;
	line-height: 3rem;
}


/*見出しのデコレーションパターン*/
.deco01 {
	position: relative;
 	display: inline-block;
 	padding: 0 55px;
}
.deco01:before, .deco01:after {
	content: '';
	position: absolute;
	top: 50%;
	display: inline-block;
	width: 45px;
	height: 1px;
	background-color: #333;
}
.deco01:before {
	left:0;
}
.deco01:after {
	right:0;
}
.deco02 {
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 26px;
	text-align: center;
}

.deco02:before,
.deco02:after {
	content: '';
	width: 3px;
	height: 40px;
	background-color: #333;
}

.deco02:before {
	margin-right: 30px;
	transform: rotate(-35deg)
}
.deco02:after {
	margin-left: 30px;
	transform: rotate(35deg)
}
.deco03 {
	position: relative;
	color: #158b2b;
	font-size: 20px;
	padding: 10px 0;
	text-align: center;
	margin: 1.5em 0;
}
.deco03:before {
	content: "";
	position: absolute;
	top: -2.2rem;
	left: 50%;
	width: 30rem;
	height: 8rem;
	border-radius: 50%;
	border: 3px solid #333;
	border-left-color: transparent;
	border-right-color: transparent;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
}
.deco04 {
	position: relative;
	padding-top: 6rem;
	padding-bottom: 4rem;
	text-align: center;
	text-shadow: none !important;
}

.deco04 span {
	position: relative;
	z-index: 10;
}

.deco04:before {
	content: attr(data-en);
	position: absolute;
	top: 3rem;
	left: 50%;
	transform: translateX(-50%);
	color: rgba(73,73,73,0.20);
	font-size: 9rem;
	font-style: italic;
}


/*フォントのデコレーションパターン*/
/* googlefonts import */
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+1p:wght@400;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Kosugi+Maru&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Rampart+One&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Kiwi+Maru:wght@300;500&display=swap');
@import url('https://fonts.googleapis.com/css2?family=RocknRoll+One&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Dela+Gothic+One&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Potta+One&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Kaisei+Decol:wght@400;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Mochiy+Pop+P+One&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Shippori+Antique&display=swap');
@import url('https://fonts.googleapis.com/css2?family=New+Tegomin&display=swap');

/* googlefonts classt */
.font01-l {
	font-family: 'M PLUS 1p', sans-serif;
	font-weight: 400;
}
.font01-b {
	font-family: 'M PLUS 1p', sans-serif;
	font-weight: 900;
}
.font02-l {
	font-family: 'Kosugi Maru', sans-serif;
	font-weight: 400;
}
.font03-l {
	font-family: 'Rampart One', cursive;
	font-weight: 400;
}
.font04-l {
	font-family: 'Zen Maru Gothic', sans-serif;
	font-weight: 400;
}
.font04-b {
	font-family: 'Zen Maru Gothic', sans-serif;
	font-weight: 900;
}
.font05-l {
	font-family: 'Kiwi Maru', serif;
	font-weight: 300;
}
.font05-b {
	font-family: 'Kiwi Maru', serif;
	font-weight: 500;
}
.font06-l {
	font-family: 'RocknRoll One', sans-serif;
	font-weight: 400;
}
.font07-l {
	font-family: 'Dela Gothic One', cursive;
	font-weight: 400;
}
.font08-l {
	font-family: 'Potta One', cursive;
	font-weight: 400;
}
.font09-l {
	font-family: 'Kaisei Decol', serif;
	font-weight: 400;
}
.font09-b {
	font-family: 'Kaisei Decol', serif;
	font-weight: 700;
}
.font10-l {
	font-family: 'Mochiy Pop P One', sans-serif;
	font-weight: 400;
}
.font11-l {
	font-family: 'Shippori Antique', sans-serif;
	font-weight: 400;
}
.font12-l {
	font-family: 'New Tegomin', serif;
	font-weight: 400;
}


/*Q&A*/
.rich-qa {
	margin: 0 20rem 0 20rem;
}
.rich-qa dt,
.rich-qa dd {
	display: flex;
	align-items: center;
	position: relative;
	margin: 0;
	padding: 1em 2em 1em 3.3em;
	color: #333;
	text-align: left;
	font-size: 1.8rem;
}
.rich-qa dt {
	font-weight: 600;
}
.rich-qa dd + dt {
	margin-top: 1em;
}
.rich-qa dt::before,
.rich-qa dd::before {
	display: inline-block;
	position: absolute;
	width: 4rem;
	height: 4rem;
	left: 0;
	border-radius: 50%;
	font-weight: 600;
	font-size: 2rem;
	line-height: 3.8rem;
	text-align: center;
}
.rich-qa dt::before {
	border: 2px solid #333;
	color: #333;
	content: 'Q';
}
.rich-qa dd::before {
	border: 2px solid #F39B62;
	color: #F39B62;
	content: 'A';
}
/*3カラム コンテンツ*/
.rich-column3,
.rich-column3b {
	margin: 1rem auto 1rem;
}
.rich-column3 ul,
.rich-column3b ul {
 	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
.rich-column3 li,
.rich-column3b li {
	text-align: left;
	padding: 1rem;
	/* border-radius: 1rem; 角丸にする設定*/
	background-color: rgba(255,255,255,1.00);
	color: rgba(47,47,47,1.00);
	text-align: center;
}
.rich-column3 p,
.rich-column3b p,
.rich-column2 p,
.rich-column2b p {
	text-align: left;
}
/*2カラム コンテンツ*/
.rich-column2,
.rich-column2b {
	margin: 1rem auto 40px;
}
.rich-column2 ul,
.rich-column2b ul {
 	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}
.rich-column2 li,
.rich-column2b li {
	text-align: left;
	padding: 1rem;
	/* border-radius: 1rem; 角丸にする設定*/
	background-color: rgba(255,255,255,1.00);
	color: rgba(47,47,47,1.00);
	text-align: center;
}


.rich-column3b h5,
.rich-column2b h5 {
	position: relative;
	padding: 1.5rem;
	text-align: center;
	/*  border: 2px solid #000; */
	background: #fff;
}

.rich-column3b h5:before,
.rich-column3b h5:after,
.rich-column2b h5:before,
.rich-column2b h5:after {
	position: absolute;
	content: '';
}

.rich-column3b h5:before,
.rich-column2b h5:before {
	top: -4rem;
	 left: calc(50% - 4rem);
	width: 8rem;
	height: 8rem;
	/* border: 2px solid #000;
 	border-radius: 50%; */
	background: #fff;
	-webkit-border-radius: 50%;
	-moz-border-radius: 50%;
	border-radius: 50%;
}

.rich-column3b h5:after,
.rich-column2b h5:after {
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #fff;
}

.rich-column3b h5 em,
.rich-column2b h5 em {
	font-size: 4rem;
	line-height: 7rem;
	position: absolute;
	z-index: 1;
	top: -4rem;
	left: calc(50% - 4rem);
	width: 8rem;
	height: 8rem;
	text-align: center;
	font-style: normal;
	color : #e25f62;
}

.rich-column3b h5 strong,
.rich-column2b h5 strong {
 	position: relative;
	z-index: 1;
	font-size: 1.8rem;
	color: #e25f62;
}


/*====================SP=====================*/


/*スマホ表示時の微調整用*/
@media screen and ( max-width:1290px ){
	.rich-w100-inner {
		margin: 1em auto 1em;
		width: 360px;
	}
	.rich-qa {
		margin: 0;
	}
	.rich-qa dt, .rich-qa dd {
		padding: 1em 0em 1em 3.3em;
	}
	.rich-column3 ul, .rich-column3b ul {
		grid-template-columns: repeat(1, 1fr);
	}
	.rich-column2 ul, .rich-column2b ul {
		grid-template-columns: repeat(1, 1fr);
	}
	.rich-column3 li, .rich-column3b li, .rich-column2 li, .rich-column2b li {
		margin-bottom: 5rem;
	}
	.deco04:before {
		content: attr(data-en);
		position: absolute;
		top: 3rem;
		left: 50%;
		transform: translateX(-50%);
		color: #f3ecdf;
		font-size: 3rem;
		font-style: normal;
		letter-spacing: 0.15em
	}

		/*（SP版）ブログ表示改善したい際下記設定を適用*/

	.newblog-main ul {
		display: block;
	}
	.newblog .item {
		display: flex;
		/*max-width: 370px;*/
		align-items: center;
		margin: 0 0 20px 0;
		padding: 0 0 10px 0;
		border-bottom: 1px solid #c1c1c1;
	}
	/*.newblog .image {
  		width: 100px;
	}*/
	.newblog ul li .image {
		width: 240px;
	}
	/*.newblog .image img {
 		width: 100px;
		height: 100px;
		object-fit: cover;
	}*/
	.newblog ul li .image img{
		height: auto;
	}
	.newblog .text {
		padding:0 0 0 10px;
		width: calc(160% - 100px);
		display: -webkit-box;
		-webkit-line-clamp: 3;
		-webkit-box-orient: vertical;
		overflow: hidden;
		color: #707070;
	}
