@charset "utf-8";

/* CSS Document */
body {
  font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
  font-size: 16px;
  line-height: 28px;
  margin: 0;
  -webkit-text-size-adjust: 100%;
}

body * {
  box-sizing: border-box;
}

/* パソコンで見たときは"pc"のclassがついた画像が表示される */
.pc {
  display: block !important;
}

.sp {
  display: none !important;
}

/* スマートフォンで見たときは"sp"のclassがついた画像が表示される */
@media only screen and (max-width:768px) {
  .pc {
    display: none !important;
  }

  .sp {
    display: block !important;
  }
}

/* PCとSPの改行切り替え */
@media screen and (min-width: 599px) {
  .br-pc {
    display: block;
  }

  .br-sp {
    display: none;
  }
}

@media only screen and (max-width:599px) {
  .br-pc {
    display: none;
  }

  .br-sp {
    display: block;
  }
}
.image_area {
width: 200px;
display: block;
vertical-align: bottom;
}
.image_area2 {
width: 380px;
display: block;
vertical-align: bottom;
}
@media only screen and (min-width: 768px){
.image_right {
float: right;
margin: 0 0 21px 25px;
}
.image_left {
float: left;
margin: 0 25px 30px 0;
}
}
@media only screen and (max-width: 768px){
.image_right {
float: none;
margin: 25px auto;
}
.image_left {
float: none;
margin: 25px auto;
}
}

/*サイズやカラー*/
.sample-font{
	font-size : 13px;
	color : #d51f9b;
}
.color-red{
	color : #cc0000;
}
.color-blue{
	color : #0080cc;
}
.s{
	font-size : 70%;
}
.center{
	text-align : center;
}
.clear{
	clear : both;
}
.font-mini{
	font-size : 70%;
	line-height : 60%;
}
.font-s{
	font-size : 13px;
	line-height : 19px;
}
.font-120{
	font-size : 120%;
}
.space_s{
	height : 15px;
}
.space_m{
	height : 20px;
}
.color-yellow{
	color : #f1f917;
}
.cource-type{
	    content: attr(data-en);
    position: absolute;
    transform: rotate(-5deg);
    color: rgba(224, 66, 114, 0.5);
    font-size: 42px;
    font-weight: bold;
    font-family: 'Playfair Display', serif;
    font-style: italic;
}
.cource-type-2{
	    content: attr(data-en);
    position: absolute;
    transform: rotate(-3deg);
    color: rgba(224, 66, 114, 0.5);
    font-size: 32px;
	line-height : 10px;
    font-weight: bold;
    font-family: 'Playfair Display', serif;
    font-style: italic;
}
/*マーカー設定（黄色）*/
.js-marker {
    font-size: 1em;
    display: inline;
    position: relative;
    background-image: linear-gradient(90deg, #fcefa4, #fcefa4);
    background-repeat: no-repeat;
    background-position: bottom left;
    background-size: 0 80%;
    transition: all 2s ease-in-out;
    font-weight: bold;
}

/* アニメーション発火時 */
.js-marker.inview{
    background-size: 100% 80%;
    /* '30%'の部分は上で設定した太さに合わせる */
}


/*きらっと光るボタン*/
@keyframes shiny {
    0% {
        transform: scale(0) rotate(25deg);
        opacity: 0;
    }

    50% {
        transform: scale(1) rotate(25deg);
        opacity: 1;
    }

    100% {
        transform: scale(50) rotate(25deg);
        opacity: 0;
    }
}

.shiny-btn {
    position: relative;
    display: block;
    width: 100%;
    height: 60px;
	font-size : 1.1em;
    line-height: 60px;
    text-align: center;
    text-decoration: none;
    color: #ffffff;
    background-color: #cc0000;
    overflow: hidden;
}

.shiny-btn::after {
    content: '';
    position: absolute;
    top: -100px;
    left: -100px;
    width: 50px;
    height: 50px;
    background-image: linear-gradient(100deg,  rgba(255, 255, 255, 0) 10%, rgba(255, 255, 255, 1) 100%, rgba(255, 255, 255, 0) 0%);
    
    /* アニメーション */
    animation-name: shiny;
    animation-duration: 3s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
}

/*LINE風の会話吹き出し*/
.balloon {
    display: grid;
    gap: 1em 0;
    padding: 25px 15px;
    background-color: #ddf0f5;
}

.balloon__section {
    display: flex;
    align-items: flex-start; /* 上部に合わせるために変更 */
    gap: 0 15px;
}

.balloon__img {
    width: 5em;
    height: 5em;
    border-radius: 50%;
    margin-top: 5px; /* 上部に配置 */
}

.balloon__p {
    display: inline-block;
    position: relative;
    max-width: 80%;
    margin: 0;
    padding: .4em .8em;
    border-radius: 20px;
    color: #333;
    font-size: 1.1em;
	line-height : 1.5em;
}

.balloon__p.left {
    background-color: #008b9b;
	color : #fff;
}

.balloon__p.right {
    background-color: #e94f40;
    margin-left: auto;
    color: #fff;
}

.balloon__p::before {
    position: absolute;
    top: -15px;
    width: 20px;
    height: 30px;
    content: '';
}

.balloon__p.left::before {
    left: -10px;
    border-radius: 0 0 0 15px;
    box-shadow: -3px -15px 0 -7px #008b9b inset;
}

.balloon__p.right::before {
    right: -10px;
    border-radius: 0 0 15px 0;
    box-shadow: 3px -15px 0 -7px #e94f40 inset;
}

/*お客様の声*/
.voice_in {
  width: 100%;
  display: flex;
  transition: transform 0.5s ease;
}

.voice_box {
  width: 100%;
  flex: 0 0 100%; /* コンテンツを均等に分割しないようにする */
  border: 1px solid #333;
  padding: 30px;
  border-radius: 10px;
}

.slider-arrows {
  text-align: center;
  margin-top: 10px;
}

.arrow {
  font-size: 20px;
  cursor: pointer;
  margin: 0 20px;
	color : #449bb3;
	font-size : 13px;
}

/* 左矢印の非アクティブ状態 */
.arrow.prev.disabled {
  color: #ccc;
  cursor: not-allowed;
}
.voice-anken{
	display:inline-block;
	background : #d93237;
	padding : 2px 20px;
	font-size : 13px;
	color : #fff;
	margin-bottom : 20px;
}
.v-nav{
	font-size : 15px;
	color : #449bb3;
}

/*制作の流れ*/
.flow_design {
  display: flex;
  justify-content: center;
  align-items: center;
}

.flow {
  padding-left: 0;
  border-bottom: solid 0px #E1E8ED;
}

.flow > li {
  list-style-type: none;
  display: flex;
  padding: 20px 0;
  border-top: solid 0px #E1E8ED;
}

.flow > li dl dt {
  font-size: 1.2em;
  line-height: 2;
  font-weight: bold;
  margin-bottom: 10px;
}

.flow > li .icon {
  line-height: 1;
  font-size: 2.4em;
  font-weight: bold;
  color: #00a5b1;
  text-align: center;
  width: 70px;
  position: relative;
  margin-top: 0;
}

.flow > li .icon::before {
  content: 'STEP';
  font-size: 0.5em;
  display: block;
  margin-bottom: 3px;
  letter-spacing: 1px;
}

.flow > li .icon::after {
  content: "";
  display: block;
  width: 1px;
  height: calc(100% - 40px);
  background-color: #858585;
  position: absolute;
  left: 0;
  right: 0;
  top: 60px;
  margin: auto;
}

.flow > li dl dd {
  margin: 0;
}

.flow > li dl {
  width: calc(100% - 70px);
  margin-top: 0.8em;
}

    #nav-footer {
        position: fixed;
		height : auto;
        bottom: 0;
        right: 0;
        width: 100%;
        background: #cc0000;
        color: #fff;
        z-index: 999;
		padding : 10px;
    }
#nav-footer a{
	text-decoration : none;
	color : #fff;
}
.nav-footer-in{
    display: flex;
    justify-content: space-between; /* 要素を均等に配置 */
    list-style: none;
}

.nav-footer-in li {
    flex: 1; /* 均等に分配する */
    padding: 3px;
    text-align: center;
}

   .qa-container {
    text-align: justify;
    margin-bottom: 0.5rem;
   }
   .qa-container label {
    display: block;
    position: relative;
    background: #00a6ca;
	   font-weight : 600;
	   color : #fff;
    padding: 1rem 2.5rem 1rem 0.5rem;
    cursor: pointer;
   }
   .qa-container label:after {
    content: '';
    display: block;
    width: 0.5rem;
    height: 0.5rem;
    border-right: solid 2px #fff;
    border-bottom: solid 2px #fff;
    transform: rotate(45deg) translate(100%, 100%);
    position: absolute;
    top: 0;
    right: 0;
    margin-top: 0.5rem;
    margin-right: 1rem;
   }
   .qa-container input:checked ~ label:after {
    transform: rotate(-135deg) translate(-100%, -100%);
    margin-top: 0.75rem;
   }
   .qa-container input {
    display: none;
   }
   .qa-container p {
    height: 0px;
    opacity: 0;
    transition: opacity 0.3s ease-in-out, height 0.5s ease-in-out, margin 0.5s ease-in-out;
    margin: 0 0.5rem;
   }
   .qa-container input:checked ~ p {
    height: auto;
    opacity: 1;
    transition: opacity 0.3s 0.2s ease-in-out, height 0.3s ease-in-out;
    margin: 1rem 0.5rem;
   }
.renraku-ttl{
	font-size : 1.1em;
	font-weight : 600;
	margin : 30px 0px 15px 0px;
	border-bottom : 2px dotted #cc0000;
	color : #cc0000;
}
   }

