/* ============================================
   DIMOA Homepage - Enfold Theme 기반 재현
   원본: dimoa.co.kr (WordPress Enfold Child)
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Lato:wght@100;200;300;400;700;900&family=Noto+Sans+KR:wght@300;400;500;700&display=swap');

/* --- Base --- */
body {
    font-family: 'Noto Sans KR', 'Lato', 'open sans', 'HelveticaNeue', Helvetica, Arial, sans-serif;
    font-size: 16px;
    background-color: #FFFFFF;
    word-break: keep-all;
    color: #333;
    margin: 0;
    padding: 0;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}
div, p, input, select, span, textarea, a, th, td, strong, small, li {
    font-family: 'Noto Sans KR', 'Lato', 'open sans', 'HelveticaNeue', Helvetica, Arial, sans-serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
a { color: #333; text-decoration: none; transition: color 0.25s ease-in-out; }
a:hover { color: #009cdf; text-decoration: none; }
ul { list-style: none; margin: 0; padding: 0; }
img { max-width: 100%; height: auto; }

#main { background-color: #ffffff; }

.container {
    max-width: 1210px;
    margin: 0 auto;
    padding: 0 15px;
}


/* ========================================
   HEADER - 검은 배경, 글래시 효과
   ======================================== */
#header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 1000;
    height: 75px;
}
#header .header_bg {
    position: absolute;
    inset: 0;
    background-color: #000000;
    transition: all 0.75s ease-in-out;
}
/* 메인페이지: 투명 헤더 */
#header.av_header_transparency .header_bg {
    opacity: 0;
}
/* 서브페이지: 불투명 헤더 */
#header:not(.av_header_transparency) .header_bg {
    opacity: 1;
}
/* 스크롤 시 불투명 */
#header.header-scrolled .header_bg {
    opacity: 1 !important;
}
#header.av_header_transparency {
    border-bottom: 1px solid rgba(255,255,255,0.15);
}

#header_main {
    position: relative;
    z-index: 2;
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 75px;
}

/* Logo */
#header .logo {
    display: flex;
    align-items: center;
    height: 75px;
}
#header .logo img {
    margin: 22px 0;
    height: 30px;
    width: auto;
}

/* GNB */
.main_menu { margin-left: auto; }

.nav-menu {
    display: flex;
    height: 75px;
    align-items: center;
}

.nav-menu > .nav-item {
    position: relative;
    height: 75px;
    display: flex;
    align-items: center;
}

.nav-menu > .nav-item > .nav-link {
    display: flex;
    align-items: center;
    height: 75px;
    padding: 0 30px;
    font-size: 18px;
    font-weight: 400;
    color: #FFFFFF;
    transition: color 0.25s ease-in-out;
}
.nav-menu > .nav-item > .nav-link:hover span,
.nav-menu > .nav-item:hover > .nav-link span {
    color: #009cdf;
}

/* Sub Menu (hidden by default, shown via burger on original) */
.nav-menu .sub-menu {
    display: none !important;
}

/* Hamburger */
.av-hamburger {
    display: block;
    background: none;
    border: none;
    cursor: pointer;
    padding: 15px;
    position: relative;
    width: 50px;
    height: 50px;
}
.av-hamburger-inner,
.av-hamburger-inner::before,
.av-hamburger-inner::after {
    display: block;
    width: 22px;
    height: 2px;
    background-color: #FFFFFF;
    position: absolute;
    transition: all 0.3s;
}
.av-hamburger-inner { top: 50%; left: 50%; transform: translate(-50%, -50%); }
.av-hamburger-inner::before { content: ''; top: -7px; left: 0; }
.av-hamburger-inner::after { content: ''; top: 7px; left: 0; }

/* Burger Overlay (Side Menu) */
.burger-overlay {
    position: fixed;
    top: 0; right: -200px;
    width: 200px;
    height: 100%;
    background: #111;
    z-index: 1001;
    transition: right 0.3s ease;
    overflow-y: auto;
}
.burger-overlay.active { right: 0; }

.burger-scroll { padding-top: 80px; }

.burger-menu > li > a {
    display: block;
    padding: 12px 20px;
    font-size: 14px;
    color: #ffffff;
    border-bottom: 1px solid #171717;
}
.burger-menu > li > ul { padding: 0; display: none; }
.burger-menu > li > ul > li > a {
    display: block;
    padding: 8px 20px 8px 30px;
    font-size: 12px;
    color: #888888;
    border-bottom: 1px solid #171717;
}
.burger-menu > li > ul > li > a:hover,
.burger-menu > li > a:hover {
    background-color: #272727;
}


/* ========================================
   FLOATING MENU (홈 전용, 좌측)
   ======================================== */
.floating-menu {
    display: none;
    position: fixed;
    left: 0;
    top: 50%;
    z-index: 100;
    width: 150px;
    margin-top: -110px;
    background-color: rgba(0, 0, 0, 0.75);
}
.home .floating-menu { display: block; }

.floating-menu ul { margin-top: 20px; }
.floating-menu li { margin: 0; padding: 5px 0; }
.floating-menu li:before {
    content: "-";
    display: inline-block;
    margin-right: 5px;
    color: #cccccc;
}
.floating-menu a {
    display: inline-block;
    width: 123px;
    padding: 0 10px 0 15px;
    font-size: 14px;
    color: #cccccc;
    text-align: left;
}
.floating-menu li.on a {
    background-color: #00A5EB;
    color: #fff;
    border-radius: 30px;
}


/* ========================================
   QUICK MENU (우측)
   ======================================== */
.quick-menu {
    position: fixed;
    right: 0;
    top: 50%;
    z-index: 500;
    width: 90px;
    margin-top: -100px;
    opacity: 0.75;
    line-height: 0;
}
.quick-menu * { line-height: 0; }
.quick-menu br { display: none; }
.quick-menu ul { margin: 0; padding: 0; }
.quick-menu ul li { margin: 0; padding: 0; }
.quick-menu ul li a { display: block; margin: 0; padding: 0; }
.quick-menu ul li a img,
.quick-menu .quick_menu_top img,
.quick-menu .quick_menu_foot img { margin: 0; display: block; }
.home .quick-menu { display: none; }


/* ========================================
   MAIN SLIDER
   ======================================== */
.main_visual_slider {
    height: 100vh;
    min-height: 500px;
    background-color: #222222;
}

.main_visual_slider .carousel,
.main_visual_slider .carousel-inner,
.main_visual_slider .carousel-item {
    height: 100%;
}

.hero-slide {
    height: 100%;
    background-size: cover;
    background-position: center center;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}
.hero-slide::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.4);
}

.slideshow_caption {
    position: relative;
    z-index: 2;
    text-align: center;
    color: #FFFFFF;
    animation: caption-bottom 0.75s 1 ease-out;
}

@keyframes caption-bottom {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}

.avia-caption-content h1 {
    font-family: 'Lato', 'Noto Sans KR', 'open sans', sans-serif;
    font-size: 80px;
    color: #FFFFFF;
    font-weight: 300;
    letter-spacing: -0.025em;
    margin-bottom: 25px;
    line-height: 1.1;
}
.avia-caption-content p {
    font-size: 24px;
    color: #FFFFFF;
    opacity: 0.85;
}

.main_visual_slider .carousel-control-prev,
.main_visual_slider .carousel-control-next {
    width: 60px;
    opacity: 0.5;
    z-index: 3;
}
.main_visual_slider .carousel-control-prev:hover,
.main_visual_slider .carousel-control-next:hover {
    opacity: 0.9;
}


/* ========================================
   NEWS SECTION
   ======================================== */
#main_news_section {
    padding: 80px 0;
    position: relative;
}

.main_tit {
    margin-bottom: 20px;
}
.main_tit h2 {
    font-family: 'Lato', 'Noto Sans KR', 'open sans', sans-serif;
    font-size: 50px;
    color: #222222;
    font-weight: 300;
    text-align: center;
}

/* Slick Slider for News */
.news-slider-wrap {
    padding-bottom: 70px;
}

.news-slider .slide-entry {
    padding: 0 15px;
}
.news-slider .slide-entry a {
    display: block;
    color: #333;
}
.news-slider .slide-entry a:hover { color: #009cdf; }

.slide-image {
    margin-bottom: 15px;
    overflow: hidden;
    border-radius: 0;
}
.slide-image img {
    width: 100%;
    height: auto;
    border-radius: 0;
    transition: transform 0.3s;
}
.slide-entry a:hover .slide-image img {
    transform: scale(1.03);
}

.slide-image-placeholder {
    width: 100%;
    padding-top: 125%; /* 4:5 ratio */
    background: linear-gradient(135deg, #e0f0f8, #cce8f4);
    position: relative;
}
.slide-image-placeholder span {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    font-size: 22px;
    font-weight: 700;
    color: #0b9ed6;
    opacity: 0.35;
}

.slide-content {}
.slide-entry-title {
    font-size: 16px;
    font-weight: 400;
    margin-bottom: 5px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.slide-meta {
    font-size: 12px;
    color: #999;
}

/* News Slick Arrows */
.news-slider-wrap .slick-prev,
.news-slider-wrap .slick-next {
    width: 40px;
    height: 40px;
    opacity: 0.45;
    z-index: 10;
    bottom: -60px;
    top: auto;
}
.news-slider-wrap .slick-prev { left: calc(50% - 90px); }
.news-slider-wrap .slick-next { right: calc(50% - 90px); }
.news-slider-wrap .slick-prev:before,
.news-slider-wrap .slick-next:before { display: none; }
.news-slider-wrap .slick-prev img,
.news-slider-wrap .slick-next img { width: 100%; }
.news-slider-wrap .slick-dots { display: none !important; }

.btn_news_goto {
    text-align: right;
    margin-top: -40px;
    padding-right: 30px;
}
.news-goto-link {
    display: inline-block;
    padding: 10px 25px;
    font-size: 14px;
    color: #222;
    border: 1px solid #222;
    transition: all 0.25s ease-in-out;
    letter-spacing: -0.02em;
}
.news-goto-link:hover {
    color: #fff;
    background: #0b9ed6;
    border-color: #0b9ed6;
}
.news-goto-link i { margin-left: 8px; font-size: 12px; }


/* ========================================
   WHO WE ARE SECTION
   ======================================== */
#main_who_we_are_section {
    padding: 40px 0;
    background-color: #545861;
}

.who-columns {
    display: flex;
}

.who-col {
    flex: 1;
    padding: 70px 20px;
    text-align: center;
    text-decoration: none;
    color: #FFFFFF;
    position: relative;
    overflow: hidden;
    transition: color 0.25s;
}
.who-col::after {
    content: '';
    position: absolute;
    inset: 0;
    background-color: #f5821e;
    opacity: 0;
    z-index: 0;
    transition: opacity 0.25s ease-in-out;
}
.who-col:hover::after { opacity: 1; }
.who-col:hover { color: #FFFFFF; }

.who-col-inner {
    position: relative;
    z-index: 1;
}

.who-icon {
    min-height: 140px;
    margin-bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.who-icon img { width: auto; max-height: 100px; }
.who-icon i { font-size: 60px; color: #FFFFFF; }

.who-col h3 {
    font-family: 'Lato', 'Noto Sans KR', 'open sans', sans-serif;
    font-size: 28px;
    font-weight: 300;
    color: #FFFFFF;
    margin-bottom: 0;
}
.who-divider {
    width: 20px;
    height: 2px;
    background-color: rgba(255, 255, 255, 0.75);
    margin: 25px auto;
}
.who-col .desc {
    font-size: 14px;
    color: #FFFFFF;
    line-height: 1.6em;
}


/* ========================================
   OUR BUSINESS SECTION
   ======================================== */
#main_our_business_section {
    padding: 80px 0;
}

/* OUR BUSINESS - 이미지 위 텍스트 오버레이 (원본 Smart Slider 스타일) */
.ob-slide {
    height: 550px;
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    align-items: flex-end;
    border: 3px solid #3e3e3e;
}
.ob-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.1) 60%, transparent 100%);
}
.ob-content {
    position: relative;
    z-index: 2;
    padding: 50px;
    color: #FFFFFF;
    max-width: 500px;
}
.ob-slogan {
    display: block;
    font-size: 14px;
    font-weight: 300;
    letter-spacing: 1px;
    opacity: 0.8;
    margin-bottom: 8px;
}
.ob-name {
    font-family: 'Lato', 'Noto Sans KR', sans-serif;
    font-size: 48px;
    font-weight: 400;
    color: #FFFFFF;
    margin-bottom: 15px;
    letter-spacing: -0.02em;
}
.ob-desc {
    font-size: 15px;
    font-weight: 300;
    line-height: 1.8;
    opacity: 0.9;
    margin-bottom: 20px;
}
.ob-link {
    display: inline-block;
    font-size: 13px;
    color: #FFFFFF;
    border: 1px solid rgba(255,255,255,0.5);
    padding: 8px 20px;
    transition: all 0.3s;
}
.ob-link:hover { background: #FFFFFF; color: #222; }

.business-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 25px;
    gap: 15px;
}

.business-arrow {
    width: 40px;
    height: 40px;
    border: 1px solid #ccc;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0.45;
    transition: opacity 0.3s;
    font-size: 18px;
    color: #999;
    line-height: 1;
    padding: 0;
}
.business-arrow:hover { opacity: 1; }
.business-arrow img { width: 16px; height: 16px; object-fit: contain; }

.business-dots {
    display: flex;
    gap: 6px;
    align-items: center;
}
.business-dots button {
    width: 8px; height: 8px;
    border-radius: 50%;
    border: none;
    background: #ddd;
    padding: 0;
    cursor: pointer;
}
.business-dots button.active { background: #00AEEF; }


/* ========================================
   SUB PAGE - Banner & Nav (원본의 sub_visual, page_submenu)
   ======================================== */
.sub-banner {
    height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #FFFFFF;
    background: linear-gradient(135deg, #1a1a2e, #16213e);
    position: relative;
}

.sub-banner h2 {
    font-family: 'Lato', 'Noto Sans KR', 'open sans', sans-serif;
    font-size: 36px;
    font-weight: 600;
    color: #FFFFFF;
    letter-spacing: 2rem;
    text-transform: uppercase;
    margin-bottom: 0;
}
.sub-banner p {
    font-size: 14px;
    opacity: 0.6;
    margin-top: 10px;
}

/* Page Submenu */
.sub-nav {
    background: var(--white, #fff);
    border-bottom: 1px solid #e1e1e1;
    position: sticky;
    top: 75px;
    z-index: 99;
}
.sub-nav ul {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}
.sub-nav li a {
    display: block;
    padding: 15px 30px;
    font-size: 16px;
    color: #666;
    border-bottom: 2px solid transparent;
    position: relative;
    border-left: 0;
    transition: all 0.3s;
}
.sub-nav li a::after {
    content: '';
    display: block;
    width: calc(100% - 60px);
    height: 2px;
    background-color: #056b9c;
    position: absolute;
    bottom: -1px;
    left: 30px;
    transform: scaleX(0);
    transition: transform 0.3s;
}
.sub-nav li a:hover::after,
.sub-nav li.active a::after {
    transform: scaleX(1);
}
.sub-nav li a:hover,
.sub-nav li.active a {
    color: #545861;
}


/* Sub content */
.sub-content { padding: 80px 0; }

.sub-section-title {
    font-family: 'Lato', 'Noto Sans KR', 'open sans', sans-serif;
    font-size: 54px;
    font-weight: 300;
    color: #222222;
    display: inline-block;
    text-align: center;
}

.sub-section-desc {
    font-size: 18px;
    color: #666666;
    text-align: center;
    word-break: keep-all;
    margin-top: 10px;
}


/* ========================================
   COMPANY - Overview (원본의 introduction_wrap)
   ======================================== */
.overview-title {
    font-family: 'Lato', 'Noto Sans KR', 'open sans', sans-serif;
    font-size: 54px;
    font-weight: 300;
    color: #0b9ed6;
    margin-bottom: 20px;
    word-break: keep-all;
}

.overview-desc {
    font-size: 18px;
    line-height: 1.8;
    color: #666666;
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
    word-break: keep-all;
}

/* Table Style Vertical */
.company-info-table table { border-top: 2px solid #222222; border-bottom: 2px solid #222222; }
.company-info-table th {
    background-color: #f8f8f8;
    color: #333333;
    width: 120px;
    font-weight: 500;
    font-size: 14px;
    vertical-align: middle;
    text-align: center;
}
.company-info-table td {
    background-color: #FFFFFF;
    color: #777777;
    font-size: 14px;
    vertical-align: middle;
}

/* Vision / Value Cards */
.vision-card {
    text-align: center;
    padding: 40px 25px;
    background: #f5f5f5;
    height: 100%;
}
.vision-icon { font-size: 36px; color: #0b9ed6; margin-bottom: 15px; }
.vision-card h4 {
    font-family: 'Lato', 'Noto Sans KR', sans-serif;
    font-size: 20px;
    font-weight: 400;
    margin-bottom: 12px;
}

.value-card {
    padding: 30px;
    border: 1px solid #e1e1e1;
    height: 100%;
    transition: border-color 0.3s;
}
.value-card:hover { border-color: #0b9ed6; }
.value-number {
    font-family: 'Lato', sans-serif;
    font-size: 32px;
    font-weight: 200;
    color: #0b9ed6;
    margin-bottom: 8px;
}
.value-card h5 { font-size: 15px; font-weight: 500; margin-bottom: 8px; }
.value-card p { font-size: 13px; color: #888; }

/* Compliance */
.compliance-card {
    text-align: center;
    padding: 40px 25px;
    border: 1px solid #e1e1e1;
    height: 100%;
    transition: border-color 0.3s;
}
.compliance-card:hover { border-color: #0b9ed6; }
.compliance-icon { font-size: 36px; color: #0b9ed6; margin-bottom: 18px; }
.compliance-card h5 { font-size: 16px; font-weight: 500; margin-bottom: 10px; }
.compliance-card p { font-size: 13px; color: #888; }

/* History */
.history-timeline { max-width: 700px; margin: 0 auto; }
.history-year-group {
    display: flex;
    margin-bottom: 25px;
    padding-bottom: 25px;
    border-bottom: 1px solid #e1e1e1;
}
.history-year-group:last-child { border-bottom: none; }
.history-year {
    font-family: 'Lato', sans-serif;
    font-size: 26px;
    font-weight: 200;
    color: #0b9ed6;
    min-width: 90px;
}
.history-item { padding: 5px 0; display: flex; gap: 12px; font-size: 14px; }
.history-month { font-weight: 500; color: #888; min-width: 35px; }

/* Talent */
.talent-card {
    text-align: center;
    padding: 35px 20px;
    border: 1px solid #e1e1e1;
    height: 100%;
    transition: border-color 0.3s;
}
.talent-card:hover { border-color: #0b9ed6; }
.talent-icon { font-size: 36px; color: #0b9ed6; margin-bottom: 15px; }
.talent-card h5 { font-size: 15px; font-weight: 500; margin-bottom: 8px; }
.talent-card p { font-size: 13px; color: #888; }

/* Location */
.map-placeholder {
    height: 400px;
    background: #f5f5f5;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 1px dashed #ccc;
}
.map-placeholder i { font-size: 40px; color: #ccc; margin-bottom: 10px; }
.map-placeholder p { color: #aaa; font-size: 13px; }

.location-card { padding: 25px; background: #f5f5f5; height: 100%; }
.location-card h5 { font-size: 15px; font-weight: 500; margin-bottom: 15px; color: #222; }
.location-card h5 i { color: #0b9ed6; margin-right: 5px; }
.location-card th { width: 70px; font-size: 13px; font-weight: 500; color: #888; }
.location-card td { font-size: 13px; }


/* ========================================
   BUSINESS - Grid & Detail
   ======================================== */
.business-grid-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 35px 20px;
    border: 1px solid #e1e1e1;
    text-decoration: none;
    color: #333;
    transition: all 0.3s;
    height: 100%;
    min-height: 170px;
}
.business-grid-card:hover { border-color: #0b9ed6; color: #333; box-shadow: 0 5px 15px rgba(11,158,214,0.1); }
.business-grid-icon { font-size: 32px; color: #0b9ed6; margin-bottom: 12px; }
.business-grid-card h5 { font-size: 16px; font-weight: 500; margin-bottom: 4px; }
.business-grid-card p { font-size: 12px; color: #999; margin: 0; }

/* Partner Detail */
.partner-logo-large { font-size: 56px; color: #0b9ed6; margin-bottom: 15px; }
.partner-title {
    font-family: 'Lato', 'Noto Sans KR', sans-serif;
    font-size: 28px;
    font-weight: 400;
    color: #222;
}
.partner-slogan-text { font-size: 14px; color: #999; margin-top: 5px; }
.partner-description {
    max-width: 750px;
    margin: 0 auto;
    text-align: center;
    font-size: 15px;
    line-height: 1.8;
}
.product-card { padding: 22px; background: #f5f5f5; height: 100%; transition: background 0.3s; }
.product-card:hover { background: #eaeaea; }
.product-card h5 { font-size: 14px; font-weight: 600; color: #0b9ed6; margin-bottom: 8px; }
.product-card p { font-size: 13px; color: #888; margin: 0; }


/* ========================================
   BOARD TABLE (IR, Story)
   ======================================== */
.board-table { border-top: 2px solid #222; }
.board-table thead th {
    background: #f8f8f8;
    font-weight: 500;
    font-size: 13px;
    padding: 11px 12px;
    border-bottom: 1px solid #e1e1e1;
}
.board-table tbody td {
    padding: 11px 12px;
    border-bottom: 1px solid #e1e1e1;
    font-size: 13px;
    color: #777;
}

.stock-item { padding: 18px; background: #f5f5f5; text-align: center; }
.stock-label { display: block; font-size: 12px; color: #999; margin-bottom: 6px; }
.stock-value { display: block; font-size: 22px; font-weight: 700; color: #222; }
.stock-placeholder-box { max-width: 700px; margin: 25px auto 0; }

.recruit-card { text-align: center; padding: 35px 25px; background: #f5f5f5; height: 100%; }
.recruit-icon { font-size: 36px; color: #0b9ed6; margin-bottom: 12px; }
.recruit-card h5 { font-size: 16px; font-weight: 500; margin-bottom: 8px; }
.recruit-card p { font-size: 13px; color: #888; }


/* ========================================
   FOOTER
   ======================================== */
#footer {
    background: #2d2d2d;
    color: #999;
}
.footer-inner { padding: 50px 0; }
.footer-grid { display: flex; gap: 60px; align-items: flex-start; }
.footer-logo-area { flex: 0 0 auto; }
.footer-logo-img { height: 30px; width: auto; opacity: 0.7; }
.footer-nav-area { flex: 1; display: flex; gap: 40px; }
.footer-nav-col h5 { font-size: 13px; font-weight: 700; color: #ccc; margin-bottom: 12px; }
.footer-nav-col ul li { margin-bottom: 5px; }
.footer-nav-col ul li a { font-size: 12px; color: #888; }
.footer-nav-col ul li a:hover { color: #00AEEF; }
.footer-bottom { border-top: 1px solid #444; padding: 15px 0; text-align: center; }
.footer-bottom p { font-size: 12px; color: #777; margin: 0; }


/* ========================================
   RESPONSIVE
   ======================================== */
@media screen and (max-width: 989px) {
    .floating-menu { display: none !important; }
    .quick-menu { display: none; }
    .nav-menu { display: none; }

    .avia-caption-content h1 { line-height: 0.9em; }

    .who-columns { flex-direction: row; }
    .who-col { padding: 40px 15px; }
    .who-icon { min-height: 80px; }
    .who-col h3 { font-size: 20px; }

    .business-slide { flex-direction: column; height: auto; }
    .business-img { flex: 0 0 250px; width: 100%; }
    .business-info { flex: 1; width: 100%; }

    .footer-grid { flex-direction: column; gap: 30px; }
    .footer-nav-area { flex-wrap: wrap; gap: 25px; }

    .sub-nav ul { overflow-x: auto; flex-wrap: nowrap; justify-content: flex-start; }
}

@media screen and (max-width: 767px) {
    .sub-nav ul {
        display: flex;
        flex-wrap: wrap;
    }
    .sub-nav li {
        flex-grow: 1;
        width: 50%;
        border-bottom: 1px solid #e1e1e1;
        border-left: 1px solid #e1e1e1;
    }
    .sub-nav li:nth-child(odd) { border-left: 0; }
    .sub-nav li a {
        padding: 10px 30px;
        font-size: 14px;
        background-color: #f5f5f5;
    }
    .sub-nav li a::after { display: none; }
    .sub-nav li a:hover,
    .sub-nav li.active a {
        background-color: #089ed6;
        color: #FFFFFF;
    }

    .who-col h3 { font-size: 22px; }
    .who-col .desc { font-size: 12px; }

    .sub-banner { height: 320px; }
    .sub-banner h2 { letter-spacing: 0.5em; }
}

@media screen and (max-width: 639px) {
    .avia-caption-content h1 { font-size: 38px; }
    .avia-caption-content p { font-size: 20px; line-height: 1.4em; }

    .main_tit h2 { font-size: 36px; }
}

@media screen and (max-width: 480px) {
    .who-columns { flex-direction: column; }
    .who-col { width: 100%; }

    .sub-banner { height: 260px; }
    .sub-banner h2 { font-size: 24px; letter-spacing: 0.25em; }

    .btn_news_goto { text-align: center; padding-right: 0; margin-top: -25px; }
    .btn_news_goto img { width: 80px; }
}

@media screen and (max-width: 380px) {
    .avia-caption-content h1 { font-size: 32px; }
}

/* ========================================
   BUSINESS DETAIL PAGES
   상단: 소개 문구 → 하단: 이미지+설명 좌우 교차
   ======================================== */

/* 상단 소개 영역 */
.business-intro-section {
    padding: 90px 0 60px;
    background: #FFFFFF;
}
.business-intro {
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
}
.business-intro-title {
    font-family: 'Lato', 'Noto Sans KR', 'open sans', sans-serif;
    font-size: 54px;
    font-weight: 300;
    color: #0b9ed6;
    margin-bottom: 25px;
    word-break: keep-all;
    letter-spacing: -0.04em;
}
.business-intro-desc {
    font-size: 18px;
    color: #666666;
    line-height: 1.8;
    word-break: keep-all;
}

/* 좌우 교차 섹션 */
.business-section {
    overflow: hidden;
}
.business-section-inner {
    display: flex;
    min-height: 450px;
}
.business-section-reverse .business-section-inner {
    flex-direction: row-reverse;
}

.business-section-img {
    flex: 0 0 50%;
    background-size: cover;
    background-position: center;
    min-height: 400px;
}
.business-section-img.contain {
    background-size: contain;
    background-repeat: no-repeat;
    background-color: #f5f5f5;
}

.business-section-info {
    flex: 0 0 50%;
    display: flex;
    align-items: center;
    padding: 60px 50px;
    background: #FFFFFF;
}
.business-section:nth-child(even) .business-section-info {
    background: #f5f5f5;
}

.business-section-content {
    max-width: 400px;
}
.business-section-reverse .business-section-content {
    margin-left: auto;
}

.business-section-title {
    font-family: 'Lato', 'Noto Sans KR', 'open sans', sans-serif;
    font-size: 54px;
    font-weight: 200;
    color: #222222;
    letter-spacing: -0.045em;
    line-height: 1.1em;
    margin-bottom: 25px;
}
.business-section-title::after {
    content: "";
    display: inline-block;
    width: 10px;
    height: 10px;
    background-color: #54c3f1;
    margin-left: 10px;
    border-radius: 10px;
    vertical-align: super;
}

.business-section-desc {
    font-size: 14px;
    line-height: 1.8;
    color: #666;
    word-break: keep-all;
}

@media screen and (max-width: 989px) {
    .business-intro-title { font-size: 42px; }
    .business-section-title { font-size: 43px; }
}

@media screen and (max-width: 767px) {
    .business-section-inner { flex-direction: column !important; min-height: auto; }
    .business-section-img { flex: 0 0 auto; min-height: 280px; width: 100%; }
    .business-section-info { flex: 0 0 auto; width: 100%; padding: 40px 30px; }
    .business-section-content { max-width: 100%; margin-left: 0 !important; }
    .business-section-title { font-size: 36px; }
    .business-intro-title { font-size: 34px; }
    .business-intro-section { padding: 60px 0 40px; }
}

@media screen and (max-width: 480px) {
    .business-section-title { font-size: 30px; }
    .business-intro-title { font-size: 28px; }
    .business-intro-desc { font-size: 15px; }
}


/* ========================================
   SUB TAB MENU (준법경영 4탭, 찾아오시는길 4탭)
   ======================================== */
.sub-tab-menu {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
}
.tab-btn, .tab-link {
    display: block;
    width: 200px;
    padding: 10px 20px;
    border: 1px solid #e1e1e1;
    margin-left: -1px;
    background: #fff;
    font-size: 15px;
    font-weight: 600;
    color: #333;
    letter-spacing: -0.065em;
    cursor: pointer;
    transition: all 0.2s;
    text-align: center;
    text-decoration: none;
}
.tab-btn:first-child, .tab-link:first-child { margin-left: 0; }
.tab-btn:hover, .tab-btn.active,
.tab-link:hover, .tab-link.active {
    background-color: #38b0d8;
    color: #FFFFFF;
    border-color: #38b0d8;
}

.tab-content { display: none; }
.tab-content.active { display: block; }


/* ========================================
   ETHICS (준법경영)
   ======================================== */
.ethics-card {
    border: 1px solid #e1e1e1;
    border-left: 0;
    margin-left: -1px;
    padding: 40px 30px;
    height: 100%;
}
.ethics-card:first-child { border-left: 1px solid #e1e1e1; }
.ethics-icon { font-size: 36px; color: #0b9ed6; margin-bottom: 10px; }
.ethics-tit { font-size: 24px; margin-bottom: 10px; color: #222; font-weight: 600; }
.ethics-desc { font-size: 16px; margin-bottom: 20px; color: #444; }
.ethics-txt { font-size: 14px; color: #888; line-height: 1.6em; }

/* 윤리강령 목록 */
.ethics-code-list { max-width: 700px; margin: 0 auto; }
.ethics-code-item {
    display: flex;
    gap: 20px;
    padding: 25px 0;
    border-bottom: 1px solid #e1e1e1;
}
.ethics-code-item:last-child { border-bottom: none; }
.ethics-code-num {
    font-family: 'Lato', sans-serif;
    font-size: 32px;
    font-weight: 200;
    color: #0b9ed6;
    min-width: 50px;
}
.ethics-code-body h5 { font-size: 16px; font-weight: 600; margin-bottom: 8px; }
.ethics-code-body p { font-size: 14px; color: #888; margin: 0; }

/* 윤리신문고 */
.ethics-hotline-box {
    max-width: 600px;
    margin: 0 auto;
    padding: 50px 30px;
    background: #f5f5f5;
    border-radius: 4px;
}
.hotline-icon { font-size: 48px; color: #0b9ed6; margin-bottom: 20px; }
.hotline-desc { font-size: 16px; color: #555; line-height: 1.8; margin-bottom: 25px; }
.hotline-info { margin-bottom: 25px; }
.hotline-info p { font-size: 15px; color: #333; margin-bottom: 5px; }
.hotline-info i { color: #0b9ed6; width: 20px; }
.hotline-notice { font-size: 13px; color: #999; line-height: 1.7; }


/* ========================================
   LOCATION (찾아오시는길)
   ======================================== */
.map-embed { margin-bottom: 0; }
.map-embed iframe { border: none; display: block; }

.map-navi-links {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-top: 20px;
}
.navi-btn {
    display: inline-block;
    padding: 8px 20px;
    border: 1px solid #ccc;
    color: #555;
    font-size: 13px;
    transition: all 0.2s;
}
.navi-btn:hover { border-color: #0b9ed6; color: #0b9ed6; }
.navi-btn i { margin-right: 5px; }

.location-info-table th {
    width: 80px;
    font-weight: 600;
    color: #555;
    font-size: 14px;
    vertical-align: middle;
}
.location-info-table td { font-size: 14px; color: #666; }

@media screen and (max-width: 767px) {
    .sub-tab-menu { flex-wrap: wrap; }
    .tab-btn, .tab-link {
        width: 50%;
        border-top: 0;
    }
    .tab-btn:nth-child(1), .tab-link:nth-child(1),
    .tab-btn:nth-child(2), .tab-link:nth-child(2) { border-top: 1px solid #e1e1e1; }
    .tab-btn:nth-child(odd), .tab-link:nth-child(odd) { margin-left: 0; border-left: 1px solid #e1e1e1; }
}

@media screen and (max-width: 639px) {
    .sub-tab-menu { flex-direction: column; }
    .tab-btn, .tab-link {
        width: 100%;
        margin-left: 0;
        border-top: 0;
        border-left: 1px solid #e1e1e1;
    }
    .tab-btn:first-child, .tab-link:first-child { border-top: 1px solid #e1e1e1; }
}


/* 서비스 점검 안내 */
.maintenance-notice {
    text-align: center;
    padding: 100px 20px;
}
.maintenance-notice .maintenance-icon {
    font-size: 48px;
    color: #ccc;
    margin-bottom: 20px;
}
.maintenance-notice h4 {
    font-size: 20px;
    font-weight: 500;
    color: #555;
    margin-bottom: 10px;
}
.maintenance-notice p {
    font-size: 14px;
    color: #999;
}

/* Helper */
.section-padding { padding: 80px 0; }
.section-gray { background: #f5f5f5; }
.pd100 { padding: 100px 0 !important; }

/* Section Title (Sub pages) */
.section_tit h2 {
    font-size: 40px;
    text-transform: inherit;
    letter-spacing: -0.08em;
    color: #222222;
    text-align: center;
}


/* ========================================
   COMPANY OVERVIEW - 원본 스타일
   ======================================== */
/* 서브 비주얼 배너 (516px) */
.sub-visual-banner {
    height: 516px;
    background-size: cover;
    background-position: top center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
}
.sub-visual-banner h1 {
    font-family: 'Lato', 'Noto Sans KR', 'open sans', sans-serif;
    font-size: 36px;
    font-weight: 600;
    color: #FFFFFF;
    letter-spacing: 2rem;
    text-transform: uppercase;
}

/* 원형 블록 (circle_line_block) */
.circle-blocks { display: flex; justify-content: center; gap: 30px; margin-top: 40px; }
.circle-block {
    width: 254px; height: 254px;
    border: 1px solid #2e444c;
    border-radius: 100%;
    display: flex; align-items: center; justify-content: center;
    text-align: center;
}
.circle-block .icon-img { margin-bottom: 20px; }
.circle-block .icon-img img { width: 60px; }
.circle-block .txt { font-size: 14px; color: #222; }

/* 메시지 박스 (message_wrap) */
.message-section {
    padding: 120px 0;
    background-size: cover;
    background-position: top center;
    background-repeat: no-repeat;
    text-align: center;
}
.message-box p {
    font-size: 18px;
    color: #FFFFFF;
    line-height: 1.8;
    text-shadow: 0 1px 3px rgba(0,0,0,0.3);
}

/* 블록 컨텐츠 (좌우 교차) */
.block-contents-row {
    display: flex;
    min-height: 400px;
}
.block-contents-row.reverse { flex-direction: row-reverse; }
.block-contents-text {
    flex: 0 0 50%;
    display: flex; flex-direction: column; justify-content: center;
    padding: 60px 50px;
}
.block-content-tit { font-size: 22px; color: #222; font-weight: 500; margin-bottom: 15px; }
.block-content-txt { font-size: 14px; color: #888; line-height: 1.6; }
.block-contents-img {
    flex: 0 0 50%;
    background-size: cover;
    background-position: top center;
    background-repeat: no-repeat;
}

/* 주요현황 (main_status_wrap) */
.status-section { padding: 80px 0; background: #2b71b9; color: #FFFFFF; }
.status-section .section_tit h2 { color: #FFFFFF; }
.status-section .section_desc p { color: rgba(255,255,255,0.8); }
.status-blocks { display: flex; justify-content: center; gap: 0; margin-top: 40px; }
.status-block {
    width: 200px; padding: 30px 20px;
    border: 1px solid rgba(255,255,255,0.3);
    margin-left: -1px;
    text-align: center;
}
.status-block .tit { font-size: 14px; color: rgba(255,255,255,0.7); margin-bottom: 10px; }
.status-block .txt { font-size: 22px; color: #FFFFFF; font-weight: 300; }

/* 아코디언 토글 */
.toggle-container { max-width: 800px; margin: 0 auto; }
.toggle-item { border-bottom: 1px solid #e1e1e1; }
.toggle-header {
    padding: 15px 20px;
    font-size: 15px; font-weight: 500; color: #333;
    cursor: pointer;
    display: flex; justify-content: space-between; align-items: center;
    transition: background 0.2s;
}
.toggle-header:hover { background: #f9f9f9; }
.toggle-header .toggle-icon { font-size: 12px; color: #999; transition: transform 0.3s; }
.toggle-header.open .toggle-icon { transform: rotate(180deg); }
.toggle-body {
    display: none;
    padding: 15px 20px;
    font-size: 14px; color: #666; line-height: 1.7;
    background: #fafafa;
}

/* 윤리신문고 폼 (KBoard 스타일) */
.kboard-form { max-width: 800px; margin: 0 auto; }
.kboard-row {
    display: flex;
    border-bottom: 1px solid #e1e1e1;
    min-height: 50px;
}
.kboard-label {
    flex: 0 0 180px;
    padding: 12px 15px;
    background: #f8f8f8;
    font-size: 14px; font-weight: 500; color: #333;
    display: flex; align-items: center;
}
.kboard-label .required { color: #e80012; margin-left: 3px; }
.kboard-value {
    flex: 1;
    padding: 8px 15px;
    display: flex; align-items: center; flex-wrap: wrap;
}
.kboard-value input[type="text"],
.kboard-value input[type="date"],
.kboard-value textarea {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid #ddd;
    font-size: 14px;
    font-family: inherit;
}
.kboard-value textarea { min-height: 150px; resize: vertical; }
.kboard-value label { margin-right: 15px; font-size: 13px; cursor: pointer; }
.kboard-value input[type="radio"] { margin-right: 4px; }
.kboard-buttons {
    text-align: center;
    margin-top: 30px;
}
.kboard-buttons button,
.kboard-buttons a {
    display: inline-block;
    padding: 12px 30px;
    font-size: 14px;
    border: none;
    cursor: pointer;
    margin: 0 5px;
}
.kboard-buttons .btn-submit { background: #38b0d8; color: #fff; }
.kboard-buttons .btn-cancel { background: #888; color: #fff; text-decoration: none; }

/* 실천의지 */
.commitment-content {
    max-width: 800px;
    margin: 0 auto;
    padding: 20px 8%;
    font-size: 14pt;
    line-height: 1.8;
    color: #333;
}
.commitment-content .ceo-greeting {
    color: #000080;
    font-size: 16pt;
    font-weight: 600;
    margin-bottom: 20px;
}
.commitment-content .highlight {
    color: #25c1e8;
    font-weight: 700;
}
.commitment-content .signature {
    margin-top: 30px;
    color: #000;
}

/* 반응형 - Company Overview */
@media screen and (max-width: 767px) {
    .circle-blocks { flex-direction: column; align-items: center; }
    .block-contents-row, .block-contents-row.reverse { flex-direction: column !important; }
    .block-contents-text, .block-contents-img { flex: 0 0 auto; width: 100%; }
    .block-contents-img { min-height: 280px; }
    .status-blocks { flex-wrap: wrap; }
    .status-block { width: 50%; }
    .sub-visual-banner { height: 320px; }
    .sub-visual-banner h1 { font-size: 24px; letter-spacing: 0.5em; }
    .kboard-row { flex-direction: column; }
    .kboard-label { flex: 0 0 auto; }
}
