:root{--c-text-title:#222;--c-text-black:#111;--c-text-body:#666;--c-text-body2:#333;--c-orange:#ff9600;--c-brown:#94795f;--c-border:#d9d9d9;--c-green:#94dc86;--c-blue:#52aefb;--c-pink:#c8005f;}
/* ---------- 체크 항목 (개요 / 이수조건 공용) ---------- */
.check-list{display:flex;flex-direction:column;gap:30px;width:100%;}
.check-item{display:flex;flex-direction:column;gap:10px;width:100%;}
.check-item-head{display:flex;align-items:center;gap:15px;flex-wrap:wrap;}
.check-badge{width:32px;height:32px;border-radius:50%;background:var(--c-orange);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.check-badge::before{content:"";width:24px;height:24px;background:url(/_res/postech/csepostech/img/icon-check.png) no-repeat;background-size:cover;}
.check-item-head h3{ font-size:24px;font-weight:700;letter-spacing:-0.02em;color:var(--c-text-title); line-height:1.5; text-indent: -40px; padding-left: 40px}
.check-item-head h3::before{ content:"";display:inline-block;vertical-align:middle;width:24px;height:24px;margin-right:15px; background:url(/_res/postech/csepostech/img/icon-check.png) no-repeat; background-size:cover;}
.check-item-head h3 .accent{color:var(--c-orange);}
.check-item-body{padding:0 51px 0 48px;}
.mark-p:before {content: '*';position: absolute;top: -2px;left: 0;}

/* ---------- 범례 ---------- */
.legend-bar{ background: #fff;border: 1px solid var(--c-border); border-radius: 200px;padding: 13px 30px; width: fit-content;}
.legend-bar-inner {display: flex;gap: 30px;}
.legend-item{display:flex;align-items:center;gap:8px;}
.legend-dot{width:13px;height:13px;border-radius:50%;flex-shrink:0;}
.legend-dot.required{background:var(--c-orange);}
.legend-dot.elective{background:var(--c-green);}
.legend-dot.elective-required{background:var(--c-blue);}
.legend-dot.grad{background:var(--c-pink);}
.legend-dot.basic {background: var(--c-brown);}
.legend-item span{font-size:16px;font-weight:600;line-height:26px;color:var(--c-text-body2);white-space:nowrap;}

.faculty-wrap {display: grid;grid-template-columns: repeat(3, 1fr);gap: 13px;}
.faculty-wrap > li {border: 1px solid #dddddd;border-radius: 20px;padding: 36px 40px 39px;}
.faculty-wrap > li .top-box {display: flex;align-items: center;gap: 20px;padding-bottom: 25px;margin-bottom: 25px;border-bottom: 1px solid #dddddd;}
.faculty-wrap > li .top-box .images {width: 94px;height: 94px;border-radius: 50%;background: #fff4e5;text-align: center;align-content: center;flex: none;}
.faculty-wrap > li .top-box .txt-inner p:nth-child(1){color: #ff9600;font-size: 16px;line-height: 30px;font-weight: 700;margin-bottom: 2px;letter-spacing: -0.5px;}
.faculty-wrap > li .top-box .txt-inner p:nth-child(2){color: #333333;font-size: 22px;line-height: 30px;font-weight: 800;letter-spacing: -0.5px;}
/* ---------- 이수체계 박스 (이수조건 / 이수체계도 공용) ---------- */
.curriculum-grade-box{ width: 100%; height: 100%;border-radius: 20px;border: 1px solid #D9D9D9;padding: 50px 45px;margin-top: 30px;display: flex;justify-content: space-between; gap: 88px;}
.grade-column {position:relative; display:flex;flex-direction:column;align-items:flex-start; gap:30px;width:calc((100% - 44px) / 3);}
.grade-column:not(:first-child)::before{content:"";position:absolute;top:0;bottom:0;left:-44px;width:1px;background:#D9D9D9;}
.year-badge-wrap{display:flex;justify-content:center;}
.year-badge{background:var(--c-brown);color:#fff;font-size:18px;font-weight:600;letter-spacing:-0.02em;line-height:1.3;padding:5px 15px;border-radius:5px;white-space:nowrap;}
.course-list{display: flex; flex-direction: column; gap: 13px; width: 100%;}
.course-pill{display:flex;align-items:center;gap:10px;width:100%;padding:15px 26px;border-radius:100px;}
.course-pill span{font-size:16px;font-weight:600;line-height:1.6;letter-spacing:-0.02em;color:var(--c-text-title);}
.pill-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.course-pill.pill--elective{background:rgba(148,220,134,0.15);}
.course-pill.pill--elective .pill-dot{background:var(--c-green);}
.course-pill.pill--elective-required{background:rgba(82,174,251,0.1);}
.course-pill.pill--elective-required .pill-dot{background:var(--c-blue);}
.course-pill.pill--grad{background:rgba(200,0,95,0.05);}
.course-pill.pill--grad .pill-dot{background:var(--c-pink);}

.curriculum-box img{width: 100%;height: 100%;background-size: cover;touch-action:pinch-zoom;}
/* ---------- 탭 (이수체계도) ---------- */
.curriculum-tab-wrap{width:100%;display:flex;flex-direction:column;gap:30px;}
.curriculum-tab-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px;}
.curriculum-tab-btn ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0;}
.curriculum-tab-btn ul li a{display:flex;align-items:center;justify-content:center;height:48px;padding:8px 30px;border-radius:24px;background:#f3f3f3;color:var(--c-text-body);font-size:16px;font-weight:600;line-height:26px;text-decoration:none;white-space:nowrap;}
.curriculum-tab-btn ul li.active a{background:#FF9600;color:#fff;}
.curriculum-tab-select{display:none;}
.curriculum-tab-cont{    width: 100%; display: block; border-radius: 20px;border: 1px solid #D9D9D9; padding: 60px;}


/* ---------- 연구 분야 ---------- */
.research-row{display:flex;align-items:center;gap:40px;padding:28px 50px 28px 32px;}
.research-num-title{display:flex;align-items:center;gap:30px;}
.research-dot{width:6px;height:6px;border-radius:50%;background:#77593b; flex-shrink:0;  }
.research-title{font-size:18px;font-weight:700;line-height:1.4;letter-spacing:-0.02em;color:#5d3a17;width:210px; flex-shrink:0;  }
.research-desc{font-size:16px;font-weight:500;line-height:1.6;letter-spacing:-0.02em;color:var(--c-text-body2);}
.research-row + .research-row { border-top: 1px solid #E5E5E5;}
.research-list {border-top: 1px solid #94795F;border-bottom: 1px solid #94795F;}
.faculty-wrap > li .top-box .images img { width: 100%;  height: 100%; object-fit: cover;}



/* ---------- 향후 진로 ---------- */
.career-grid{display:flex;gap:13px;flex-wrap:wrap;width:100%;}
.career-card{flex:1 1 380px;min-width:300px;display:flex;flex-direction:column;gap:25px;border:1px solid var(--c-border);border-radius:20px;padding:40px;}
.career-head{display:flex;align-items:center;gap:20px;}
.career-icon{width:100px;height:100px;border-radius:50%;flex-shrink:0;}
.career-head-text{display:flex;flex-direction:column;gap:5px;}
.career-head-text .en{font-size:16px;font-weight:700;line-height:1.3;letter-spacing:-0.04em;color:var(--c-orange);}
.career-head-text .kr{font-size:22px;font-weight:700;line-height:1.3;letter-spacing:-0.04em;color:var(--c-text-black);}
.career-divider{height:1px;background:var(--c-border);width:100%;}
.career-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.career-list li{display:flex;align-items:center;gap:10px;}
.career-dot-wrap{width:5px;height:27px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.career-dot-wrap span{width:5px;height:5px;border-radius:50%;background:var(--c-orange);display:block;}
.career-list p{margin:0;font-size:16px;font-weight:600;line-height:1.6;letter-spacing:-0.02em;color:var(--c-text-body);}
.curriculum-tab-select{display:none;position:relative;}
.curriculum-tab-select-btn{ width: 100%;height: 49px; border-radius: 24px; color: #fff; font-size: 15px;font-weight: 600;text-align: left; position: relative; cursor: pointer;}
.curriculum-tab-select-btn::after{ content:"";position:absolute;right:20px;top:50%;width:8px;height:8px; border-right:2px solid #fff;border-bottom:2px solid #fff; transform:translateY(-70%) rotate(45deg);}
.curriculum-tab-select.open .curriculum-tab-select-btn::after{transform:translateY(-30%) rotate(-135deg);}
.curriculum-tab-select-list{overflow:hidden;position:absolute;top:calc(100% + 8px);left:0;right:0;width:100%;max-height:0;padding:0 23px;border:1px solid #555;border-radius:10px;background:#fff;opacity:0;transform:translateY(-8px);box-shadow:0 8px 20px rgba(0,0,0,0.08);transition:max-height 0.3s cubic-bezier(0.4,0,0.2,1),opacity 0.3s cubic-bezier(0.4,0,0.2,1),transform 0.3s cubic-bezier(0.4,0,0.2,1),padding 0.3s cubic-bezier(0.4,0,0.2,1);pointer-events:none;z-index:10;}
.curriculum-tab-select.open .curriculum-tab-select-list{max-height:300px;padding:20px 23px;opacity:1;transform:translateY(0);pointer-events:auto;}.curriculum-tab-select-list li a{ display: block; font-weight: 500;text-decoration: none; font-size: 16px; color: #666666;}
.curriculum-tab-select-list li a:hover,
.curriculum-tab-select-list li.active a{ color: #ff9600; font-weight: 700;text-decoration: underline;}
.curriculum-tab-select-list li { padding: 8px 0;font-size: 16px;}
.project_select_list{display:block;overflow:hidden;position:absolute;top:calc(100% + 8px);left:0;width:100%;max-height:0;opacity:0;transform:translateY(-8px);transition:max-height 0.3s cubic-bezier(0.4,0,0.2,1),opacity 0.3s cubic-bezier(0.4,0,0.2,1),transform 0.3s cubic-bezier(0.4,0,0.2,1);pointer-events:none;}
.project_select_list.is_open{max-height:300px;opacity:1;transform:translateY(0);pointer-events:auto;}

.curriculum-box{position:relative;}
.curriculum-box .zoom-in{
  display:none;
  position:absolute;
  right:16px;
  bottom:16px;
  width:44px;
  height:44px;
  border-radius:50%;
  background:rgba(0,0,0,0.6);
  align-items:center;
  justify-content:center;
  z-index:5;
}
.curriculum-box .zoom-in svg{width:22px;height:22px;}
span.legend-dot.other { background: #616161;}


@media (max-width:1024px){
.check-badge { width: 24px;height: 24px;}
.check-item-head h3 {font-size: 18px;}
.check-item-body {padding: 0;}
.faculty-wrap{display: block; }	
.faculty-wrap > li + li {margin-top: 15px;}	
.faculty-wrap > li {padding: 25px 20px;}
.faculty-wrap > li .top-box .images { width: 60px; height: 60px;}
.faculty-wrap > li .top-box .txt-inner p:nth-child(1) { font-size: 14px;}
.faculty-wrap > li .top-box .txt-inner p:nth-child(2) { font-size: 20px;}
.faculty-wrap > li .top-box { margin-bottom: 15px; padding-bottom: 15px;}
.curriculum-grade-box {padding: 30px 25px; display: flex;flex-direction: column;}
.grade-column { width: 100%;gap: 20px;}
.course-pill span {font-size: 14px;}
.pill-dot { width: 6px; height: 6px;}
.course-pill { padding: 12px 20px;}
.curriculum-grade-box {  gap: 45px;}
.year-badge {font-size: 14px;}
.research-row { padding: 15px; display: flex;flex-direction: column;align-items: flex-start; gap: 10px;}
.research-title {font-size: 16px;}
.research-desc {font-size: 14px;}
.h4-tit01 { font-size: 30px;  margin-bottom: 20px;}
.legend-bar{width:100%;max-width:100%;border-radius:16px;padding:15px 20px;}
.legend-bar-inner{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 20px;}
.legend-item{flex-shrink:unset;}
.research-title {width: 100%;}	
.research-title br { display: none;width: 100%;}
.research-num-title { gap: 10px;}	
.legend-dot {width: 8px; height: 8px;}	
.legend-item span { font-size: 15px;}
.curriculum-tab-cont {  padding: 20px;}
.check-list {gap: 15px;}	
.curriculum-tab-btn ul{display:none;}
.curriculum-tab-select{ width: 100%; height: 48px; padding: 0 5px 0 20px;border-radius: 24px; border: 1px solid #ff9600;background: #ff9600; color: #fff;font-size: 15px;font-weight: 600;}
.curriculum-tab-top{flex-direction:column;align-items:stretch;}
.curriculum-tab-btn ul{display:none;}
.curriculum-tab-select{display:block;}
.curriculum-tab-top{flex-direction:column;align-items:stretch;}	
.curriculum-box{overflow:visible;}
 .curriculum-box .zoom-in{display:flex;}	
	
}