﻿/* #region bootstrap 변경 */
:root,
[data-bs-theme=light] {
    --bs-font-sans-serif: Pretendard;
    --bs-body-color: #666;
    --bs-body-color-rgb: 102, 102, 102;
    --bs-light: #ededed;
    --bs-light-rgb: 237, 237, 237;
    --bs-primary: #5172C1;
    --bs-primary-rgb: 81, 114, 193;
    --bs-success: #23aaad;
    --bs-success-rgb: 35, 170, 173;
    --bs-info: #688fea;
    --bs-info-rgb: 104, 143, 234;
    --bs-darkprimary: #1737ab /*#415173*/;
    --bs-darkprimary-rgb: 23, 55, 171 /*65, 81, 115*/;
    --bs-darksuccess: #00948c;
    --bs-darksuccess-rgb: 0, 148, 140;
    --bs-secondary: #e7e7e7;
    --bs-secondary-rgb: 231, 231, 231;
    --bs-green: #156064;
    --bs-green-disable: #69bfb8;
    --bs-green-background: #E7F3F8;
}

.btn-primary {
  background-color: var(--bs-darkprimary)
}
.btn-success {
  --bs-btn-color: #fff;
  --bs-btn-bg: #156064;
  --bs-btn-border-color: #156064;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #157347;
  --bs-btn-hover-border-color: #146c43;
  --bs-btn-focus-shadow-rgb: 60, 153, 110;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #146c43;
  --bs-btn-active-border-color: #13653f;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #156064;
  --bs-btn-disabled-border-color: #156064;
}
.btn-outline-success {
  --bs-btn-color: #156064;
  --bs-btn-border-color: #156064;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #156064;
  --bs-btn-hover-border-color: #156064;
  --bs-btn-focus-shadow-rgb: 25, 135, 84;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #156064;
  --bs-btn-active-border-color: #156064;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #156064;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #156064;
  --bs-gradient: none;
}

.btn-outline-dark {
  --bs-btn-hover-color: #212529;
  --bs-btn-hover-bg: #ededed;
}
/* #endregion */

/*body { min-width: 1110px; margin-top:89px; }*/
.container {
    --bs-gutter-x: 0;
    --bs-gutter-y: 0;
    width: 1320px;
    word-break: keep-all;
}

.card {
  --bs-border-color-translucent: rgba(0, 0, 0, 0);
  height: 100%;
  border: 1px solid #dee2e6;
}

.card-custom-img {
  object-fit: cover;
  height: 200px;
}

.gx-m1 {
  --bs-gutter-x: -0.25rem;
}

.gx-m2 {
  --bs-gutter-x: -0.5rem;
}

.gx-m3 {
  --bs-gutter-x: -1rem;
}

.gx-m4 {
  --bs-gutter-x: -1.5rem;
}

.gx-m5 {
  --bs-gutter-x: -3rem;
}

.na-navbar {
  /*border-bottom: 2px solid var(--bs-secondary);*/
}

  .na-navbar .col {
    padding-top: 1rem;
    padding-bottom: 1rem;
    text-align: center;
  }

  .na-navbar .container,
  .na-footer .container {
    display: grid;
    gap: 2rem;
    grid-template-areas: "brand main";
    grid-template-columns: 1fr 5fr;
  }

  .na-navbar .na-brand {
    grid-area: brand;
    padding-top: 1.75rem;
  }

  .na-navbar .na-menu {
    grid-area: main;
  }

.na-mainmenu {
  padding-top: 1.25rem;
}

  .na-mainmenu a {
    color: var(--bs-black);
    font-size: 1.1875rem;
    font-weight: 700;
    text-decoration: none !important;
    display: inline-block;
    padding: 0.5rem;
  }

  /*.na-mainmenu .active > a {
        background-color: #d3e8e8*/ /*#fcefe4*/ /*;
        border-radius: 30px;
    }*/
  .na-mainmenu .active > a {
    position: relative;
    display: inline-block;
    color: var(--bs-black);
    background-image: linear-gradient(to top, var(--bs-green) 40%, transparent 40%);
    background-repeat: no-repeat;
    background-size: 100% 0.8em;
    background-position: left 80%;
    border-radius: 0;
  }

.na-submenu {
  position: absolute;
  z-index: 9000;
  width: 100%;
  background: var(--bs-white);
  border-bottom: 1px solid var(--bs-secondary);
  display: none;
}

  .na-submenu a {
    font-size: 0.875rem;
    color: var(--bs-black);
  }

    .na-submenu a:hover {
      color: var(--bs-black);
      transform: scale(1.05);
      transition: all 0.2s ease;
    }

  .na-submenu .active a {
    color: #212121;
    font-weight: 600;
  }

.na-content {
  min-height: 250px;
}

  .na-content:not(.Home) {
    margin-bottom: 5rem;
  }

.na-footer {
  margin-top: 3rem;
  padding: 1.5rem 0;
}

  .na-footer .na-brand {
    grid-area: brand;
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }

  .na-footer .na-copyright {
    grid-area: main;
    margin-left: 5rem;
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
    line-height: 2;
  }

/*@keyframes pulse {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.05);
    }

    100% {
        transform: scale(1);
    }
}*/

.link-action {
  color: var(--bs-body-color);
  text-decoration: none;
  font-weight: 500;
  transition: all 0.2s ease-in-out;
}

.carousel-indicators {
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
}

  .carousel-indicators [data-bs-target] {
    width: 10px;
    height: 10px;
    border-radius: 100%;
    opacity: 1;
  }

  .carousel-indicators .active {
    width: 12px;
    height: 12px;
    background-color: var(--bs-green);
    border-top-width: 9px;
    border-bottom-width: 9px;
  }

.page-header {
  margin-top: 3rem;
  margin-bottom: 3rem;
  padding-bottom: 0.5rem;
}

.na-breadcrumb {
  --bs-breadcrumb-margin-bottom: 0;
  margin-top: 0.75rem;
  --bs-breadcrumb-item-active-color: var(--bs-body-color);
}

.na-breadcrumb-item + .na-breadcrumb-item::before {
  color: var(--bs-gray-400);
  --bs-breadcrumb-divider: "▶";
}

.na-breadcrumb-item.active {
  font-weight: 600;
}

.na-breadcrumb-item:not(.active) {
  color: var(--bs-secondary-color);
}

.na-nav-pills {
  display: flex;
  gap: 1rem;
  margin-bottom: 3rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--bs-secondary);
}

  .na-nav-pills .nav-link {
    background-color: transparent;
    color: var(--bs-black);
    font-weight: 600;
    padding: 0.5rem 1rem;
    transition: all 0.2s ease;
    font-size: 1rem;
    position: relative;
  }

    /* 호버 시 확대 */
    .na-nav-pills .nav-link:hover {
      transform: scale(1.05);
      color: var(--bs-black);
    }

    /* 활성화된 탭 표시 */
    .na-nav-pills .nav-link.active {
      background-color: var(--bs-green);
      color: var(--bs-white);
      border-radius: 6px 6px 0 0;
      position: relative;
    }

.content-section {
  margin-top: 6rem !important;
}

/* #region Home */
/* 메인화면 동영상 */
.jumbotron-container {
    position: relative;
    height: 570px;
}

.jumbotron-video {
    width: 100%;
    height: 570px;
    object-fit: cover;
    object-position: center;
}

.jumbotron-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1;
}

.jumbotron-content-wrapper {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 1320px;
    height: 570px;
    z-index: 10;
}

.jumbotron-text {
    position: absolute;
    top: 15%;
    left: 0;
    color: white;
    text-align: left;
}

.btn-main {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 15px 25px;
    border: 2px solid white;
    border-radius: 999px; /* pill shape */
    color: white;
    background-color: transparent;
    text-decoration: none;
    font-weight: bold;
    font-size: 1.15rem;
    transition: all 0.3s ease;
    position: absolute;
    bottom: 10%;
    right: 0;
}

    .btn-main i {
        transition: color 0.3s ease;
    }

    .btn-main:hover {
        transform: scale(1.02);
    }

.home-title {
  font-size: 1.75rem;
  font-weight: bolder;
  color: var(--bs-green);
}

.card-title {
    font-weight: bold;
    color: black;
}

/* 의뢰 신청*/
.inquiry-section {
    display: flex;
    gap: 24px;
}

.home-card {
    border: 1px solid #eee;
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
    min-height: 250px;
}

.online-apply {
    flex: 1.3;
    background: var(--bs-green-background);
}

.phone-inquiry {
    flex: 0.7;
    background: #f9f9f9;
}

.icon-box {
    color: black;
}

.card-content {
    margin-top: 0.5rem;
}

.card-content-title {
    font-size: 1.5rem;
    margin-bottom: 8px;
    color: black;
    font-weight: 800;
}

.btn-req {
    display: inline-flex;
    align-items: center;
    padding: 10px 20px;
    background-color: var(--bs-green);
    color: white;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 600;
    transition: background-color 0.3s ease;
}

    .btn-req:hover {
        transform: scale(1.02);
    }

.phone-number {
    font-size: 1.5rem;
    font-weight: bold;
    color: var(--bs-green);
}
/* #endregion */

/* #region 소개 */
.intro-title {
    font-size: 1.5rem;
    font-weight: bolder;
    color: black;
    padding: 1rem 0;
}

.horizontal-card-title {
    font-size: 1.25rem;
    font-weight: 700;
    background-color: var(--bs-black);
    color: #fff;
    text-align: center;
    padding: 1rem;
    padding-left: 3rem;
    padding-right: 3rem;
}

.horizontal-card-content {
  padding: 1rem;
  border: 1px solid #dee2e6;
}

.small-horizontal-list {
  max-width: 720px;
  margin-top: 1rem;
}

.small-horizontal-item {
  display: flex;
  align-items: flex-start;
  margin-top: 1rem;
}

  .small-horizontal-item:first-child {
    margin-top: 0;
  }

.small-horizontal-number {
  background-color: var(--bs-black);
  color: #fff;
  padding: 1rem;
  font-size: 1.25rem;
  font-weight: bold;
  min-width: 60px;
  text-align: center;
}

.small-horizontal-content {
  padding-left: 1rem;
}

.small-horizontal-title {
  font-size: 1.25rem;
  font-weight: bold;
  margin-bottom: 0.25rem;
}

.sys-card {
  margin-bottom: 3rem;
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
}

  .sys-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-height: 300px;
  }

.sys-card-title {
  font-size: 1.25rem;
  font-weight: bold;
  padding-bottom: 0.5rem;
  color: black;
}

.sys-card-subTitle {
  font-size: 1.15rem;
  padding-bottom: 0.5rem;
}

.sys-card-content {
  font-size: 1rem;
}

.circle-image {
    width: 100px;
    height: 100px;
    object-fit: cover;
    border-radius: 50%;
}
/* #endregion */

/* #region table */
.table {
  margin-bottom: 0;
}

.table-fixed {
  table-layout: fixed;
}

.table-edit {
}

  .table-edit > tbody > tr > th {
    text-align: center;
    /*padding: 0.375rem 0.75rem;*/
    padding-top: calc(0.5rem + 0.375rem + var(--bs-border-width));
    padding-bottom: calc(0.5rem + 0.375rem + var(--bs-border-width));
  }

    .table-edit > tbody > tr > th.required::before {
      content: "* ";
      color: red;
      margin-left: -12px;
    }

  .table-edit > tbody > tr > td > .form-check-inline {
    padding-top: calc( 0.375rem + var(--bs-border-width));
    padding-bottom: calc(0.375rem + var(--bs-border-width) - 0.125rem);
  }
/* #endregion */

/* #region error */
.has-error > .help-block,
.has-error > .input-group > .help-block {
  position: absolute;
  margin-left: 5px;
  background-color: #ebf8b5;
  z-index: 100;
}
/* #endregion */

.blog + .blog {
  margin-top:5rem;
}
/* #region step progress */
ul.steps {
  list-style: none;
  display: flex;
  width: 100%;
}

  ul.steps li {
    flex: 1;
    height: 70px;
    margin-right: 5px;
    display: inline-flex;
    position: relative;
    background: #d7d7d7;
  }

    ul.steps li::before {
      background: #d7d7d7;
    }

    ul.steps li::after {
      border-left: 30px solid #d7d7d7;
    }

    ul.steps li.current {
      background-color: var(--bs-green);
      color: white;
    }

      ul.steps li.current::before {
        background-color: var(--bs-green);
      }

      ul.steps li.current::after {
        border-left: 30px solid var(--bs-green);
      }

    ul.steps li.completed {
      background: var(--bs-green-disable);
      color: white;
    }

      ul.steps li.completed::before {
        background: var(--bs-green-disable);
      }

      ul.steps li.completed::after {
        border-left: 30px solid var(--bs-green-disable);
      }

    ul.steps li::before {
      content: "";
      display: inline-block;
      width: 0;
      height: 0;
      border-top: 35px solid transparent;
      border-left: 30px solid white;
      border-bottom: 35px solid transparent;
    }

    ul.steps li::after {
      content: "";
      display: inline-block;
      background: transparent;
      width: 0;
      height: 0;
      border-top: 35px solid transparent;
      border-bottom: 35px solid transparent;
      right: -30px;
      position: absolute;
      z-index: 1;
    }

    ul.steps li:first-child {
      padding-left: 20px;
    }

    ul.steps li:last-child {
      padding-right: 20px;
    }

  ul.steps .content {
    width: 100%;
    text-align: center;
    padding: 5px 0px 5px 6px;
    white-space: nowrap !important;
  }

    ul.steps .content > p:first-child {
      font-size: 1.25rem;
      font-weight: bold;
      margin-bottom: 0;
    }

    ul.steps .content > p:last-child {
      margin-bottom: 0;
      /*white-space: nowrap !important;*/
    }

  ul.steps li:first-child::before {
    display: none;
  }

  ul.steps li:last-child {
    margin-right: 0px;
  }

    ul.steps li:last-child::after {
      display: none;
    }

/*@media (max-width: 1366px) {
  ul.steps li:first-child {
    max-width: 70px;
  }
}*/
/* #endregion */

.col-sm-2 {
    padding: 0;
}
.card-body {
    padding: 2rem 1rem;
}

/* #region 의뢰 절차 */
.flow-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
    position: relative;
}

.title-row {
    display: flex;
    width: 100%;
    font-size: 1.25rem;
    font-weight: 700;
    text-align: center;
}

.title-left,
.title-right {
    flex: 1;
}

.step-wrapper {
    display: grid;
    grid-template-columns: 1fr 100px 1fr;
    align-items: center;
    position: relative;
    padding: 30px 0;
}

.step-label-left {
    text-align: right;
    padding-right: 20px;
    font-weight: bold;
    font-size: 1rem;
    color: #156064;
}

.step-label-right {
    text-align: left;
    padding-left: 20px;
    font-weight: bold;
    font-size: 1rem;
    color: #156064;
}

.step-icon {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: linear-gradient(to bottom, #5fb49c, #156064);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.8rem;
    position: relative;
}

    .step-icon::after {
        content: "";
        position: absolute;
        top: 100%;
        left: 50%;
        transform: translateX(-50%);
        width: 4px;
        height: 65px;
        background: linear-gradient(to bottom, #5fb49c, #156064);
        z-index: 0;
    }

    .step-icon:last-of-type::after {
        display: none;
    }

.flow-container .step-wrapper:last-child .step-icon::after {
    display: none;
}

.step-description-left {
    padding-right: 20px;
    font-size: 0.95rem;
    color: #444;
    line-height: 1.4;
    border-right: 3px solid #ccc;
}

    .step-description-left strong {
        display: block;
        margin-bottom: 5px;
        color: #156064;
    }

.step-description-right {
    padding-left: 20px;
    font-size: 0.95rem;
    color: #444;
    line-height: 1.4;
    border-left: 3px solid #ccc;
}

    .step-description-right strong {
        display: block;
        margin-bottom: 5px;
        color: #156064;
    }

.highlight-box {
    border: 2px dashed #c84630;
    border-radius: 15px;
    padding: 0px 15px;
}

.badge {
    display: inline-block;
    padding: 0.3em 0.7em;
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: 999px;
}

    .badge.online {
        background-color: #e0f4ff;
        color: #007bbd;
        border: 1px solid #91d3f7;
    }

    .badge.offline {
        background-color: #fff3e0;
        color: #e65100;
        border: 1px solid #ffcc80;
    }
/* #endregion */

/* #region 고객지원 */
.support-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

    .support-container .icon {
        font-size: 32px;
        color: var(--bs-green);
        margin-bottom: 10px;
    }

.support-title {
    font-size: 1.5rem;
    font-weight: bold;
    color: #222;
    margin-bottom: 0.5rem;
}

.support-subtitle {
    font-size: 1.15rem;
    color: #666;
    margin-bottom: 1.5rem;
}

.info-box {
    padding: 30px 80px;
    border: 1px solid #ddd;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    text-align: left;
    background-color: #fff;
}

.info-row {
    display: flex;
    align-items: center;
    padding: 20px;
    border-top: 1px solid #eee;
}

    .info-row:first-child {
        border-top: none;
    }

.info-icon {
    display: flex;
    color: var(--bs-green);
    font-size: 1.2rem;
}

.info-text {
    display: flex;
    font-size: 1.15rem;
    color: var(--bs-black);
    margin-left: 30px;
}

.info-text-title {
    color: var(--bs-green);
    font-weight: 700;
}
/* #endregion */