.sub-visual {position: relative; min-height: 100vh; background-position: center; background-repeat: no-repeat; background-size: cover;}
.sub-visual:before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100vh; background-color: rgba(0, 0, 0, 0.2); z-index: 2; pointer-events: none; }

.sub-visual .sv-text {position: sticky; top: 47.5vh; padding-bottom: 10em; text-align: center; color: white; z-index: 3;}
.sub-visual .sv-text h2 {font-weight: 800; font-size: 2.71em; text-shadow: 0 0 8px #000; display: flex; justify-content: center; align-items: center; gap: 0 .54em;}
.sub-visual .sv-text h2 .bar {display: block; width: 1px; height: 1.05em; background-color: rgba(255, 255, 255, .85);}
.sub-visual .sv-text p {font-weight: 500; font-size: 1.25em; margin-top: .67em; text-shadow: 0 0 8px #000;}

.sub-visual .cont-move {width: 100%; height: auto; text-align: center; position: absolute; bottom: 2em; left: 0; z-index: 3;}
.sub-visual .cont-move i {display: inline-block; width: 1.1em; height: 1.63em; background: url("../image/icon/mouse.png") center / cover no-repeat;}

@media screen and (max-width: 1280px) {
	.sub-visual {min-height: 480px;}
	.sub-visual:before {height: 480px;}
	.sub-visual .cont-move {display: none;}
}
@media screen and (max-width: 960px) {
    .sub-visual .sv-text h2 {font-size: 2.5em; flex-direction: column;}
	.sub-visual .sv-text h2 .cate {font-size: 2.5rem;}
    .sub-visual .sv-text h2 .bar {transform: rotate(-90deg);}
}
/* .sub-visual {width: 100%; height: 100vh; background-position: center; background-repeat: no-repeat; background-size: cover; position: fixed; top: 0; left: 0; z-index: 0; overflow: hidden; animation: zoomOut 3s ease-out forwards;}
.sub-visual:after {content: ''; width: inherit; height: inherit; background-color: #000; position: absolute; top: 0; left: 0; animation: fadeOut .5s ease-out forwards;}
.sub-visual .sv-text {width: 100%; height: inherit; padding-top: 100px; position: relative; display: flex; align-items: center; justify-content: center; flex-direction: column; color: white;}
.sub-visual .sv-text h2 {font-weight: 800; font-size: 2.71em; text-shadow: 0 0 8px #000; display: flex; align-items: center; gap: 0 .54em;}
.sub-visual .sv-text h2 .bar {display: block; width: 1px; height: 1.05em; background-color: rgba(255, 255, 255, .85);}
.sub-visual .sv-text p {font-weight: 500; font-size: 1.25em; margin-top: .67em; text-shadow: 0 0 8px #000;}

.sub-visual .cont-move {width: 100%; height: auto; text-align: center; position: absolute; bottom: 2em; left: 0;}
.sub-visual .cont-move i {display: inline-block; width: 1.1em; height: 1.63em; background: url("../image/icon/mouse.png") center / cover no-repeat;}

.sub-visual.scrolled {position: absolute; top: auto; bottom: 0;}

@media screen and (max-width: 1280px) {
    .sub-visual {height: 480px;}
    .sub-visual .sv-text {padding-top: 68px;}
    .sub-visual .cont-move {display: none;}
}
 */

.cont-head {font-size: 1.92em; color: #00445a;}
.cont-head p {color: #0085b0;}

/* introduce */
.introduce {/*font-size: 1.17em;*/ line-height: 1.6;}
.introduce ul {margin: 60px 0; font-weight: 700; font-size: 1.14em; line-height: 1.4; display: flex; align-items: center; text-align: center; justify-content: center; gap: 0 1.25em;}
.introduce ul li {width: 8.75em; height: 8.75em; border-radius: 100%; display: grid; place-content: center; background-color: #0289b5; color: white;}
.introduce ul li span::before {content: ''; display: block; width: 2em; height: 2em; margin: 0 auto 10px; background-position: center; background-repeat: no-repeat; background-size: contain;}
.introduce ul li:nth-child(1) span::before {background-image: url("../image/icon/building.png")}
.introduce ul li:nth-child(2) span::before {background-image: url("../image/icon/gear.png")}
.introduce ul li:nth-child(3) span::before {background-image: url("../image/icon/gift.png")}

@media screen and (max-width: 768px) {
	.introduce ul {flex-direction: column; gap: 1em 0;}
    .introduce ul li {width: 100%; height: auto; padding: 1em 0; border-radius: 1.25em;}
}

/* history */
.history .timeline {position: relative; /*font-size: 1.42em;*/font-size: 1.25em;}
.history .timeline::before {content: ''; width: 2px; background: transparent; border-left: 2px dotted #e0e0e0; position: absolute; top: .21em; bottom: 0; left: 0;}
.history .timeline li {display: flex; padding: 0 0 1.47em 1.06em; position: relative;}
.history .timeline li::before {content: ''; width: .35em; height: .35em; background: white; border: .21em solid #27aad4; border-radius: 50%; position: absolute; top: .21em; left: -.35em; z-index: 1;}
.history .timeline span {display: block; min-width: 3.53em; margin-right: .88em; color: #0289b5; font-weight: 600;}
.history .timeline-content {flex: 1; display: grid; row-gap: .47em;}
.history .timeline-content p {color: #333; font-weight: 500;}
.history .timeline li:last-child {padding-bottom: 0;}

@media screen and (max-width: 768px) {
    .history .timeline li {flex-direction: column; gap: .47em 0;}
}

/* location */
.location .branch-office {margin-top: 2.33em;}
.location div[class^="info-"] {display: flex; align-items: center; flex-wrap: wrap; gap: .83em;}
.location div[class^="info-"]::before {content: ''; display: block; width: 4.58em; height: 4.58em; border-radius: 100%; background-position: center; background-size: 2em; background-repeat: no-repeat; background-color: #0289b5;}
.location h4 {width: 100%; font-weight: 700; font-size: 1.25em; margin-bottom: .33em;}
.location li, .location address {font-weight: 500;}
.location .row {padding-top: .67em;}
.location .info-contact::before {background-image: url("../image/icon/phone.png");}
.location .info-addr::before {background-image: url("../image/icon/map_pin.png");}
.location .info-contact ul {display: flex; flex-wrap: wrap; gap: 4px 1.33em;}
.location .info-contact ul li:nth-child(3) {width: 100%;}
.location .map-wrap {width: 100%; margin-top: .83em; border: 1px solid #d7d7d7; border-radius: 2px; overflow: hidden; line-height: 0;}
.location .map-wrap img {width: 100%; max-width: none;}
.location .head-office .info-addr {margin-top: 1.67em;}

/* kakaomap open API */
.location .root_daum_roughmap {width: 100% !important; height: 51rem !important; margin-top: .83em; border-bottom: 1px solid #d7d7d7; border-radius: 2px;}
.location .root_daum_roughmap .wrap_map {height: inherit !important;}

@media screen and (max-width: 768px) {
    .location .info-contact ul {flex-direction: column;}
	.location .root_daum_roughmap {height: 40rem !important;}
}
@media screen and (max-width: 568px) {
    .location div[class^="info-"] {flex-direction: column; align-items: flex-start; gap: .2em;}
    .location div[class^="info-"]::before {width: 3.2em; height: 3.2em; background-size: 1.6em;}
	.location .root_daum_roughmap {height: 32rem !important;}
}

/* energy */
.process-steps {margin-bottom: 3.33em;}
.process-steps ol {display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25em; counter-reset: step-counter;}
.process-steps ol li {text-align: center; position: relative; counter-increment: step-counter;}
.process-steps li:not(:last-child)::after {content: ''; width: 5.08em; height: .54em; background: url("../image/contents/step_arrow.png") center right no-repeat; position: absolute; top: 5.96em; right: -2.92em; z-index: -1;}
.process-steps .step-circle {width: 11.92em; height: 11.92em; padding: 0 1.67em; margin: 0 auto 1.25em; border-radius: 50%; background: #0085b0; color: white; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.process-steps .step-circle::before {content: '0' counter(step-counter); font-weight: 500; font-size: 1em; margin-bottom: .83em; color: #78dcff;}
.process-steps .step-circle h3 {height: 2.22em; font-weight: 700; font-size: 1.5em; line-height: 1.2;}
.process-steps p {font-weight: 500; font-size: 1.10em; line-height: 1.4; color: #4c4c4c; text-align: left; padding: 0 .36em;}

.energy-banner {position: relative; width: 100%; height: 32.08em; border-radius: 10px; overflow: hidden;}
.energy-banner img {width: 100%; height: 100%; object-fit: cover;}
.energy-banner .banner-text {width: 12.67em; height: inherit; display: flex; justify-content: center; align-items: center; position: absolute; top: 0; right: 0; background: rgba(0, 56, 72, .32); backdrop-filter: blur(1px); color: white; z-index: 1; font-weight: 500; font-size: 1.88em; font-weight: 500; line-height: 1.6;}

.cta-wrap.energy {margin-top: 5em;}

@media screen and (max-width: 1280px) {
    .process-steps .step-circle {width: 11em; height: 11em;}
    .process-steps li:not(:last-child)::after {top: 5.5em; right: -1.6em;}
}
@media screen and (max-width: 1024px) {
    .process-steps ol {grid-template-columns: repeat(2, 1fr);}
    .process-steps li:not(:last-child)::after {display: none;}
    .process-steps .step-circle {width: 100%; height: auto; padding: .75em 0; border-radius: 50px; flex-direction: row; gap: .5em;}
    .process-steps .step-circle::before {margin-bottom: 0; font-size: 1.5em;}
    .process-steps .step-circle h3 {height: auto;}
}
@media screen and (max-width: 768px) {
    .process-steps ol {grid-template-columns: 1fr;}
    .energy-banner {height: auto; border-radius: 10px; background-color: #277221;}
    .energy-banner picture {line-height: 1;}
    .energy-banner .banner-text {position: static; background: transparent; padding: 1em 0 1.2em; font-size: 1.5em; line-height: 1.4em;}

    .energy-cta {margin-top: 2.5em;}
}

/* process */
.process-wrap {width: 100%; height: auto; padding: 2em 0;}
.process-wrap > ul {display: grid; grid-template-columns: repeat(2, 1fr); gap: 1em;}
.process-wrap > ul > li {background: #f1f9fc; padding: 2em 1.75em; border-radius: 10px; display: flex; gap: 1em;}
.process-wrap > ul > li span.step {flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 2.67em; height: 2.67em; border-radius: 100%; background-color: #0085b0; color: #fff; font-weight: 500; font-size: 1.2em;}
.process-wrap > ul > li div.box {width: calc(100% - 3.2em); padding-top: 10px;}
.process-wrap > ul > li div.box .title {color: #0085b0; font-weight: 600; font-size: 1.2em; margin-bottom: .83em;}
.process-wrap > ul > li div.box .desc {color: #4c4c4c; font-weight: 500; line-height: 1.5;}

@media screen and (max-width: 1024px) {
	.process-wrap > ul > li {flex-direction: column; gap: 10px;}
	.process-wrap > ul > li div.box {width: 100%;}
}
@media screen and (max-width: 768px) {
	.process-wrap > ul {grid-template-columns: 1fr;}
}