html {
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    font-family: 'Pretendard', sans-serif;
    font-size: 1rem;
    word-break: keep-all;
}
p, h1, h2, h3, h4, h5, ul, li {line-height: 1.5em;}
a {
    text-decoration: none;
    color: #444;
}
a:focus {box-shadow: none !important;}
a:focus-visible {outline: 0 !important;}
.active>.page-link, .page-link.active {
    background: #123d7a;
    border-color: #123d7a;
}
.form-check-input:checked {
    background-color: #123d7a;
    border-color: #123d7a;
}
.form-check-input:focus {
    border-color: #123d7a;
    box-shadow: none;
}
textarea {height: 150px !important;}
:focus-visible {outline: none;}
.form-control:focus {
    border-color: #123d7a;
    box-shadow: none;
}
.btn {
    width: 100%;
    padding: 15px;
    border: 1px solid #123d7a;
    color: #123d7a;
}
.btn:hover {
    background: #123d7a;
    color: #fff;
    transition: all 0.3s ease;
}
.btn-box {margin-top: 50px;}
table.table {
    text-align: center;
    border-top: 2px solid #123d7a;
}
table.table thead tr th {
    color: #123d7a !important;
    background: #f5f5f5;
}
table.table tbody tr th {
    vertical-align: middle;
    font-weight: normal;
}
table.table thead tr th, .table tbody tr td {
    vertical-align: middle;
    padding: 15px;
}
hr {margin: 10rem 0;}
.text-blue {color: #123d7a;}
.nav-tabs {
    border-bottom: none;
    border: 1px solid #E8F0FA;
    padding: 0;
    margin: 0;
}
.nav-tabs .nav-link {
    width: 100%;
    padding: 20px;
    color: #1a1a1a;
    border-radius: 0;
    border: 0;
}
.nav-tabs .nav-link.active,
.nav-tabs .nav-link:hover {
    background: #123d7a;
    color: #ffffff;
}
/* ///////////////////////////////////////
   header/////////////////////////////////
/* /////////////////////////////////////*/
.logo {
    width: 16%;
    height: 48px;
    background: url(/images/logo-estate.png) no-repeat;
    padding: 10px;
    position: absolute;
    top: 23px;
    left: 15px;
    z-index: 99;
    background-size: 100%;
    max-width: 230px;
}
.gnb-box {
    width: 100%;
    position: absolute;
    z-index: 9;
    top: 0;
    left: 0;
    background: #fff;
}
.gnb {
    width: 100%;
    border-bottom: 1px solid #ddd;
    display: flex;
    align-items: center;
    justify-content: center;
}
.gnb-sub {
    width: 100%;
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    transform: translateY(-10px);
    transition: all 0.35s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    z-index: 9;
    position: absolute;
    border-bottom: 1px solid #ddd;
}
.gnb-sub .gnb-list {
    padding: 0 0 20px;
}
.gnb-sub .gnb-item a {
    text-decoration: none;
    color: #444;
    display: block;
    padding-top: 20px;
    padding-bottom: 0;
}
.gnb-item-sub a {
    padding-top: 0 !important;
    margin: 0;
    text-align: left;
    padding-left: 15px !important;
}
.gnb-item-sub a:before {
    content: '·';
    margin-right: 10px;
}
.gnb-list {
    display: flex;
    justify-content: space-between;
    text-align: center;
    margin: 0;
    padding: 1.5em;
}
.gnb .gnb-list {
    padding: 1.5em;
}
.gnb-item ul {margin: 0; padding: 0;}
.gnb-item, .gnb-item ul li {
    list-style: none;
    text-align: center;
    width: 145px;
}
.gnb-item a {
    text-decoration: none;
    color: #444;
    display: block;
    padding: 10px 0;
}
.gnb-item a:hover {
    color: #00263e;
    transition: all 0.35s ease;
}
header:hover .gnb-sub {
    max-height: 300px;
    opacity: 1;
    transform: translateY(0);
}
.intro .gnb-box {background: none;}
.intro .gnb-item a {color: #fff;}
.intro .logo {background: url(/images/logo-estate-w.png) no-repeat; background-size: 100%;}
.intro header:hover .gnb-box {background: #fff; transition: all 0.35s ease;}
.intro header:hover .gnb-item a {color: #444; transition: all 0.35s ease;}
.intro header:hover .gnb-item a:hover {
    color: #00263e;
    text-decoration: underline;
    transition: all 0.35s ease;
}
.intro header:hover .gnb-sub .gnb-item {position: relative;}
.intro header:hover .gnb-sub .gnb-item:hover:before {
    content: "";
    border: 1px solid #00263e;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    transition: all 0.35s ease;
    z-index: 9;
}
.intro header:hover .logo {background: url(/images/logo-estate.png) no-repeat; transition: all 0.35s ease; background-size: 100%;}
.bg-gray {
    background: #e6f4f3;
    /* padding: 0 !important; */
    margin-top: 10px;
    color: #123d7a !important;
    font-weight: bold;
    border-radius: 5px;
    padding: 3px !important;
}
.family-site-box {
    width: 147px;
    position: absolute;
    top: 25px;
    right: 35px;
    z-index: 99;
    padding: 8px 15px;
    border-radius: 100px;
    border: 1px solid rgba(255, 255, 255, 0.35);
    background: rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.45);
    color: #fff;
    transition: all 0.25s ease;
}
button#family-site {
    width: 100%;
    background: none;
    border: none;
    color: #fff;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
}
.intro header button#family-site {color: #ffffff;}
button#family-site,
header:hover button#family-site {color: #444444;}
.family-site {
    background: #fff;
    display: block;
    position: absolute;
    top: 55px;
    right: -4px;
    z-index: 99999999;
    padding: 15px;
    border-radius: 15px;
    line-height: 31px;
    min-width: 147px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.45);
    opacity: 0;
    height: 0;
    overflow: hidden;
    transition: opacity 0.5s ease, height 0.5s ease;
}
.family-site a {
    display: block;
    font-size: 15px;
    letter-spacing: -0.5px;
}
.family-site a:hover {
    color: #123d7a;
    text-decoration: underline;
}
.en .family-site a {
    letter-spacing: -0.5px;
}
.lang.dropdown {
    position: absolute;
    top: 22px;
    right: 190px;
    z-index: 99;
    border: none !important;
    -webkit-backdrop-filter: blur(18px);
    color: #00263e;
    transition: all 0.25s ease;
    font-size: 14px;
}
.lang.dropdown .btn {
    border: none;
    color: #00263e;
}
.intro .lang.dropdown .btn {
    color: #fff;
    font-size: 14px;
}
.lang .dropdown-menu {
    min-width: 60px;
    text-align: center;
    padding: 5px;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.35);
    background: rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.45);
    color: #fff;
    transition: all 0.25s ease;
    margin-left: 11px !important;
    font-size: 14px;
}
.lang .dropdown-item {color: #fff;}
header:hover .lang .dropdown-item {color: #444444;}
.lang .dropdown-item.active,
.lang .dropdown-item:active {
    background: #00263e;
    color: #fff !important;
    border-radius: 8px;
}
header:hover .lang.dropdown .btn,
.lang.dropdown .btn:hover {
    background: transparent;
    color: #00263e !important;
    border-radius: 8px;
}
.en .en-none {
    display: none;
}
.en .business .card .p-5 {
    min-height: 205px;
    padding: 2rem !important;
}
.en .lm .business .card .p-5 {
    min-height: 140px;
    padding: 2rem !important;
}
.en .grounds .col-2 h4 {
    font-size: 16px;
    font-weight: normal !important;
}
.en .esg .row .col-6 {width: 70%;}
.en .esg .row .col-6.esg-right {width: 30%;}
.en .esg .row .col-6 .col-6 {width: 50%;}
.en #section4 .safed-zone .box.col-4 {width: 50%;}
/* ///////////////////////////////////////
   footer/////////////////////////////////
/* /////////////////////////////////////*/
footer {
    border-top: 1px solid #ddd;
    padding: 3em 0;
}
.footer a:hover {
    color: #123d7a !important;
    text-decoration: underline !important;
    cursor: pointer;
    transition: all 0.35s ease;
}
#btnTop {
    position: fixed;
    right: 32px;
    bottom: 40px;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    border: none;
    background: #123d7a;
    color: #fff;
    font-size: 22px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 25px rgba(0,0,0,.15);
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: all .3s ease;
    z-index: 999;
}
#btnTop.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
#btnTop:hover {
    background: #00263e;
    transform: translateY(-4px);
}
/* ///////////////////////////////////////
   common/////////////////////////////////
/* /////////////////////////////////////*/
.swiper {
    width: 100%;
    height: 100vh;
    position: relative;
}
.swiper-slide {
    text-align: center;
    background: #444;
    display: flex;
    justify-content: center;
    align-items: center;
}
.swiper-content {
    width: 100%;
    position: absolute;
    color: #fff;
    text-align: left;
    z-index: 2;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}
.swiper-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.swiper {
    margin-left: auto;
    margin-right: auto;
}
.swiper-pagination-container {
    position: absolute;
    z-index: 999;
    bottom: 20%;
    width: 100%;
}
.swiper-pagination-container .container {
    display: flex;
    align-content: center;
    align-items: center;
    gap: 15px;
}
.swiper-pagination-container .swiper-pagination {
    position: relative;
    width: 30%;
}
.swiper-pagination-progressbar-fill {
    background: #ffffff !important;
}
.swiper-pagination-container .btn-toggle {
    border: none;
    background: no-repeat;
    color: #fff;
    font-size: 35px;
}
.title {text-align: left; padding-top: 12em;}
.title h1 {
    font-weight: bold;
    margin-bottom: 50px;
    /*color: #123d7a;*/
}
.greeting .title h2 {
    font-weight: bold;
    padding-bottom: 100px;
}
.title-img {
    position: relative;
    color: #fff;
    padding: 100px 0;
}
.infra .title {padding-top: 0;}
.infra .title-img img {
    width: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    z-index: -1;
}
.infra .title-img .card {
    padding: 20px;
    text-align: center;
    margin-top: 30px;
}
.infra .title-img .card h2 {
    font-weight: bold;
}
.infra .title-img .card img {
    position: relative;
    z-index: 0;
    border-radius: 10px;
    margin-bottom: 20px;
}
.infra .title {
    padding-top: 100px;
    color: #fff;
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.content .title {
    padding-top: 0;
    display: block;
    height: auto;
}
.aiinfra section {height: 100vh;}
.aiinfra .content section {
    padding: 0;
    display: flex;
    align-items: center;
}
.total {text-align: left;}
.news {
    margin-top: 20px;
    --bs-gutter-x: 1.5rem;
    --bs-gutter-y: 0;
    display: flex;
    flex-wrap: wrap;
    margin-right: calc(-.5 * var(--bs-gutter-x));
    margin-left: calc(-.5 * var(--bs-gutter-x));
}
.news>* {
    flex-shrink: 0;
    width: 100%;
    max-width: 100%;
    padding-right: calc(var(--bs-gutter-x) * .5);
    padding-left: calc(var(--bs-gutter-x) * .5);
    margin-top: var(--bs-gutter-y);
}
.news .thumbnail {
    flex: 0 0 auto;
    width: 33.33333333%;
    margin-bottom: 30px;
}
.news .card {
    cursor: pointer;
    border-radius: 20px;
}
.news .card:hover {
    background: #E8F0FA;
    transition: all 0.3s ease;
}
.news .card img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 19px 19px 0 0;
    max-height: 300px;
}
.news .card .subject {
    padding: 30px 20px 0;
    font-weight: bold;
    margin-bottom: 15px;
    line-height: 1.3em;
    word-break: keep-all;
    min-height: 85px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}
.news .card:hover .subject {
    color: #123d7a;
    transition: all 0.3s ease;
}
.news .card .date {
    color: #aaa;
    padding: 20px 20px 30px;
}
.board, .privacy-container {
    padding-bottom: 150px;
}
.board .table {margin-top: 20px;}
.board .table .thead {
    text-align: center;
    border-top: 2px solid #000;
    border-bottom: 1px solid #ddd;
    --bs-gutter-x: 1.5rem;
    --bs-gutter-y: 0;
    display: flex;
    flex-wrap: wrap;
    margin-right: calc(-.5 * var(--bs-gutter-x));
    margin-left: calc(-.5 * var(--bs-gutter-x));
}
.board .table .tbody {
    text-align: center;
    border-bottom: 1px solid #ddd;
}
.board .table .no {
    flex: 0 0 auto;
    width: 16.66666667%;
    padding: 15px;
}
.board .table .subject {
    flex: 0 0 auto;
    width: 58.33333333%;
    padding: 15px;
}
.board .table .none {padding: 50px;}
.board .table .tbody .subject {text-align: left;}
.board .table .date {
    flex: 0 0 auto;
    width: 25%;
    padding: 15px;
}
.pagination-box {width: 100%;}
.pagination-box .page-item {padding: 5px;}
.pagination-box .page-item .page-link {border-radius: 5px;}