/* ===============
   MAIN TOP 
   =============== */
.main_top {
  position: relative;
  overflow: hidden;
  height: 630px;
  background-color: #e0ede8;
}
.main_top .inner {
  display: flex;
  align-items: center;
  height: 100%;
}

.main_top_title {
  position: relative;
}
.main_top_bg {
  position: relative;
}
.main_top_bg img {
    filter: brightness(0) invert(1);
    opacity: 0.2;
    position: absolute;
    left: 203px;
    top: -61px;
}
.main_top_textbox {
  position: relative;
  color: #10611d;
}
.main_top_textbox .title {
  font-size: 44px;
  line-height: 50px;
  font-weight: bold;
}
.main_top_textbox .text {
    font-size: 26px;
    line-height: 36px;
    margin-top: 35px;
    background: none;
}
.main_top_content {
  position: absolute;
  left: 450px;
  z-index: 1;
  box-sizing: border-box;
  background-color: #cbdbd5;
  width: 1000px;
  padding: 20px;
  border-radius: 25px;
}
.control_box {
  display: flex;
  align-items: center;
  position: absolute;
  left: 18px;
  bottom: -58px;
  gap: 8px;
}
.btn_control {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 42px;
  border-radius: 999px;
  background: #ffffff82;
  backdrop-filter: blur(2px);
  border: 1px solid #e6e6e6;
  font-weight: 700;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  color: #5b5b5b;
}
.btn_control:is(:hover, :focus-visible) {
  outline: 2px solid #94c1ff;
}

.btn_control.is-pager {
  padding: 0 12px;
  min-width: auto;
  font-weight: 600;
}

.btn_control img {
  width: 50%;
}
.slide_content {
  display: flex;
  overflow: hidden;
  gap: 23px;
  width: 960px;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
}
.slide_content::-webkit-scrollbar {
  display: none;
}

.slide_item {
  flex: 0 0 301px;
  background-color: #ffffff;
  border-radius: 28px;
  position: relative;
  box-sizing: border-box;
  padding: 58px 36px 0px 29px;
  min-height: 425px;
  scroll-snap-align: start; /* 카드의 시작점에 맞춤 */
  transition: border .2s, box-shadow .2s;
}

/* 타이틀 위 불릿: 레이아웃 비영향(absolute) */
.slide_item .title {
  position: relative;
  display: inline-block;   /* 글자 폭만큼만 영역 */
  text-align: center;      /* 여러 줄일 때도 가운데 */
  margin: 0 auto;          /* 카드 중앙 정렬 */
}

/* 호버시 핀 아이콘: 타이틀 오른쪽 위 */
.slide_item:hover .title::after {
  content: '';
  position: absolute;
  top: -15px;                 /* 타이틀 기준 위로 조금 띄우기 */
  left: -9px;               /* 타이틀 글자 왼쪽 */
  width: 18px;
  height: 18px;
  background: url("/images/navigation-fill.svg") no-repeat center / contain;
  filter: none;               /* 기본: 원본 색상 */
}

/* ===== 색상 매핑: :has 로 불릿 색 + inset 5px 경계선 동시 적용 ===== */
.slide_item:hover:has(.content_list .bg_gray) {
  box-shadow: inset 0 0 0 5px #999;
}
.slide_item:hover:has(.content_list .bg_gray) .title::before {
  background: #999;
}

.slide_item:hover:has(.content_list .bg_green) {
  box-shadow: inset 0 0 0 5px #208BA6;
}
.slide_item:hover:has(.content_list .bg_green) .title::before {
  background: #208BA6;
}

.slide_item:hover:has(.content_list .bg_purple) {
  box-shadow: inset 0 0 0 5px #6f42c1;
}
.slide_item:hover:has(.content_list .bg_purple) .title::before {
  background: #6f42c1;
}

.slide_item:hover:has(.content_list .bg_primary_color) {
  box-shadow: inset 0 0 0 5px #3d8a58; /* 프로젝트 대표색 */
}
.slide_item:hover:has(.content_list .bg_primary_color) .title::before {
  background: #3d8a58;
}

/* ===== 색상 매핑: svg 색상을 필터로 보정 ===== */
.slide_item:hover:has(.content_list .bg_gray) .title::after {
  filter: invert(39%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(90%) contrast(90%);
}

.slide_item:hover:has(.content_list .bg_green) .title::after {
  filter: invert(33%) sepia(79%) saturate(394%) hue-rotate(154deg) brightness(90%) contrast(95%);
}

.slide_item:hover:has(.content_list .bg_purple) .title::after {
  filter: invert(29%) sepia(79%) saturate(553%) hue-rotate(250deg) brightness(90%) contrast(95%);
}

.slide_item:hover:has(.content_list .bg_primary_color) .title::after {
  filter: invert(22%) sepia(94%) saturate(645%) hue-rotate(85deg) brightness(90%) contrast(95%);
}

.slide_item .icon {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: -20px;
  left: -20px;
  width: 60px;
  height: 60px;
  overflow: hidden;
  border-radius: 100%;
  background-color: #eee;
  border: 1px solid #fff;
}
.slide_item .icon img {
  width: 50%;
}
.slide_item .title {
  font-size: 30px;
  font-weight: bold;
  padding-left: 4px;
}
.slide_item .text {
    color: #636363;
    margin-top: 15px;
    padding-left: 6px;
    font-size: 14px;
    letter-spacing: -0.05em;
    background: none;
}
.content_list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 34px;
}
.content_list a {
  display: block;
  position: relative;
  padding: 0px 20px 0 20px;
  text-align: center;
  color: #fff;
  font-size: 18px;
  line-height: 52px;
  border-radius: 100px;
}
.content_list a:hover {
  font-weight: 500;
}

/* 호버시 오른쪽  > 아이콘 */
.content_list a:hover::after {
  content: '';
  position: absolute;
  right: 20px;
  top: 50%;
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-top: 2px solid currentColor;
  transform: translateY(-50%) rotate(45deg); /* > 모양 */
}

/* ===============
   MAIN CENTER
   =============== */
.main_center {
  border-bottom: 1px solid #eee;
}
.main_center .inner {
  display: flex;
  gap: 20px;
  padding: 14px 0;
}

.main_center .board_list {
  width: auto;
  flex: 1 1 auto;
}

.notice_box {
  display: flex;
  align-items: center;
  border-radius: 30px;
  box-sizing: border-box;
  gap: 45px;
}
.icon_list {
  display: flex;
  padding: 20px 35px;
  align-items: center;
  justify-content: center;
  border-radius: 30px;
  /*box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.12);*/
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.icon_list:hover {
  transform: translateY(-7px);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
}
.icon_box {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  margin-bottom: 7px;
  background-color: #f7f7f7;
  transition: background-color 0.3s ease;
}
.notice_box div {
  text-align: center;
}
.notice_box div a {
  display: flex;
  flex-direction: column;
}

.notice_box div .txt {
  font-size: 18px;
  font-weight: 400;
}

.hopeCompany_box {
    border-radius: 18px;
    font-size: 26px;
    display: flex
;
    align-items: center;
    justify-content: center;
    margin: 0 85px;
    padding: 10px 57px;
    transition: transform 0.3s 
ease, box-shadow 0.3s 
ease;}
.hopeCompany_box:hover {
  background-color: rgba(0, 0, 0, 0.03);
}
.hopeCompany_box:hover div span {
  background: #f9f1ec;
}
.hopeCompany_box .inner {
  display: flex;
  justify-content: space-between;
  padding: 47px;
}
.hopeCompany_box div span {
  padding: 8px 32px;
  border-radius: 40px;
  overflow: hidden;
  display: inline-block;
  background: #fff;
  box-shadow: 0 0 17px 6px rgba(0, 0, 0, 0.09);
  font-size: 17px;
  margin-top: 10px;
}
.hopeCompany_text {
  display: flex;
  flex-direction: column;
  margin-right: 27px;
}
.hopeCompany_title {
  font-size: 22px;
  color: #493d34;
  font-weight: 500;
}
.hopeCompany_imgbox {
  padding: 10px;
  border-radius: 50%;
  background-color: #f7f7f7;
}

/* ===============
   MAIN BOTTOM 
   =============== */

.main_bottom {
  display: flex;
  padding: 40px 0 110px;
  background: #fbfbfb;
}
.main_bottom .inner {
  padding: 0;
}
.main_bottom_box {
  display: flex;
  justify-content: space-between;
  background-color: #f8f8f8;
  border-radius: 12px;
  gap: 32px;
  padding: 28px 28px 28px;
  background: transparent;
  border: none;
}
.list_tab_wrap {
  display: flex;
  align-items: center;
  gap: 6px;
  border-bottom: 2px solid #dde3ea;
}
.main_bottom .board_list {
    flex: 1 1 50%;
    background: #fff;
    border: 1px solid #dde3ea;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
    padding: 26px 18px 24px;
}

.main_bottom_title {
    font-size: 22px;
    color: #222;
    font-weight: 700;
    border-bottom: 2px solid #dde3ea;
    padding: 0 0 15px 11px;
    margin-bottom: 6px;
}

.main_bottom .list_box {
  position: relative;
  width: 100%;
  margin-top: 10px;
}
.main_bottom_list {
  display: none;
  /*background: #eee;*/
  overflow:hidden;
  text-overflow:ellipsis;
}
.on .main_bottom_list {
  display: block;
}
.main_bottom .main_bottom_list ul {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
}
.main_bottom .main_bottom_list li {
  border-bottom: 1px solid #eef1f5;
}
.main_bottom .main_bottom_list li:last-child {
  border-bottom: none;
}

.main_bottom .main_bottom_list li a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 2px;
  box-sizing: border-box;
  width: 100%;
  position: relative;
}

.main_bottom .main_bottom_list .badge {
  color: #fff;
  display: block;
  text-align: center;
  box-sizing: border-box;
  min-width: 72px;
  height: 26px;
  line-height: 26px;
  padding: 0 10px;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 700;
}

.main_bottom .main_bottom_list .title {
  font-weight: 400;
  font-size: 15px;
  color: #222; /* var(--gov-text) */
  width: auto;
  flex: 1 1 auto;
  -webkit-line-clamp: 1;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  width:100px;
  transition: font-weight 0.2s ease;
}

.main_bottom .main_bottom_list .title:hover {
  font-weight: 700;
}

.main_bottom .main_bottom_list .date_text,
.main_bottom .main_bottom_list .date_contract {
  font-size: 14px;
  color: #616a73;
  margin-left: auto;
}

/* 타입/배지 색감 (main_bottom 영역 한정) */
.main_bottom .icon_circle.bg_green, .badge-article{
  background-color: #3d8a58;
  color: #fff;
      padding: 1px 4px;
    border-radius: 4px;
}
.main_bottom .icon_circle.bg_red,.badge-service {
  background-color: #b24747;
  color: #fff;
      padding: 1px 4px;
    border-radius: 4px;
}
.main_bottom .icon_circle.bg_blue, .badge-construction {
  background-color: #3f5b9f;
  color: #fff;
      padding: 1px 4px;
    border-radius: 4px;
}
.main_bottom .badge.bg_green {
  background: #2b8a3e;
}
.main_bottom .badge.bg_purple {
  background: #566a9b;
}
.main_bottom .badge.bg_primary_color {
  background: #10611d;
}

.tab_btn {
  display: block;
  position: relative;
  width: auto;
  min-width: 98px;
  text-align: center;
  font-size: 20px;
  font-weight: 400;
  color: #222;
  padding: 8px 14px;
  border-radius: 8px 8px 0 0;
  transition: font-weight 0.2s ease;
}

.tab_btn:hover {
  font-weight: 500;
}

.tab_btn:not(.on):hover::before {
  content: "";
  position: absolute;
  top: -6px;              /* 버튼 위쪽 살짝 위 */
  left: 50%;              /* 가운데 정렬 */
  transform: translateX(-50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;     /* 원형 */
  background-color: #3d8a58; /* 불릿 색상 */
}

.tab_btn.on {
  font-size: 20px;
  font-weight: 500;
  color: #fff;
  background: #3d8a58;
  border: 1px solid #3d8a58;

}

.more {
    position: absolute;
    top: -40px;
    right: 10px;
    font-size: 16px;
}

.more:hover {
	font-weight: 500;
}

/* ===============
   FOOTER 
   =============== */
.count_box {
  display: flex;                /* flex로 변경 */
  justify-content: center;      /* 가로 중앙 */
  align-items: center;          /* 세로 중앙 */
  border: 1px solid #ccc;
  border-radius: 11px;
  width: 480px;
  box-sizing: border-box;
  padding: 6px 28px;
}

.count_list {
  display: flex;                /* flex 사용 */
  justify-content: space-between;
  width: 100%;
  gap: 20px;
}

.count_list li {
  display: flex;                /* 내부도 flex */
  align-items: center;          /* 아이콘/텍스트 세로 중앙 */
  justify-content: center;      /* li 안에서 중앙 */
  flex: 1;                      /* 동일한 폭 */
  height: 36px;
}

.count_list .icon {
  width: 36px;
  height: 36px;
  border-radius: 100px;
  margin-right: 10px;
}

.count_list .title {
  font-size: 14px;
  margin-right: 14px;
  color: white;
}

.count_list .title:after {
  content: "";
  display: inline-block;
  width: 1px;
  height: 15px;
  background: #ccc;
  margin-left: 12px;
  vertical-align: middle;
}

.count_list .num {
  font-size: 14px;
}
.today > .icon {
  display: inline-block;
  width: 28px;
  height: 28px;
  background: url(/images/today_icon.png) no-repeat center;
  background-size: contain;
  filter: brightness(0) invert(1); /* 검정 → 흰색 */
}

.total > .icon {
  display: inline-block;
  width: 30px;
  height: 30px;
  background: url(/images/total_icon.png) no-repeat center;
  background-size: contain;
  filter: brightness(0) invert(1);
}
.today > .num {
  color: #bfd9fa;
}
.total > .num {
  color: #a9c8d0;
}

/* Sub Page - Common */
.content_wrap {
  width: calc(100% - 250px);
  margin-left: 50px;
}
.content_header {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 24px;
  padding: 40px 0 20px;
  background-color: #0f4618;
}
.content_header h1 {
  display: flex;
  align-items: center;
  letter-spacing: -0.075em;
  color: #fff;
  font-size: 32px;
  font-weight: 500;
  text-align: left;
  margin: 0 0 10px 0;
}

.breadcrumb_list {
  display: flex;
}
.breadcrumb_dep {
  display: flex;
  align-items: center;
  font-weight: 400;
}
.breadcrumb_dep:after {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  background: url(/images/arrow-right-s-line.png) no-repeat center;
  background-size: contain;
  margin: 0 2px;

  filter: brightness(0) invert(1); /* 검정 → 흰색 */
}
.breadcrumb_dep:last-of-type:after {
  display: none;
}
.breadcrumb_dep a {
  color: #fff;
}

.content_util {
  display: flex;
}
.sns {
  position: relative;
  overflow: hidden;
}

.content_desc {
  margin: 20px 0px 40px 0px;
  padding: 8px;
  line-height: 1.5;
  color: #555;
  font-weight: 400;
  font-size: 16px;
  border-bottom: 1px solid #ccc;
}
.content_desc_box {
  margin-bottom: 20px;
}
.content_desc_box li {
  line-height: 1.5;
  color: #555;
  font-weight: 400;
  font-size: 16px;
}
.content_desc_box li.ess {
  color: #f00;
}

.contents {
  position: relative;
}

.attached_files {
  list-style: none;
  margin-top: 15px;
  margin-bottom: 4px;
}
.attached_files .attach_file {
  position: relative;
  display: inline-block;
  /* width: 24px; */
  height: 24px;
  padding: 0 4px;
  vertical-align: middle;
  display: flex;
  align-items: center;
  justify-content: center;
}
.attached_files span {
  display: inline-block;
  height: 24px;
  margin-right: 20px;
  padding: 0 0 0 30px;
  color: #666;
  line-height: 24px;
}
.attach_file img {
  width: 100%;
}

.contract_type_list {
  margin-bottom: 20px;
}
.contract_type_list ul {
  display: flex;
  border: 1px solid #eee;
  border-radius: 8px;
  overflow: hidden;
}
.contract_type_item {
  flex: 1;
  height: 50px;
  border-right: 1px solid #eee;
}
.contract_type_item:last-of-type {
  border-right: none;
}
.contract_type_item a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}
.contract_type_item.active {
  background-color: #0f4618;
}
.contract_type_item.active a {
  color: #fff;
  font-weight: bold;
}

/* Bid List */
.search_bid {
  display: flex;
  align-items: center;
  gap: 40px;
  padding-top: 10px;
  padding-bottom: 10px;
}
.search_bid .search_list {
  padding: 0;
  background-color: transparent;
}
.search_bid .table_top_info {
  margin: 0;
}
.bid_content {
  margin-top: 40px;
}
.bid_list {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* 기본값 */
.bid_list .bid_item .co-name {
	font-weight: 500;
	transition: font-weight .12s ease;
}

.bid_list .bid_item .bizno-wrap {
	font-weight: 400;
	transition: font-weight .12s ease;
	color: #454545;
}

.bid_list .bid_item .summary span {
	font-weight: 400;
	transition: font-weight .12s ease;
}

/* 호버 시: 업체명 700 */
.bid_list .bid_item:hover .co-name {
	font-weight: 700;
}

/* 호버 시: 사업자번호 600 */
.bid_list .bid_item:hover .bizno-wrap {
	color: #000;
}

/* 호버 시: 하단 요약 600 */
.bid_list .bid_item:hover .summary span {
	color: #000;
}

.bid_list .bid_item .bid_link {
  display: block;          /* 카드 전체를 차지하도록 */
  background: #fff;        /* 기본 흰 배경 */
  border-radius: 12px;     /* 살짝 둥글게 */
  transition: background-color .2s, box-shadow .2s;
  padding: 16px;           /* 내부 여백 */
  margin-bottom: 5px;
}

.bid_list .bid_item .bid_link:hover {
  background: #f6f6f6;     /* 연한 바탕색 (hover 시) */
  box-shadow: 0 2px 6px rgba(0,0,0,0.15); /* 살짝 그림자 효과 */
}

.bid_item a {
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
  padding-bottom: 24px;
  border-bottom: 1px solid #eee;
}
.bid_item_top {
  display: flex;
  align-items: center;
  gap: 8px;
}
.bid_badge {
  display: inline-flex;
  align-items: center;
  padding: 0 5px;
  height: 24px;
  color: #fff;
  font-size: 12px;
  font-weight: bold;
}

.bid_order {
  display: flex;
  align-items: center;
  gap: 4px;
  font-weight: bold;
}
.bid_subject {
  font-size: 18px;
  margin: 10px 0 10px;
}

.summary {
  display: flex;
  flex-wrap: wrap;
  margin-top: 20px;
}
/* 요약 아이템 */
.summary li{
  display:flex;
  gap:4px;
  font-size:13px;
  min-width:0;                 /* 긴 텍스트 안전 */
}
.summary li span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
/*.summary li:last-child {
  margin-top: 5px;
  width: 100%;
}*/

/* 하단: 왼쪽(내용) | 오른쪽(첨부) — 항상 같은 칼럼폭 */
.bid_bottom{
  margin-top:20px;
  display:grid;
  grid-template-columns: 1fr 140px;  /* ← 오른쪽 칼럼을 고정 폭(예: 140px) */
  column-gap:16px;
  align-items:center;
}

/* ★ bid_bottom 안의 summary는 항상 GRID로 고정 (전역 .summary에 지지 않도록) */
.bid_bottom > ul.summary{
  flex:unset;                 /* 혹시 남아있을 flex 값 무효화 */
  min-width:0;
  display:grid !important;    /* 전역 .summary(flex)보다 우선 */
  grid-template-columns:repeat(3, minmax(0,1fr));
  column-gap:18px;
  row-gap:8px;
  margin:0 !important;        /* 전역 margin-top 제거 */
  padding:0;
  list-style:none;
}

/* 아이템 & 텍스트 축약 */
.bid_bottom > ul.summary > li{
  display:flex;
  gap:4px;
  font-size:13px;
  min-width:0;
}
.bid_bottom > ul.summary > li span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.bid_title {
	font-size:18px;
	font-weight:600;
}

.bizno-wrap {
	font-size:13px;
	color:#666;
	font-weight:400;
}

/* 오른쪽: 첨부 버튼 칼럼(없으면 그리드가 자동으로 1열만 사용) */
.bid_bottom .bid_method{
  justify-self:end;           /* 항상 우측 끝 */
  white-space:nowrap;
  display:flex;
  align-items:center;
  color:#000057;
  font-weight:bold;
}

/* .bid_method가 비어도 칼럼 너비를 유지(placeholder) */
.bid_bottom .bid_method:empty::before{
  content:""; display:block; width:100%; height:1px; /* 폭만 예약 */
}

/* 버튼 기본값 리셋 + 링크처럼 보이게 */
.bid_method .attach-link{
  display:inline-flex;
  position:relative;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border:1px solid #e5e7eb;
  border-radius:8px;
  background:#fff;
  cursor:pointer;
  transition:background-color .2s, box-shadow .2s, border-color .2s;
  /* reset */
  font: inherit;
  color: inherit;
}

.bid_method .attach-link:hover{
  background:#f9fafb;
  outline: 2px solid #000057; /* 바깥선 강조 */
  outline-offset: 0;          /* 경계선 딱 붙게 */
  box-shadow:0 2px 6px rgba(0,0,0,.06);
}

.bid_method .attach-link:hover::after {
  content: attr(aria-label);   /* aria-label 속성값 출력 */
  position: absolute;
  top: 100%;                   /* 버튼 아래 */
  left: 50%;
  transform: translateX(-50%);
  margin-top: 6px;
  white-space: nowrap;
  background: rgba(0,0,0,0.8);
  color: #fff;
  font-size: 12px;
  padding: 4px 8px;
  border-radius: 4px;
  z-index: 10;
}

.bid_method .attach-text{ font-weight:600; font-size:13px; color:#111827; }
.bid_method .attach-count-badge{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:18px; height:18px; padding:0 6px; border-radius:9999px;
  background:#000057; color:#fff; font-size:11px; font-weight:700; line-height:1;
}

/* Detail */
.detail_content {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.detail_content h3 {
  margin-bottom: 24px;
  font-size: 24px;
  line-height: 24px;
  font-weight: 500;
  color: #000;
  letter-spacing: -0.075em;
  line-height: 120%;
}

/* Detail - Bid */
.detail_bid {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.bid_tab_list {
  display: flex;
  align-items: center;
  border: 1px solid #eee;
  border-radius: 8px;
  overflow: hidden;
}
.bid_tab_btn {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  height: 50px;
  font-size: 18px;
  color: #454545;
  font-weight: bold;
  border: 1px solid #eee;
}
.bid_tab_btn.on {
  background-color: #0f4618;
  color: #fff;
  border: none;
}
.bid_tab_btn.on:after {
  content: "";
}
.detail_bid_type {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 20px 15px;
  background: #eee;
  border-radius: 8px;
  justify-content: center;
}
.detail_bid_type span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 25px;
  color: #000;
  font-size: 18px;
}
.detail_bid_type span.on {
  background: #10a628;
  border-radius: 16px;
  color: #fff;
  font-weight: bold;
}
.detail_bid_subject {
  font-size: 24px;
  font-weight: bold;
  color: #454545;
}

/* 상세 제목 */
.detail_bid_subject h2{
  /* 폰트 크기는 현재 값 유지 */
  line-height: 1.3;          /* ← 겹침 제거 핵심 */
  white-space: normal;        /* 혹시 모를 nowrap 방지 */
  word-break: keep-all;       /* 한글 단어 단위 줄바꿈 */
  overflow-wrap: anywhere;    /* 긴 토큰도 강제 줄바꿈 허용 */
  margin: 0 0 16px;           /* 필요시 아래 여백 */
}

/* 마스킹 아이콘 줄 */
/* 부모 color를 따르는 굵은 마스킹 별 */
.maskbar{
	--w: 0.62em;   /* 아이콘 크기 */
	--b: 0.02em;   /* 두께감(겹침 오프셋) */

	display:inline-block;
	height:1em;
	width:calc(var(--n,5) * var(--w));

	/* 끝단 클리핑 방지용 여백 + 레이아웃 보정 */
	padding-inline: var(--b);
	margin-inline: calc(-1 * var(--b));

	color:inherit;
	background-color: currentColor;

	/* WebKit/Blink */
	-webkit-mask-image: url(/images/asterisk.svg), url(/images/asterisk.svg);
	-webkit-mask-repeat: repeat-x, repeat-x;
	-webkit-mask-size:   var(--w) var(--w), var(--w) var(--w);
	-webkit-mask-position: 0 50%, var(--b) 50%;

	/* 표준 */
	mask-image: url(/images/asterisk.svg), url(/images/asterisk.svg);
	mask-repeat: repeat-x, repeat-x;
	mask-size:   var(--w) var(--w), var(--w) var(--w);
	mask-position: 0 50%, var(--b) 50%;

	vertical-align:-0.06em;
	opacity:1;
}

/* ================= Minimal Modal Theme ================= */
/* 최상단에 추가 */
.is-hidden{ display: none !important; }

/* 백드롭이 클릭되게 z-index도 분리 */
.m-modal__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.45); z-index:0; }
.m-modal__dialog{ position:relative; z-index:1; }

:root{
  --m-bg: #fff;
  --m-fg: #1a1a1a;
  --m-dim: #6b7280;          /* 회색 텍스트 */
  --m-line: #e5e7eb;         /* 구분선 */
  --m-shadow: 0 10px 24px rgba(0,0,0,.18);
  --m-radius: 12px;
  --m-primary: #111;         /* 버튼 기본색(검정에 가까운) */
  --m-danger: #d32f2f;
}

.m-modal{
  position: fixed;      /* 화면 기준 고정 */
  inset: 0;             /* 전체 화면 덮기 */
  z-index: 10000;       /* 최상단 레이어 */
  display: none;
  align-items: center !important;
  justify-content: center !important;
  font-family: "Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",
               system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  letter-spacing: -.01em;
  color: var(--m-fg);
}

/* ② 열렸을 때만 flex로 중앙 정렬 */
.m-modal.is-open{ 
  display: flex;                 /* ← 이때만 보이게 */
}

/* ③ 백드롭/다이얼로그 z-index 분리(그대로 유지 OK) */
.m-modal__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.45); z-index:0; }
.m-modal__dialog{ position:relative; z-index:1; }

/* Dialog */
.m-modal__dialog{
  position: relative;
  margin: 0;                /* 위아래 여백 더 줌 */
  width: min(640px, 92vw);
  max-height: 86vh;
  background: var(--m-bg);
  border: 1px solid var(--m-line);
  border-radius: var(--m-radius);
  box-shadow: var(--m-shadow);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* Header */
.m-modal__header{
  display: flex;
  align-items: center;
  justify-content: center;          /* 가운데 정렬 */
  padding: 24px 28px;               /* 상하 좌우 패딩 ↑ */
  border-bottom: 1px solid var(--m-line);
}
.m-modal__title{
  margin: 0;
  font-size: 22px;                  /* 제목 폰트 ↑ */
  font-weight: 800;
  letter-spacing: -.01em;
  text-align: center;
}

/* Body */
.m-modal__body{
  padding: 28px 28px 32px;          /* 본문 패딩 ↑ */
  overflow: auto;
  font-size: 15px;                  /* 본문 폰트 조금 키움 */
  line-height: 1.75;                /* 행간 ↑ */
}
.m-modal__lead{
  margin: 0 0 30px;
  font-size: 14.5px;
}
.m-def{
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;                        /* 항목 간격 ↑ */
}
.m-def__row{
  display: grid;
  grid-template-columns: 90px 1fr;  /* 용어폭 조금 더 넓힘 */
  gap: 14px;
  padding: 14px 16px;               /* 내부 패딩 ↑ */
  border: 1px solid var(--m-line);
  border-radius: 12px;
  background: #fafafa;
}
.m-def__term{
  font-weight: 700;
  color: #374151;
  align-self: center;
}
.m-def__desc{
  margin: 0;
  color: var(--m-fg);
  align-self: center;
}
.m-modal__sub{
  margin: 22px 2px 0;               /* 위여백 ↑ */
  font-size: 14px;
  color: var(--m-dim);
}

/* Footer */
.m-modal__footer{
  display: flex;
  gap: 10px;                        /* 버튼 사이 여백 ↑ */
  justify-content: flex-end;
  padding: 16px 24px;               /* 패딩 ↑ */
  border-top: 1px solid var(--m-line);
  background: #fcfcfc;
}

/* 버튼 공통 */
.m-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 104px;                 /* 버튼 약간 더 넓힘 */
  height: 36px;                     /* 높이 ↑ */
  padding: 0 14px;                  /* 좌우 패딩 ↑ */
  font-size: 14px;                  /* 폰트 크기 ↑ */
  border-radius: 10px;              /* 라운드 ↑ */
  cursor: pointer;
  border: 1px solid transparent;
  box-shadow: none;
  transform: none;
  line-height: 1;
}

/* 고스트 버튼 */
.m-btn--ghost{
  background: #fff;
  border: 2px solid var(--m-line);
  color: var(--m-fg);
}
.m-btn--ghost:hover{
  background: var(--m-primary);
  color: #fff;
  border-color: var(--m-primary);
}

/* 프라이머리 버튼 */
.m-btn--primary{
  background: var(--m-primary);
  color: #fff;
  border: 1px solid var(--m-primary);
}
.m-btn--primary:hover{
  background: #fff;
  color: var(--m-primary);
  border: 2px solid var(--m-primary);
  outline: none;
}

/* Utility */
.m-text--danger{ color: var(--m-danger); }

/* 전역 hover 튀는 효과 제거 */
.m-modal button:hover,
.m-btn:hover{
  transform: none !important;
  transition: background-color .15s ease,
              color .15s ease,
              border-color .15s ease !important;
}


/* ================= Toast ================= */
.is-hidden { display:none !important; }
.is-open   { display:block !important; }

/* 컨테이너: 화면 우하단 고정, 바깥 클릭 통과 */
.m-toast{
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 10000;
  pointer-events: none;
}

/* 카드 */
.m-toast__panel{
  pointer-events: auto;
  width: min(480px, 94vw);
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
  padding: 20px 20px 16px;
  font-family: "Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",
               system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:#1a1a1a; letter-spacing:-.01em;
  animation: toast-in .25s ease-out;
}

/* 제목 */
.m-toast__title{
  display:block;
  font-size: 17px;
  font-weight: 800;
  margin: 0 0 12px;
}

/* 본문 리드 */
.m-toast__lead{
  margin: 0 0 14px;
  font-size: 14.5px;
  line-height: 1.65;
}

/* 정의 목록 */
.m-def{
  margin: 0 0 14px;
  padding: 0;
  display: grid;
  gap: 10px;
}
.m-def__row{
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fafafa;
}
.m-def__term{ font-weight: 700; color: #374151; align-self: center; }
.m-def__desc{ margin: 0; align-self: center; }

/* 사과 문구 */
.m-toast__sub{
  margin: 10px 2px 16px;
  font-size: 13px;
  color: #6b7280;
}

/* 버튼 영역 */
.m-toast__actions{
  display:flex;
  gap:8px;
  justify-content:flex-end;
}

/* 버튼 */
.m-btn{ 
  display:inline-flex; align-items:center; justify-content:center;
  min-width:96px; height:34px; padding:0 12px;
  font-size:13px; border-radius:8px;
  cursor:pointer; border:1px solid transparent;
}
.m-btn--ghost{ background:#fff; border:2px solid #e5e7eb; color:#1a1a1a; }
.m-btn--ghost:hover{ background:#111; color:#fff; border-color:#111; }
.m-btn--primary{ background:#111; color:#fff; border:1px solid #111; }
.m-btn--primary:hover{ background:#fff; color:#111; border:2px solid #111; }

.m-text--danger{ color:#d32f2f; }

/* 진입 애니메이션 */
@keyframes toast-in{
  from{ transform: translateY(10px); opacity:0; }
  to  { transform: translateY(0);   opacity:1; }
}


/* 300 - Light */
@font-face {
  font-family: 'Noto Sans KR';
  font-style: normal;
  font-weight: 300;
  src: url('../fonts/noto-sans-kr/NotoSansKR-Light.ttf') format('truetype');
  font-display: swap;
}

/* 400 - Regular */
@font-face {
  font-family: 'Noto Sans KR';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/noto-sans-kr/NotoSansKR-Regular.ttf') format('truetype');
  font-display: swap;
}

/* 500 - Medium */
@font-face {
  font-family: 'Noto Sans KR';
  font-style: normal;
  font-weight: 500;
  src: url('../fonts/noto-sans-kr/NotoSansKR-Medium.ttf') format('truetype');
  font-display: swap;
}

/* 600 - SemiBold */
@font-face {
  font-family: 'Noto Sans KR';
  font-style: normal;
  font-weight: 600;
  src: url('../fonts/noto-sans-kr/NotoSansKR-SemiBold.ttf') format('truetype');
  font-display: swap;
}

/* 700 - Bold */
@font-face {
  font-family: 'Noto Sans KR';
  font-style: normal;
  font-weight: 700;
  src: url('../fonts/noto-sans-kr/NotoSansKR-Bold.ttf') format('truetype');
  font-display: swap;
}

/* 800 - ExtraBold */
@font-face {
  font-family: 'Noto Sans KR';
  font-style: normal;
  font-weight: 800;
  src: url('../fonts/noto-sans-kr/NotoSansKR-ExtraBold.ttf') format('truetype');
  font-display: swap;
}