@charset "UTF-8";


/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.w1436 {
    width: 96%;
}
}

/*---------------------------------------------------------
 page-common
---------------------------------------------------------*/
.p-ttl-bld {
    color: var(--color-navy);
    font-size: var(--fs-24);
    font-weight: bold;
    line-height: 1.5;
    font-feature-settings: "palt";
    margin-bottom: .4em;
}
.p-ttl-center {
    text-align: center;
    color: var(--color-navy);
    font: var(--font-min);
    font-size: var(--fs-24);
    line-height: 1.5;
    margin-bottom: 1.2em;
}
.p-txt-circle {
    position: absolute;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: var(--color-navy);
    font: var(--font-min);
    font-size: min(2.0rem,1.6vw);
    letter-spacing: normal;
    line-height: 1.4;
    width: min(7.7em);
    aspect-ratio: 1;
    background-color: #FFF;
    border-radius: 50%;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.p-txt-circle {
    font-size: 3.5vw;
}
}


/* page-common - float
-----------------------------------------------*/
.p-flt-main {

}
.p-flt-sub .c-flt__img {
    max-width: 460px;
}
.p-flt-sub .c-flt__img > img {
    width: 77% !important;
    margin: 0;
}
.p-flt-sub .p-txt-circle {
    box-shadow: 0 0 .5em rgb(0 0 0 / 0.1);
    right: 1.5em;
    bottom: 1.2em;
}
.p-flt-sub .p-txt-circle.pos-rt {
    top: 1.5em;
    bottom: auto;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.p-flt-main .c-flt__img {
    width: 46%;
}
.p-flt-main .c-flt__img.u-flt-r + .c-flt__txt {
    max-width: 700px;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.p-flt-sub .p-txt-circle {
    right: 0;
}
}

/* page-common - col2
-----------------------------------------------*/
.p-col2 {
    display: grid;
    row-gap: var(--gap-60);
}
.p-col2 > div {
    display: grid;
    grid-template-rows: subgrid;
    grid-template-columns: 100%;
    align-items: flex-start;
    gap: 0;
    grid-row: span 2;
}
.p-col2__grid {
    display: grid;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0;
    grid-template-columns: 38% 56%;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.p-col2 {
    display: grid;
    justify-content: space-between;
    grid-template-columns: repeat(2,48%);
}
.p-col2__img {
    grid-column: 1/2;
    grid-row: 1/3;
}
.p-col2__grid p {
    grid-column: 2/3;
    grid-row: 2/3;
}
.p-col2__grid .p-ttl-bld {
    grid-column: 2/3;
    grid-row: 1/2;
}
.p-col2 .c-link-round {
    grid-column: 1/3;
}
}
/* Tablet,Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 960px) {

.p-col2__grid {
    align-items: center;
    row-gap: 1em;
}
.p-col2__img {
    grid-column: 1/2;
    grid-row: 1/2;
}
.p-col2__grid p {
    grid-column: 1/3;
    grid-row: 2/3;
}
.p-col2__grid .p-ttl-bld {
    grid-column: 2/3;
    grid-row: 1/2;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

}

/* page-common - col3
-----------------------------------------------*/
.p-col3 {
    display: grid;
    row-gap: 1.6em;
}
.p-col3 p {
    font-feature-settings: "halt";
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.p-col3 {
    display: grid;
    justify-content: space-between;
    grid-template-columns: repeat(3,31%);
}
.p-col3__img {
    width: 70%;
    max-width: max-content;
    margin: 0 auto 4%;
}
.p-col3 .p-ttl-bld {
    text-align: center;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.p-col3 > div {
    display: grid;
    justify-content: space-between;
    grid-template-columns: 34% 60%;
    align-items: center;
    row-gap: 1em;
}
.p-col3__img {
    grid-column: 1/2;
    grid-row: 1/2;
}
.p-col3 p {
    grid-column: 1/3;
    grid-row: 2/3;
}
.p-col3 .p-ttl-bld {
    grid-column: 2/3;
    grid-row: 1/2;
}
}


/*---------------------------------------------------------
 Lead 
---------------------------------------------------------*/
.lead {
    position: relative;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.lead {
    padding: 0 16%;
}
.lead__img > div {
    position: absolute;
    width: 12vw;
    max-width: max-content;
}
.lead__img > div:nth-child(1) {
    left: 8.8%;
    top: 25%;
    translate: -50% 0;
}
.lead__img > div:nth-child(2) {
    right: 10%;
    top: 0;
    translate: 50% -40%;
}
}
/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {

.lead__img > div {
    width: 15vw;
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.lead__img {
    width: 80%;
    display: flex;
    justify-content: space-between;
    margin: 0 auto 5%;
}
.lead__img > div {
    width: 45%;
}
.lead__img > div:nth-child(1) {
    margin-top: -10%;
}
}



/*---------------------------------------------------------
 Feature
---------------------------------------------------------*/
.feature {
    margin-bottom: var(--gap-120);
}
.feature:last-child {
    margin-bottom: 0;
}

.feature__box {
    padding: 1px 5% var(--gap-60);
}
.feature__inner {
    max-width: 1236px;
    margin-inline: auto;
}

.feature:nth-of-type(even) .feature__box {
    background-color: #fff;
    padding-bottom: var(--gap-90);
}
.feature:nth-of-type(even) .feature__heading .u-ft-en {
    margin-top: -0.65em;
}

/* Feature - heading
-----------------------------------------------*/
.feature__heading {
    text-align: center;
    margin-bottom: var(--gap-50);
}
.feature__heading .u-ft-en {
    position: relative;
    max-width: max-content;
    color: #d2f2ee;
    font-size: min(10rem,8.5vw);
    letter-spacing: .04em;
    margin: 0 auto .2em;
}
.feature__heading .u-ft-en span {
    position: absolute;
    display: block;
    color: var(--color-base);
    font-size: 18%;
    font-weight: 600;
    letter-spacing: .08em;
    background-color: var(--color-cream);
    padding: .2em;
    left: 0;
    top: 50%;
    translate: -50% -50%;
}
.feature__heading .u-ft-min {
    color: var(--color-navy);
    font-size: var(--fs-40);
    line-height: 1.4;
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.feature__heading .u-ft-en {
    font-size: calc(100 * 0.045rem + 0.94rem);
}
}

/* Feature - generation
-----------------------------------------------*/
.feature__gen {
    max-width: 1264px;
    display: grid;
    row-gap: var(--gap-70);
    margin-inline: auto;
}
.feature__gen > li {
    display: grid;
    grid-template-rows: subgrid;
    gap: 0;
    grid-row: span 3;
}
.feature__gen-ttl {
    display: flex;
    justify-content: center;
    align-items: center;
	color: var(--color-navy);
	font: var(--font-min);
	font-size: var(--fs-32);
	letter-spacing: normal;
	line-height: 1.3;
    /* white-space: nowrap; */
	padding-bottom: .7em;
    margin-bottom: .6em;
	border-bottom: solid 1px var(--color-border);
}
.feature__gen-ttl div {
    width: 3.13em;
    max-width: max-content;
}
.feature__gen p {
    padding: 0 2%;
}
/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

.feature__gen {
    display: grid;
    justify-content: space-between;
    grid-template-columns: repeat(3,31%);
}
}
/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {

}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {


}

/* Feature - slide
-----------------------------------------------*/
.feature__slider .swiper-slide {
	width: 37vw;
    max-width: max-content;
}
.feature__slider .swiper-slide::before {
    position: absolute;
    content: "";
    background: linear-gradient(to top, rgb(0 0 0 / 0.3), rgb(0 0 0 / 0));
    width: 100%;
    height: 30%;
    inset: auto 0 0 0;
}
.feature__slider-point {
    position: absolute;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    font: var(--font-min);
    letter-spacing: normal;
    line-height: 1.3;
    width: min(6.8em);
    aspect-ratio: 1;
    background-color: #FFF;
    border-radius: 50%;
    right: 5.3%;
    top: 7.5%;
}
.feature__slider-txt {
    position: absolute;
    text-align: center;
    color: #FFF;
    font-size: var(--fs-24);
    font-weight: bold;
    inset: auto 0 1em 0;
    margin: auto;
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {

.feature__slider .swiper-slide {
	width: 85vw;
}
.feature__slider-point {
    font-size: .8em;
}
}



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

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

/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

}
/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {

}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {


}


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

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

/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

}
/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {

}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {


}


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

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

/* PC,Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) {

}
/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {

}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {


}
