@charset "utf-8";

/* layout */
.header .head_menu .gnb {padding: 0 90px 0 33%;}
.header .head_menu h1 img {width: 140px;}
.header .head_menu h1 span {position: relative; font-size: 1.375rem;}
.header .head_menu h1 span::before {content: ""; background: url(../images/layout/common/ipp_logo.png) center no-repeat; width: 44px; height: 23px; background-size: contain; margin-right: 15px; display: inline-block; vertical-align: middle;}
.ft_sns {display: none!important;}
.main_slide .slide_txt strong {font-size: 2.75rem!important; font-weight: 700!important;}
.main_slide .slide_txt span {display: block; width: 100%; margin-top: 1rem; font-size: 1.25rem;}
.intro_txt h3 a {font-size: 1rem; color: #fff; text-decoration: underline; text-underline-position: under; margin-left: 2rem;}
.quick li.ico_08 a:before{background-image: url(../images/layout/main/quick_08.svg); background-size: 90px;}
.quick li.ico_09 a:before{background-image: url(../images/layout/main/quick_09.svg); background-size: 90px;}
.quick li.ico_10 a:before{background-image: url(../images/layout/main/quick_10.svg); background-size: 90px;}


.contents {font-size: 1.1875rem;}
.contents .tbl_wrap {margin: 1rem 0;}
.tbl th {background: #f2f2f2;}
.tbl_wrap .center-point {background: url(../images/contents/right_point.png) right center no-repeat, url(../images/contents/left_point.png) left center no-repeat,url(../images/contents/center_point.png) center no-repeat; background-size: initial; position: relative;}
.tbl_wrap .center-point::before {content: ""; background: #FFAA4C; width: 2px; height: 37px; position: absolute; left: 0; top: 50%; transform: translateY(-50%);}


.greeting.type_02 .greeting_heading .tit small {color: #989898;}


.tag {display: inline-block; padding: 0 .75rem; color: #fff; font-size: 1rem; font-weight: 500; border-radius: 20px;}
.tag.school { background: #1E3A8A;}
.tag.student {background: #E94E1B;}
.tag.company {background: #02553a;}


.red_box {padding: 1rem; background: #fff5f5; border: 1px solid #E54848; border-radius: 5px;}
.text_orange {color: #F35C2D;}
.text_red {color: #E54848;}


.org_wrap .box {width: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;}
.org_wrap .box span {display: flex; align-items: center; justify-content: center; text-align: center; padding: 1rem; width: 250px; background: #F35C2D; color: #fff; font-size: 1.0625rem; font-weight: 500; border-radius: 5px; position: relative;}
.org_wrap .box .desc {width: 250px; padding: 1rem; background: #f9f9f9; font-size: 1rem; margin-top: .25rem; border-radius: 5px;}
.org_wrap .box .desc .dot_list {text-align: left;}
.org01 > li {width: 100%; display: flex; flex-wrap: wrap; justify-content: center; gap: 6rem;}
.org01 > li .box {position: relative;}
.org02 {width: 100%; display: flex; align-items: flex-start; justify-content: center;}
.org02 > li {width: 100%; display: flex; flex-wrap: wrap; justify-content: center; gap: 6rem; position: relative;}
.org02 > li > .box span {background: #EF4036;}
.org02 > li > .left {position: absolute; left: 0; top: calc(30px + 3rem); align-items: flex-start;}
.org02 > li > .left.right {align-items: flex-end;}
.org02 > li > .left span {background: #2F4F6F;}
.org03 {width: 100%;}
.org03 > li {width: 100%; display: flex; justify-content: center; flex-wrap: wrap; gap: 6rem;}
.org03 > li > .box span {background: #F8951E;}
.org04 {width: 100%; display: flex; justify-content: center;}
.org04 > li {width: 100%;}
.org04 > li > .box span {background: #454545;}

.org01 > li > .box span::before,
.org02 > li > .box::before,
.org02 > li > .left span::before,
.org02 > li > .left span::after,
.org02 li:first-child .org03 > li > .box::before,
.org04 > li > .box::before {display: none;}
.org_wrap .box span::before {content: ""; display: block; width: 0; height: 3rem; border-left: 1px solid #ddd; position: absolute; left: 50%; top: -3rem; transform: translateX(-50%); z-index: -1;}
.org_wrap .box span::after {content: ""; display: block; width: 0; height: 3rem; border-left: 1px solid #ddd; position: absolute; left: 50%; bottom: -3rem; transform: translateX(-50%); z-index: -1;}
.org01 > li .box::before {content: ""; width: 50%; height: 0; border-bottom: 1px solid #ddd; position: absolute; left: 50%; bottom: -3rem; transform: translateX(-50%); z-index: -1;}
.org02 > li > .left::before {content: ""; display: block; width: 50%; height: 0; border-bottom: 1px solid #ddd; position: absolute; left: 0; top: 50%; transform: translateY(-50%);}
.org02 > li > .left.right::before {left: 50%;}


.map_addr {margin-bottom: 3rem; padding: 2rem; background: #f2f2f2; font-size: 1rem; color: #333;}
.map_addr b {display: block; font-size: 1.125rem; margin-bottom: .5rem;}
.map_info > ul > li {display: flex; flex-wrap: wrap; padding: 40px 0;}
.map_info > ul > li + li {padding-top: 0;}
.map_info > ul > li h4 {width: 250px; padding-left: 45px; color: #000; font-size: 20px; line-height: 1.4; position: relative;}
.map_txt {border-top: 2px solid #333; width: calc(100% - 250px);}
.map_txt li {border-bottom: 1px solid #ddd;padding: 30px 20px;}
.map_txt li:last-child {border-bottom: 0;}
.map_info > ul > li h4::before {content:''; width: 22px; height: 22px; position: absolute; left: 12px; top: 2px; background-size: cover;}
.map_info > ul > li h4::after {content:''; width: 35px; height: 35px; position: absolute; top: -5px; left: 5px; border-radius: 100%;z-index: -1}
.sub::before {background: url(../images/contents/subway-line.svg) center no-repeat;}
.bus::before {background: url(../images/contents/bus-line.svg) center no-repeat;}
.car::before {background: url(../images/contents/roadster-line.svg) center no-repeat;}
.sub::after {background-color: #f2be00;}
.bus::after {background-color: #f29300;}
.car::after {background-color: #f15922;}


.process {padding: 3rem 4rem; display: flex; border-radius: 10px; background: #fff9f5; margin: 2rem 0;}
.process li {width: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; text-align: center;}
.process .arrow .txt {font-size: 19px; font-weight: 500;}
.process .cnt {justify-content: flex-start;}
.process .cnt .txt {width: 100%; padding: .5rem 0; background: #fff; border: 1px dashed #555; border-radius: 5px; font-size: 17px; font-weight: 500;}


.benefit {display: flex; align-items: stretch; gap: 10px 20px;}
.benefit > li {flex: 1 1 0; display: flex; align-items: center; align-content: center; gap: 10px 20px; padding: 2.5rem 1rem; border-radius: 5px;}
.benefit > li:nth-child(1) {border: 1px solid #ffd0c1; background: #fff9f5;}
.benefit > li:nth-child(2) {border: 1px solid #cde1db; background: #EAF6F1;}
.benefit > li h5 {width: 120px; height: 120px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; margin-bottom: 0;}
.benefit > li h5 .tag {font-size: 1.0625rem;}
.benefit > li h5 img {width: 80px;}
.benefit .dot_list li {font-size: 17px; color: #333;}
.benefit .dot_list li + li {margin-top: .5rem;}

.point {display: flex; gap: 10px 20px;}
.point > li {flex: 1 1 0; display: flex; flex-wrap: wrap; justify-content: center; align-content: flex-start; gap: 20px; padding: 1rem; background: #F8FAFC; border: 1px solid #D6DEE8; border-radius: 5px;}
.point > li h5 {width: 120px; height: 120px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; margin-bottom: 0; font-size: 18px; color: #2F4F6F;}
.point > li h5 span {font-size: 1.1875rem;}
.point > li h5 img {width: 90px;}
.point .dot_list {width: 100%;}
.point .dot_list li {font-size: 17px;}
.point .dot_list li + li {margin-top: .5rem;}
.point .dot_list li small {display: block; line-height: 1.25;}
.point .dot_list li> .tag {border-radius: 5px; font-size: .9375rem; font-weight: 400; padding: 0 10px;}
.point .dot_list li > .tag.off {background: #333;}
.point .dot_list li > .tag.ojt {background: #2F4F6F;}


.apply {display: flex; gap: 10px; margin-top: 1rem;}
.apply ul {width: 100%; display: flex; flex-direction: column; gap: 10px;}
.apply ul li {display: flex; gap: 15px; padding: 1rem; border-radius: 5px; font-weight: 500;}
.apply ul:nth-child(1) li:nth-child(odd),
.apply ul:nth-child(2) li:nth-child(even) {background: #fff2ed;}
.apply ul:nth-child(1) li:nth-child(even),
.apply ul:nth-child(2) li:nth-child(odd) {background: #EDF5FF;}
.apply ul li .num {width: 35px; height: 35px; display: flex; align-items: center; justify-content: center; background: #fff; border-radius: 50%; font-size: 1rem; font-weight: 600; }
.apply ul:nth-child(1) li:nth-child(odd) .num,
.apply ul:nth-child(2) li:nth-child(even) .num {border: 1px dashed #6B482E; color: #6B482E;}
.apply ul:nth-child(1) li:nth-child(even) .num,
.apply ul:nth-child(2) li:nth-child(odd) .num {border: 1px dashed #2F4F6F; color: #2F4F6F;}


.flow {display: flex; flex-wrap: wrap; gap: .5rem;}
.flow + .flow {margin-top: 3rem;}
.flow:nth-of-type(1) h6 {background: #2F4F6F;}
.flow:nth-of-type(1) ul {background: #EAF2F8;}
.flow:nth-of-type(1) ul li .tit {border: 1px dashed #2F4F6F; color: #2F4F6F;}
.flow:nth-of-type(2) h6 {background: #02553a;}
.flow:nth-of-type(2) ul {background: #EAF6F1;}
.flow:nth-of-type(2) ul li .tit {border: 1px dashed #02553a; color: #02553a;}
.flow:nth-of-type(3) h6 {background: #6B482E;}
.flow:nth-of-type(3) ul {background: #fff9f5;}
.flow:nth-of-type(3) ul li .tit {border: 1px dashed #6B482E; color: #6B482E;}
.flow h6 {width: 100%; padding: .75rem 1rem; text-align: center; font-size: 20px; color: #fff; border-radius: 5px;}
.flow ul {width: 100%; display: flex; padding: 1rem 1rem 2rem; gap: 30px;}
.flow ul li {width: 100%; position: relative; opacity: 0; transform: translateY(12px); animation: flowItem 1s ease-out forwards;}
.flow ul li:nth-child(1) {animation-delay: .1s;}
.flow ul li:nth-child(2) {animation-delay: .2s;}
.flow ul li:nth-child(3) {animation-delay: .3s;}
.flow ul li:nth-child(4) {animation-delay: .4s;}
.flow ul li:nth-child(5) {animation-delay: .5s;}
.flow ul li:nth-child(6) {animation-delay: .6s;}
.flow ul li:nth-child(7) {animation-delay: .7s;}
.flow ul li:nth-child(8) {animation-delay: .8s;}
.flow ul li + li::before {content: "▶"; font-size: 10px; color: #555; position: absolute; left: -20px; top: 25px;}
.flow ul li .tit {min-height: 67px; display: flex; align-items: center; justify-content: center; text-align: center; padding: .75rem 0; background: #fff; border-radius: 5px; font-size: 18px; font-weight: 500; line-height: 1.125;}
.flow ul li .txt {font-size: 16px; text-align: center; margin-top: 10px; color: #333; line-height: 1.25;}
@keyframes flowItem {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}


@media (max-width: 1200px) {
    /* layout */
    .main_slide.slick-slider, .main_slide .slick-list, .main_slide .slick-track {height: 50vh;}
    .header .gnb_util .full_menu .logo span {position: relative; font-size: 1.375rem;}
    .header .gnb_util .full_menu .logo span::before {content: ""; background: url(../images/layout/common/ipp_logo.png) center no-repeat; width: 44px; height: 23px; background-size: contain; margin-right: 15px; display: inline-block; vertical-align: middle;}


    .org03 > li .box::before {display: none;}
    .org_wrap .box span {width: 200px; padding: .75rem;}
    .org_wrap .box .desc {width: 200px;}
    .org02 > li > .left span {width: 150px;}
    .org04 {flex-wrap: wrap; gap: 2rem;}
}


@media (max-width: 768px) {
    .map_info > ul > li h4 {width: 100%; margin-bottom: 20px;}
    .map_txt {width: 100%;}


    .apply {flex-direction: column;}


    .process {padding: 2rem; flex-wrap: wrap; gap: 3rem;}
    .process .arrow .icon img {transform: rotate(90deg); margin-top: 1rem;}


    .benefit,
    .point {flex-wrap: wrap;}
    .benefit > li,
    .point > li {width: 100%; flex: inherit; flex-wrap: wrap; justify-content: center;}



    .flow ul {flex-wrap: wrap;}
    .flow ul li + li::before {left: 49.5%; top: -24px; transform: rotate(90deg);}
    .flow ul li .tit {min-height: inherit;}
}


@media (max-width: 500px) {
    /* layout */
    .header .head_menu h1 img,
    .header .gnb_util .full_menu .logo img {width: 120px;}
    .header .head_menu h1 span,
    .header .gnb_util .full_menu .logo span {padding-left: 5px; font-size: 1.25rem;}
    .header .head_menu h1 span::before,
    .header .gnb_util .full_menu .logo span::before {width: 34px; margin-right: 5px;}
    .main_slide .slide_txt strong {font-size: 2.5rem!important;}


    .org02 {flex-wrap: wrap; gap: 6rem;}
    .org_wrap .box span,
    .org_wrap .box .desc {width: 90%;}
    .org02 > li > .left span {width: 150px;}
    .org01 > li > .box::before {display: none;}
    .org02 > li > .box span::before {width: 70%; border: 1px solid #ddd; border-bottom: 0;}
}