/* =========================================================
   TOEFL 페이지 (toefl.php) — program.css 맨 아래에 붙여넣기
   모든 스타일은 .tf_page 안에서만 적용됩니다.
   ========================================================= */

.tf_page{
	--tf-teal:#1ea0ae;
	--tf-deep:#11616a;
	--tf-ink:#1f2d33;
	--tf-body:#53646a;
	--tf-line:#d6e3e6;
	--tf-pale:#f0f4f5;
	--tf-mark:#ffd447;
}
.tf_page *,.tf_page *::before,.tf_page *::after{box-sizing:border-box;}
.tf_page ul,.tf_page ol{list-style:none;margin:0;padding:0;}
.tf_page [class*="tf-"] :is(h3,h4,p){margin:0;}

/* ---------- 1. 개정 전후 비교표 ---------- */
.tf-compare{margin-top:60px;}
.tf-sub-tit{font-size:24px;font-weight:700;color:var(--tf-ink);margin-bottom:18px !important;}
.tf-compare table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden;}
.tf-compare th,.tf-compare td{padding:18px 24px;text-align:left;font-size:17px;line-height:1.5;word-break:keep-all;border-bottom:1px solid var(--tf-line);}
.tf-compare tbody tr:last-child th,.tf-compare tbody tr:last-child td{border-bottom:0;}
.tf-compare thead th{background:#e3ecee;color:var(--tf-ink);font-weight:700;font-size:16px;}
.tf-compare thead th.tf-new{background:var(--tf-teal);color:#fff;}
.tf-compare tbody th{width:18%;color:var(--tf-ink);font-weight:700;}
.tf-compare td{width:32%;color:var(--tf-body);font-weight:300;}
.tf-compare td.tf-new{width:50%;color:var(--tf-ink);font-weight:600;background:#f7fbfb;border-left:3px solid var(--tf-teal);}
.tf-note{margin-top:16px !important;font-size:15px;line-height:1.6;color:var(--tf-body);word-break:keep-all;}
.tf-note::before{content:'※ ';color:var(--tf-teal);font-weight:700;}

/* ---------- 2. 영역별 구성 ---------- */
.tf-sections{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:60px;}
.tf-sec{display:flex;flex-direction:column;background:#fff;border-radius:14px;border-top:4px solid var(--tf-teal);padding:30px 26px;}
.tf-sec-head{display:flex;align-items:center;gap:12px;}
.tf-sec-head i{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--tf-pale);color:var(--tf-teal);font-size:18px;}
.tf-sec-head h4{font-size:26px;font-weight:800;color:var(--tf-ink);letter-spacing:-0.02em;}
.tf-meta{margin-top:14px !important;font-size:15px;color:var(--tf-body);font-weight:500;}
.tf-meta em{display:inline-block;margin-left:6px;padding:2px 10px;border-radius:12px;background:var(--tf-teal);color:#fff;font-style:normal;font-size:13px;font-weight:700;}
.tf-types{margin:20px 0 22px !important;}
.tf-types li{position:relative;padding:9px 0 9px 16px;font-size:16px;font-weight:600;color:var(--tf-ink);border-bottom:1px dashed var(--tf-line);}
.tf-types li::before{content:'';position:absolute;left:0;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--tf-teal);}
.tf-how{margin-top:auto !important;padding:16px 18px;border-radius:10px;background:var(--tf-pale);font-size:15px;line-height:1.65;color:var(--tf-body);word-break:keep-all;}

/* ---------- 3. 목표 밴드 차트 ---------- */
.tf-band{background:var(--tf-deep);color:#fff;border-radius:20px;padding:64px 70px 50px;}
.tf-band-intro{max-width:760px;}
.tf-band-intro h3{font-size:38px;font-weight:800;line-height:1.3;letter-spacing:-0.02em;color:#fff;word-break:keep-all;}
.tf-band-intro p{margin-top:18px !important;font-size:18px;line-height:1.7;font-weight:300;color:rgba(255,255,255,.85);word-break:keep-all;}

.tf-chart{margin-top:50px;}
.tf-row{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:20px;margin-bottom:14px;}
.tf-row-name{font-size:16px;font-weight:700;color:#fff;}
.tf-axis-row{margin-bottom:22px;}
.tf-axis{position:relative;height:52px;margin:0 22px;border-bottom:2px solid rgba(255,255,255,.35);}
.tf-axis span{position:absolute;bottom:10px;transform:translateX(-50%);text-align:center;line-height:1.2;}
.tf-axis b{display:block;font-size:20px;font-weight:800;color:#fff;}
.tf-axis i{display:block;font-style:normal;font-size:13px;font-weight:600;color:var(--tf-mark);}

.tf-track{position:relative;height:44px;margin:0 22px;
	background-image:linear-gradient(to right,rgba(255,255,255,.14) 1px,transparent 1px);
	background-size:20% 100%;
	box-shadow:inset -1px 0 0 rgba(255,255,255,.14);}
.tf-bar{position:absolute;top:6px;bottom:6px;display:flex;align-items:center;justify-content:flex-end;border-radius:16px;background:var(--tf-teal);
	transform:scaleX(0);transform-origin:left center;transition:transform 1s cubic-bezier(.2,.7,.2,1);}
.tf-bar::before{content:'';position:absolute;left:0;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#fff;}
.tf-bar b{margin-right:-22px;padding:4px 10px;border-radius:12px;background:var(--tf-mark);color:var(--tf-ink);font-size:15px;font-weight:800;white-space:nowrap;}
.tf-bar-all{background:transparent;border:2px dashed rgba(255,255,255,.55);}
.tf-bar-all::before{display:none;}
.tf-bar-all b{margin-right:10px;}

.tf-band.aos-animate .tf-bar{transform:scaleX(1);}
.tf-band .tf-row:nth-child(3) .tf-bar{transition-delay:.15s;}
.tf-band .tf-row:nth-child(4) .tf-bar{transition-delay:.3s;}
.tf-band .tf-row:nth-child(5) .tf-bar{transition-delay:.45s;}

.tf-band-note{margin-top:30px !important;font-size:14px;line-height:1.6;color:rgba(255,255,255,.7);word-break:keep-all;}

/* ---------- 4. 과정 안내 ---------- */
.tf-courses{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:60px;}
.tf-course{background:#fff;border-radius:14px;padding:32px 28px;box-shadow:0 0 15px rgba(0,0,0,.08);}
.tf-target{display:inline-block;padding:5px 12px;border-radius:14px;background:var(--tf-mark);color:var(--tf-ink);font-size:14px;font-weight:800;}
.tf-course h4{margin-top:18px !important;font-size:24px;font-weight:800;color:var(--tf-teal);letter-spacing:-0.02em;}
.tf-for{margin-top:8px !important;font-size:16px;font-weight:600;color:var(--tf-ink);line-height:1.5;word-break:keep-all;}
.tf-course ul{margin-top:20px !important;padding-top:18px !important;border-top:1px solid var(--tf-line);}
.tf-course li{position:relative;padding-left:14px;margin-bottom:8px;font-size:16px;font-weight:300;line-height:1.5;color:var(--tf-body);word-break:keep-all;}
.tf-course li::before{content:'-';position:absolute;left:0;color:var(--tf-teal);font-weight:700;}
.tf-course-1on1{background:var(--tf-ink);}
.tf-course-1on1 h4{color:#fff;}
.tf-course-1on1 .tf-for{color:#fff;}
.tf-course-1on1 ul{border-top-color:rgba(255,255,255,.2);}
.tf-course-1on1 li{color:rgba(255,255,255,.8);}

/* ---------- 5. 강점 ---------- */
.tf-points{display:grid;grid-template-columns:repeat(2,1fr);gap:0 60px;margin-top:50px !important;}
.tf-points li{display:flex;gap:20px;align-items:flex-start;padding:30px 0;border-top:1px solid var(--tf-line);}
.tf-points i{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;background:var(--tf-teal);color:#fff;font-size:20px;}
.tf-points h4{font-size:22px;font-weight:700;color:var(--tf-ink);line-height:1.4;}
.tf-points p{margin-top:8px !important;font-size:17px;font-weight:300;line-height:1.6;color:var(--tf-body);word-break:keep-all;}

/* ---------- 6. 수강 절차 ---------- */
.tf-steps{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:60px !important;}
.tf-steps::before{content:'';position:absolute;top:26px;left:10%;right:10%;height:2px;background:var(--tf-line);}
.tf-steps li{position:relative;text-align:center;}
.tf-steps span{position:relative;display:flex;align-items:center;justify-content:center;width:52px;height:52px;margin:0 auto;border-radius:50%;background:var(--tf-teal);color:#fff;font-size:20px;font-weight:800;box-shadow:0 0 0 8px var(--tf-pale);}
.tf-steps h4{margin-top:20px !important;font-size:20px;font-weight:700;color:var(--tf-ink);}
.tf-steps p{margin-top:8px !important;font-size:15px;font-weight:300;line-height:1.5;color:var(--tf-body);word-break:keep-all;}

/* ---------- 7. FAQ ---------- */
.tf-faq{max-width:1000px;margin:50px auto 0;}
.tf-faq details{background:#fff;border-radius:12px;margin-bottom:12px;overflow:hidden;}
.tf-faq summary{position:relative;display:block;padding:24px 70px 24px 30px;font-size:19px;font-weight:600;color:var(--tf-ink);line-height:1.5;cursor:pointer;list-style:none;word-break:keep-all;}
.tf-faq summary::-webkit-details-marker{display:none;}
.tf-faq summary::before{content:'Q';margin-right:12px;color:var(--tf-teal);font-weight:800;}
.tf-faq summary::after{content:'+';position:absolute;right:30px;top:50%;transform:translateY(-50%);font-size:28px;font-weight:300;color:var(--tf-teal);transition:transform .2s;}
.tf-faq details[open] summary::after{transform:translateY(-50%) rotate(45deg);}
.tf-faq summary:focus-visible{outline:2px solid var(--tf-teal);outline-offset:-2px;}
.tf-faq details p{padding:0 30px 26px 56px;font-size:17px;font-weight:300;line-height:1.7;color:var(--tf-body);word-break:keep-all;}

/* ---------- 8. 상담 ---------- */
.tf-cta{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:50px 60px;border-radius:20px;background:var(--tf-teal);}
.tf-cta h3{font-size:30px;font-weight:800;color:#fff;line-height:1.35;word-break:keep-all;}
.tf-cta p{margin-top:10px !important;font-size:17px;color:rgba(255,255,255,.9);font-weight:300;}
.tf-cta-btns{display:flex;gap:12px;flex-shrink:0;}
.tf-btn{display:inline-flex;align-items:center;gap:10px;height:58px;padding:0 26px;border-radius:30px;font-size:17px;font-weight:700;white-space:nowrap;transition:transform .15s;}
.tf-btn:hover{transform:translateY(-2px);}
.tf-btn:focus-visible{outline:3px solid #fff;outline-offset:3px;}
.tf-btn-tel{background:#fff;color:var(--tf-deep) !important;}
.tf-btn-kakao{background:#fee500;color:#191919 !important;}

/* ---------- 태블릿 (750~1299px) ---------- */
@media (max-width:1299px){
	.tf-compare{margin-top:5vw;}
	.tf-sections,.tf-courses{grid-template-columns:repeat(2,1fr);margin-top:5vw;}
	.tf-band{padding:6vw 5vw 4vw;}
	.tf-band-intro h3{font-size:3.2vw;}
	.tf-band-intro p{font-size:1.7vw;}
	.tf-row{grid-template-columns:13vw 1fr;}
	.tf-points{gap:0 4vw;}
	.tf-cta{flex-direction:column;align-items:flex-start;padding:5vw;}
}

/* ---------- 모바일 (~750px) ---------- */
@media (max-width:750px){
	.tf-sub-tit{font-size:5vw;}

	/* 비교표를 카드형으로 */
	.tf-compare table,.tf-compare tbody,.tf-compare tr,.tf-compare th,.tf-compare td{display:block;width:100% !important;}
	.tf-compare thead{display:none;}
	.tf-compare tbody tr{padding:4vw;border-bottom:1px solid var(--tf-line);}
	.tf-compare tbody tr:last-child{border-bottom:0;}
	.tf-compare th,.tf-compare td{padding:0;border:0 !important;font-size:3.6vw;}
	.tf-compare tbody th{margin-bottom:2vw;font-size:4vw;color:var(--tf-teal);}
	.tf-compare td{display:grid;grid-template-columns:12vw 1fr;gap:2vw;margin-top:1.5vw;background:none !important;}
	.tf-compare td::before{content:attr(data-label);font-size:3.2vw;font-weight:700;color:var(--tf-body);}
	.tf-compare td.tf-new::before{color:var(--tf-teal);}
	.tf-note{font-size:3.2vw;}

	.tf-sections,.tf-courses{grid-template-columns:1fr;gap:4vw;margin-top:6vw;}
	.tf-sec,.tf-course{padding:6vw 5vw;}
	.tf-sec-head h4{font-size:6vw;}
	.tf-types li,.tf-for,.tf-course li{font-size:3.8vw;}
	.tf-meta,.tf-how{font-size:3.5vw;}
	.tf-course h4{font-size:5.5vw;}

	.tf-band{padding:9vw 5vw 7vw;border-radius:4vw;}
	.tf-band-intro h3{font-size:6vw;}
	.tf-band-intro p{font-size:3.6vw;}
	.tf-chart{margin-top:8vw;}
	.tf-row{grid-template-columns:1fr;gap:1.5vw;margin-bottom:3vw;}
	.tf-row-name{font-size:3.6vw;}
	.tf-axis-row{margin-bottom:4vw;}
	.tf-axis,.tf-track{margin:0 4vw;}
	.tf-axis b{font-size:3.6vw;}
	.tf-axis i{font-size:2.8vw;}
	.tf-track{height:9vw;}
	.tf-bar b{font-size:3.2vw;margin-right:-4vw;padding:0.8vw 2vw;}
	.tf-bar-all b{margin-right:2vw;}
	.tf-band-note{font-size:3vw;}

	.tf-points{grid-template-columns:1fr;margin-top:6vw !important;}
	.tf-points li{padding:5vw 0;gap:4vw;}
	.tf-points i{width:11vw;height:11vw;font-size:4.5vw;border-radius:3vw;}
	.tf-points h4{font-size:4.5vw;}
	.tf-points p{font-size:3.6vw;}

	.tf-steps{grid-template-columns:1fr;gap:0;margin-top:6vw !important;}
	.tf-steps::before{top:6vw;bottom:6vw;left:6vw;right:auto;width:2px;height:auto;}
	.tf-steps li{display:grid;grid-template-columns:12vw 1fr;grid-template-rows:auto auto;column-gap:4vw;text-align:left;padding:3vw 0;}
	.tf-steps span{grid-row:1 / 3;width:12vw;height:12vw;font-size:4.5vw;margin:0;box-shadow:0 0 0 2vw var(--tf-pale);}
	.tf-steps h4{margin-top:1vw !important;font-size:4.5vw;}
	.tf-steps p{margin-top:1vw !important;font-size:3.5vw;}

	.tf-faq{margin-top:6vw;}
	.tf-faq summary{padding:4.5vw 12vw 4.5vw 5vw;font-size:3.9vw;}
	.tf-faq summary::after{right:5vw;font-size:6vw;}
	.tf-faq details p{padding:0 5vw 5vw 10vw;font-size:3.6vw;}

	.tf-cta{padding:8vw 6vw;border-radius:4vw;}
	.tf-cta h3{font-size:5.5vw;}
	.tf-cta p{font-size:3.6vw;}
	.tf-cta-btns{flex-direction:column;width:100%;}
	.tf-btn{justify-content:center;width:100%;height:13vw;font-size:4vw;}
}

/* 움직임 줄이기 설정 존중 */
@media (prefers-reduced-motion:reduce){
	.tf-bar{transform:none;transition:none;}
	.tf-btn{transition:none;}
}
