@charset "UTF-8";

/**************************************************************
*************************************************************

home

*************************************************************
****************************************************************/
.home {}
/* ===== カスタムプロパティ ===== */
.home {
 --em: #e14b44; /* 赤い強調 */
}
/* ===== 背景===== */
.home .bg {
 /*min-height: 1500px;*/
 width: 100%;
 height: 100%;
 position: relative;
 background-size: 1549px auto, 62px auto;
 padding: 0 0;
 background-position: top 175px center, top left;
 background-repeat: repeat-x, repeat-x;
 background-image: url('../images/home-bg.png'), url('../images/stripe.png');
}
@media (max-width: 1440px) {
 .home .bg {
  width: 100%;
  height: 100%;
  position: relative;
  background-size: 100% auto, 62px auto;
  padding: 0 0;
  background-position: top center, top left;
  background-repeat: repeat-x, repeat-x;
  background-image: url('../images/home-bg_small.png'), url('../images/stripe.png');
 }
}
@media (max-width: 480px) {
 .home .bg {
  background-position: top 20px center, top left;
 }
}
.home .column__outer {}
@media (max-width: 1250px) {
 .home .column__outer {
  padding: 0 2rem;
 }
}
.home .column__outer .column__inner {
 width: 100%;
 margin: 0 auto;
}
@media (min-width: 1251px) {
 .home .column__outer .column__inner {
  max-width: 1000px;
 }
}
@media (max-width: 1250px) {
 .home .column__outer .column__inner {
  width: 100%;
  max-width: 1000px;
 }
}
/**************************************************************
*************************************************************

header

*************************************************************
****************************************************************/
.home header {}
.home header .inner {
 width: 100%;
 margin: 0 auto;
 max-width: 1000px;
 display: flex;
 justify-content: flex-start;
 align-items: center;
}
@media only screen and (min-width : 1441px) {
 .home header .inner {
  padding-top: 50px;
 }
}
@media only screen and (min-width : 1101px)and (max-width : 1440px) {
 .home header .inner {
  padding-top: 40px;
 }
}
@media only screen and (min-width : 1001px)and (max-width : 1100px) {
 .home header .inner {
  padding-top: 35px;
 }
}
@media only screen and (min-width : 701px)and (max-width : 1000px) {
 .home header .inner {
  padding-top: 30px;
 }
}
@media only screen and (min-width : 481px)and (max-width : 700px) {
 .home header .inner {
  padding-top: 1.5rem;
 }
}
@media only screen and (max-width : 480px) {
 .home header .inner {
  padding-top: 1rem;
 }
}
.home header .inner h1 {
 z-index: 1;
 position: relative;
}
@media only screen and (min-width : 1001px) {
 .home header .inner h1 {
  width: 340px;
 }
}
@media only screen and (min-width : 701px)and (max-width : 1000px) {
 .home header .inner h1 {
  width: 300px;
 }
}
@media only screen and (min-width : 481px)and (max-width : 700px) {
 .home header .inner h1 {
  width: 20rem;
 }
}
@media only screen and (max-width : 480px) {
 .home header .inner h1 {
  width: 210px;
 }
}
.home header .inner h1 img {}
/**************************************************************
*************************************************************

mainvisual

*************************************************************
****************************************************************/
.home #mainvisual {
 margin-top: -70px;
 position: relative;
 z-index: 0;
}
@media only screen and (min-width : 801px)and (max-width : 1000px) {
 .home #mainvisual {
  margin-top: -35px;
 }
}
@media only screen and (min-width : 701px)and (max-width : 800px) {
 .home #mainvisual {
  margin-top: -40px;
 }
}
@media only screen and (min-width : 481px)and (max-width : 700px) {
 .home #mainvisual {
  margin-top: -20px;
 }
}
@media only screen and (max-width : 480px) {
 .home #mainvisual {
  margin-top: -15px;
 }
}
.home #mainvisual img {
 width: 100%;
}
.home #mainvisual .inner {
 width: 100%;
 margin: 0 auto;
}
.home #mainvisual .large {}
@media (min-width: 1441px) {
 .home #mainvisual .large {
  max-width: 1440px;
 }
}
@media (max-width: 1440px) {
 .home #mainvisual .large {}
}
.home #mainvisual .small {
 margin-top: 3rem;
}
@media (min-width: 1151px) {
 .home #mainvisual .small {
  max-width: 800px;
 }
}
@media (max-width: 1150px) {
 .home #mainvisual .small {
  max-width: 80%;
 }
}
@media (max-width: 480px) {
 .home #mainvisual .small {
  margin-top: 1.5rem;
 }
}
/**************************************************************
*************************************************************

main

*************************************************************
****************************************************************/
.home #main {
 margin-top: 5rem;
}

.home #main .outer {}
@media (max-width: 1250px) {
 .home #main .outer {
  padding: 0 10px;
 }
}
.home #main .inner {
 width: 100%;
 margin: 0 auto;
}
@media (min-width: 1251px) {
 .home #main .inner {
  max-width: 1000px;
 }
}
@media (max-width: 1250px) {
 .home #main .inner {
  width: 100%;
  max-width: 1000px;
 }
}

.benefit-section {
 width: 100%;
 margin: 0 auto;
 padding: 3rem 0 5rem;
}

.separator {
 display: flex;
 justify-content: center;
 align-items: stretch;
 gap: 2rem;
 flex-wrap: wrap;
}

@media (min-width: 551px) {
 .separator {
  gap: 0;
 }
}
@media (max-width: 550px) and (min-width: 481px) {
 .separator {
  gap: 8.5rem;
 }
}
@media (max-width: 480px) {
 .separator {
  flex-direction: column;
  gap: 5.5rem;
 }
}

.unit {
 flex: 1 1 45%;
 color: #fff;
 padding: 3.5rem 1.5rem 2.5rem;
 text-align: center;
 position: relative;
}

@media (max-width: 550px) and (min-width: 481px) {
 .unit {
  flex: 1 1 100%;
 }
}
@media (max-width: 480px) {
 .unit {
  flex: 1 1 100%;
  padding: 2.5rem 1rem 1.8rem;
 }
}

.unit.blue {
 background: #275dae;
}
.unit.pink {
 background: #ee7b65;
}
/* 吹き出し */
.bubble {
 position: absolute;
 top: -4rem;
 left: 50%;
 transform: translateX(-50%);
 background: #fff;
 border: 3px solid #d40000;
 border-radius: 50px;
 padding: 0.2rem 1.6rem;
 display: inline-block;
 margin-bottom: 1.2rem; /* 下余白 */
 box-sizing: border-box;
}

@media (min-width: 701px) {
 .bubble {
		 top: -5rem;
		width: 90%;
 }
}

@media (max-width: 700px) {
 .bubble {
		 border: 2px solid #d40000;
		 padding: 0.1rem 1.6rem;
 }
}

@media (min-width: 601px) and (max-width: 700px) {
 .bubble {
		 top: -4rem;
		 width: 90%;
 }
}

@media (min-width: 551px) and (max-width: 600px) {
 .bubble {
		 top: -4.5rem;
		 width: 90%;
 }
}

@media (min-width: 481px) and (max-width: 550px) {
 .bubble {
		 top: -6rem;
		 width: 65%;
 }
}

@media (max-width: 480px) {
 .bubble {
		 top: -4rem;
		 width: 80%;
 }
}

/* ノッチ */
.bubble::after {
 content: "";
 position: absolute;
 bottom: -8px;
 left: 50%;
 transform: translateX(-50%) rotate(45deg);
 width: 12px;
 height: 12px;
 background: #fff;
 border-right: 3px solid #d40000;
 border-bottom: 3px solid #d40000;
}
@media (max-width: 700px) {
 .bubble::after {
		bottom: -7px;
  border-right: 2px solid #d40000;
		border-bottom: 2px solid #d40000;
 }
}

.bubble img {
 display: block;
 margin: 0 auto;
}
@media (min-width: 1001px) {
 .bubble img {
  width: auto;
  max-width: none;
  height: 2.5rem;
 }
}
@media (max-width: 1001px) {
 .bubble img {
  white-space: 100%;
  height: auto;
 }
}
/* 内容 */
.content h3 {
 font-size: 2rem;
 font-weight: 700;
 width: 100%; /* unit全幅 */
 margin: 0 auto 1.2rem;
 padding: 0.75rem 0;
 border-top: 1px solid rgba(255, 255, 255, 0.5);
 border-bottom: 1px solid rgba(255, 255, 255, 0.5);
}
@media (min-width: 1001px) {
 .content h3 {
  font-size: 2rem;
 }
}
@media (min-width: 701px) and (max-width: 1000px) {
 .content h3 {
  font-size: 1.7rem;
 }
}
@media (min-width: 601px) and (max-width: 700px) {
 .content h3 {
  font-size: 1.8rem;
 }
}
@media (min-width: 481px) and (max-width: 600px) {
 .content h3 {
  font-size: 2rem;
 }
}
@media (max-width: 480px) {
 .content h3 {
  font-size: 1.5rem;
 }
}
.content p {
 font-size: 1.25rem;
 line-height: 1.8;
 margin: 1.5rem 0 1.5rem;
 font-weight: 700;
}
/* ボタン */
.btn {
 display: inline-flex;
 justify-content: center;
 align-items: center;
 position: relative;
 gap: 0.4rem;
 width: 80%;
 margin: 0 auto;
 background: #fff;
 color: #000;
 font-weight: 700;
 border-radius: 50px;
 padding: 0.5rem 2.2rem;
 text-decoration: none;
 box-shadow: 0 5px 0 rgba(0, 0, 0, 0.2);
 transition: transform 0.2s, box-shadow 0.2s;
 font-size: 110%;
}
@media (min-width: 551px) and (max-width: 800px)  {
 .btn {
  padding: 0.5rem 1.6rem;
		width: 100%;
 }
}
@media (min-width: 481px) and (max-width: 550px)  {
 .btn {
  padding: 0.7rem 1.6rem;
 }
}
@media (max-width: 480px) {
 .btn {
  padding: 0.5rem 1.6rem;
 }
}
/* ボタン内の矢印 */
.btn::after {
 content: "";
 position: absolute;
 right: 1rem;
 width: 8px;
 height: 8px;
 border-top: 2px solid #000;
 border-right: 2px solid #000;
 transform: rotate(45deg);
 transition: transform 0.2s;
}
.btn:hover::after {
 transform: translateX(3px) rotate(45deg);
}
.btn:hover {
 transform: translateY(2px);
 box-shadow: 0 2px 0 rgba(0, 0, 0, 0.2);
}
