/*==========================================================
                        C U S T O M
==========================================================*/
/* MB */
.under main .mb10 {
  margin-bottom: 10px
}
.under main .mb15 {
  margin-bottom: 15px
}
.under main .mb20 {
  margin-bottom: 20px
}
.under main .mb25 {
  margin-bottom: 25px
}
.under main .mb30 {
  margin-bottom: 30px
}
.under main .mb40 {
  margin-bottom: 40px
}
.under main .mb50 {
  margin-bottom: 50px
}
.under main .mb60 {
  margin-bottom: 60px
}
.under main .mb70 {
  margin-bottom: 70px
}
.under main .mb80 {
  margin-bottom: 80px
}
.under main .mb90 {
  margin-bottom: 90px
}
/* MT */
.under main .mt10 {
  margin-top: 10px
}
.under main .mt15 {
  margin-top: 15px
}
.under main .mt20 {
  margin-top: 20px
}
.under main .mt25 {
  margin-top: 25px
}
.under main .mt30 {
  margin-top: 30px
}
.under main .mt40 {
  margin-top: 40px
}
.under main .mt50 {
  margin-top: 50px
}
.under main .mt60 {
  margin-top: 60px
}
.under main .mt70 {
  margin-top: 70px
}
.under main .mt80 {
  margin-top: 80px
}
.under main .mt90 {
  margin-top: 90px
}
/* MAX_W */
.under main .max_w200 {
  width: 100%;
  max-width: 200px
}
.under main .max_w250 {
  width: 100%;
  max-width: 250px
}
.under main .max_w300 {
  width: 100%;
  max-width: 300px
}
.under main .max_w350 {
  width: 100%;
  max-width: 350px
}
.under main .max_w500 {
  width: 100%;
  max-width: 500px
}
.under main .max_w600 {
  width: 100%;
  max-width: 600px
}
.under main .max_w700 {
  width: 100%;
  max-width: 700px
}
.under main .max_w800 {
  width: 100%;
  max-width: 800px
}
.under main .max_w900 {
  width: 100%;
  max-width: 900px
}
/* MIN-W */
.under main .min_w200 {
  min-width: 200px
}
.under main .min_w250 {
  min-width: 250px
}
.under main .min_w300 {
  min-width: 300px
}
.under main .min_w350 {
  min-width: 350px
}
.under main .min_w500 {
  min-width: 500px
}
/*==========================================================
                        FONT FAMILY
==========================================================*/
.under main h2,
.under main h3,
.under main h4,
.under main h5,
.under main h6,
.under main table th,
.under main .list_faq dt,
.under main .list_step dt {
  font-family: var(--f-yumin)
}
/*==========================================================
                        H E A D I N G
==========================================================*/
.under main h2,
.under main h3,
.under main h4,
.under main h5,
.under main h6 {
  font-weight: bold;
  font-family: var(--f-zmg);
}
.under main h2 {
  font-size: 36px;
}
.under main h3 {
  font-size: 41px;
  padding-bottom: 35px;
  text-align: center;
  border-bottom: 1px solid #202020;
  margin-bottom: 44px;
  position: relative;
}
.under main .u_h3 {
  padding-bottom: 27px;
  border-bottom: 0;
  margin-bottom: 25px;
}
.under main .u_h3::after {
  height: 2px;
  background-color: var(--mcolor);
  width: 900px;
  left: calc(50% - 450px);
  content: "";
  position: absolute;
  border-radius: 999px;
  bottom: 0;
}
.under main .u_h3 .en {
  font-size: 28px;
  font-family: var(--f-nunito);
  margin-bottom: 6px;
}
.under main .u_box section:first-child h3 {
  padding-top: 33px;
  border-top: 5px solid #202020;
}
.under main h3 .en {
  font-size: 80%;
  color: var(--mcolor);
  display: block;
}
.under main h4 {
  font-size: 30px;
  position: relative;
  padding: 0 0 25px 29px;
  margin-bottom: 28px;
}
.under main h4::before {
  content: "";
  position: absolute;
  width: 12px;
  height: 12px;
  background-color: var(--mcolor);
  left: 0;
  top: 18px;
  border-radius: 50%;
}
.under main h4::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 6px;
  background-color: var(--mcolor);
  border-radius: 999px;
  left: 0;
  bottom: 0;
}
.under main h5 {
  font-size: 24px;
  color: var(--mcolor);
}
.under main h6 {
  font-size: 20px;
  position: relative;
}
.under main h6::before,
.under main h6::after {
  content: "";
  position: absolute;
  height: 3px;
  left: 0;
  bottom: -5px;
}
.under main h6::before {
  background-color: var(--mcolor);
  width: 50px;
  left: 0;
  z-index: 2;
}
.under main h6::after {
  background-color: #ccc;
  width: 100%;
}
/*==========================================================
                      MAIN - CONTENT
==========================================================*/
.under main #content {
  padding: 0 0 120px;
  position: relative;
  background-color: #DFEED1;
}
.under main #content::before {
  content: "";
  position: absolute;
  width: 850px;
  height: 604px;
  top: -10px;
  z-index: 1;
  right: -207px;
  background: url('../images/top_info_ic.svg') no-repeat center /contain;
  mix-blend-mode: multiply;
  pointer-events: none;
}
.under main section {
  padding: 0 0 80px;
  margin-bottom: 0
}
.under main section:last-child {
  padding: 0
}
.under main .line {
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 55%, rgba(255, 255, 0, 1) 55%, rgba(255, 255, 0, 1) 100%, rgba(255, 255, 255, 0) 100%);
}
.under main .txt_lg {
  font-size: 125%;
}
.under main .bg_green {
  background-color: #DFEED1 !important;
}
.under main .u_box.bg_green {
  padding: 0;
  border-radius: 0;
}
/* LINK + BUTTON TOP */
.under main .link {
  text-decoration: underline;
  color: var(--mcolor);
}
/*============ TOP INFO ============ */
.under main #top_info {
  height: 400px;
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  background: url('../images/top_info_bg.jpg') no-repeat center /cover;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  border: 10px solid #FFF;
  border-radius: 20px;
  position: relative;
}
.under main .top_info_box {
  background-color: #FFF;
  position: relative;
  top: 1px;
  left: -1px;
}
#profile main #top_info {
  background: url('../images/top_info_bg_profile.jpg') no-repeat center /cover;
}
#timing main #top_info {
  background: url('../images/top_info_bg_timing.jpg') no-repeat center /cover;
}
#contact main #top_info {
  background: url('../images/top_info_bg_contact.jpg') no-repeat center /cover;
}
#news main #top_info {
  background: url('../images/top_info_bg_news.jpg') no-repeat center /cover;
}
/*==========================================================
                    T O P I C   P A T H
==========================================================*/
.under main #topic_path {
  position: relative;
  z-index: 2;
}
.under main #topic_path ul {
  display: block;
  padding: 10px 0;
}
.under main #topic_path li {
  display: inline;
  position: relative;
  font-size: 14px;
}
.under main #topic_path li:not(:last-child)::after {
  content: ">";
  position: relative;
  display: inline-block;
  margin: 0 5px 0 10px;
  top: -1px;
  pointer-events: none;
}
.under main #topic_path li {
  color: var(--mcolor);
}
/*============ LIST ANCHOR LINK ============ */
.under main .list_anchor {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  width: 100%;
  margin-bottom: 30px;
}
.under main .list_anchor .btn {
  margin: 0 10px 15px
}
.under main .list_anchor:last-child {
  margin-bottom: -15px;
}
.under main .u_box {
  background-color: #FFF;
  padding: 76px 0;
  position: relative;
  z-index: 2;
  border-radius: 20px;
  overflow: hidden;
}
.under main .u_float_box {
  padding: 27px 2% 49px;
  background: url('../images/u_float_box_bg.jpg') repeat 10px 10px #f9f9fb;
}
.under main .u_3col {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 3.5%;
}
.under main .u_3col dl {
  border-radius: 20px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.under main .u_3col dl dt {
  padding: 2px 10px;
  background-color: #3A3A3A;
  text-align: center;
  color: #FFF;
  font-size: 26px;
  font-weight: bold;
  font-family: var(--f-zmg);
  letter-spacing: 0.06rem;
}
.under main .u_3col dl dd {
  padding: 34px 6.8% 44px;
  background-color: #F8F8DD;
  flex-grow: 1;
}
.under main .u_3col dl dd .tt {
  font-size: 28px;
  font-weight: bold;
  text-align: center;
  margin-bottom: 30px;
  line-height: 1.45;
}
.under main .u_2col {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 20px;
}
.under main .u_2col dl {
  border-radius: 20px;
  border: 1px solid #B9B9B9;
  background-color: #FFF;
  padding: 19px 10px 19px;
  text-align: center;
}
.under main .u_2col dl dt {
  font-size: 26px;
  font-family: var(--f-zmg);
  font-weight: bold;
  line-height: 1.4;
  margin-bottom: 11px;
}
.under main .u_2col dl dd {
  line-height: 1.65;
}
.under main .u_heading:not(:last-child) {
  margin-bottom: 59px;
}
.under main .u_heading {
  text-align: center;
}
.under main .sec_bnr {
  padding-top: 0;
}
.under main .u_subtt {
  position: relative;
  padding-left: 20px;
  display: inline-block;
}
.under main .u_subtt::before {
  content: "";
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: var(--mcolor);
  top: 13px;
  left: 0;
}
.under main .sec03_h3 {
  padding: 0 !important;
  border: 0 !important;
}
.under main .sec03_h3::before {
  display: none;
}
@media screen and (min-width: 751px) {
  .under main .u_box.cus {
    padding: 55px 0;
  }
  .under main .top_info_box {
    min-width: 840px;
    border-top-right-radius: 20px;
    padding: 30px 40px 31px 2.6%;
  }
  .under main .u_box:not(:last-child) {
    margin-bottom: 70px;
  }
  .under main .u_2col dl dt.row1 {
    min-height: 52px;
    padding-top: 8px;
  }
  .under main .sec_bnr {
    padding-top: 40px;
  }
}
/*==========================================================
                        T A B L E
==========================================================*/
.under main table.td_top td {
  vertical-align: top
}
.under main table.tb_fix {
  table-layout: fixed;
}
.under main table {
  margin-bottom: 30px;
}
.under main table.mailform th,
.under main table th {
  background: var(--mcolor);
  color: #fff;
  font-weight: 700;
  font-size: 18px;
}
.under main table.mailform th span {
  color: #fff
}
.under main table.mailform td .info {
  color: var(--mcolor)
}
.under main table td {
  border-color: var(--mcolor);
  background: #fff;
}
.under main table th,
.under main table td {
  padding: 15px;
}
.under main table img {
  display: block;
  margin: auto;
}
.under main table tr:not(:last-child) th {
  border-bottom-color: #fff;
}
.under main table tr th:first-child {
  border-left-color: var(--mcolor);
}
.under main table tr th:last-child {
  border-right-color: var(--mcolor);
}
.under main table.mailform th,
.under main table.tb_block th {
  border-color: var(--mcolor);
  border-bottom-color: #fff;
}
.under main table.mailform tr:first-child th,
.under main table.tb_block tr:first-child th {
  border-top-color: var(--mcolor);
}
.under main table.mailform tr:last-child th,
.under main table.tb_block tr:last-child th {
  border-bottom-color: var(--mcolor);
}
/*============ LIST ============ */
/* LIST 01 */
.under main .list01 {
  margin-bottom: 30px;
}
.under main .list01 li {
  display: block;
  padding-left: 18px;
  margin-bottom: 5px;
  position: relative
}
.under main .list01 li::before {
  background: var(--mcolor);
  width: 8px;
  height: 8px;
  position: absolute;
  top: 14px;
  left: 0;
  content: '';
  border-radius: 50%;
}
/* LIST 02 */
.under main .list02 {
  margin-bottom: 30px;
}
.under main .list02 li {
  counter-increment: li;
  padding-left: 30px;
  position: relative;
  margin-bottom: 10px;
}
.under main .list02 li::before {
  content: counter(li);
  position: absolute;
  width: 22px;
  height: 22px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  left: 0;
  top: 7px;
  background-color: var(--mcolor);
  font-size: 12px;
  font-weight: bold;
  color: #FFF;
  line-height: 22px;
}
/*============ FRAME ============ */
/* FRAME 01 */
.under main .frame01 {
  padding: 63px 5.7%;
  background: url('../images/u_float_box_bg.jpg') repeat 10px 10px #f9f9fb;
}
.under main .frame01:not(:last-child) {
  margin-bottom: 50px;
}
.under main .frame01 h3 {
  border-bottom: 0;
  padding-bottom: 0;
}
/* IFRAME BOX */
.under main .box_map {
  width: 100%;
  height: 400px
}
.under main .box_ytb {
  width: 900px;
  height: auto;
  margin: 0 auto;
  aspect-ratio: 16/9;
  max-width: 100%;
}
.under main .box_map iframe,
.under main .box_ytb iframe {
  width: 100%;
  height: 100%;
  border: none;
  outline: none;
}
/* ===========  PAGINATION ===========  */
.under main .pagination {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  text-align: center;
  margin: 30px auto 0
}
.under main .pagination li {
  margin: 0 10px
}
.under main .pagination li a {
  width: 40px;
  height: 40px;
  text-align: center;
  border: 1px solid var(--mcolor);
  background: #fff;
  display: flex;
  color: var(--mcolor);
  justify-content: center;
  align-items: center;
  border-radius: 5px;
}
.under main .pagination li:hover a,
.under main .pagination li.active a {
  background: var(--mcolor);
  color: #fff;
}
.under main .pagination li.active a {
  pointer-events: none;
}
.under main .pagination li.disabled {
  display: none
}
/* RESET */
.under main table:last-child,
.under main .list_faq:last-child,
.under main .list_faq dl:last-child,
.under main .list01:last-child,
.under main .list01 li:last-child,
.under main .list02:last-child,
.under main .list02 li:last-child,
.under main .list_check:last-child,
.under main .list_check li:last-child,
.under main .list_step:last-child,
.under main .list_step dl:last-child,
.under main section p:last-child,
.under main p:last-child,
.under main .frame01:last-child,
.under main .frame02:last-child,
.under main .frame_pick:last-child {
  margin-bottom: 0
}
.under main .sec05_desc {
  text-align: left;
}
/* OVN */
#news .news_container {
  container-name: post;
  container-type: inline-size;
}
#news .ovn_detail_list {
  container-name: post-content;
  container-type: inline-size;
}
#news .btn_anchor.active a {
  background: var(--scolor);
}
#news .box_bf_af dl {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
#news .box_bf_af dl p:not(.img) {
  text-align: center;
  font-weight: bold;
  background: var(--mcolor);
  color: #fff;
}
#news .box_bf_af dl .img {
  height: 300px;
  background: #d9d9d9;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 20px;
  overflow: hidden;
  margin-bottom: 15px;
}
#news .navigation .btn_ovn {
  display: flex;
  justify-content: center;
  gap: 40px;
}
#news .ovn_detail_list .img img {
  max-height: 400px;
}
#news .box_bf_af dl img {
  max-height: 100% !important;
  width: auto;
}
#news .news_list .img {
  height: 180px;
  display: flex;
  justify-content: center;
  align-items: center;
}
#news .news_list .title {
  text-overflow: ellipsis;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.under main .u_box:has(.ttl_full) {
  overflow: unset;
}


.news_box {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.news_box .img {
  background: #d9d9d9;
  border-radius: var(--bdr-sm);
  box-shadow: 0 3px 6px rgba(0, 0, 0, .16);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  max-height: 268px;
  height: 100%;
}
.news_box .img img {
  max-height: 268px !important;
}