:root { --navy: #062b43; }
* { box-sizing: border-box; }
body { margin: 0; font-family: 'Noto Sans KR', sans-serif; color: #f7fbfc; background: var(--navy); }
header { min-height: 74px; padding: 16px 6vw; display: flex; justify-content: space-between; align-items: center; gap: 18px; background: var(--navy); }
header a { color: #fff; text-decoration: none; font: 11px 'DM Mono', monospace; letter-spacing: 1px; }
header a:hover, .source-link:hover { text-decoration: underline; }
main {
  min-height: calc(100vh - 130px);
  padding: clamp(72px, 10vw, 150px) max(7vw, calc((100vw - 1160px) / 2));
  background-color: #0c4661;
  background-image: radial-gradient(circle at 85% 0%, #297d94, #0c506e 52%, #07334f);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
#category, small { font: 11px 'DM Mono', monospace; letter-spacing: 1.5px; color: #c5e1eb; }
h1 { max-width: 950px; margin: 23px 0 16px; font: 500 clamp(46px, 7.5vw, 105px)/.98 'Playfair Display', serif; letter-spacing: -.035em; overflow-wrap: anywhere; }
#tagline { margin: 0 0 clamp(42px, 6vw, 78px); font-size: 17px; line-height: 1.7; color: #eaf4f7; }
section { max-width: 1050px; display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); border: 1px solid rgba(226, 244, 251, .75); background: rgba(2, 36, 54, .67); }
.has-course-photo section {
  background-image: linear-gradient(90deg, rgba(2, 25, 40, .53), rgba(2, 25, 40, .63)), var(--course-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  text-shadow: 0 1px 4px rgba(0, 12, 22, .65);
}
section > div { min-width: 0; padding: 26px 29px 30px; }
section > div + div { border-left: 1px solid rgba(226, 244, 251, .5); }
#curriculum { margin: 22px 0 0; padding: 0; list-style: none; }
#curriculum li { position: relative; margin: 0 0 13px; padding-left: 18px; font-size: 15px; line-height: 1.65; word-break: keep-all; }
#curriculum li::before { content: '·'; position: absolute; left: 1px; color: #d3ecf3; }
strong { display: block; margin: 17px 0; font-size: clamp(24px, 3vw, 32px); }
#note { margin: 0; color: #d9eaf0; font-size: 13px; line-height: 1.8; }
#note span { display: block; }
.program-consult-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.program-consult-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 20px; text-decoration: none; font-size: 14px; font-weight: 600; }
.program-kakao { background: #fee500; color: #191600; }
.program-phone { border: 1px solid #eaf4f7; color: #fff; background: rgba(2, 20, 33, .45); }
.source-link { display: inline-block; margin-top: 22px; padding-bottom: 4px; border-bottom: 1px solid currentColor; color: #fff; text-decoration: none; font-size: 13px; }
a:focus-visible { outline: 3px solid #fee500; outline-offset: 4px; }
footer { padding: 28px 6vw; background: var(--navy); color: #fff; font: 10px 'DM Mono', monospace; letter-spacing: 1px; }
@media (max-width: 700px) {
  header { min-height: 66px; padding: 14px 6vw; }
  main { padding: 80px 6vw 85px; }
  h1 { font-size: clamp(43px, 10.5vw, 70px); }
  #tagline { margin-bottom: 42px; font-size: 15px; }
  section { grid-template-columns: minmax(0, 1fr); }
  .has-course-photo section { background-image: linear-gradient(rgba(2, 25, 40, .62), rgba(2, 25, 40, .7)), var(--course-image); background-position: center; }
  section > div { padding: 23px 22px; }
  section > div + div { border-left: 0; border-top: 1px solid rgba(226, 244, 251, .5); }
  #curriculum li { font-size: 14px; }
  .program-consult-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .program-consult-actions a { padding: 12px 7px; text-align: center; }
}

.level-guide{display:inline-flex;align-items:center;min-height:44px;max-width:100%;padding:12px 18px;margin:0 0 24px;border:1px solid currentColor;border-radius:28px;color:inherit;text-decoration:none;font-size:14px;line-height:1.6;word-break:keep-all;box-sizing:border-box;}
.level-guide:focus-visible{outline:3px solid #57cbea;outline-offset:4px;}

main .course-skills{display:block;min-width:0;padding:28px 0;border-top:1px solid #91aab1}main .course-skills h2{font-size:24px;line-height:1.5}main .course-skills ul{list-style:none;padding:0}main .course-skills li{padding:16px 0;border-bottom:1px solid #c9d9db}main .course-skills li strong{font-size:17px}main .course-skills p{line-height:1.8}main .terms-toggle{background:#163d64;color:#fff;border:0;border-radius:6px;padding:14px 18px;font:inherit;cursor:pointer}main .terms-toggle[aria-expanded="true"]{background:#087e83}main #course-terms{background:#eef5f5;padding:20px;line-height:1.8}main #course-terms[hidden]{display:none}main #course-terms dt{font-weight:700;margin-top:15px}main #course-terms dd{margin:5px 0 0}main .skills-note{font-size:13px;color:#526e78}@media(max-width:600px){main .course-skills h2{font-size:21px}main .course-skills li strong{font-size:16px}}

main.has-course-photo #course-terms,main.has-course-photo #course-terms dt,main.has-course-photo #course-terms dd{color:#163d4a!important;text-shadow:none!important}main.has-course-photo .course-skills .skills-note{color:#e4eef1!important}

main .achievement-table-wrap{width:100%;margin:18px 0 22px;overflow-x:auto}main .achievement-table{width:100%;border-collapse:collapse;table-layout:fixed;background:rgba(7,39,56,.9);color:#fff;text-shadow:none}main .achievement-table th,main .achievement-table td{padding:13px 8px;border:1px solid #6b8a99;text-align:center;line-height:1.5;font-size:14px;overflow-wrap:anywhere}main .achievement-table thead th{background:#17657a;color:#fff}main .achievement-table th:first-child{width:28%;text-align:left}main .achievement-table tbody th{background:rgba(28,76,94,.9)}@media(max-width:600px){main .achievement-table th,main .achievement-table td{font-size:11px;padding:10px 4px}main .achievement-table th:first-child{width:27%}}

main .basic-achievement-table td[rowspan]{vertical-align:middle;line-height:1.8}main .basic-achievement-table th:first-child{width:32%}

main .program-schedule{padding:18px 20px;margin:24px 0;background:#dceef0;border-left:4px solid #087e83;display:grid;gap:7px}main.has-course-photo .program-schedule,main.has-course-photo .program-schedule *{color:#123e50!important;text-shadow:none!important}main .program-schedule strong{font-size:22px}main .program-schedule span{font-weight:600;font-size:16px;line-height:1.6}main .program-schedule small{font-size:14px}

main .achievement-table .skill-name-line{display:block;white-space:nowrap;overflow-wrap:normal;word-break:keep-all}

/* Approved mobile table labels: keep terms intact and scroll within the table. */
main .achievement-table th,main .achievement-table td{word-break:keep-all;overflow-wrap:normal}
@media(max-width:600px){main .achievement-table{min-width:420px}main .basic-achievement-table{min-width:400px}main .achievement-table-wrap:before{content:"↔ 표를 좌우로 밀어서 확인해 주세요";display:block;position:sticky;left:0;font-size:12px;padding:0 0 10px;color:#e4eef1;line-height:1.6}}

/* Preserve Korean words across responsive text wrapping. */
body p,body li,body summary,body address,body .course-copy,body .course-copy h3,body .course-copy small,body .team-grid,body .anilao-copy,body #curriculum,body #note,body .course-schedule,body .program-schedule{word-break:keep-all;overflow-wrap:normal}
body .course-panel p,body .course-panel span,body .course-panel small,body .credentials span,body .team-grid p,body .faq p{word-break:keep-all;overflow-wrap:normal}

/* Fixed achievement labels inside horizontal table scrolling. */
main .achievement-table tr>:first-child{position:sticky;left:0;z-index:1;background:#1c4c5e;box-shadow:1px 0 0 #6b8a99}
main .achievement-table thead tr>:first-child{z-index:2;background:#17657a}

/* Course fee exclusions */
body .course-fee-note{font-family:"Noto Sans KR",sans-serif!important;font-size:13px!important;font-weight:500!important;line-height:1.7!important;letter-spacing:normal!important;color:#405e69!important;margin:8px 0 16px!important;word-break:keep-all;overflow-wrap:normal}

/* Prominent course information controls */
main .level-guide,main .terms-toggle,main .source-link{display:inline-flex;align-items:center;justify-content:center;min-height:52px;max-width:100%;padding:14px 22px;border:2px solid #f2d381;border-radius:6px;background:#f2d381;color:#092f43;font:700 16px/1.6 'Noto Sans KR',sans-serif;text-decoration:none;text-shadow:none;word-break:keep-all;box-sizing:border-box;box-shadow:0 3px 10px #001c3030}
main .terms-toggle[aria-expanded="true"]{background:#fff3d2;color:#092f43}main .level-guide:hover,main .terms-toggle:hover,main .source-link:hover{background:#fff3d2;color:#092f43;text-decoration:none}main .level-guide:focus-visible,main .terms-toggle:focus-visible,main .source-link:focus-visible{outline:3px solid white;outline-offset:4px}@media(max-width:600px){main .level-guide,main .terms-toggle,main .source-link{width:100%;font-size:15px}}
/* Mobile course refresh: desktop rules remain unchanged. */
@media(max-width:700px){
body{font-family:'Noto Sans KR',sans-serif;-webkit-font-smoothing:antialiased}
main{padding:100px 6vw 64px;background:#082e42;background-image:none}
main h1{font-family:'DM Sans','Noto Sans KR',sans-serif;font-size:clamp(32px,8.8vw,48px);font-weight:600;line-height:1.1;letter-spacing:-1.2px;margin:25px 0 14px}
main #category{font-family:inherit;font-size:11px;font-weight:600;letter-spacing:1.4px;color:#9ebac5}
main #tagline{font-size:15px;line-height:1.8;color:#bed0d6;margin-bottom:28px}
main .program-schedule{margin:24px 0;padding:20px 0;border:0;border-top:1px solid #ffffff25;border-bottom:1px solid #ffffff25;background:transparent;gap:9px}
main .program-schedule *,main.has-course-photo .program-schedule *{font-family:inherit!important;color:#c6dbe2!important;letter-spacing:0!important;text-shadow:none!important}
main .program-schedule strong,main.has-course-photo .program-schedule strong{font-size:21px;font-weight:600;color:#f4f8fa!important;margin:0}
main .program-schedule span{font-size:14px;font-weight:400}
main .program-schedule small{font-size:12px;color:#9bb7c3!important}
main>section:not(.course-skills),main.has-course-photo>section:not(.course-skills){overflow:hidden;border:1px solid #ffffff20;border-radius:14px;background-image:none;background:#103c50;text-shadow:none}
main>section:not(.course-skills)>div{padding:24px}
main>section:not(.course-skills)>div+div{border-color:#ffffff1c;background:#0b3348}
main section small{font-family:inherit;font-size:10px;font-weight:600;letter-spacing:1.5px;color:#8fbbc9}
main #curriculum{margin-top:18px}
main #curriculum li{font-size:14px;line-height:1.9;color:#e0ebef;margin-bottom:14px;padding-left:13px}
main #curriculum li:before{color:#75b8bb}
main #price{font-family:'DM Sans',sans-serif;font-size:32px;font-weight:500;letter-spacing:-1px;margin:16px 0 8px}
main .course-fee-note{color:#a9c5cf!important;font-size:12px!important}
main #note{font-size:13px;line-height:1.9;color:#b8d0d9}
main #note span{padding:5px 0}
main .course-skills{border:0;background:transparent;padding-top:32px}
main .course-skills h2{font-size:20px;font-weight:600;letter-spacing:-.6px}
main .level-guide,main .terms-toggle,main .source-link{width:100%;border:1px solid #6dacae;border-radius:10px;background:#d7ebe7;color:#123d47;font:600 14px/1.6 'Noto Sans KR',sans-serif;box-shadow:none;min-height:50px;padding:13px 18px}
main .terms-toggle[aria-expanded=true]{background:#e8f3f0;color:#123d47}
main .level-guide:hover,main .terms-toggle:hover,main .source-link:hover{background:#e8f3f0;color:#123d47}
main #course-terms{border-radius:12px;background:#e7efec;padding:22px;font-size:14px}
main #course-terms dt{font-weight:600}main #course-terms dd{color:#45616b!important}
main .achievement-table-wrap:before{content:'표를 좌우로 밀어 확인해 주세요';font-family:inherit;font-size:11px;color:#9ebcc7}
main .achievement-table th,main .achievement-table td{border-color:#ffffff25;font-family:inherit;font-size:12px;padding:14px 9px}
main .achievement-table thead th,main .achievement-table thead tr>:first-child{background:#245368}
main .achievement-table tbody th,main .achievement-table tbody tr>:first-child{background:#173f53}
main .program-consult-actions a{border-radius:10px;font-size:14px;min-height:50px}
main .skills-note{color:#adc5ce!important}
}
@media(max-width:700px){main #category,main section small{font-size:12px!important}main .program-schedule small,main .course-fee-note,main .skills-note{font-size:14px!important}main #note{font-size:15px!important}main #tagline,main #curriculum li{font-size:16px!important;line-height:1.85!important}}
/* Action hierarchy and consistent spacing on course detail pages. */
body main .terms-toggle{background:transparent!important;border:1px solid #88a8b5!important;color:#eef6f8!important;box-shadow:none!important;border-radius:10px!important;letter-spacing:0!important;font-size:15px!important;font-weight:600!important;min-height:50px!important}
body main .terms-toggle:hover,body main .terms-toggle[aria-expanded=true]{background:#234d60!important;color:#fff!important}
body main .source-link{display:flex!important;width:100%!important;justify-content:center!important;background:#f2f5f3!important;border:1px solid #f2f5f3!important;color:#153e4d!important;box-shadow:none!important;border-radius:10px!important;letter-spacing:0!important;font-size:15px!important;font-weight:600!important;margin-top:14px!important;min-height:50px!important}
body main .source-link:hover{background:#dce7e5!important;color:#153e4d!important}
body main .program-consult-actions{margin-top:24px!important;gap:12px!important}
body main .program-consult-actions a{border-radius:10px!important;letter-spacing:0!important;min-height:50px!important}
body main .course-skills{padding-bottom:0!important}
body main .course-skills .skills-note{font-size:13px!important;line-height:1.8!important;font-weight:400!important;margin:14px 0 0!important;color:#b5cbd5!important}

body main .public-service-discount-note{font-size:14px;font-weight:800;color:#fff;line-height:1.8;word-break:keep-all;margin:12px 0 0}
