.subpage_section {

}

.subpage_title_box {
    max-width: 1840px;
    width: 100%;
    height: 480px;
    border-radius: 30px;
    position: relative;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

.vision_title_box_bg {
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: -1;
    background-repeat: no-repeat;
    background-size: cover;
    background-position-x: center;
    border-radius: 30px;
}

.box_title {
    font-weight: 700;
    font-size: 40px;
    leading-trim: CAP_HEIGHT;
    line-height: 140%;
    text-align: center;
    vertical-align: middle;
    color: white;
}

.box_sub {
    font-weight: 300;
    font-size: 24px;
    line-height: 200%;
    text-align: center;
    vertical-align: middle;
}

.sub_bg_box {
    max-width: 1920px;
    width: 100%;
    /*height: 700px;*/
    background-image: url("/img/bg_sub_img.png");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    margin-top: 80px;
}

.sub_bg_box.program_2 {
    background-image: url("/img/bg_program_2.png");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    margin-top: revert;
    padding-top: 80px;
}

.sub_bg_box.program_3 {
    background-image: url("/img/bg_program_3.png");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    margin-top: revert;
    padding-top: 80px;
}

.sub_bg_box.program_4 {
    max-width: 1920px;
    width: 100%;
    min-height: 640px;
    background-image: url("/img/bg_program_4.png");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    margin-top: revert;
    align-content: center;
}

.sub_box {
    max-width: 1920px;
    width: 100%;
}

.sub_icon_box {
    max-width: 1760px;
    width: 100%;
    height: 720px;
}

.sub_content_text_box {
    display: flex;
    flex-direction: row;
    max-width: 960px;
    width: 100%;
    margin: 0 auto;
}

.marginTop80 {
    margin-top: 80px;
}

.sub_text_left {
    width: 240px;
    height: 240px;
}

.sub_text_right {
    width: 640px;
    height: 240px;
    display: flex;
    flex-direction: column;
}

.sub_text {
    font-weight: 600;
    font-size: 24px;
    line-height: 140%;
}

.sub_text_grey {
    font-weight: 400;
    font-size: 18px;
    line-height: 140%;
    color: #00000080;
}

.sub_text_small {
    font-weight: 400;
    font-size: 18px;
    line-height: 140%;
}

.sub_content_longImg {
    max-width: 960px;
    height: 320px;
    border-radius: 20px;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    margin: 0 auto 100px auto;
}

/* 레이아웃 기본값 덮어쓰기 */
.sub_icon_box{
    max-width: 1760px;
    width: 100%;
    margin: 140px auto 0 auto;
    height: auto;
    /*min-height: 720px;*/
    margin-bottom: 80px;
}

/* 회색 패널 */
.weare-panel{
    position: relative;
    margin: 84px auto 0 auto;
    background: linear-gradient(95.78deg, rgba(0, 1, 66, 0.07) 0%, rgba(0, 1, 66, 0.035) 100%);
    min-height: revert;
    min-height: 560px;
    align-items: center;
    justify-content: center;
}

/* 아이콘 카드 리스트 (패널 위로 반쯤) */
.vision-feature-list{
    display: flex;
    gap: 10px;
    list-style: none;
    margin: 0;
    padding: 0;
    justify-content: center;
    flex-wrap: wrap;
}
.vision-feature-list.over{
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: -140px;            /* <- “반쯤 걸치게” */
    width: 100%;
    max-width: 1200px;
    padding: 0 20px;
}

.vision-feature{ flex: 0 1 260px; display: flex; justify-content: center; }

.vf-card{
    background:#fff;
    box-shadow: 20px 20px 80px 0px #00000026;
    padding: 40px;
    display:flex; flex-direction:column; align-items:center; gap:16px;
    transition: transform .15s ease, box-shadow .15s ease;
    width: 225px;
    height: 280px;
    border-radius: 10px;
}
.vf-card:hover{ transform: translateY(-2px); box-shadow: 0 26px 70px rgba(0,0,0,.10), 0 4px 10px rgba(0,0,0,.06); }

.vf-ico{
    /*width: 92px; height: 92px; border-radius: 50%;*/
    /*background:#F4F5F7; display:inline-flex; align-items:center; justify-content:center;*/
    width: 132px;
    height: 132px;
    margin-bottom: auto;
}
.vf-ico img{
    width: 132px; height: 132px;
    object-fit: contain; display:block;
}
.vf-title{
    font-weight: 600;
    font-size: 24px;
    text-align: center;
}

/* WE ARE — SLOAN 텍스트 */
.weare-inner{ margin-top: 40px; text-align: left; }
.weare-heading{
    display:flex; align-items:center; gap: 22px;
    /*font-size: 34px; font-weight: 900; letter-spacing:.04em; color:#111; margin: 20px 0;*/
    font-weight: 700;
    font-size: 48px;
    line-height: 140%;
    /*text-align: right;*/
}
.weare-left{ white-space: nowrap; }
.weare-right{ white-space: nowrap; }
.weare-heading .accent{ color:#E6463A; }

.weare-divider{
    flex:1 1 auto; height: 2px; background:#111; display:inline-block;
    opacity:.85; border-radius: 2px;
    width: 500px;
}

.weare-desc{
    /*max-width: 760px; color:#444; font-size:16px; line-height:160%;*/
    font-weight: 400;
    font-size: 18px;
    line-height: 180%;
}

/* 반응형 */
@media (max-width: 1200px){
    .vision-feature{ flex: 0 1 240px; }
    .vf-card{ width: 240px; }
}
@media (max-width: 980px){
    .vision-feature-list.over{ position: static; transform:none; top:auto; margin-top: -84px; }
    .weare-panel{ padding-top: 84px; } /* 모바일에선 살짝만 겹치도록 */
    .weare-heading{ font-size:28px; gap:14px; }
}
@media (max-width: 560px){
    .vision-feature{ flex: 1 1 100%; }
    .vf-card{ width: 100%; }
    .weare-heading{ flex-direction:column; align-items:flex-start; }
    .weare-divider{ width:100%; }
}

@media (max-width: 1100px){
    .subpage_section {
        padding: 0 15px;
    }
}


.sub_history_wrapper {
    margin-top: 80px;
    margin-bottom: 120px;
    justify-self: center;
}

.sub_history_wrapper.program {
    max-width: 940px;
    width: 100%;
    margin-bottom: 0;
}

.sub_history_cont {
    display: flex;
    padding-bottom: 80px;
    position: relative;
}

.sub_history_wrapper.program .sub_history_desc {
    width: calc(100% - 90px);
}

.sub_history_icon {
    width: 86px;
}

.sub_history_year {
    position: relative;
    width: 200px;
    font-weight: 700;
    font-size: 40px;
    color: black;
    text-box-trim: trim-both;
}

.sub_history_year.events {
    position: relative;
    width: 320px;
    font-weight: 700;
    font-size: 40px;
    color: #0066DA;
    text-box-trim: trim-both;
    display: flex;
    flex-direction: column;
    margin-right: 40px;
}

.sub_history_year.trainings {
    position: relative;
    /*width: revert;*/
    font-weight: 600;
    font-size: 24px;
    color: #0066DA;
    text-box-trim: trim-both;
}

.sub_history_year span {
    position: absolute;
    top: -7px;
}

.sub_history_year.events span {
    position: relative;
    line-height: 140%;
}

.sub_history_year.trainings span {
    position: relative;
    line-height: 140%;
    top: 0;
}

.sub_history_year.events span.black {
    color: rgba(0, 0, 0, 1);
}

.sub_history_desc {
    font-weight: 400;
    font-size: 24px;
    display: flex;
    flex-direction: column;
    /*line-height: 56px;*/
    text-box-trim: trim-both;
    gap: 20px;
}

.sub_history_desc.events {
    width: 50%;
    font-weight: 400;
    font-size: 20px;
    display: flex;
    flex-direction: column;
    gap: 26px;
}

.sub_history_desc.trainings {
    width: 68.5%;
    font-weight: 400;
    font-size: 18px;
    display: flex;
    flex-direction: column;
    line-height: 150%;
}

.sub_history_cont:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 0px;
    bottom: 0px;
    left: 14px;
    right: 0;
    z-index: -1;
    border-left: 6px solid #00000033;
}

.sub_history_text_box {
    max-width: 640px;
    width: 100%;
    min-height: 80px;
    border: 1px solid #00000033;
    border-radius: 10px;
    padding: 30px;
    display: flex;
    background-color: white;
}

.sub_history_wrapper.program .sub_history_text_box {
    max-width: revert;
    width: 100%;
    justify-content: center;
}

.sub_history_wrapper.program .sub_history_text_box.grey {
    background-color: rgba(237, 237, 237, 1);
}

.sub_history_number {
    font-weight: 600;
    font-size: 24px;
    margin-right: 20px;
}

.sub_history_cont_text {
    font-weight: 400;
    font-size: 18px;
    line-height: 30px;
}


@media screen and (max-width: 840px) {
    .sub_history_year {
        font-size: 38px;
    }

    .sub_history_desc {
        font-size: 20px;
        /*line-height: 160%;*/
    }
}

@media screen and (max-width: 640px) {
    .sub_history_text_box {
        width: 80%;
        left: 30px;
        position: relative;
    }

    .sub_history_icon {
        width: 55px;
    }

    .sub_history_year {
        width: 116px;
        font-size: 30px;
    }

    .sub_history_desc {
        font-size: 16px;
        /*line-height: 160%;*/
    }

    .sub_history_year.events {
        width: revert;
        font-size: 20px;
        margin-right: 20px;
    }

    .sub_history_year.events span {
        top: 0;
    }

    .sub_history_desc.events {
        font-size: 16px;
        /*line-height: 160%;*/
    }
}

/*.team_box {*/
/*    background: linear-gradient(95.78deg, rgba(0, 1, 66, 0.035) 0%, rgba(0, 1, 66, 0.07) 100%), url("/img/bg_team_box.png");*/
/*    background-size: cover;*/
/*    background-repeat: no-repeat;*/
/*    background-position: center;*/
/*    width: 100%;*/
/*    min-height: 1200px;*/
/*}*/

/*.team_box{*/
/*    !* 그라데이션이 위, 이미지가 아래 (위에서부터 그려짐) *!*/
/*    background-image:*/
/*            linear-gradient(95.78deg, rgba(0, 1, 66, 0.035) 0%, rgba(0, 1, 66, 0.07) 100%),*/
/*            url("/img/bg_team_box.png");*/
/*    background-size: cover, cover;*/
/*    background-position: center, center;*/
/*    background-repeat: no-repeat, no-repeat;*/

/*    !* 핵심: 섞는 방식 *!*/
/*    background-blend-mode: soft-light;   !* overlay, screen, multiply 중 하나로 비교 *!*/
/*    width:100%;*/
/*    min-height:1200px;*/
/*}*/

/*.team_box{*/
/*    background-image:*/
/*            linear-gradient(95.78deg, rgba(255,255,255,.55) 0%, rgba(255,255,255,.20) 60%, rgba(255,255,255,0) 100%),*/
/*            url("/img/bg_team_box.png");*/
/*    background-size: cover, cover;*/
/*    background-position: center, center;*/
/*    background-repeat: no-repeat, no-repeat;*/
/*    background-blend-mode: normal; !* 또는 soft-light 로 더 자연스럽게 *!*/
/*}*/

.team_box{
    position: relative;
    overflow: hidden;
    min-height:1200px;
    background: linear-gradient(95.78deg, rgba(255,255,255,.45) 0%, rgba(255,255,255,.1) 100%); /* 상단 광원만 */
    margin-top: 80px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.team_box.port{
    /*min-height:1520px;*/
}

.team_box::before{
    content:"";
    position:absolute; inset:0;
    background: url("/img/bg_team_box.png") center/cover no-repeat;
    filter: brightness(1.06) contrast(0.98) saturate(0.96); /* 필요시 조정 */
    z-index:-1;
}

.team_title {
    font-weight: 700;
    font-size: 48px;
    margin-top: 80px;
}

/* --- TEAM 카드 레이아웃 --- */
.team_list {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;   /* 왼쪽부터 채우기 */
    align-content: flex-start;
    gap: 40px 60px;
    max-width: 1200px;
    width: 100%;
    margin: 60px auto 0;
    box-sizing: border-box;
}

/* 카드 크기 (PC 기준) */
.team_card {
    width: 300px;
    height: 400px;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 10px 30px rgba(0,0,0,.08);
    transition: transform .2s ease, box-shadow .2s ease;
    place-content: center;
}

.team_card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 60px rgba(0,0,0,.15);
}

/* 이미지 영역 */
.team_img {
    width: 100%;
    height: 75%;                   /* 카드의 약 300px 정도 */
    overflow: hidden;
    position: relative;
}
.team_img img {
    position: absolute;
    width: 100%;
    /*height: 100%;*/
    object-fit: cover;
    display: block;
    top: 0;
    left: 0;
    right: 0;
}

/* 텍스트 영역 */
.team_info {
    height: 25%;
    padding: 20px;
    text-align: left;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.team_name {
    font-weight: 600;
    font-size: 18px;
    color: #000;
    margin-bottom: 4px;
}
.team_position {
    font-size: 14px;
    color: rgba(0,0,0,.5);
    margin-top: 0;
}

/* 반응형 */
@media (max-width: 1030px) {
    .team_card {
        width: 45%;
        height: 360px;
    }
    /*.team_img { height: 70%; }*/
}
@media (max-width: 640px) {
    .team_card {
        width: 95%;
        max-width: 380px;
        height: 340px;
    }
    .team_list { justify-content: center; } /* 모바일은 가운데 */
}

.category_button_wrapper {
    display: flex;
    max-width: 1200px;
    width: 100%;
    margin: 80px auto 0;
    gap: 10px;
}

.category_button_wrapper.second {
    margin-top: 10px;
}

.category_button {
    min-width: 80px;
    height: 40px;
    border-radius: 2px;
    font-weight: 400;
    font-size: 14px;
    text-align: center;
    vertical-align: middle;
    color: rgba(0, 0, 0, 0.6);
    background: white;
    align-content: center;
    padding: 0 15px;
}

.category_button.active {
    font-weight: 600;
    font-size: 14px;
    text-align: center;
    vertical-align: middle;
    color: white;
    background: black;
}


#pagenation_area {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin: 100px auto;
}

.pagenation {
    gap: 10px;
}

.pagenation li {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    /*padding: 0 20px;*/
    font-weight: 400;
    font-size: 20px;
    width: 40px;
    height: 40px;
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: 2px;
    background-color: white;

}

.pagenation li:first-child,
.pagenation li:last-child {
   /*margin: 0 20px;*/
   background-color: white;
   color: rgba(0, 0, 0, 0.4);
}

.pagenation li:first-child a,
.pagenation li:last-child a {
   color: rgba(0,0,0,0.3);
}

.pagenation li.active {
    background-color: rgba(221, 54, 54, 1);
    color: white !important;
    font-weight: 600;
}

.pagenation li.active a {
    color: white !important;
}

.pagenation li.disabled {
    pointer-events: none;
    cursor: default;
}

.pagenation li.disabled a {
    color: rgba(0,0,0,0.1);
}

/* --- 포트폴리오 카드 전용 스타일 --- */
.portfolio_card {
  position: relative;
  display: flex;
  flex-direction: column;
  /*justify-content: space-between;*/
  padding: 20px;
  place-content: revert;
}

/* 상단 배지 */
.portfolio_badge {
  position: absolute;
  top: 16px;
  right: 16px;
  background: black;
  color: white;
  font-size: 13px;
  font-weight: 600;
  border-radius: 4px;
  padding: 4px 10px;
  z-index: 2;
}

.portfolio_img {
  width: 100%;
  height: 50%;
  overflow: hidden;
}

.portfolio_img img {
  width: 80%;
  height: 100%;
  object-fit: contain;
  display: block;
  place-self: center;
}

.portfolio_info {
  height: 50%;
  padding: 20px;
  text-align: left;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* “자세히 보기” 버튼 */
.portfolio_btn {
  display: inline-block;
  margin-top: 10px;
  font-size: 13px;
  font-weight: 500;
  text-align: center;
  color: rgba(0,0,0,0.6);
  background: rgba(0,0,0,0.05);
  border-radius: 6px;
  padding: 8px 0;
  width: 100%;
  transition: all .2s ease;
  text-decoration: none;
}
.portfolio_btn:hover {
  background: black;
  color: white;
}

/* 반응형 */
@media (max-width: 1030px) {
  .portfolio_card {
    width: 45%;
    height: 360px;
  }
}
@media (max-width: 640px) {
  .portfolio_card {
    width: 95%;
    max-width: 380px;
    height: 340px;
  }
}

/* ===== 포트폴리오 모달 ===== */
.pf-modal { position: fixed; inset: 0; z-index: 1000; display: none; }
.pf-modal.is-open { display: block; }

.pf-modal__overlay{
  position: absolute; inset: 0; background: rgba(0,0,0,.45);
  backdrop-filter: blur(2px);
}

.pf-modal__dialog{
  position: relative;
  width: min(960px, 92vw);
  max-height: 88vh;
  margin: 6vh auto 0;
  background: #fff;
  overflow: auto;
  box-shadow: 0 24px 80px rgba(0,0,0,.25);
  padding: 80px;
}

.pf-modal__close{
  float: right;
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 0; background: #f3f4f6; color:#222; cursor: pointer;
  margin: -8px -8px 0 0;
  font-size: 20px; line-height: 36px; text-align: center;
  position: fixed;
  display: block;
  justify-self: end;
}
.pf-modal__close:hover{ background:#e8e9ee; }

.pf-modal__header{ padding: 10px 6px 18px; }
.pf-breadcrumb{
  color: rgba(221, 54, 54, 1);
  margin-bottom: 30px;
  font-weight: 600;
  font-size: 24px;
  line-height: 140%;
}
.pf-title{
  font-weight: 600;
  font-size: 40px;
  line-height: 160%;
}
.pf-sub{
  font-weight: 400;
  font-size: 24px;
  line-height: 160%;
  color: rgba(0, 0, 0, 0.5);
  margin-bottom: 36px;
}

.pf-card{
  display: flex;
  background: #fff;
  border-radius: 10px;
  min-height: revert;
}
.pf-logo{
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  height: 380px;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 10px;
}
.pf-logo img{
  height: 73px;
  object-fit: contain;
  display:block;
}

.pf-info{
  display:grid;
  gap: 30px;
  align-content: start;
  margin-top: 80px;
  margin-bottom: 100px;
}
.pf-info dt{
  width: 240px;
  font-weight: 600;
  font-size: 24px;
  line-height: 32px;
}
.pf-info dd{
  margin: 0;
  font-weight: 400;
  font-size: 18px;
  line-height: 32px;
  width: calc(100% - 240px);
}
.pf-info > div{ display:flex;}

.pf-news{
  min-height: revert;
}
.pf-news h4{
  font-weight: 600;
  font-size: 24px;
  line-height: 32px;
  margin:0 0 10px;
  position:relative;
}
.pf-news h4::after{
  content:""; display:block; height:1px; background:#ddd; margin-top:10px;
}
.pf-news__list{ list-style:none; padding:0; margin:0; display:grid; gap:40px; margin-top: 10px;}
.pf-news__item{
  display: flex;
  gap:40px;
  border-radius:10px;
  background:#f8f9fb;
}
.pf-news__thumb{
  width:200px;
  height:160px;
  border-radius:8px;
  background:#e9ecf2;
}

.pf-news__meta {
  padding: 20px 0;
  width: 500px;
  height: 160px;
}
.pf-news__title{
  display:block;
  text-decoration:none;
  font-weight: 600;
  font-size: 20px;
  line-height: 150%;
}
.pf-news__cont{
  font-weight: 400;
  font-size: 18px;
  height: 64px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pf-news__title:hover{ text-decoration:underline; }
.pf-news__date{ font-size:12px; color:#8a8f98; margin-top:4px; }

/* 반응형 */
@media (max-width: 680px){
  .pf-card{ grid-template-columns: 1fr; }
  .pf-logo img{ width: 160px; }
}

.program_text_cont {
  width: 100%;
  max-width: 940px;
  margin: 0 auto;
}

.program_text_title {
  font-weight: 600;
  font-size: 24px;
  line-height: 160%;
  color: rgba(191, 51, 51, 1);
}

.program_text_sub {
  font-weight: 400;
  font-size: 24px;
  line-height: 160%;
}

.program_box_img_left {
  max-width: 1440px;
  width: 100%;
  height: 320px;
  background-repeat: no-repeat;
  background-size: cover;
  background-position-x: center;
  margin-top: 60px;
}

.program_box_img_right {
  max-width: 1440px;
  width: 100%;
  height: 320px;
  background-repeat: no-repeat;
  background-size: cover;
  background-position-x: center;
  margin-top: 60px;
  justify-self: self-end;
}

.program_bottom_text_wrapper {
    max-width: 940px;
    width: 100%;
    margin: auto;
    font-weight: 600;
    font-size: 40px;
    line-height: 140%;
    color: rgba(255, 255, 255, 1);
}

.news_card {
    place-content: revert;
}

.news_img {
    width: 100%;
    height: 70%;
    align-content: center;
}

.news_img img {
    width: 100%;
    height: 100%;
    object-fit: none;
}

.news_info {
    padding: 15px 20px 15px 20px;
}

.contact_text_wrapper {
    max-width: 960px;
    width: 100%;
    margin-top: 80px;
    margin-bottom: 80px;
    display: flex;
    flex-direction: column;
}

.contact_text_row {
    display: flex;
}

.contact_text_left {
    width: 160px;
    font-weight: 600;
    font-size: 24px;
    line-height: 50px;
}

.contact_text_right {
    font-weight: 400;
    font-size: 24px;
    line-height: 50px;
}

@media (max-width: 640px){
    .contact_text_left {
        width: 70px;
        font-size: 16px;
    }

    .contact_text_right {
        font-size: 16px;
    }
}

.contact_map {
    width: 100%;
    max-width: 960px;
    height: 600px;
}

.root_daum_roughmap .cont {
    display:none !important;
}

/* ===== 포트폴리오 모달 반응형 보완 ===== */

/* 태블릿 정도 (레이아웃 살짝 줄이기) */
@media (max-width: 1024px) {
    .pf-modal__dialog{
        width: 94vw;
        max-height: 90vh;
        margin: 40px auto;
        padding: 48px 32px;
    }

    .pf-card{
        flex-direction: column;
        gap: 24px;
    }

    .pf-logo{
        width: 100%;
        height: 260px;
        margin-right: 0;
    }

    .pf-info{
        margin-top: 24px;
        margin-bottom: 48px;
    }
}

/* 모바일 (풀스크린 느낌 / 텍스트 크기 축소) */
@media (max-width: 640px) {
    .pf-modal__dialog{
        width: 100vw;
        height: 100vh;
        max-height: none;
        margin: 0;
        padding: 24px 20px 32px;
        border-radius: 0;
    }

    /* 닫기 버튼은 고정 말고 모달 안쪽 오른쪽 상단에 */
    .pf-modal__close{
        position: absolute;
        top: 16px;
        right: 16px;
        margin: 0;
    }

    .pf-breadcrumb{
        font-size: 16px;
        margin-bottom: 16px;
    }
    .pf-title{
        font-size: 26px;
    }
    .pf-sub{
        font-size: 16px;
        margin-bottom: 20px;
    }

    .pf-card{
        flex-direction: column;
    }

    .pf-logo{
        width: 100%;
        height: 160px;
    }
    .pf-logo img{
        max-width: 70%;
        height: auto;
    }

    .pf-info{
        margin-top: 24px;
        margin-bottom: 32px;
        gap: 14px;
    }
    .pf-info > div{
        flex-direction: column;      /* 제목/내용 세로로 쌓기 */
    }
    .pf-info dt{
        width: 100%;
        font-size: 16px;
        line-height: 1.4;
        margin-bottom: 4px;
    }
    .pf-info dd{
        width: 100%;
        font-size: 14px;
        line-height: 1.6;
    }

    /* 뉴스 카드도 세로 정렬 */
    .pf-news__item{
        flex-direction: column;
        gap: 16px;
    }
    .pf-news__thumb{
        width: 100%;
        height: 160px;
    }
    .pf-news__meta{
        width: 100%;
        padding: 16px 16px 20px;
    }
    .pf-news__title{
        font-size: 16px;
    }
    .pf-news__cont{
        font-size: 14px;
    }
}
