/* 서브 페이지 상단 bar */
.page-topbar {
  position: sticky;
  top: var(--safe-area-top);
  left: 0;
  z-index: 999;
  height: var(--header-height);
  background: #fff;
  display: flex;
  align-items: center;
}
.page-topbar__back {
  position: absolute;
  left: 2rem;
  top: 50%;
  transform: translateY(-50%);
  height: 1.8rem;
}
.page-topbar__back img {
  height: 100%;
}
.page-topbar h1 {
  text-align: center;
  width: 100%;
  font-size: 2.3rem;
  font-weight: 700;
}

/*********************
     sub 공통
*********************/
.list-wrap {
  width: 100%;
}
.list {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.list > li {
  position: relative;
}
.list .no-bg {
  padding: 0;
}
.list .list-cate {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 1rem;
  margin-bottom: 0.7rem;
}
.list .no-bg  .list-cate {
  margin-bottom: 0;
}
.list .list-cate span {
  aspect-ratio: 1 / 1;
  width: 3.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #FFF;
  color: var(--brand-color);
  border-radius: 50%;
  font-size: 1.3rem;
  font-weight: 700;
  flex-shrink: 0;
  box-shadow: 0px 2px 4px 0px #0000000D;
}
.list .list-cate span img {
    width: 50%;
    height: 50%;
    object-fit: contain;
    max-width: unset;
}
.list .list-cate p {
  font-size: 1.7rem;
  font-weight: 700;
  color: var(--brand-color);
  line-height: 1.4;
  margin: 0;
}

.list .list-con {
  position: relative;
  padding-left: 4.2rem;
  margin-bottom: 2.4rem;
}
.no-bg .list-con::before {
  display: none
}
.list > li:last-child .list-con {
  /* padding-bottom: 2rem; */
}
.list .list-con::before {
  content: '';
  position: absolute;
  top: 0;
  left: 1.5rem;
  height: 100%;
  width: 0.2rem;
  background: linear-gradient(180deg, #2D5A27 0%, #FDFBF7 100%);
}
.list .list-title {
  display: block;
  font-size: 1.5rem;
  font-weight: 700;
  color: #666;
  line-height: 1.4;
  margin-bottom: 1rem;
}
.list-data {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.list-data li {
  position: relative;
  padding-left: 1.2rem;
  font-size: 1.3rem;
  color: #8e8e8e;
  line-height: 1.7;
  font-weight: 400;
}
.list-data li::before {
  content: '';
  position: absolute;
  left: 0.2rem;
  top: 0.95rem;
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 50%;
  background: #3a3a3a;
}



/*********************
     비교 테이블 공통
*********************/
.sub-tbl_wrap + .sub-tbl_wrap {
  margin-top: 2.4rem;
}
.sub-tbl {
  width: 100%;
  background: #fff;
  border-radius: 1rem;
  box-shadow: 0px 4px 10px 0px #0000000D;
  overflow: hidden;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  margin-top: 1rem;
  border: 1px solid var(--brand-color);
}
.sub-tbl th,
.sub-tbl td {
  padding: 1.6rem 1.4rem;
  font-size: 1.35rem;
  line-height: 1.5;
  text-align: left;
  vertical-align: middle;
}
.sub-tbl th {
  width: 9.6rem;
  background: var(--brand-color);
  color: #fff;
  font-weight: 700;
  text-align: center;
  border-bottom: 1px solid #FDFBF7;
  white-space: nowrap;
  font-weight: 400;
}
.sub-tbl td {
  background: #fff;
  color: #333;
  border-top: 1px dotted var(--brand-color);
  font-weight: 700;
}
.sub-tbl tr:first-child td {
  border-top: 0;
}
.sub-tbl tr:last-child th {
  border-bottom: 0;
}
.sub-tbl thead td {
  text-align: center;
  font-size: 1.35rem;
  font-weight: 500;
  border-bottom: 1px dotted var(--brand-color);
}
.sub-tbl thead td:first-child {
  width: 9.6rem;
  background: var(--brand-color);
  color: #fff;
  border-bottom: 1px solid #FDFBF7;
}
.sub-tbl td ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.sub-tbl td li {
  position: relative;
  padding-left: 1.2rem;
  font-size: 1.35rem;
  line-height: 1.5;
  color: #333;
  font-weight: 600;
}
.sub-tbl td li::before {
  content: '';
  position: absolute;
  left: 0.2rem;
  top: 0.7rem;
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 50%;
  background: #3a3a3a;
}

/*********************
     아코디언 공통
*********************/
.accordion-list {
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: 1rem;
}

/* 개별 아코디언 아이템 영역 — 헤더/패널을 독립 카드로 띄우기 위해 flex column gap 처리 */
.accordion-item {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
/* 아코디언 탭 (클릭 영역 전체) — 자체 라운드 + 그림자 */
.accordion-header {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1rem;
  width: 100%;
  min-height: 5.6rem;
  padding: 1.4rem 1.8rem;
  background: #fff;
  border: 0;
  border-radius: 1.4rem;
  box-shadow: 0px 4px 10px 0px #0000000D;
  margin: 0;
  text-align: left;
  cursor: pointer;
  z-index: 1;
}

/* 탭 좌측 금지 아이콘 */
.accordion-header .icon-ban {
  width: 2.2rem;
  height: 2.2rem;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.accordion-header .icon-ban img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* 탭 중앙 제목 */
.accordion-header .title {
  flex: 1;
  font-size: 1.3rem;
  font-weight: 600;
  color: #333;
  line-height: 1.4;
  margin: 0;
  letter-spacing: 0;
}

/* 탭 우측 화살표 */
.accordion-header .icon-chev {
  width: 1rem;
  height: 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform 0.25s ease;
  transform: rotate(180deg);
}
.accordion-header .icon-chev img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.accordion-header.is-open .icon-chev {
  transform: rotate(0deg);
}

/* 펼쳐지는 내용 패널 영역 — 헤더와 분리된 자체 라운드 + 그림자 카드 */
.accordion-panel {
  display: none; /* jQuery slideDown 동작을 위해 초기 숨김 필수 */
  padding: 3rem 1.8rem 1.4rem;
  background: #fff;
  border-radius: 1.4rem;
  box-shadow: 0px 4px 10px 0px #0000000D;
  margin-top: -2rem;
}
.accordion-panel .panel-title {
  display: block;
  font-size: 1.3rem;
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.4;
  margin: 1.6rem 0 0.8rem;
}
.accordion-panel .panel-title:first-child {
  margin-top: 0;
}

.accordion-item-type2 .accordion-panel {
    /* display: flex; */
    justify-content: flex-start;
    align-items: flex-start;
    gap: 1rem;
    width: 100%;
}
.accordion-item-type2 .accordion-panel .icon {
    width: 2.2rem;
    height: 2.2rem;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.accordion-item-type2 .accordion-panel .list-data {
  display: inline-flex;
  flex: 1;
}
.accordion-item-type2 .accordion-panel .list-data li {
    padding-left: 0;
}
.accordion-item-type2 .accordion-panel .list-data li::before {
  display: none;
}

.accordion-item-type2 .accordion-panel.is-open {
  display: flex !important
}

/*************************
        하단 링크 공통
*************************/
.link-group {
  margin-top: 2rem;
}
.link-wrap {
  width: 100%;
  margin-top: 4rem;
}
.link-wrap a {
  display: flex;
  width: 100%;
  padding: 3rem 2rem;
  background: #fffae7;
  align-items: center;
  justify-content: space-between;
  border-radius: 1rem;
}
.link-wrap a .left {
}
.link-wrap a .left span {
  font-size: 1.5rem;
}
.link-wrap a .left h3 {
  font-size: 2rem;
  font-weight: 600;
  letter-spacing: 0.01rem;
  margin-top: 0.6rem;
}
.link-btn {
  display: grid;
  place-items: center;
  color: #fff;
  border-radius: 2rem;
  text-align: center;
  background: #fba31e;
  letter-spacing: 0.02px;
  font-size: 1rem;
  cursor: pointer;
  width: 5.5rem !important;
  height: 2.5rem;
  font-size: 1.2rem !important;
  font-weight: 500;
  padding: 0 !important;
  line-height: 2.5rem;
}

.sub-con.bb-con {
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--brand-color)
}

/* bank.php */
.bank-wrap .sub-tbl_con {
  overflow-x: scroll
}
.bank-wrap .sub-tbl {
  min-width: 42rem
}
.bank-wrap .sub-tbl thead td {
  vertical-align: middle;
}

.bank-wrap .sub-tbl td {
  vertical-align: baseline;
}

.bank-wrap .sub-tbl td:nth-child(2) {
  text-align: center;
  width: 12rem;
}

.sub-tbl_wrap > p {
  width: 100%;
  font-size: 1.5rem;
  color: #8e8e8e;
  font-weight: 400;
  margin-top: 2rem;
  text-align: center;
  line-height: 1.4;
}

/* document.php */
.document-wrap .sub-con li .cate {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
}
.document-wrap .sub-con li .cate .icon {
    width: 2rem;
    aspect-ratio: 36 / 43;
}
.document-wrap .sub-con li .cate span {
    font-size: 1.5rem;
    font-weight: 700;
    color: #333;
}
.document-wrap .sub-con li .desc {}
.document-wrap .sub-con li .desc p {
    font-size: 1.3rem;
    color: #8e8e8e;
    line-height: 1.7;
    font-weight: 400;
}

/* consult.php */
.consult-wrap .box .top {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
}
.consult-wrap .box .top .icon {
  height: 3.2rem;
  aspect-ratio: 7 / 6
}
.consult-wrap .box .top .icon img {
  height: 100%;
  object-fit: contain;
}
.consult-wrap .box:last-child .top .icon {
  aspect-ratio: 8.9 / 6;
}
.consult-wrap .box .top b {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--brand-color);
}
.consult-wrap .box .top span {
    font-size: 1.3rem;
    font-weight: 400;
    color: var(--brand-color);
}

.consult-wrap .list-con.desc {
  margin-bottom: 1.4rem
}


/* diagnosis.php */
.diagnosis-section.is-result .sub-header--center {
  justify-content: flex-start;
  min-height: unset;
}

/* .diagnosis-section.is-result .diagnosis-progress {
  display: none;
} */