#sub-wrap {
  margin-top: calc(var(--header-high-expanded) + 75px);
}

.sub-header {
  display: flex;
  align-items: center;
  background: linear-gradient(
          to right,
          rgba(255, 255, 255, 0.5) 0%,
          rgba(255, 255, 255, 1) 20%,
          rgba(255, 255, 255, 0.1) 100%
  ),
  var(--basic-pattern);

  height: 84px;
  padding: 0 var(--spacing-2xl);
  backdrop-filter: blur(14px);
  animation: refresh 1s forwards cubic-bezier(0.25, 0.99, 0.24, 1);
}

.sub-header:before,
.sub-header:after {
  content: '';
  position: absolute;
  left: 0;
  width: 100%;
  height: 4px;
  box-shadow: 0 0 1px rgba(0, 0, 0, 0.1);
  box-shadow: inset 0 0 0 1px var(--civic-gold);
}

.sub-header:before {
  top: 0;
}

.sub-header:after {
  bottom: 0;
}

.sub-header .sub-header-nav {
  display: flex;
  margin: 0 auto;
  width: 100%;
  max-width: 1792px;
  gap: var(--spacing-s);
}

.sub-header .sub-header-nav-item {
  font-weight: var(--semi-bold);
  color: var(--gray-400);
  font-size: var(--font-size-xl);
  display: block;
  max-height: 40px;
  overflow: hidden;
  animation: refresh 0.6s forwards cubic-bezier(0.25, 0.99, 0.24, 1);
  opacity: 0;
}

.sub-header .sub-header-nav-item.active {
  color: var(--gray-900);
}

.sub-header .sub-header-nav-item:nth-child(1) {animation-delay: 0.05s;}
.sub-header .sub-header-nav-item:nth-child(2) {animation-delay: 0.1s;}
.sub-header .sub-header-nav-item:nth-child(3) {animation-delay: 0.15s;}
.sub-header .sub-header-nav-item:nth-child(4) {animation-delay: 0.2s;}
.sub-header .sub-header-nav-item:nth-child(5) {animation-delay: 0.25s;}
.sub-header .sub-header-nav-item:nth-child(6) {animation-delay: 0.3s;}
/* 페이지 타이틀 */
.sub-hero-banner {
  position: absolute;
  width: 100%;
  background: linear-gradient(to bottom, rgba(165, 118, 56, 0), rgba(165, 118, 56, 1)),
  url('/site/basic/img/sub/img-banner-sub1.jpg') center center / 100% 100% no-repeat;
  background-size: 110%;
  background-position: top;
  top: -40px;
  left: 0;
  height: 540px;
  z-index: -1;
  animation: bg-img-scale 20s 0.3s forwards ease;
  /* filter: blur(5px); */
}
.sub-hero-banner:after {
  content: "";
  display: block;
  position: absolute;
  left: 0px;
  right: 0px;
  bottom: -100px;
  height: 60%;
  backdrop-filter: blur(40px);
  mask-image: linear-gradient(360deg, rgb(255 255 255) 30%, transparent 100%);

}

.sub-hero-text {
  width: 100%;
  height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  font-weight: var(--bold);
  font-size: var(--H6);
  letter-spacing: 12px;
  opacity: 0;
  animation: text-spacing-sub-tit 5s 0s forwards cubic-bezier(0.25, 0.99, 0.24, 1);  
}


.sub-main {
  margin: 0 auto;
  padding: 0 var(--spacing-ms);
  max-width: calc(1880px + (var(--spacing-ms) * 2));
  z-index: 0;
}

.sub-main .container {
  position: relative;
  margin: 0 auto;    
}

/* 서브 네비게이션 버블 */
.sub-actions {
  position: absolute;
  top: -20px;
  left: 0;
  display: flex;
  justify-content: space-between;
  padding: 0 var(--spacing-lm);
  width: 100%;
  max-width: 1880px;
  z-index: 10;
}

.sub-action-item {
  padding: 14px var(--spacing-ms);
  border-radius: var(--radius-2xl);
  border: 1px solid var(--white);
  backdrop-filter: blur(20px);
  background: rgba(255, 255, 255, 0.4);
  box-shadow: 0px 0px 40px 0px #0000001a;
}

.sub-actions-inner {
  display:flex;
  gap: var(--spacing-2xs);      
}

.sub-actions-inner .sub-action-item {
  padding:0;
  width:64px;
  height:48px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--spring-transition);
  opacity: 0;
  animation: refresh-r 2s forwards cubic-bezier(0.25, 0.99, 0.24, 1);
}
.sub-action-item img {
  width:24px;
  pointer-events: auto;
  transition: padding var(--spring-transition);
}
.sub-actions-inner .sub-action-item:hover {
  background: var(--main-bg-gradient);
  box-shadow: 0px 0px 40px 0px #00000054;
  transform: translateY(-4px);
}
.sub-actions-inner .sub-action-item:hover img {
  background: var(--white);
  border-radius: var(--radius-xs); 
  transform: scale(1.05);
  padding:2px;
}

.sub-breadcrumb {
  display: flex;
  align-items: center;
  padding: 14px var(--spacing-m);
  gap: var(--spacing-xs);
  z-index: 10;
  opacity: 0;
  animation: refresh-l 2s forwards cubic-bezier(0.25, 0.99, 0.24, 1);
}

.sub-breadcrumb .icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.sub-breadcrumb .spotlight-popup {
  left: var(--spacing-s);
}

.sub-breadcrumb-text {
  display: flex;
  align-items: center;
  width: fit-content;
  font-weight: var(--bold);
  font-size: var(--body-1);
  letter-spacing: -0.5px;
  color: var(--gray-400);
  transition: all var(--basic-transition);
}
/* .sub-breadcrumb-text span {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  width: fit-content;
  flex: 1 1 auto;
} */

.sub-breadcrumb-item {
  width: auto;
}

.sub-breadcrumb-item:last-child .sub-breadcrumb-text {
  color: var(--gray-900);
}

.sub-breadcrumb-text::before {
  content: '-';
  display: inline-block;
  width: 8px;
  color: var(--gray-400);
  margin-right: var(--spacing-xs);
}

.sub-breadcrumb-text::after {
  content: '';
  display: inline-block;
  width: 24px;
  height: 24px;
  margin-left: var(--spacing-xs);
  background: url('/site/basic/img/icons/icon-breadcrumb-arrow.svg') no-repeat center;
  transition: all var(--spring-transition);
}

.sub-breadcrumb-text.active {
  color: var(--gray-900);
}

.sub-breadcrumb-text.active::after {
  transform: rotate(180deg);
}

.sub-wrapper {
  position: relative;
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 152px;
  padding: var(--spacing-5xl) var(--spacing-lm);
  background: var(--white);
  border-radius: var(--radius-2xl);
  animation: refresh-bt 1s cubic-bezier(0.25, 0.99, 0.24, 1);
}

.sub-simbol {
  position: absolute;
  top: 323px;
  left: 29px;
  max-width: 381px;
  max-height: 387px;
  width: 100%;
  height: 100%;
  z-index: 0;
  animation: moveUpDown 2.3s ease-in-out infinite;
}

@keyframes moveUpDown {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-24px);
  }
  100% {
    transform: translateY(0);
  }
}

.sub-aside {
  z-index: 1;
}

.sub-aside .sub-aside-title {
  letter-spacing: -0.05em;
}

.sub-content .sub-aside-title {
  display: none;
}

.sub-aside-title {
  margin-bottom: var(--spacing-m);
  font-size: var(--H3);
  font-family: var(--font-secondary);
  color: var(--violet-900);
  font-weight:normal;
}

.sub-aside-list {
  padding: var(--spacing-ms) var(--spacing-m);
  border: 1px solid var(--bs-gray-100);
  border-radius: var(--radius-l);
  border: 1px solid var(--gray-100);
}

.sub-aside-item {
  display: flex;
  align-items: center;
  margin-bottom: var(--spacing-xs);
  gap: var(--spacing-2xs);
  font-size: var(--Subtitle-1);
  height: 32px;
}

.sub-aside-item:last-child {
  margin-bottom: 0;
}

.sub-aside-item.active {
  font-weight: var(--bold);
  color: var(--gray-900);
}

.sub-aside-item.active::before {
  content: '';
  display: inline-block;
  width: 24px;
  height: 24px;
  background: url('/site/basic/img/icons/icon-arrow_type1.svg') no-repeat center;
}

.sub-content {
  position: relative;
  padding-right: var(--spacing-lm);
}

.sub-page-title {
  margin-bottom: var(--spacing-m);
  font-size: var(--H4);
  color: var(--earth-500);
  font-family: var(--font-secondary);
  font-weight:normal;
}

.sub-tags {
  display: flex;
  gap: var(--spacing-xs);
  margin-bottom: var(--spacing-m);
}

.sub-tag {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 var(--spacing-xs);
  height: 40px;
  font-size: var(--body-1);
  border-radius: var(--radius-xs);
  background: var(--gray-100);
  color: var(--gray-400);
  font-weight: var(--bold);
}

.sub-tab-btn:not(.active) .sub-tag:hover {
  background: var(--gray-200);
  color: var(--gray-600);
}

.active .sub-tag {
  background: var(--violet-900);
  color: var(--white);
}

.sub-copy {
  color: var(--violet-900);
  font-size: var(--H2);
  font-weight: var(--bold);
  line-height: 1.4;
  letter-spacing: -0.5px;
}

/* 컨텐츠 섹션 */
.sub-content-inner {
  line-height: 1.6;
  letter-spacing: -0.5px;
  margin-top: var(--spacing-lm);
}

.sub1-5-1 .sub-content-inner,
.sub-content-inner.no-margin-top {
  margin-top: 0;
}

.sub-content-section:not(:first-child) {
  margin-top: var(--spacing-4xl);
}

.sub-content-bg {
  background-color: var(--gray-50);
  box-shadow: inset 0 0 0 2px var(--gray-100);
  border-radius: var(--radius-l);
}

.sub-content-filter {
  display: inline-flex;
  max-width: 100%;
  gap: var(--spacing-m);
  padding: var(--spacing-xs) var(--spacing-s);
  background: var(--violet-900);
  border-radius: var(--radius-s);
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.sub-content-filter::-webkit-scrollbar {
  display: none;
}

.sub-content-filter-item {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  padding: var(--spacing-xs);
  border-radius: var(--radius-xs);
  font-weight: var(--bold);
  font-size: var(--H6);
  height: 40px;
  line-height: 100%;
  letter-spacing: 0;
  color: var(--gray-400);
  cursor: pointer;
}

.sub-content-filter-item.active {
  background: var(--violet-500);
  color: var(--white);
}

/* 의원프로필 모달 */
.profile-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: rgba(30, 43, 55, 0.5);
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  z-index: 129;
  backdrop-filter: blur(4px);
  transition: var(--basic-transition);
}

.profile-modal {
  position: fixed;
  display: none;
  flex-direction: column;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: auto;
  max-width: 560px;
  /* max-height: 804px; */
  background: var(--white);
  border-radius: var(--radius-xl);
  z-index: 300;
  overflow-y: auto;
  filter: blur(5px);
}
.profile-modal.is-open {
  animation: profile-show 0.6s forwards cubic-bezier(0, 0.49, 0.25, 1);
}
.profile-modal.is-close {
  animation: profile-hide 0.6s forwards cubic-bezier(0, 0.49, 0.25, 1);
}
.profile-modal.is-open { display: flex !important; }
.profile-modal-overlay.is-open { opacity: 1; pointer-events: auto;}
.profile-modal-overlay.is-close {  opacity: 0; }

.profile-modal.history {
  max-height: 730px;
}

.profile-modal-tabs {
  display: flex;
  justify-content: center;
  gap: var(--spacing-xs);
  padding: var(--spacing-s) var(--spacing-m);
  background: linear-gradient(90deg, #fffefd 0%, #e1d8cd 63.5%, #ffffff 100%);
  position: sticky;
  top: 0;
  width: 100%;
  z-index: 10;
}

.profile-modal-tab {
  padding: 0 var(--spacing-xs);
  height: 32px;
  font-size: var(--body-2);
  font-weight: var(--bold);
  color: var(--gray-400);
  border-radius: var(--radius-xs);
  background: var(--white);
}

.profile-modal-tab:not(.active):hover {
  background: var(--gray-200);
  color: var(--gray-600);
}

.profile-modal-tab.active {
  color: var(--white);
  background: var(--earth-500);
}

.profile-modal-profile {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  gap: var(--spacing-lm);
  padding: var(--spacing-ml) var(--spacing-m);
  background: var(--white);
  background-image: url('/site/basic/img/sub/img-stripe.jpg');
  background-size: 640px 64px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  line-height: normal;
}

.member-profile-photo {
  display: flex;
  align-items: flex-end;
  max-width: 210px;
  width:100%;
  height: 293px;
  box-shadow: 10px 10px 40px rgba(0, 0, 0, 0.1);
  border-radius: 160px;
  overflow: hidden;
  background: var(--earth-500);
}

.member-profile.pp-red .member-profile-photo {
  background: var(--pp-red);
}

.member-profile.pp-blue .member-profile-photo {
  background: var(--pp-blue);
}

.member-profile.pp-yellow .member-profile-photo {
  background: var(--pp-yellow);
}

.member-profile-photo img {
  object-fit: cover;
}

.member-profile-info {
  flex: 1;
}

.member-profile-role {
  display: flex;
  width: fit-content;
  padding: var(--spacing-xs) var(--spacing-s);
  font-size: var(--body-2);
  font-weight: var(--bold);
  color: var(--peach);
  background: var(--gray-600);
  border-radius: var(--radius-s);
  margin-bottom: var(--spacing-xs);
  line-height: normal;
}

.member-profile-name {
  display: flex;
  align-items: center;
  gap: var(--spacing-xs);
  margin-bottom: var(--spacing-m);
}

.member-profile-name .name {
  font-size: var(--H4);
  font-weight: var(--bold);
  color: var(--gray-900);
}

.member-profile-name .hanja {
  font-size: var(--body-2);
  font-weight: var(--medium);
  color: var(--gray-400);
  letter-spacing: 0.05em;
}

.member-profile-details {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
}

.member-profile-row {
  display: flex;
  align-items: flex-start;
  gap: var(--spacing-xs);
  min-height: 22px;
}

.member-profile-label {
  display: flex;
  align-items: center;
  gap: var(--spacing-xs);
  min-width: 96px;
  font-size: var(--body-1);
  font-weight: var(--bold);
  color: var(--gray-600);
}

.member-profile-label:before {
  content: '';
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--earth-500);
}

.member-profile.pp-red .member-profile-label:before {
  background: var(--pp-red);
}

.member-profile.pp-blue .member-profile-label:before {
  background: var(--pp-blue);
}

.member-profile.pp-yellow .member-profile-label:before {
  background: var(--pp-yellow);
}

.member-profile-value {
  font-size: var(--body-1);
  font-weight: var(--medum);
  color: var(--gray-600);
  word-break: keep-all;
}

.profile-modal-contact {
  display: flex;
  flex-direction: column;
  margin-top: var(--spacing-m);
  gap: var(--spacing-xs);
}

.profile-modal-contact-item {
  display: flex;
  align-items: center;
  gap: var(--spacing-xs);
  font-size: var(--body-2);
  font-weight: var(--medium);
  color: var(--gray-600);
  line-height: 100%;
  letter-spacing: 0;
  text-decoration: none;
}

.profile-modal-icon {
  width: 24px;
  height: 24px;
}

.member-profile-attendance {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--spacing-s);
  padding: var(--spacing-s);
  background: var(--violet-900);
  border-radius: var(--radius-s);
  margin-top: var(--spacing-s);
}

.member-profile-attendance-label {
  font-size: var(--body-1);
  font-weight: var(--bold);
  color: var(--peach);
  line-height: 100%;
  letter-spacing: 0;
}

.member-profile-attendance-value {
  font-size: var(--H6);
  font-weight: var(--bold);
  color: var(--white);
}

.profile-modal-history:before {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  box-shadow: inset 0 0 0 1px var(--civic-gold);
}

.profile-modal-history {
  position: relative;
  padding: var(--spacing-m);
  padding-top: calc(var(--spacing-m) + 4px);
  background: var(--gray-50);
}

.profile-history::-webkit-scrollbar-thumb {
  background-color: var(--gray-400);
}

.profile-history {
  margin-top: var(--spacing-s);
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-height: 138px;
  overflow-y: scroll;
}

.profile-history-category {
  display: flex;
  gap: var(--spacing-xs);
}

.profile-history-category-title {
  min-width: 56px;
  font-size: var(--body-1);
  font-weight: var(--bold);
  color: var(--gray-900);
  line-height: 100%;
  letter-spacing: 0;
}

.profile-history-list {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
}

.profile-history-item {
  font-size: var(--body-2);
  font-weight: var(--medium);
  color: var(--gray-600);
  line-height: 160%;
}

.profile-modal-footer {
  position: sticky;
  bottom: 0;
  z-index: 2;
  background: var(--gray-200);
  display: flex;
  justify-content: center;
  gap: var(--spacing-xs);
  padding: 12px var(--spacing-s);
}
.profile-modal-footer:after {
  content:'';
  position: absolute;
  bottom:0;
  left:0;
  width:100%;
  height:100%;
  backdrop-filter: blur(20px);  
  background: linear-gradient(to top, rgba(255, 255, 255, 0.45) 50%, transparent 100%);
  mask-image: linear-gradient(to top, rgb(0, 0, 0) 30%, transparent 100%);
}
.profile-modal-footer .section-cta-link {
  position: relative;
  z-index: 1;
}

.profile-modal-btn:first-child .actions-text {
  width: 91px;
  justify-content: center;
}

.profile-modal-btn:last-child .actions-text {
  width: 80px;
  justify-content: center;
}

.sub-member-btns {
  display: flex;
  gap: var(--spacing-xs);
  margin-top: var(--spacing-m);
  padding: var(--spacing-xs);
  box-shadow: 0px 0px 0px 1px var(--gray-100);
  border-radius: var(--radius-s);
  background: var(--white);
}

.sub-member-btn {
  flex: 1;
  height: 40px;
  text-align: center;
  padding: var(--radius-xs);
  font-size: var(--body-1);
  font-weight: var(--bold);
  line-height: 100%;
  border-radius: var(--radius-xs);
  display: flex;
  align-items: center;
  justify-content: center;
}

.sub-member-btn.profile:hover {
  background: var(--violet-500);
  color: var(--white);
}

.sub-member-btn.profile {
  color: var(--violet-500);
}

.sub-member-btn.nuri:hover {
  background: var(--earth-500);
  color: var(--white);
}

.sub-member-btn.nuri {
  color: var(--earth-500);
}

/* 처리 절차 */

.bill-steps {
  padding-bottom: var(--spacing-ms);
}

.bill-steps ul.bullet-list > li {
  margin-left: 0;
}

.bill-step-bar {
  position: absolute;
  top: 0;
  left: 34px;
  width: 4px;
  height: 100%;
  background-color: var(--gray-100);
  z-index: 0;
}

.bill-step-container {
  display: flex;
  align-items: flex-start;
  gap: var(--spacing-m);
  margin-bottom: var(--spacing-2xl);
}

.bill-step-container:last-child {
  margin-bottom: 0;
}

.bill-step-content {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
  padding: var(--spacing-2xs) 0;
}

.bill-step-title {
  font-size: var(--H6);
  font-weight: var(--bold);
  line-height: 1.4;
}

.bill-step-header {
  padding: var(--spacing-xs) 0;
  flex-shrink: 0;
  background-color: var(--white);
  z-index: 1;
}

.bill-step-container:last-child .bill-step-header {
  align-self: stretch;
}

.bill-step-number {
  display: block;
  width: 100%;
  text-align: center;
  font-size: var(--font-size-s);
  font-weight: var(--bold);
  color: var(--earth-500);
  margin-bottom: var(--spacing-2xs);
}

.bill-step-icon {
  width: 72px;
  height: 72px;
}
