@charset "utf-8";

/*========================

sp_common.css

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

.pc { display:none; }
.sp { display:flex; }

/*---------------------------------------------
header
---------------------------------------------*/
#header #header_cont {
 padding:13px 60px 13px 15px;
}

#header #header_cont #header_left h1 a img {
 max-width:40px;
}

#header #header_cont #header_left h1 span {
font-size: 1.2rem; 
}

#header #header_cont #header_left h1 .title {
font-size: 1.0rem; 
}

#header #header_cont #header_nav {
 display:none;
}

#header #header_cont #header_right {
 background-color:var(--white);
 justify-content:start;
 position:fixed;
 bottom:0;
 left:0;
 padding:10px 15px;
 width:100%;
}

/*---------------------------------------------
h_menu
---------------------------------------------*/
.menu_trigger {
 width:86px;
 height:86px;
}

.menu_trigger > span:nth-of-type(1) {
 top:33px;
 left:34px;
}

.menu_trigger > span:nth-of-type(2) {
 left:34px;
}

.menu_trigger > span:nth-of-type(3) {
 bottom:32px;
 left:34px;
}

/*---------------------------------------------
group_link
---------------------------------------------*/
#group_link {
 padding:30px 20px 20px;
}

#group_link ul {
 row-gap:20px;
}

#group_link ul li {
 align-items:center;
 flex: 1 1 40vw;
 height:auto;
 max-width: calc(50% - 1.5vw);
 min-width: calc(50% - 3vw);
 width: auto;
}

#group_link ul li {
 border-radius:3px;
}

#group_link ul li a {
 border-radius:3px;
}

#group_link ul li a dl {
 border-radius:3px;
}

#group_link ul li a dl dt {
 border-radius:3px;
}

#group_link ul li a dl dd {
 border-radius:0 0 3px 3px;
}

#group_link ul li a dl dd span {
 font-size: calc(1.1rem + ((1vw - 0.48rem) * 0.6944));
}

/*---------------------------------------------
footer
---------------------------------------------*/
#footer {
 background-repeat: no-repeat;
 background-position: center top;
 background-size: contain;
background-attachment: unset;
 padding-top:35vw;
 padding-bottom:64px;
}

#footer .image {
 display:none;
}


#footer #footer_cont {
 row-gap:0;
 padding:70px 0 0;
}

#footer #footer_cont:before {
 height: 150vw;
 margin-left: -75vw;
 width: 150vw;
}

#footer #footer_cont #footer_logo {
 row-gap:5px;
}

#footer #footer_cont #footer_logo h2 span {
 font-size: calc(1.8rem + ((1vw - 0.48rem) * 0.6944));
}

#footer #footer_cont #footer_logo h2 span.en {
 font-size: calc(1.0rem + ((1vw - 0.48rem) * 0.6944));
}

#footer #footer_head {
 background-size: 1200px auto;
 padding-bottom: 100px;
 row-gap:30px;
}

#footer #footer_head h3 img {
 width:60vw;
 max-width:200px;
}

#footer #footer_head h3:before {
 margin-top:-40px;
}

#footer #footer_head h3:after {
 margin-top:-40px;
}

#footer #footer_head ul {
 flex-wrap:nowrap;
 padding:3vw 20px 5vw;
}

#footer #footer_head ul li {
 flex: 0 1 100%;
 width: calc(100% / 3 - 2vw);
}

#footer #footer_head ul li:after {
 aspect-ratio: 1 / 1;
 height: 25vw;
 width: 25vw; 
}

#footer #footer_head ul li a {
 height:auto;
 max-height: 200px;
 min-height: 100px;
}

#footer #footer_head ul li a h4 img {
 min-height: 20px;
 max-height:32px;
 height:auto;
 max-width: 20vw;
}

#footer #footer_head ul li figure {
 max-height: 18vw; 
 bottom:-16vw;
}

#footer #footer_head ul li.experience figure {
 max-height: 17vw; 
 bottom:-15vw;
}

#footer #footer_bottom {
 background-repeat: repeat-y;
 padding-top: 0;
}

#footer .link_area {
 border-top:none;
 border-bottom:none;
 padding:0;
}

#footer .link_area ul {
 border:none;
 flex-direction:column;
 row-gap:0;
}

#footer .link_area ul li {
 border-top:1px solid var(--color-gray-dd);
}

#footer .link_area ul li:first-child {
 border-top:none;
 width:100%;
}

#footer .link_area ul li a {
 font-size: calc(1.4rem + ((1vw - 0.48rem) * 0.6944));
 padding:20px 15px 20px 40px;
}

#footer .link_area ul li a:before {
 left:10px;
}

#footer .link_area ul li a:after {
 font-size:0.8rem;
 left:17px;
 margin-top:-6px;
}

#footer .link_area ul li:first-child a {
 background-color:var(--main);
 color:var(--color-white);
}

#footer .link_area ul li:first-child a:before {
 background-color:var(--white);
}

#footer .link_area ul li:first-child a:after {
 color:var(--color-gray-66);
}

#footer .service_link_area {
 background-color:var(--white);
 column-gap:20px;
 flex-wrap:wrap;
 row-gap:0;
 padding:0;
}

#footer .service_link_area .widget {
 flex:1 1 50%;
 max-width:100%;
 row-gap:0;
 padding:0;
}

#footer .service_link_area .widget h5 {
 border-top:1px solid var(--color-gray-dd);
 border-bottom:1px solid var(--color-gray-dd);
}

#footer .service_link_area .widget h5 a {
 background-color:var(--color-gray-ee);
 font-size: calc(1.4rem + ((1vw - 0.48rem) * 0.6944));
 display:flex;
 padding:15px 15px 15px 40px;
 position:relative;
}

#footer .service_link_area .widget h5 a:before {
 background-size: 13px 13px;
 height: 13px;
 top:50%;
 left:15px;
 margin-top:-8px;
 width:13px;
}

#footer .service_link_area .widget ul {
 column-gap:0;
 row-gap:0;
}

#footer .service_link_area .widget ul li {
 border-bottom:1px solid var(--color-gray-dd);
 flex:0 1 50%;
 max-width:100%;
 min-width:50%;
 width:auto;
}

#footer .service_link_area .widget ul li:nth-child(odd) {
 border-right:1px solid var(--color-gray-dd);
}

#footer .service_link_area .widget ul li:last-child {
 border-bottom:none;
}

#footer .service_link_area .widget ul li a {
 font-size: calc(1.3rem + ((1vw - 0.48rem) * 0.6944));
 padding:15px;
}

#footer .service_link_area .widget ul li a:before {
 left:auto;
 right:10px;
}

#footer #footer_conversion_area {
 background-color:var(--white);
 padding:0;
}

#footer #footer_conversion_area ul {
 align-items:center;
 justify-content:start;
 row-gap:30px;
 padding:20px;
}

#footer #footer_conversion_area ul li {
 flex:1 1 40vw;
 max-width: calc(50% - 1.5vw);
 min-width: calc(50% - 3vw);
 width:auto; 
}

#footer #footer_conversion_area ul li .info span {
 font-size: calc(1.0rem + ((1vw - 0.48rem) * 0.6944));  
}

#footer #footer_conversion_area ul li a dl dd {
 font-size: calc(1.4rem + ((1vw - 0.48rem) * 0.6944));
}

#footer #footer_conversion_area ul li a dl dd:after {
 font-size: calc(0.9rem + ((1vw - 0.48rem) * 0.6944));
 margin-top:-5px;
 right:0;
}

#footer_sub_link_area {
 background-color:var(--white);
 flex-wrap:wrap;
 padding:20px;
}

#footer_sub_link_area ul {
 row-gap:20px;
}

#footer_sub_link_area ul li {
 align-items:center;
 flex: 1 1 40vw;
 height:auto;
 max-width: calc(50% - 1.5vw);
 min-width: calc(50% - 3vw);
 width: auto;
}

#footer_sub_link_area ul li a {
 height:100%;
 font-size: calc(1.1rem + ((1vw - 0.48rem) * 0.6944)); 
 font-weight:600;
 width:100%;
}

#footer_sub_link_area ul li.faq a span:before {
 left:10px;
 aspect-ratio:52px 35px;
 max-width:30px;
 margin-top:-23px;
}

#footer_sub_link_area ul li a:after {
 font-size: calc(1.0rem + ((1vw - 0.48rem) * 0.6944)); 
}

#footer_sub_link_area ul li a img {
 object-fit:contain;
 width: 100%;
 height: auto;
}

#footer_sub_link_area ul li.faq a:before {
 right:10px;
 aspect-ratio:100 / 88;
 max-width:30px;
}

#footer #footer_bottom .sns_link ul li a img {
 max-height: 20px; 
}

/*---------------------------------------------
page_top(1256)
---------------------------------------------*/
#page_top.fixed {
 bottom:60px;
 right:10px;
 z-index:20;
}


/*---------------------------------------------
copyright(1316)
---------------------------------------------*/
#copyright span {
 font-size: calc(0.8rem + ((1vw - 0.48rem) * 0.6944));  
}

/*---------------------------------------------
btn(1335)
---------------------------------------------*/
.btn a {
 font-size: calc(1.2rem + ((1vw - 0.48rem) * 0.6944)); 
 padding:15px 30px;
}

.btn label:after,
.btn a:after {
 font-size:1.1rem;
 margin-top:-5px;
}

.btn.s label:after,
.btn.s a:after {
 font-size: calc(1.0rem + ((1vw - 0.48rem) * 0.6944)); 
}

.btn.bg_work label,
.btn.bg_work a:after {
 font-size:1.1rem;
}

.btn.bg_learn label,
.btn.bg_learn a:after {
 font-size:1.1rem;
}

.btn.bg_experience label,
.btn.bg_experience a:after {
 font-size:1.1rem;
}


/*---------------------------------------------
side_area(2697)
---------------------------------------------*/
#side_area {
 top:auto;
 bottom:80px;
 display:none;
}

/*---------------------------------------------
scrol_nav(2759)
---------------------------------------------*/
.scroll_nav_text {
	font-size: 0.9rem;
}

.scroll_nav.scroll_nav--down .scroll_nav_line {
 bottom:6px;
}




/*---------------------------------------------
nav_menu_cont
---------------------------------------------*/
.modal-wrap#nav_menu input:checked + .modal-overlay .modal-content {
 background-color:var(--color-blue-50);
 height: 90vh;
 max-width: 90vw;
 max-height: 90vh;
 min-width: 80vw;
 width: 90vw;
}

#nav_menu_cont {
 flex-direction:column;
 margin-top: -45px;
}

#nav_menu_cont #nav_menu_left {
 background-color:var(--white);
 order:2;
 padding:0 0 50px;
 width:100%;
}

#nav_menu_cont #nav_menu_left .pic img {
 height:250px;
}

#nav_menu_cont #nav_menu_left dl.address {
 padding: 40px 50px 20px 50px;
}

#nav_menu_cont #nav_menu_left .conversion_area > ul {
 row-gap:30px;
}

#nav_menu_cont #nav_menu_left .sns_menu {
 padding: 50px 30px 20px 30px;
}

#nav_menu_cont #nav_menu_left .sns_menu ul {
 justify-content:space-around;
}

/*--- nav_menu_right ---*/

#nav_menu_cont #nav_menu_right {
 flex-direction:column;
 order:1;
 row-gap:20px;
 padding: 25px 20px 35px;
 width:100%;
}

#nav_menu_cont #nav_menu_right .menu {
 width:100%;
}

#nav_menu_cont #nav_menu_right h4 {
 margin-bottom:0;
 width:100%;
}

#nav_menu_cont #nav_menu_right h4 a {
 align-items:center;
 background-color:var(--white);
 border-radius:10px;
 display:flex;
 justify-content:center;
 padding:0;
 width:100%;
}

#nav_menu_cont #nav_menu_right h4 a:before {
 content:none;
}

#nav_menu_cont #nav_menu_right h4 a:after {
 content:none;
}

#nav_menu_cont #nav_menu_right h4 a img {
 border-radius:10px 0 0 10px;
 object-fit:cover;
 height:110px;
 max-width:30vw;
 width:100%;
}

#nav_menu_cont #nav_menu_right h4 a span {
 border-radius:0 10px 10px 0;
 display:flex;
 justify-content:start;
 padding:20px;
 position:relative;
 width:100%;
}

#nav_menu_cont #nav_menu_right h4 a span:after {
 content: "\f054";
 color: var(--main);
 font-family: var(--icon);
 font-size: calc(1.0rem + ((1vw - 0.48rem) * 0.6944));
 font-weight: 600;
 right: 20px;
 top: 50%;
 margin-top: -6px;
 opacity: 0.5;
 position: absolute;
 z-index: 3;
}

#nav_menu_cont #nav_menu_right .menu {
 padding-top:0;
 margin-bottom:0;
}

#nav_menu_cont #nav_menu_right .menu h5 {
 align-items:center;
 display:flex;
 margin-bottom:0;
 width:100%;
}

#nav_menu_cont #nav_menu_right .menu h5 a {
 align-items:center; 
 align-content:center;
 background-color:var(--white);
 border-radius:10px 10px 0 0;
 display:flex;
 height:100%;
 padding:0;
 width:100%;
}

#nav_menu_cont #nav_menu_right .menu h5 a:before {
 content:none;
}

#nav_menu_cont #nav_menu_right .menu h5 a:after {
 content:none;
}

#nav_menu_cont #nav_menu_right .menu h5 a img {
 border-radius:10px 0 0 0;
 object-fit:cover;
 height:110px;
 max-width:30vw;
 width:100%;
}

#nav_menu_cont #nav_menu_right .menu h5 a > span {
 display:flex;
 height:100%;
 line-height:1.4;
 padding:30px 30px 30px 25px;
 position:relative;
 width:100%;
}

#nav_menu_cont #nav_menu_right .menu h5 a > span:after {
 content: "\f054";
 color: var(--main);
 font-family: var(--icon);
 font-size: calc(1.0rem + ((1vw - 0.48rem) * 0.6944));
 font-weight: 600;
 right: 20px;
 top: 50%;
 margin-top: -6px;
 opacity: 0.5;
 position: absolute;
 z-index: 3;
}

#nav_menu_cont #nav_menu_right .menu ul {
background-color:var(--white);
border-top:1px solid var(--gray_dd);
border-radius: 0 0 10px 10px;
column-gap:10px;
flex-wrap:wrap;
flex-direction:unset;
padding:15px;
row-gap:10px;
width:100%;
}

#nav_menu_cont #nav_menu_right .menu ul li {
width:auto;
}

#nav_menu_cont #nav_menu_right .menu ul li a {
background-color:var(--white);
border:1px solid var(--color-gray-dd);
border-radius:25px;
color:var(--color-gray-33);
display:flex;
font-size: calc(1.3rem + ((1vw - 0.48rem) * 0.6944));
font-weight:600;
padding:13px 25px 13px 15px;
}

#nav_menu_cont #nav_menu_right .menu ul li a:after {
left:auto;
right:10px;
opacity:0.5;
}

#nav_menu_cont #nav_menu_right .menu ul li a:hover {
border-radius:25px;
}

/*--- other_menu ---*/

#nav_menu_cont #nav_menu_right .other_menu {
border-top:none;
column-gap:20px;
row-gap:20px;
padding:0;
}

#nav_menu_cont #nav_menu_right .other_menu h6 {
margin-bottom:0;
width:100%;
}

#nav_menu_cont #nav_menu_right .other_menu h6 a {
 background-color:var(--white);
 border:1px solid var(--gray_dd);
 display:flex;
 font-weight:600;
 border-radius:25px;
 padding: 15px 30px 15px 15px;
}

#nav_menu_cont #nav_menu_right .other_menu h6 a:hover {
 border-radius:25px;
}

#nav_menu_cont #nav_menu_right .other_menu h6 a:after {
 left:auto;
 right:10px;
 opacity:0.5;
}

/*--- other_link ---*/

#nav_menu_cont #nav_menu_right .other_link {
column-gap:20px;
flex-wrap:wrap;
row-gap:25px;
padding:0;
}

#nav_menu_cont #nav_menu_right .other_link li {
width:100%;
}

#nav_menu_cont #nav_menu_right .other_link li a {
padding: 5px 10px 5px 17px;
}

#nav_menu_cont #nav_menu_right .other_link li a:after {
left:5px;
}

/*---------------------------------------------
modal
---------------------------------------------*/
.close-button {
position: sticky;
top:20px;
right:10px;
z-index:10;
margin-left: auto;
}

.modal-content .copyright {
display:flex;
justify-content:center;
padding:15px;
order:3;
}

.modal-content .copyright span {
font-size: calc(0.7rem + ((1vw - 0.48rem) * 0.6944));
}

/*---------------------------------------------
card_list
---------------------------------------------*/
.card_list .card_list_cont ol {
 padding-left:15px;
}


/*---------------------------------------------
post_list
---------------------------------------------*/
.post_list ol li a {
 padding:15px
}

.post_list ol li a figure img {
 width:100px;
}

.post_list ol li a .content .date {
 font-size: calc(1.1rem + ((1vw - 0.48rem) * 0.6944));
}

.post_list ol li a .content .category {
 font-size: calc(1.0rem + ((1vw - 0.48rem) * 0.6944));
}

.post_list ol li a .content dl dt {
 font-size: calc(1.2rem + ((1vw - 0.48rem) * 0.6944));
 min-width:0;
 overflow:hidden;
 white-space:nowrap;
 text-overflow:ellipsis;
}

.post_list ol li a .content dl dd {
 font-size: calc(1.2rem + ((1vw - 0.48rem) * 0.6944));
}

/*---------------------------------------------
section(2801)
---------------------------------------------*/
.section {
 background-color:var(--white);
 margin:0;
 padding:15px;
 position:relative;
}

/*---------------------------------------------
section_title(2809)
---------------------------------------------*/ 
.section_title {
 padding:0;
}

.section_title h2 {
 padding:30px 0;
}

.section_title h2 span {
 font-size: calc(2.0rem + ((1vw - 0.48rem) * 0.6944));
 line-height:1.4;
 position:relative;
 z-index:2;
}

.section_title h2 span.en {
 font-size: calc(1.2rem + ((1vw - 0.48rem) * 0.6944));
}

.section_title h2 span.s-size {
 font-size: calc(1.8rem + ((1vw - 0.48rem) * 0.6944));
}

.section_title h2 span.xs-size {
 font-size: calc(1.6rem + ((1vw - 0.48rem) * 0.6944));
}

.section_title h3 {
 font-size: calc(1.8rem + ((1vw - 0.48rem) * 0.6944));
 line-height:1.4;
 padding:30px 0;
}

/*---------------------------------------------
banner-link-menu(3350)
---------------------------------------------*/
a.banner-link-menu {
 background-color:var(--gray_f7);
 border-radius:6px;
 flex-direction:column;
 justify-content:space-between;
 height:100%;
}

a.banner-link-menu:before {
 content:none;
}

a.banner-link-menu.end:before {
 content:none;
}

a.banner-link-menu figure {
 height:100px;
}

a.banner-link-menu figure img {
 height:100px; 
}

a.banner-link-menu dl {
 padding:10px;
 position:relative;
 row-gap:5px;
}

a.banner-link-menu dl.full {
 padding:10px;
}

a.banner-link-menu.rtl dl {
 flex-grow:1;
 justify-content:start;
 padding:10px;
 row-gap:5px;
}

a.banner-link-menu dl dt {
 color:var(--gray_33);
 font-size: calc(1.3rem + ((1vw - 0.48rem) * 0.6944));
 line-height: 1.4;
 margin:0;
 width:100%;
}

a.banner-link-menu dl dt br {
 display:none;
}

a.banner-link-menu dl dd {
 color:var(--gray_33);
 font-size: calc(1.0rem + ((1vw - 0.48rem) * 0.6944));
 margin:0;
 width:100%;
}

a.banner-link-menu h3 {
 color:var(--gray_33);
 font-size: calc(1.3rem + ((1vw - 0.48rem) * 0.6944));
 flex-grow:1;
 padding:10px;
 position:relative;
 width:100%;
}

a.banner-link-menu h3 br {
 display:none;
}

a.banner-link-menu h3.full {
 padding:10px;
}

a.banner-link-menu.rtl:before {
 content:none;
}

a.banner-link-menu.rtl h3 {
 padding:10px;
}

a.banner-link-menu.rtl dl {
 flex-grow:1;
 padding:10px;
}

/*---------------------------------------------
number_link(3696) 
---------------------------------------------*/
.number_link {
 row-gap:calc(5vw + 15px);
}

.number_link li dl dt {
 min-width:120px;
 max-width:200px;
 width:30vw;
}

.number_link li dl dt img {
 max-width:30vw;
 width:100%;
}

/*---------------------------------------------
archive_link(4386) 
---------------------------------------------*/
.archive_link {
 justify-content:center;
 position:relative;
 right:auto;
 padding:20px 15px 0;
 top:auto;
 order:10;
}

/*---------------------------------------------
contents_title(4387) 
---------------------------------------------*/
.contents_title {
 background-color:var(--white);
 border-radius:20px 20px 0 0;
 margin:0;
 padding:40px 15px 0;
}

.contents_title h2 {
 font-size: calc(2.4rem + ((1vw - 0.48rem) * 0.6944));
 padding:0;
}

.contents_title p {
 font-size: calc(1.2rem + ((1vw - 0.48rem) * 0.6944));
}

/*---------------------------------------------
charactor_menu
---------------------------------------------*/
.charactor_menu {
 padding:0 15px 15px; 
 row-gap:15px;
}

.charactor_menu li dl dd {
 font-size: calc(1.2rem + ((1vw - 0.48rem) * 0.6944));
 font-weight:600;
}

/*---------------------------------------------
bg_title(4308) 
---------------------------------------------*/
.bg_title:before {
	z-index: 1;
}

/*---------------------------------------------
dot_bounce(4500) 
---------------------------------------------*/
.dot_bounce {
 padding-top:30px;
 padding-bottom:30px;
}

/*---------------------------------------------
circle_menu(4624) 
---------------------------------------------*/
.circle_menu {
 padding:15px 0 20px;
 justify-content:start;
 row-gap:80px;
}

.circle_menu li {
 flex: 0 1 calc((100% - 4vw) / 2);
 height: 40vw;
 max-width: 50%;
 max-height: 200px;
 width:calc(100% / 2 - 3%);
}

.circle_menu li:before {
 max-width: 200px;
 max-height: 200px;
 top:-60px;
 width: 100%;
 height: 100%;
}

.circle_menu li:after {
 height:70px;
 top:-50px;
}

.circle_menu li:after {
 font-size: calc(3rem + ((1vw - 0.48rem) * 0.6944));
}

.circle_menu li dl {
 justify-content:center;
}

.circle_menu li dl dt {
 top:0;
 margin-top:0;
}

.circle_menu li dl dt img {
 max-height:110px;
}

.circle_menu li dl dd {
 font-size: calc(1.3rem + ((1vw - 0.48rem) * 0.6944));
 font-weight:600;
 padding:0 3vw;
 text-align:center;
}

.circle_menu li:nth-child(3) dl dt {
 margin-top:-20px;
}

.circle_menu li:nth-child(3) dl dt img {
	top:0;
}

/*---------------------------------------------
alert(4738) 
---------------------------------------------*/
.alert i {
 font-size: calc(1.3rem + ((1vw - 0.48rem) * 0.6944));
}

.alert span {
 font-size: calc(1.3rem + ((1vw - 0.48rem) * 0.6944));
}

/*---------------------------------------------
faq_list(5018) 
---------------------------------------------*/
.faq_list {
 padding:40px 15px 0;
 row-gap: 20px;
}

.faq_list .faq_list_cont > ol > li dl dd {
	padding:0 0 15px 60px;
}

.faq_head_area .category_select dl dt {
 font-size: calc(1.3rem + ((1vw - 0.48rem) * 0.6944));
}

.faq_head_area .category_select dl dd select {
 font-size: calc(1.3rem + ((1vw - 0.48rem) * 0.6944)); 
}

/*---------------------------------------------
bread_crumb_list
---------------------------------------------*/
.bread_crumb_list {
 padding:0;
 padding-left:0;
}

.bread_crumb_list .bread_crumb_list_cont {
 overflow: scroll;
}

.bread_crumb_list .bread_crumb_list_cont ol {
 padding:25px 15px;
 width:100%;
}

.bread_crumb_list .bread_crumb_list_cont ol li {
 white-space:nowrap;
}

.bread_crumb_list .bread_crumb_list_cont ol li > span {
 -webkit-box-orient: vertical;
 -webkit-line-clamp: 1;
 display: block;
 white-space: nowrap;
}


}