@charset "utf-8";

/* top-index
------------------------------------------------------------*/

#top-index {
background: #ffe7f1;
position: relative;
padding: 0 0 20vw 0;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#top-index {
padding: 0 48px 48px;
overflow: hidden;
}
}

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#top-index:before {
content: "";
position: absolute;
top: 0;
left: -5%;
width: 110%;
height: 80%;
background: #fff;
border-radius: 0 0 20% 20%;
}
}

.top-index-inner {
height: 120vw;
text-align: center;
background-image: url("../images/index/top_index_bg_sp.jpg");
background-repeat: no-repeat;
background-size: cover;
background-position: center center;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.top-index-inner {
position: relative;
background-image: url("../images/index/top_index_bg_pc.jpg");
height: auto;
padding-bottom: 56.25%;
}
}
@media only screen and (min-width: 1920px) { /* 1920px以上で適用、フルHD以上用CSS */
.top-index-inner {
padding-bottom: 1026px;
}
}

#top-index .headline {
display: inline-block;
background: rgba(255,255,255,0.3);
margin: 20vw 0 0 0;
padding: 1em 1em 1em 1.5em;
border-radius: 10px;
box-shadow: 0 2px 12px 4px rgba(176,176,176,0.15);
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#top-index .headline {
padding: 2em 2em 2em 3em;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#top-index .headline {
position: absolute;
top: 16%;
left: 50%;
transform : translate(-50%, 30px); /* scroll-in あり */
margin: 0;
padding: 1.2em 1.2em 1.2em 1.8em;
}
#top-index .headline.on {
transform : translate(-50%, 0); /* scroll-in あり */
}
}

#top-index h1 {
display: inline;
color: #e9026c;
font-size: 7vw;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#top-index h1 {
font-size: 2.625rem;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#top-index h1 {
white-space: nowrap;
}
}

#top-index .para {
position: absolute;
display: inline-block;
left: 0;
bottom: 10vw;
background: #fd4589;
background: -webkit-linear-gradient(left, #fe85bb, #fd4589);
background: linear-gradient(to right, #fe85bb, #fd4589);
box-shadow: 0 2px 12px 4px rgba(176,176,176,0.3);
transition-delay: 0.4s; /* for scroll-in */
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#top-index .para {
bottom: 170px;
}
}

#top-index .para p {
color: #fff;
display: inline-block;
font-size: 1rem;
padding: 1em;
margin: 0;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
#top-index .para p {
font-size: 1.5rem;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#top-index .para p {
padding: 1em 48px;
}
}
@media only screen and (min-width: 1248px) { /* 1248px以上で適用、PCフルサイズ用CSS */
#top-index .para p {
padding: 1em 48px 1em 72px;
}
}

/* End top-index */


/* index-feature
------------------------------------------------------------*/

#index-feature {
position: relative;
}

#index-feature:before {
position: absolute;
content: "";
width: 100%;
height: 70vw;
background: #fff;
top: 0;
left: 0;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
#index-feature:before {
height: 370px;
}
}

.index-feature-list li {
background: #fff;
box-shadow: 0 2px 12px 4px rgba(176,176,176,0.3);
}

@media only screen and (max-width: 1024px) { /* 1024px以下で適用、PC以外用CSS */
.index-feature-list li + li {
margin: 2em 0 0 0;
}
}

.index-feature-list img {
width: 100%;
}

.index-feature-list h3 {
position: relative;
margin: 0 8px;
padding: 1em 0.5em 0.5em 32px;
text-align: justify;
border-bottom: solid 1px #fe85bb;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-feature-list h3 {
margin: 0 16px;
padding: 1em 1em 0.5em 36px; /* 1em 0.5em 0.5em 36px */
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.index-feature-list h3 {
min-height: 110px; /* h3の3行対策 */
}
}
@media only screen and (min-width: 1220px) { /* 1220px以上で適用、特注CSS */ /* h3の3行対策 */
.index-feature-list h3 {
min-height: inherit;
}
}

.index-feature-list h3 span.num {
position: absolute;
font-size: 1.375rem;
line-height: 1;
top: 16px;
left: 8px;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-feature-list h3 span.num {
font-size: 1.625rem;
}
}

.index-feature-list p {
padding: 1em 1em 2em 1em;
margin: 0 8px;
}

/* End index-feature */


/* index-service
------------------------------------------------------------*/

.index-service-list li {
background: #f8f1f3;
box-shadow: 0 2px 12px 4px rgba(176,176,176,0.3);
padding: 1em 1em 2em 1em;
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.index-service-list li {
display: flex;
flex-direction: column;
}
}

@media only screen and (max-width: 1024px) { /* 1024px以下で適用、PC以外用CSS */
.index-service-list li + li {
margin: 2em 0 0 0;
}
}

.index-service-list img {
width: 100%;
}

.index-service-list h3 {
padding: 1em 0 0.5em;
text-align: center;
border-bottom: solid 1px #fe85bb;
}

.index-service-list p {
padding: 1em 0 2em 0;
margin: 0 8px;
}

.index-service-list .btn-wrap {
margin-top: auto;
}

@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.index-service-list a.btn {
min-width: 16em;
margin-top: auto;
}
}
@media only screen and (min-width: 1248px) { /* 1248px以上で適用、PCフルサイズ用CSS */
.index-service-list a.btn {
min-width: 18em;
}
}
@media only screen and (max-width: 374px) { /* 374px以下で適用、for mini */
a.btn {
min-width: 15em;
}
}

/* End index-service */


/* index-news
------------------------------------------------------------*/

.index-news-list {
border-top: solid 1px #e1e1e1;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-news-list {
max-width: 800px;
margin: 0 auto;
}
}

.index-news-list li {
border-bottom: solid 1px #e1e1e1;
}

@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-news-list li a {
display: flex;
}
}

.index-news-list li a:hover {
opacity: 1;
background: #f9f9f9;
}

.index-news-list li a:hover p.title {
color: #e9026c;
transition: 0.6s;
}

@media only screen and (max-width: 1024px) { /* 1024px以下で適用、PC以外用CSS */
.index-news-list li a,
.index-news-list li a p.title {
transition: 0s; /* for hover */
}
}

.index-news-list p.date {
color: #fff;
padding: 1em 0 0.5em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-news-list p.date {
padding: 1em;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.index-news-list p.date {
padding: 1em 2em;
}
}

.index-news-list p.date span {
background: #fe85bb;
border-radius: 100vh;
padding: 0 1em;
min-width: 8em;
text-align: center;
}

.index-news-list p.title {
padding: 0.5em 0.5em 1em 0.5em;
}
@media only screen and (min-width: 768px) { /* 768px以上で適用、タブレット～PC用CSS */
.index-news-list p.title {
padding: 1em 2em 1em 0.5em;
}
}
@media only screen and (min-width: 1025px) { /* 1025px以上で適用、PC用CSS */
.index-news-list p.title {
padding: 1em 3em 1em 1em;
}
}

/* End index-news */






