@charset "utf-8";
/* =============
  theme original
================ */
.h_bar {
    display: none
}
#beltbnr {
    display: none
}
/* =======
  common
========== */

html {
  font-size: 62.5%;
  scroll-padding-top: 100px;
}
*,
*::before,
*::after {
  padding: 0;
  margin: 0;
  -ms-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

 main {
    overflow: hidden;
    margin: 0 auto;
    text-align: center;
  }
body{
}
ul,li {
  list-style: none;
}

/* 不要箇所 */
img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  object-fit: cover;
}
svg {
    overflow: visible;
    width: 100%
}
.en{
-ms-writing-mode: tb-rl;
writing-mode: vertical-rl;
text-orientation: upright;
}

/* ==========
  contents　共通
=========== */
.pc-img {
  display: block;
}
.sp-img {
  display: none;
}
/* 変更しない */
.wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.column {
  display: flex;
  align-items: center;
  justify-content: space-between;
}


.l-content__header {
  width: 900px;
  margin-inline: auto;
}
.lead {
  margin-top: 75px;
  text-align: center;
}
.p-article-vis__img {
  /* padding-top: 10px; */
}



.area{
	width: 900px;
	margin: 0 auto;
	border: solid 1px #bad7c6;
	padding: 50px 0 100px;
	border-radius: 10px;
	font-family: fot-tsukuaoldmin-pr6n, sans-serif;
	font-weight: 300;
	font-style: normal;
}

.slide-items{
	border-radius: 32.5px;
	margin: 5px 0;
}

.slidenone-items{
	border-radius: 0 32.5px 0 0;
	margin: 20px;
}
.slidenone-guide2{
	border-radius: 0  0 0 32.5px;
	background-color: #fff;
	border: solid 1px #000;
	margin: 20px 0 30px;
}
.slidenone-items2{
	border-radius: 0 32.5px 0 0;
	margin: 20px;
}

/* sliderをカスタマイズするCSS */
.slick-dots {
	bottom: -20px!important;
	width: initial;
	left: auto;
	right: 0;
}
.slick-dots li button:before{
	font-size: 8px!important;
}

.slick-dotted.slick-slider {
    margin-bottom: 20px!important;
}






/*--------------------SP-----------------------------*/
@media screen and (max-width: 767px) {
	html {
    scroll-padding-top: 0;
  }
  .pc-img {
    display: none;
  }
  .sp-img {
    display: block;
  }
  .column {
    display: block;
  }
   .l-content__header,
  .section-container {
    width: 100%;
  }
.p-article__vis{
  position: relative;
  width: 100%;
  display: inline-block;
 }
	
.font-ja {
  font-family: fot-tsukuaoldmin-pr6n, sans-serif;
  color: #1b1b1b;
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  font-feature-settings: "palt"; /* 句読点を詰める */
  letter-spacing: 2px;
  line-height: 1.75;
  text-align: justify; /* 両橋を揃える */
}
 

  .sp {
    display: block;
  }
  .pc {
    display: none;
  }
	
  main {
    padding: 0 0px;
    overflow: hidden;
    margin: 0 auto;
    text-align: center;
  }

 main h2, main h3, main h4 {
    margin: 0 auto;
    font-size: 3.25vw;
    font-weight: 400;
    line-height: 2;
    letter-spacing: 0;
    color: #333;
  }
  .lead {
    width: 90%;
    padding: 30px 20px;
    margin: 20px auto 30px;
    text-align: justify;
    border-top: 1px solid #bad7c6;
    border-bottom: 1px solid #bad7c6;
  }
  .lead br {
    display: none;;
  }
	

	
	
.area{
	border: none;
	margin: 0 auto;
	width: 100%;
	padding: 0 0 0px 0;
	font-family: fot-tsukuaoldmin-pr6n, sans-serif;
	font-weight: 300;
	font-style: normal;
}
	

	.subtitle{
		border-top: solid 1px #000;
		align-items: anchor-center;
		margin-top: -3px;
	}	
	.subtitle p{
	font-family: "dnp-shuei-gothic-gin-std", sans-serif;
	font-weight: 500;
	font-style: normal;
	}
	.subtitle_p{
		font-size: 17px;
		margin: -3px auto;
	}

/* SVG を画像の上に重ねて中央配置 */

.fv_title2_1 {
  position: absolute;
  top: 50%;               /* ← 画像の真ん中あたりに配置（調整可能） */
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  width: 143%;
  pointer-events: none;   /* クリックをブロックしない */
}
.fv_title2 {
  position: absolute;
  top: 50%;               /* ← 画像の真ん中あたりに配置（調整可能） */
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  width: 143%;
  pointer-events: none;   /* クリックをブロックしない */
}


/* SVGフェードインアニメーション */
.fv_title2_1 span svg {
  width: 70%;             /* SVGの大きさ（調整OK） */
  opacity: 0;
  animation: fadein 0.8s ease-in-out forwards;
}
.fv_title2 span svg {
  width: 70%;             /* SVGの大きさ（調整OK） */
  opacity: 0;
  animation: fadeIn 1s ease-in-out forwards;
}


/* アニメーション定義 */
@keyframes fadeIn {
  0% {
    opacity: 0;
    transform: translateY(20px);  /* 下からふわっと */
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes fadein {
  0% {
    opacity: 0;
    transform: translateY(0px);  /* 下からふわっと */
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
	
	


	
/*ボックスアニメーション*/
:root {
--border-color: #fff; /* 枠線の色 */
--border-width: 1; /* 枠線の太さ(px) */
--anim-duration: 1200ms; /* アニメーション時間 */
--anim-ease: cubic-bezier(.22,.61,.36,1); /* イージング */
--corner-radius: 0; /* 角丸(px)。0で角ばった四角 */
--bg: #f7f7f7;
}

.box {position: relative;width: min(82%, 100%);margin: -17px 20px 0;padding: 5px 0;background: transparent;box-sizing: border-box;isolation: isolate;}


.box__text {position: relative;z-index: 2;font-size: 17px;letter-spacing: .02em;margin: 0;padding: 0px 0 10px;font-family: fot-tsukuaoldmin-pr6n, sans-serif;font-weight: 300;font-style: normal;color: #01712f;line-height: 1.5;}


.box__outline {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
display: block;
z-index: 1;
overflow: visible;
pointer-events: none;
}


.box__rect {
fill: transparent;
stroke: var(--border-color);
stroke-width: var(--border-width);
vector-effect: non-scaling-stroke;
shape-rendering: crispEdges;
stroke-linejoin: miter;
stroke-linecap: butt;
transition: stroke-dashoffset var(--anim-duration) var(--anim-ease);
/* stroke-dasharray / stroke-dashoffset は JS 側でセットします（より確実） */
}


.box.is-visible .box__rect { stroke-dashoffset: 0; }


.box:nth-of-type(2) .box__rect { transition-delay: 120ms; }
.box:nth-of-type(3) .box__rect { transition-delay: 180ms; }


@media (prefers-reduced-motion: reduce) {
.box__rect { transition: none; stroke-dashoffset: 0 !important; }
}

/*ボックスアニメーション2*/
:root {
--border-color: #fff; /* 枠線の色 */
--border-width: 1; /* 枠線の太さ(px) */
--anim-duration: 1200ms; /* アニメーション時間 */
--anim-ease: cubic-bezier(.22,.61,.36,1); /* イージング */
--corner-radius: 0; /* 角丸(px)。0で角ばった四角 */
--bg: #f7f7f7;
}

.box2 {position: relative;width: min(33%, 100%);margin: 35px 20px 0 auto;padding: 3px 0px 1px;background: transparent;box-sizing: border-box;isolation: isolate;}


.box__text2 {position: relative;z-index: 2;font-size: 18px;letter-spacing: .02em;margin: 0;color: #3b3b3b;font-family: ltc-bodoni-175, serif;font-weight: 400;font-style: italic;}


.box__outline2 {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
display: block;
z-index: 1;
overflow: visible;
pointer-events: none;
}


.box__rect2 {
fill: transparent;
stroke: var(--border-color);
stroke-width: var(--border-width);
vector-effect: non-scaling-stroke;
shape-rendering: crispEdges;
stroke-linejoin: miter;
stroke-linecap: butt;
transition: stroke-dashoffset var(--anim-duration) var(--anim-ease);
/* stroke-dasharray / stroke-dashoffset は JS 側でセットします（より確実） */
}


.box2.is-visible .box__rect2 { stroke-dashoffset: 0; }


.box2:nth-of-type(2) .box__rect2 { transition-delay: 120ms; }
.box2:nth-of-type(3) .box__rect2 { transition-delay: 180ms; }


@media (prefers-reduced-motion: reduce) {
.box__rect2 { transition: none; stroke-dashoffset: 0 !important; }
}	

/*ボックスアニメーション3*/
:root {
--border-color: #fff; /* 枠線の色 */
--border-width: 1; /* 枠線の太さ(px) */
--anim-duration: 1200ms; /* アニメーション時間 */
--anim-ease: cubic-bezier(.22,.61,.36,1); /* イージング */
--corner-radius: 0; /* 角丸(px)。0で角ばった四角 */
--bg: #f7f7f7;
}

.box3 {position: relative;width: min(47%, 100%);margin: 50px auto 20px;padding: 5px 0px;background: transparent;box-sizing: border-box;isolation: isolate;}


.box__text3 {position: relative;z-index: 2;font-size: 24px;letter-spacing: .02em;margin: 0;font-family: serif;color: #3b3b3b;}


.box__outline3 {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
display: block;
z-index: 1;
overflow: visible;
pointer-events: none;
}


.box__rect3 {
fill: transparent;
stroke: var(--border-color);
stroke-width: var(--border-width);
vector-effect: non-scaling-stroke;
shape-rendering: crispEdges;
stroke-linejoin: miter;
stroke-linecap: butt;
transition: stroke-dashoffset var(--anim-duration) var(--anim-ease);
/* stroke-dasharray / stroke-dashoffset は JS 側でセットします（より確実） */
}


.box3.is-visible .box__rect3 { stroke-dashoffset: 0; }


.box3:nth-of-type(2) .box__rect3 { transition-delay: 120ms; }
.box3:nth-of-type(3) .box__rect3 { transition-delay: 180ms; }


@media (prefers-reduced-motion: reduce) {
.box__rect3 { transition: none; stroke-dashoffset: 0 !important; }
}	
	

/* 下部 */
.product-text__footer {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 15px;
  padding: 0 20px 0px;
  width: 80%;
  margin: 0 auto;
  color: #1b1b1b;
}

/* 価格 */
.product-text__footer .price {
  white-space: nowrap;
  font-family: serif;
  text-align: left;
  font-family: fot-tsukuaoldmin-pr6n, sans-serif;
  font-weight: 300;
  font-style: normal;
}

/* 点線 */
.product-text__footer .line {
  flex: 1;
  border-bottom: 1px dashed #000;
  transform: translateY(-2px);
}

/* Buy */
.product-text__footer .buy {
  display: inline-block;
  padding: 0px 9px;
  background: #bad7c6;
  color: #000;
  text-decoration: none;
  font-size: 13px;
  transition: background 0.3s ease, color 0.3s ease;
  font-family: serif;
}

.product-text__footer .buy:hover {
  background: #d1d1d1;
  color: #fff;
}
	

/* style tips 商品クレジット */
.product-text__footer2 {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 15px;
  padding: 0 20px 0px;
  width: 80%;
  margin: 0 auto;
  color: #1b1b1b;
}

/* 価格 */
.product-text__footer2 .price {
  white-space: nowrap;
  font-family: serif;
  text-align: left;
  font-family: fot-tsukuaoldmin-pr6n, sans-serif;
  font-weight: 300;
  font-style: normal;
  line-height: 1.5;
}

/* 点線 */
.product-text__footer2 .line {
  flex: 1;
  border-bottom: 1px dashed #000;
  transform: translateY(-2px);
}

/* Buy */
.product-text__footer2 .buy {
  display: inline-block;
  padding: 0px 9px;
  background: #bad7c6;
  color: #000;
  text-decoration: none;
  font-size: 12px;
  transition: background 0.3s ease, color 0.3s ease;
  font-family: serif;
}

.product-text__footer2 .buy:hover {
  background: #d1d1d1;
  color: #fff;
}


.buy-btn {
  display: block;
  width: 100%;
  background: #fff;
  color: #000;
  text-align: center;
  padding: 12px 0;
  font-size: 16px;
  font-family: Georgia, serif;
  text-decoration: none;
  border: none;
  transition: background 0.3s ease;
}

.buy-btn:hover {
  background: #eee;
}
	

/*お客様の声*/
.reason{
  background: #DCEBE2;
  padding:80px 20px 120px;
  overflow:hidden;
}

.reason__inner{
  max-width:540px;
  margin:0 auto;
}

.reason__head{
  margin-bottom: 30px;
}

.reason__title{
  display: table-cell;
  background: #fff;
  font-weight:500;
  line-height:1;
  letter-spacing:.08em;
  color:#222;
  margin-bottom: 30px;
}

.reason__lead{
  font-size:24px;
  line-height:2;
  letter-spacing:.08em;
  color:#222;
}

.reason__list{
  display:flex;
  flex-direction:column;
  gap:36px;
}

.reason__box{
  position:relative;
  width:84%;
  padding:36px 32px;
  background-color:#f8f3ef;
  background-image: linear-gradient(#dfdee5 1px, transparent 1px),    linear-gradient(90deg, #dfdee5 1px, transparent 1px);
  background-size: 15px 15px;
  border-radius:10px;
}

.reason__box p{
  font-size:19px;
  line-height:2;
  letter-spacing:.08em;
  color: #01712f;
}

.reason__box--right{
  margin-left:auto;
}

.reason__box--left{
  margin-right:auto;
}

.reason__box--small{
  width:78%;
}

.reason__box--middle{
  width:76%;
}

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

  .reason{
    margin: 50px 0 0;
    padding: 60px 16px 30px;
    font-family: fot-tsukuaoldmin-pr6n, sans-serif;
    font-weight: 300;
    font-style: normal;
  }

  .reason__title{
    font-size: 19px;
    padding: 6px 17px;
    font-family: fot-tsukuaoldmin-pr6n, sans-serif;
    font-weight: 300;
    font-style: normal;
  }

  .reason__lead{
    font-size: 12px;
    line-height: 1.7;
    text-align: left;
    padding: 10px 0 0;
    font-family: fot-tsukuaoldmin-pr6n, sans-serif;
    font-weight: 300;
    font-style: normal;
  }

  .reason__list{
    gap:24px;
  }

  .reason__box,
  .reason__box--small,
  .reason__box--middle{
    width: 90%;
    padding: 15px 15px;
  }

  .reason__box p{
    font-size: 12px;
    line-height:2;
    text-align: left;
    font-family: fot-tsukuaoldmin-pr6n, sans-serif;
    font-weight: 400;
    font-style: normal;
  }

}
	

	
/*--文字が左から右　マスク-	*/
.reveal-text {
  /* display: inline-block; */
  position: relative;

  /* 初期状態：隠す */
  -webkit-mask-image: linear-gradient(
    to right,
    #000 0%,
    #000 50%,
    transparent 50%,
    transparent 100%
  );
  -webkit-mask-size: 200% 100%;
  -webkit-mask-position: 100% 0;
  mask-image: linear-gradient(
    to right,
    #000 0%,
    #000 50%,
    transparent 50%,
    transparent 100%
  );
  mask-size: 200% 100%;
  mask-position: 100% 0;
  animation: none;
}

.reveal-text.is-active {
animation: revealText 1.5s cubic-bezier(.4,0,.2,1) forwards;
}

@keyframes revealText {
  to {
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
  }
}
	

	.img2{
		margin: 30px 0 0;
		width: 90%;
	}
	
	
	
/*styleTips*/	
.styleTips{
  padding:60px 20px 100px;
}

.styleTips__inner{
  max-width:640px;
  margin:0 auto;
}

.styleTips__head{
  margin-bottom:40px;
}

.styleTips__title{
  width: 75%;
  margin: 0 auto 0 0;
  position:relative;
  /* display:inline-block; */
  line-height:1;
  color:#7ca38f;
}

.styleTips__title::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:340px;
  height:1px;
  background:#a8c0b3;
}

.styleTips__image{
  text-align:center;
}

.styleTips__image img{
  width:100%;
  max-width:520px;
  height:auto;
  display:block;
  margin:0 auto;
}

.styleTips__content{
  max-width:460px;
  margin:40px auto 0;
}

.styleTips__lead{
  margin-bottom:28px;
  font-size:46px;
  font-weight:500;
  line-height:1.6;
  letter-spacing: 1px;
  color: #01712f;
}

.styleTips__text{
  font-size:27px;
  line-height:2.2;
  letter-spacing: 0;
  color: #1b1b1b;
}

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

  .styleTips{
    padding: 0px 20px 0px;
  }

  .styleTips__head{
    margin: 80px 0 28px;
  }

  .styleTips__title{
    font-size: 35px;
    padding-bottom: 7px;
    font-weight: 400;
    font-style: italic;
  }

  .styleTips__title::after{
    width:100%;
  }

  .styleTips__image img{
    max-width:100%;
  }

  .styleTips__content{
    margin-top: -35px;
    width: 70%;
    text-align: left;
    font-family: fot-tsukuaoldmin-pr6n, sans-serif;
    font-weight: 300;
    font-style: normal;
  }

  .styleTips__lead{
    margin-bottom: 7px;
    font-size: 15px;
    line-height:1.8;
    font-family: fot-tsukuaoldmin-pr6n, sans-serif;
    font-weight: 300;
    font-style: normal;
  }

  .styleTips__text{
    font-size: 12px;
    line-height:2.1;
    padding: 0 0 20px;
    font-family: fot-tsukuaoldmin-pr6n, sans-serif;
    font-weight: 300;
    font-style: normal;
  }

}
/*styleTips　end*/
	
	.content02{
		display: block;
	}


/*画像テキスト横並び*/
.t-flex {
  width: 100%;
  margin: 0 auto;
  align-items: center; /* ← 高さを揃える */
  padding: 0;
}
.ttl01 p{
  font-family: serif !important;
}
.t-flex2 {
  width: 100%;
  margin: 40px auto;
   /* ← 高さを揃える */
  padding: 0;
}

.t-flex img {
  height: auto;
  object-fit: cover; /* ← 必要なら画像トリミングして高さ揃える */
}
.t-flex2 img {
  height: auto;
  object-fit: cover; /* ← 必要なら画像トリミングして高さ揃える */
}
	.text{
		color: #9f4b71;
		font-size: 17.5px;
		font-family: serif;
		font-weight: 500;
	}


/* テキストを上下中央に配置 */
.caption{
  width: 80%;
  font-size: 12px;
  margin: 0 auto;
  padding: 20px 20px 10px;
  line-height: 2;
  text-align: justify;
  letter-spacing: 0px;
  color: #1b1b1b;
  font-family: fot-tsukuaoldmin-pr6n, sans-serif;
  font-weight: 300;
  font-style: normal;
}

	.t-flex img{
    width: 90%;
    font-size: 12px;
  }

/* ------------------*/
/*画像テキスト横並び*/

	
	
.newExpression{
  padding:100px 20px 60px;
}

.newExpression__inner{
  max-width:540px;
  margin:0 auto;
}

.newExpression__title{
  font-weight:500;
  letter-spacing:.12em;
  color:#222;
}

.newExpression__text{
  font-size:28px;
  line-height:2.4;
  letter-spacing:.1em;
  color:#333;
}

.newExpression__scroll{
  position:relative;
  width:1px;
  height:100px;
  margin:80px auto 0;
  overflow:hidden;
  background:rgba(0,0,0,.2);
}

.newExpression__scroll span{
  position:absolute;
  top:-100%;
  left:0;
  width:100%;
  height:100%;
  background:#666;
  animation:scrollLine 2s ease-in-out infinite;
}

@keyframes scrollLine{

  0%{
    top:-100%;
  }

  100%{
    top:100%;
  }

}

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

  .newExpression{
    padding: 0px 20px 0px;
    margin: 0 auto;
  }

  .newExpression__title{
    font-size: 20px;
    line-height: 1.5;
    margin: 0 auto 15px;
    text-align: left;
    display: inline-block;
    font-family: fot-tsukuaoldmin-pr6n, sans-serif;
    font-weight: 300;
    font-style: normal;
  }

  .newExpression__text{
    width: 85%;
    margin: 0 auto;
    font-size: 12px;
    line-height: 1.7;
    text-align: left;
    font-family: fot-tsukuaoldmin-pr6n, sans-serif;
    font-weight: 300;
    font-style: normal;
  }

  .newExpression__scroll{
    height: 45px;
    margin: 15px auto;
  }

}
	
	.content01{
	}
	
	
	
	.price{
		font-size: 12px;
		text-align: center;
		margin: 5px auto;
	}
.button_lg {
    width: 90%;
    height: 28px;
    line-height: 28px;
    background: #fff;
    text-align: center;
    transition: 0.5s;
    display: block;
    color: #3b3b3b;
    text-decoration: none;
    font-size: 13px;
    letter-spacing: 1px;
    margin: 0 auto;
    font-family: fot-tsukuaoldmin-pr6n, sans-serif;
    font-weight: 300;
    font-style: normal;
    border-radius: 50px;
 }
.button_lg2 {
    width: 90%;
    height: 28px;
    line-height: 28px;
    background: #bad7c6;
    text-align: center;
    transition: 0.5s;
    display: block;
    color: #3b3b3b;
    text-decoration: none;
    font-size: 13px;
    letter-spacing: 1px;
    margin: 0 auto;
    font-family: fot-tsukuaoldmin-pr6n, sans-serif;
    font-weight: 300;
    font-style: normal;
    border-radius: 50px;
 }
.button_lg3 {
    width: 85%;
    height: 28px;
    border: solid 1px #588A7C;
    line-height: 28px;
    background: #fff;
    text-align: center;
    transition: 0.5s;
    display: block;
    color: #3b3b3b;
    text-decoration: none;
    font-size: 13px;
    letter-spacing: 1px;
    margin: 0 auto;
    font-family: fot-tsukuaoldmin-pr6n, sans-serif;
    font-weight: 300;
    font-style: normal;
 }
.btn {
  text-decoration: none;
  margin: 0 auto;
  padding: 10px 0px 40px;
}
.btn a:hover{
    background-color: #fff;
    opacity: 0.5;
  }
.btn1 {
  text-decoration: none;
  margin: 0 auto;
  padding: 20px 20px;
}
.btn1 a:hover{
    background-color: #fff;
    opacity: 0.5;
  }
.btn2 {
  text-decoration: none;
  margin: 0 auto;
  padding: 20px 20px;
}
.btn2 a:hover{
    background-color: #fff;
    opacity: 0.5;
  }
.btn3 {
  text-decoration: none;
  margin: 0 auto 50px;
  padding: 20px 20px;
}
.btn3 a:hover{
    background-color: #fff;
    opacity: 0.5;
  }
  section {
    margin: 0px auto;
    padding-top: 0px;
  }

  /*--section01,03,05,07--*/
  .section01 h2, 
  .section03 h2,
  .section04 h2 {
    text-align: center;
  }
  .section02 h2,   
  .section05 h2{
    text-align: left;
    font-family: ltc-bodoni-175, serif;
    font-weight: 400;
    font-style: italic;
  }
 
  .section01 .slide-area, 
  .section02 .slide-area,
  .section04 .slide-area{
    width: 100%;
    order: 0;
    position: relative;
    padding-bottom: 1px;
 }
  
  
  
 
	
  /*--section02,04,06--*/
  .section02, 
  .section03,
  .section04, 
  .section05{
  }
  
  .section03 .slide-area,
  .section05 .slide-area {
    width: 100%;
    border-bottom: solid 1px #fff;
    order: 1;
  }
  .section02 .caption-area, 
  .section04 .caption-area{
    width: 100%;
    margin: 50px auto 0;
    text-align: left;
  }
  
  

	.styling_inner .slide-box .text{
		font-size: 2.2rem;
		display: block;
		height: 20px;
		line-height: 20px;
	}
	.fs-en01{
		font-size: 14px;
	}
	
 

	

  /*--related link--*/
  .related-link {
    margin: 90px auto;
  }
  .related-link a {
    padding: 0.8% 10%;
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 1px;
    background-color: #bc1414;
    color: #fff;
    text-decoration: none;
    transition: background 1s;
	font-family: serif !important;
  }
  .related-link a:hover {
    background-color: #000;
    color: #fff;
  }
}


/*---------------------------PC------------------------------------*/
@media screen and (min-width: 768px) {
  .sp {
    display: none;
  }
  .pc {
    display: block;
  }

  .bgcolor {
    background-color: #207baf;
  }

  main {
    width: 900px;
    overflow: hidden;
    margin: 0 auto;
    text-align: center;
  }
.font-ja {
  font-family: fot-tsukuaoldmin-pr6n, sans-serif;
  font-weight: 300;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  font-feature-settings: "palt"; /* 句読点を詰める */
  letter-spacing: 2px;
  line-height: 1.75;
  text-align: justify; /* 両橋を揃える */
}
	
  .lead {
    /*コレ*/
    border-top: 1px solid #bad7c6;
    /*コレ*/
    border-bottom: 1px solid #bad7c6;
    width: 600px;
    margin: 45px auto;
    text-align: center;
    padding: 20px 0;
    color: #1b1b1b;
  }
	h3 img {
      width: 17%;
      margin: 0 0 0 0;
      padding: 85px 0 0px 0;
}	
	.p-article__vis{
  position: relative;
  width: 100%;
  display: inline-block;
 }
	
	
/* SVG を画像の上に重ねて中央配置 */
.fv_title_1 {
  position: absolute;
  top: 50%;               /* ← 画像の真ん中あたりに配置（調整可能） */
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  width: 100%;
  pointer-events: none;   /* クリックをブロックしない */
}
.fv_title {
  position: absolute;
  top: 50%;               /* ← 画像の真ん中あたりに配置（調整可能） */
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  width: 100%;
  pointer-events: none;   /* クリックをブロックしない */
  overflow: hidden;
}

/* SVGフェードインアニメーション */
.fv_title_1 span svg {
  width: 100%;             /* SVGの大きさ（調整OK） */
  opacity: 0;
  animation: fadein 0.8s ease-in-out forwards;
}
.fv_title span svg {
  width: 100%;             /* SVGの大きさ（調整OK） */
  opacity: 0;
  animation: fadeIn 1s ease-in-out forwards;
}

/* アニメーション定義 */
@keyframes displayImg {
  100% {
    transform: translateX(100%);
  }
}
	
@keyframes fadeIn {
  0% {
    opacity: 0;
    transform: translateY(20px);  /* 下からふわっと */
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes fadein {
  0% {
    opacity: 0;
    transform: translateY(0px);  /* 下からふわっと */
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

	
	
	
	
/*ボックスアニメーション*/
:root {
--border-color: #fff; /* 枠線の色 */
--border-width: 1; /* 枠線の太さ(px) */
--anim-duration: 1200ms; /* アニメーション時間 */
--anim-ease: cubic-bezier(.22,.61,.36,1); /* イージング */
--corner-radius: 0; /* 角丸(px)。0で角ばった四角 */
--bg: #f7f7f7;
}

.box {position: relative;width: min(90%, 100%);margin: -28px -50px 0;padding: 10px;background: transparent;box-sizing: border-box;isolation: isolate;}


.box__text {position: relative;z-index: 2;font-size: 22px;letter-spacing: .02em;margin: 0;color: #01712f;padding-bottom: 10px;font-family: fot-tsukuaoldmin-pr6n, sans-serif;font-weight: 300;font-style: normal;line-height: 1.5;}


.box__outline {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
display: block;
z-index: 1;
overflow: visible;
pointer-events: none;
}


.box__rect {
fill: transparent;
stroke: var(--border-color);
stroke-width: var(--border-width);
vector-effect: non-scaling-stroke;
shape-rendering: crispEdges;
stroke-linejoin: miter;
stroke-linecap: butt;
transition: stroke-dashoffset var(--anim-duration) var(--anim-ease);
/* stroke-dasharray / stroke-dashoffset は JS 側でセットします（より確実） */
}


.box.is-visible .box__rect { stroke-dashoffset: 0; }


.box:nth-of-type(2) .box__rect { transition-delay: 120ms; }
.box:nth-of-type(3) .box__rect { transition-delay: 180ms; }


@media (prefers-reduced-motion: reduce) {
.box__rect { transition: none; stroke-dashoffset: 0 !important; }
}

/*ボックスアニメーション2*/
:root {
--border-color: #fff; /* 枠線の色 */
--border-width: 1; /* 枠線の太さ(px) */
--anim-duration: 1200ms; /* アニメーション時間 */
--anim-ease: cubic-bezier(.22,.61,.36,1); /* イージング */
--corner-radius: 0; /* 角丸(px)。0で角ばった四角 */
--bg: #f7f7f7;
}

.box2 {position: relative;width: min(20%, 100%);margin: 50px 0px 0 auto;padding: 5px 10px;background: transparent;box-sizing: border-box;isolation: isolate;}


.box__text2 {position: relative;z-index: 2;font-size: 24px;letter-spacing: .02em;margin: 0;font-family: serif;color: #3b3b3b;font-family: ltc-bodoni-175, serif;font-weight: 400;font-style: italic;}


.box__outline2 {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
display: block;
z-index: 1;
overflow: visible;
pointer-events: none;
}


.box__rect2 {
fill: transparent;
stroke: var(--border-color);
stroke-width: var(--border-width);
vector-effect: non-scaling-stroke;
shape-rendering: crispEdges;
stroke-linejoin: miter;
stroke-linecap: butt;
transition: stroke-dashoffset var(--anim-duration) var(--anim-ease);
/* stroke-dasharray / stroke-dashoffset は JS 側でセットします（より確実） */
}


.box2.is-visible .box__rect2 { stroke-dashoffset: 0; }


.box2:nth-of-type(2) .box__rect2 { transition-delay: 120ms; }
.box2:nth-of-type(3) .box__rect2 { transition-delay: 180ms; }


@media (prefers-reduced-motion: reduce) {
.box__rect2 { transition: none; stroke-dashoffset: 0 !important; }
}	

/*ボックスアニメーション3*/
:root {
--border-color: #fff; /* 枠線の色 */
--border-width: 1; /* 枠線の太さ(px) */
--anim-duration: 1200ms; /* アニメーション時間 */
--anim-ease: cubic-bezier(.22,.61,.36,1); /* イージング */
--corner-radius: 0; /* 角丸(px)。0で角ばった四角 */
--bg: #f7f7f7;
}

.box3 {position: relative;width: min(25%, 100%);margin: 50px auto;padding: 5px 10px;background: transparent;box-sizing: border-box;isolation: isolate;}


.box__text3 {position: relative;z-index: 2;font-size: 24px;letter-spacing: .02em;margin: 0;font-family: serif;color: #3b3b3b;}


.box__outline3 {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
display: block;
z-index: 1;
overflow: visible;
pointer-events: none;
}


.box__rect3 {
fill: transparent;
stroke: var(--border-color);
stroke-width: var(--border-width);
vector-effect: non-scaling-stroke;
shape-rendering: crispEdges;
stroke-linejoin: miter;
stroke-linecap: butt;
transition: stroke-dashoffset var(--anim-duration) var(--anim-ease);
/* stroke-dasharray / stroke-dashoffset は JS 側でセットします（より確実） */
}


.box3.is-visible .box__rect3 { stroke-dashoffset: 0; }


.box3:nth-of-type(2) .box__rect3 { transition-delay: 120ms; }
.box3:nth-of-type(3) .box__rect3 { transition-delay: 180ms; }


@media (prefers-reduced-motion: reduce) {
.box__rect3 { transition: none; stroke-dashoffset: 0 !important; }
}	
	
/* 下部 */
.product-text__footer {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 16px;
  color: #3b3b3b;
  width: 80%;
  margin: 0 auto;
  padding: 10px 50px 0;
}

/* 価格 */
.product-text__footer .price {
  white-space: nowrap;
  font-family: serif;
  text-align: left;
}

/* 点線 */
.product-text__footer .line {
  flex: 1;
  border-bottom: 1px dashed #000;
  transform: translateY(-2px);
}

/* Buy */
.product-text__footer .buy {
  display: inline-block;
  padding: 0px 10px;
  background: #bad7c6;
  color: #000;
  text-decoration: none;
  font-size: 14px;
  transition: background 0.3s ease, color 0.3s ease;
  font-family: serif;
}

.product-text__footer .buy:hover {
  background: #d1d1d1;
  color: #fff;
}
/* style tips 商品クレジット */
.product-text__footer2 {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 16px;
  color: #3b3b3b;
  width: 100%;
  margin: 0 auto;
}

/* 価格 */
.product-text__footer2 .price {
  white-space: nowrap;
  font-family: serif;
  text-align: left;
}

/* 点線 */
.product-text__footer2 .line {
  flex: 1;
  border-bottom: 1px dashed #000;
  transform: translateY(-2px);
}

/* Buy */
.product-text__footer2 .buy {
  display: inline-block;
  padding: 0px 10px;
  background: #bad7c6;
  color: #000;
  text-decoration: none;
  font-size: 13px;
  transition: background 0.3s ease, color 0.3s ease;
  font-family: serif;
}

.product-text__footer2 .buy:hover {
  background: #d1d1d1;
  color: #fff;
}
	
	
	
.buy-btn {
  display: block;
  width: 100%;
  background: #fff;
  color: #000;
  text-align: center;
  padding: 12px 0;
  font-size: 16px;
  font-family: Georgia, serif;
  text-decoration: none;
  border: none;
  transition: background 0.3s ease;
}

.buy-btn:hover {
  background: #eee;
}
	
/*お客様の声	*/
.reason{
  background: #DCEBE2;
  padding: 50px 20px 50px;
  overflow:hidden;
  width: 80%;
  margin: 80px auto;
  border-radius: 10px;
}

.reason__inner{
  max-width:540px;
  margin:0 auto;
}

.reason__head{
  margin: 0 auto 30px;
}

.reason__title{
  display:inline-block;
  background: #fff;
  padding: 9px 28px;
  font-size: 25px;
  font-weight:500;
  line-height:1;
  letter-spacing:.08em;
  color:#222;
}

.reason__lead{
  font-size: 14px;
  line-height:2;
  letter-spacing:.08em;
  color:#222;
  text-align: center;
  padding: 15px 0 0;
  font-family: fot-tsukuaoldmin-pr6n, sans-serif;
  font-weight: 300;
  font-style: normal;
}

.reason__list{
  display:flex;
  flex-direction:column;
  gap: 20px;
}

.reason__box{
  position:relative;
  width:84%;
  padding: 20px 20px;
  background-color:#f8f3ef;
  background-image:
    linear-gradient(#d8dce7 1px, transparent 1px),
    linear-gradient(90deg, #d8dce7 1px, transparent 1px);
  background-size: 15px 15px;
  border-radius:10px;
}

.reason__box p{
  font-size: 14px;
  line-height:2;
  letter-spacing:.08em;
  text-align: left;
  color: #01712f;
  font-family: fot-tsukuaoldmin-pr6n, sans-serif;
  font-weight: 300;
  font-style: normal;
}

.reason__box--right{
  margin-left:auto;
}

.reason__box--left{
  margin-right:auto;
}

.reason__box--small{
  width:78%;
}

.reason__box--middle{
  width:76%;
}

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

  .reason{
    padding:60px 16px 100px;
  }

  .reason__title{
    font-size:28px;
    padding:12px 20px;
  }

  .reason__lead{
    font-size:15px;
    line-height:1.9;
  }

  .reason__list{
    gap:24px;
  }

  .reason__box,
  .reason__box--small,
  .reason__box--middle{
    width:100%;
    padding:24px 20px;
  }

  .reason__box p{
    font-size:14px;
    line-height:2;
  }

}

	
	
/*--文字が左から右　マスク-	*/
.reveal-text {
  text-align: left;
  /* display: table-cell; */
  position: relative;

  /* 初期状態：隠す */
  -webkit-mask-image: linear-gradient(
    to right,
    #000 0%,
    #000 50%,
    transparent 50%,
    transparent 100%
  );
  -webkit-mask-size: 200% 100%;
  -webkit-mask-position: 100% 0;
  mask-image: linear-gradient(
    to right,
    #000 0%,
    #000 50%,
    transparent 50%,
    transparent 100%
  );
  mask-size: 200% 100%;
  mask-position: 100% 0;
  animation: none;
  font-family: fot-tsukuaoldmin-pr6n, sans-serif;
  font-weight: 300;
  font-style: normal;
}

.reveal-text.is-active {
animation: revealText 1.5s cubic-bezier(.4,0,.2,1) forwards;
}

@keyframes revealText {
  to {
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
  }
}
	
	
	.img2{
		margin: 30px auto;
		width: 50%;
	}
	
	
	
	
/*styleTips*/	
.styleTips{
  padding: 60px 0px 100px;
}

.styleTips__inner{
  max-width:640px;
  margin:0 auto;
}

.styleTips__head{
  margin-bottom:40px;
}

.styleTips__title{
  position:relative;
  /* display:inline-block; */
  padding-bottom:18px;
  font-family: "Times New Roman", serif;
  font-size: 40px;
  font-style:italic;
  font-weight:400;
  line-height:1;
  letter-spacing:.02em;
  color:#7ca38f;
}

.styleTips__title::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width: 310px;
  height:1px;
  background:#a8c0b3;
}

.styleTips__image{
  text-align:center;
}

.styleTips__image img{
  width: 100%;
  max-width:520px;
  height:auto;
  display:block;
  margin:0 auto;
}

.styleTips__content{
  max-width:460px;
  margin:40px auto 0;
}

.styleTips__lead{
  margin-bottom: 15px;
  font-size: 18px;
  font-weight:500;
  line-height:1.6;
  letter-spacing:.12em;
  color: #01712f;
  font-family: fot-tsukuaoldmin-pr6n, sans-serif;
  font-weight: 300;
  font-style: normal;
}

.styleTips__text{
  font-size: 14px;
  line-height:2.2;
  letter-spacing:.08em;
  color:#333;
  padding-bottom: 15px;
  font-family: fot-tsukuaoldmin-pr6n, sans-serif;
  font-weight: 300;
  font-style: normal;
}

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

  .styleTips{
    padding:40px 20px 80px;
  }

  .styleTips__head{
    margin-bottom:28px;
  }

  .styleTips__title{
    font-size:56px;
    padding-bottom:14px;
  }

  .styleTips__title::after{
    width:100%;
  }

  .styleTips__image img{
    max-width:100%;
  }

  .styleTips__content{
    margin-top:32px;
  }

  .styleTips__lead{
    margin-bottom:18px;

    font-size:28px;
    line-height:1.8;
  }

  .styleTips__text{
    font-size:16px;
    line-height:2.1;
  }

}
/*styleTips　end*/
	
	.content02{
		display: flex;
		justify-content: space-around;
		/* gap: 10px; */
		align-items: center;
		padding: 0 35px;
	}


/*画像テキスト横並び*/
.t-flex {
  width: 100%;
  margin: 0 auto;
  align-items: center; /* ← 高さを揃える */
  padding: 0;
}
.ttl01 p{
  font-family: serif !important;
}
.t-flex2 {
  width: 50%;
  margin: 0 auto;
   /* ← 高さを揃える */
  padding: 0;
  text-align: left;
}

.t-flex img {
  height: auto;
  object-fit: cover; /* ← 必要なら画像トリミングして高さ揃える */
}
.t-flex2 img {
  height: auto;
  object-fit: cover; /* ← 必要なら画像トリミングして高さ揃える */
}
	.text{
		color: #9f4b71;
		font-size: 19px;
		font-family: serif;
	}


/* テキストを上下中央に配置 */
.caption{
  width: 80%;
  font-size: 14px;
  margin: 0 auto;
  padding: 23px 50px 0px;
  line-height: 1.9;
  text-align: justify;
  letter-spacing: 1px;
  color: #1b1b1b;
  font-family: fot-tsukuaoldmin-pr6n, sans-serif;
  font-weight: 300;
  font-style: normal;
}

	.t-flex img{
    width: 80%;
    font-size: 12px;
  }

/* ------------------*/
/*画像テキスト横並び*/
	
	
	

.newExpression{
  padding: 50px 20px 25px;
}

.newExpression__inner{
  max-width:540px;
  margin:0 auto;
}

.newExpression__title{
  display: inline-block;
  margin-bottom: 10px;
  font-size: 25px;
  font-weight:500;
  line-height:1.8;
  letter-spacing:.12em;
  color:#222;
  text-align: left;
  font-family: fot-tsukuaoldmin-pr6n, sans-serif;
  font-weight: 300;
  font-style: normal;
}

.newExpression__text{
  font-size: 15px;
  line-height:2.4;
  letter-spacing:.1em;
  color:#333;
  text-align: left;
  font-family: fot-tsukuaoldmin-pr6n, sans-serif;
  font-weight: 300;
  font-style: normal;
}

.newExpression__scroll{
  position:relative;
  width:1px;
  height:100px;
  margin: 25px auto 0;
  overflow:hidden;
  background:rgba(0,0,0,.2);
}

.newExpression__scroll span{
  position:absolute;
  top:-100%;
  left:0;
  width:100%;
  height:100%;
  background:#666;
  animation:scrollLine 2s ease-in-out infinite;
}

@keyframes scrollLine{

  0%{
    top:-100%;
  }

  100%{
    top:100%;
  }

}

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

  .newExpression{
    padding:70px 20px 50px;
  }

  .newExpression__title{
    margin-bottom:28px;

    font-size:34px;
    line-height:1.9;
  }

  .newExpression__text{
    font-size:16px;
    line-height:2.3;
  }

  .newExpression__scroll{
    height:70px;
    margin-top:56px;
  }

}	
	.content01{
		
	}	
	
	.price{
		font-size: 13px;
		text-align: center;
		margin: 10px auto;
		font-family: serif !important;
	}
.button_lg {
    width: 80%;
    height: 26px;
    line-height: 26px;
    border-radius: 50px;
    border: solid 1px #fff;
    background: #fff;
    text-align: center;
    transition: 0.5s;
    display: block;
    color: #3b3b3b;
    text-decoration: none;
    font-size: 16px;
    font-weight: normal;
    letter-spacing: 1px;
    margin: 0 auto;
    font-family: serif !important;
 }
.button_lg2 {
          width: 90%;
          height: 28px;
          line-height: 28px;
          background: #bad7c6;
          text-align: center;
          transition: 0.5s;
          display: block;
          color: #3b3b3b;
          text-decoration: none;
          font-size: 15px;
          letter-spacing: 1px;
          margin: 0 auto;
          font-family: fot-tsukuaoldmin-pr6n, sans-serif;
          font-weight: 300;
          font-style: normal;
          border-radius: 50px;
 }
.button_lg3 {
    width: 85%;
    height: 28px;
    border: solid 1px #588A7C;
    line-height: 28px;
    background: #fff;
    text-align: center;
    transition: 0.5s;
    display: block;
    color: #3b3b3b;
    text-decoration: none;
    font-size: 15px;
    letter-spacing: 1px;
    margin: 0 auto;
    font-family: fot-tsukuaoldmin-pr6n, sans-serif;
    font-weight: 300;
    font-style: normal;
 }
.btn {
  text-decoration: none;
  margin: 0 auto;
  padding: 20px 0px 40px;
}
.btn a:hover{
    background-color: #fff;
    opacity: 0.5;
  }
.btn1 {
  width: 500px;
  text-decoration: none;
  margin: 0 auto;
  padding: 20px 0px 40px;
}
.btn1 a:hover{
    background-color: #fff;
    opacity: 0.5;
  }
.btn2 {
  width: 500px;
  text-decoration: none;
  margin: 0 auto;
  padding: 20px 0px 40px;
}
.btn2 a:hover{
    background-color: #fff;
    opacity: 0.5;
  }
.btn3 {
  width: 500px;
  text-decoration: none;
  margin: 0 auto 50px;
  padding: 20px 0px 40px;
}
.btn3 a:hover{
    background-color: #fff;
    opacity: 0.5;
  }
  section {
    width: 500px;
    margin: 0px auto;
  }

  /*--section01,03,05,07--*/
  .section01 h2, 
  .section03 h2,
  .section04 h2 {
    text-align: center;
  }
  .section02 h2,   
  .section05 h2{
    text-align: left;
  }
 
  .section01 .slide-area, 
  .section02 .slide-area,
  .section04 .slide-area{
    width: 50%;
    order: 0;
    position: relative;
 }
  
  
  
 
	
  /*--section02,04,06--*/
  .section02, .section03, .section05{
    width: 900px;
  }
  
  .section03 .slide-area,
  .section05 .slide-area {
    width: 50%;
    order: 1;
  }
  .section02 .caption-area, 
  .section04 .caption-area{
    width: 100%;
    margin: 50px auto 0;
    text-align: left;
  }
  
  

	.styling_inner .slide-box .text{
		font-size: 2.2rem;
		display: block;
		height: 20px;
		line-height: 20px;
	}
	.fs-en01{
		font-size: 14px;
	}
	
 

	

  /*--related link--*/
  .related-link {
    margin: 90px auto;
  }
  .related-link a {
    padding: 0.8% 10%;
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 1px;
    background-color: #bc1414;
    color: #fff;
    text-decoration: none;
    transition: background 1s;
	font-family: serif !important;
  }
  .related-link a:hover {
    background-color: #000;
    color: #fff;
  }
}





/*--slick カスタマイズ--*/
.content01 .slick-dots li {
  margin: 0;
}
.content01 .slick-dots li button:before {
  opacity: 1;
  color: #333;
}
.content01 .slick-dots li.slick-active button:before {
  opacity: 1;
  color: #848484;
}
.content02 .slick-dots li {
  margin: 0;
}
.content02 .slick-dots li button:before {
  opacity: 1;
  color: #333;
}
.content02 .slick-dots li.slick-active button:before {
  opacity: 1;
  color: #cccccc;
}




/*--スクロール　アニメーション--*/
.fade-in {
  opacity: 0;
  transition: opacity 1.5s ease;
}

.fade-in.on {
  opacity: 1;
}
.fade-up {
  opacity: 0;
  transform: translate(0, 30px);
  transition: all 1.5s;
}
.fade-up.on {
  opacity: 1;
  transform: translateX(0);
}


.fade-left {
  opacity: 0;
  transform: translateX(-50px); 
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.fade-left.on {
  opacity: 1;
  transform: translateX(0);
}

.fade-right {
  opacity: 0;
  transform: translateX(50px); 
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.fade-right.on {
  opacity: 1;
  transform: translateX(0);
}


/*----------

スッタフスタイリング表示調整

----------*/

.hacobune-app-container {

 

}



.hacobune-media-post-list-item {

 

}
