/* 메인 본문 스타일과 이 페이지에만 적용하는 푸터 가로 정렬입니다. */
#up-home-main {
  --paper:#f9f8f5; --ink:#28252e; --muted:#706d76; --purple:#5136a5; --line:#dedbd5;
  --font:var(--up-type-font,"UP Pretendard","Pretendard","Apple SD Gothic Neo","Malgun Gothic",sans-serif);
  width:100%; margin:0; padding:0; background:var(--paper); color:var(--ink);
  font-family:var(--font); -webkit-font-smoothing:antialiased;
}
#up-home-main *,#up-home-main *::before,#up-home-main *::after { box-sizing:border-box; }
#up-home-main a { color:inherit; text-decoration:none; -webkit-tap-highlight-color:transparent; }
#up-home-main a:focus-visible { outline:3px solid var(--purple); outline-offset:6px; border-radius:5px; }
#up-home-main img { display:block; max-width:100%; border:0; }
#up-home-main picture { display:block; }
#up-home-main .home-hero-photo picture { width:100%; height:100%; }
#up-home-main .up-home-inner { width:min(var(--up-home-content-width,1080px),calc(100% - 40px)); margin-inline:auto; padding:0; }
#up-home-main .icon { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
#up-home-main .home-hero { position:relative; isolation:isolate; min-height:400px; background:#302a32; color:#fff; }
#up-home-main .home-hero-photo { position:absolute; inset:0; z-index:-1; overflow:hidden; }
#up-home-main .home-hero-photo img { width:100%; height:100%; object-fit:cover; object-position:center 57%; }
#up-home-main .home-hero-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(24,18,30,.84),rgba(24,18,30,.57) 42%,rgba(24,18,30,.14) 78%,rgba(24,18,30,.08)); }
#up-home-main .home-hero-content { padding-top:52px; padding-bottom:66px; }
#up-home-main .home-hero .eyebrow { color:#f0eaf7; font-size:11px; line-height:1.5; margin:0 0 20px; letter-spacing:1.8px; }
#up-home-main .home-hero .eyebrow::before { display:none; }
#up-home-main .home-hero h1 { color:#fff; font-size:48px; font-weight:650; line-height:1.2; letter-spacing:-1.8px; }
#up-home-main .home-hero-lead { margin:21px 0 0; color:#f2eef5; font-size:16px; line-height:1.75; letter-spacing:-.3px; word-break:keep-all; }
#up-home-main .home-hero-consult { display:inline-flex; align-items:center; justify-content:space-between; gap:22px; min-width:132px; min-height:44px; margin-top:22px; padding:10px 18px; border-radius:4px; background:#fff; color:var(--purple); font-size:14px; font-weight:600; }
#up-home-main .home-hero-consult:hover { background:#f0eaf8; }
#up-home-main .home-hero a:focus-visible { outline-color:#fff; }
#up-home-main .home-hero-note { margin:12px 0 0; color:#ebe5ee; font-size:11px; line-height:1.65; }
#up-home-main .home-hero-bottom { position:absolute; bottom:20px; left:0; right:0; display:flex; justify-content:flex-end; }
#up-home-main .home-hero-bottom a { display:inline-flex; align-items:center; gap:18px; min-height:32px; padding:4px 0; color:#fff; font-size:11px; }
#up-home-main .home-hero-bottom .icon { width:15px; height:15px; }
#up-home-main .programs-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:36px 0 22px; }
#up-home-main .programs-heading h2 { font-size:25px; line-height:1.4; letter-spacing:-.8px; }
#up-home-main .programs-heading p { margin:0; color:var(--muted); font-size:13px; line-height:1.6; }
#up-home-main #programs { scroll-margin-top:130px; }
#up-home-main .eyebrow { display:flex; align-items:center; gap:10px; font-size:11px; font-weight:600; letter-spacing:2.2px; color:var(--purple); margin:0 0 16px; }
#up-home-main .eyebrow::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--purple); }
#up-home-main h1 { margin:0; padding:0; font-size:clamp(36px,3.8vw,52px); font-weight:600; letter-spacing:-2.4px; line-height:1.25; word-break:keep-all; }
#up-home-main h1 span { color:var(--purple); }
#up-home-main .programs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; margin:0; padding:0; }
#up-home-main .program { display:block; min-width:0; padding:0; margin:0; }
#up-home-main .image-space { display:block; width:100%; padding:0; margin:0; }
#up-home-main .program-photo { position:relative; width:100%; aspect-ratio:4/3; overflow:hidden; border-radius:9px; background:#e8e4dc; isolation:isolate; }
#up-home-main .program-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .65s cubic-bezier(.2,.65,.3,1); }
#up-home-main .university img { object-position:50% center; }
#up-home-main .junior img { object-position:50% center; }
#up-home-main .language img { object-position:50% center; }
#up-home-main .camp img { object-position:50% center; }
#up-home-main .program-meta { margin-top:21px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
#up-home-main .program-kicker { color:#78737e; font-size:10px; font-weight:500; letter-spacing:1.65px; }
#up-home-main .program-number { color:#8b8590; font-size:11px; font-weight:450; font-variant-numeric:tabular-nums; }
#up-home-main .program-title-row { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:10px; }
#up-home-main h2 { margin:0; padding:0; font-size:28px; font-weight:650; line-height:1.25; letter-spacing:-1.1px; transition:color .2s; }
#up-home-main .round-arrow { display:flex; justify-content:center; align-items:center; width:37px; height:37px; flex-shrink:0; border:1px solid #cfcbd3; border-radius:50%; transition:background .2s,border-color .2s,color .2s,transform .2s; }
#up-home-main .round-arrow .icon { width:18px; height:18px; }
#up-home-main .program-description { min-height:3.4em; margin:12px 0 0; color:var(--muted); font-size:14px; line-height:1.7; letter-spacing:-.35px; word-break:keep-all; }
@media (hover:hover) {
  #up-home-main .program:hover .program-photo img { transform:scale(1.045); }
  #up-home-main .program:hover h2 { color:var(--purple); }
  #up-home-main .program:hover .round-arrow { color:#fff; background:var(--purple); border-color:var(--purple); transform:rotate(-35deg); }
}
#up-home-main .program:focus-visible h2 { color:var(--purple); }
#up-home-main .consult-strip { margin-top:40px; padding:27px 0 34px; border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:20px; }
#up-home-main .consult-copy { display:flex; align-items:center; gap:19px; }
#up-home-main .consult-copy strong { font-size:17px; font-weight:550; letter-spacing:-.5px; }
#up-home-main .consult-copy p { margin:0; color:var(--muted); font-size:13px; line-height:1.6; letter-spacing:-.2px; }
#up-home-main .consult-button { display:inline-flex; align-items:center; justify-content:space-between; gap:37px; min-width:183px; min-height:49px; padding:11px 13px 11px 23px; color:#fff; background:var(--purple); border-radius:50px; font-size:14px; font-weight:550; transition:background .2s; }
#up-home-main .consult-button:hover { background:#3f2789; }
#up-home-main .consult-button .circle { display:flex; align-items:center; justify-content:center; width:29px; height:29px; border-radius:50%; background:#fff; color:var(--purple); }
@media (max-width:1100px) {
  #up-home-main .programs { gap:18px; }
  #up-home-main h2 { font-size:25px; }
  #up-home-main .program-description { font-size:13px; }
  #up-home-main .consult-copy { display:block; }
  #up-home-main .consult-copy p { margin-top:6px; }
}
@media (max-width:760px) {
  #up-home-main .home-hero { min-height:350px; }
  #up-home-main .home-hero-content { padding-top:39px; padding-bottom:62px; }
  #up-home-main .home-hero-photo img { object-position:68% center; }
  #up-home-main .home-hero-photo::after { background:linear-gradient(90deg,rgba(24,18,30,.82),rgba(24,18,30,.52)); }
  #up-home-main .home-hero .eyebrow { margin-bottom:17px; font-size:9px; letter-spacing:1.5px; }
  #up-home-main .home-hero h1 { font-size:clamp(28px,7.3vw,38px); line-height:1.25; letter-spacing:-1.1px; }
  #up-home-main .home-hero-lead { margin-top:19px; font-size:13px; line-height:1.8; }
  #up-home-main .home-hero-consult { min-width:126px; margin-top:20px; font-size:13px; }
  #up-home-main .home-hero-note { margin-top:11px; font-size:10px; }
  #up-home-main .home-hero-bottom { bottom:15px; }
  #up-home-main .home-hero-bottom a { font-size:10px; gap:10px; }
  #up-home-main .programs-heading { display:block; padding:27px 0 20px; }
  #up-home-main .programs-heading h2 { font-size:21px; line-height:1.4; letter-spacing:-.7px; word-break:keep-all; }
  #up-home-main .programs-heading p { margin-top:7px; font-size:12px; }
  #up-home-main .eyebrow { font-size:9px; letter-spacing:1.8px; margin-bottom:15px; }
  #up-home-main h1 { font-size:clamp(29px,7.3vw,43px); letter-spacing:-1.4px; line-height:1.25; }
  #up-home-main .programs { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 14px; }
  #up-home-main .program-photo { border-radius:7px; }
  #up-home-main .program-meta { margin-top:14px; gap:4px; }
  #up-home-main .program-kicker { font-size:8px; letter-spacing:.8px; }
  #up-home-main .program-number { font-size:9px; }
  #up-home-main .program-title-row { margin-top:8px; }
  #up-home-main h2 { font-size:22px; letter-spacing:-.8px; }
  #up-home-main .round-arrow { width:28px; height:28px; }
  #up-home-main .round-arrow .icon { width:14px; height:14px; }
  #up-home-main .program-description { font-size:12px; line-height:1.6; margin-top:8px; letter-spacing:-.3px; }
  #up-home-main .consult-strip { margin-top:32px; padding:24px 0 30px; align-items:flex-start; flex-direction:column; gap:17px; }
  #up-home-main .consult-copy strong { font-size:17px; }
  #up-home-main .consult-copy p { font-size:12px; margin-top:7px; }
  #up-home-main .consult-button { width:100%; min-height:47px; padding-left:20px; }
}
@media (max-width:360px) {
  #up-home-main .programs { gap:26px 12px; }
  #up-home-main h2 { font-size:20px; }
  #up-home-main .program-kicker { font-size:7px; letter-spacing:.5px; }
}
@media (prefers-reduced-motion:reduce) { #up-home-main *,#up-home-main *::before,#up-home-main *::after { transition:none!important; animation:none!important; } }
/* Keep the header, hero copy, cards, CTA and footer content on the same vertical guides. */
body.up-home-page .uhp-footer-inner {
  box-sizing:border-box; width:100%; max-width:1120px; margin-inline:auto;
  padding-inline:19px;
}
@media (max-width:1024px) {
  #up-home-main .up-home-inner { width:calc(100% - 32px); }
  body.up-home-page .uhp-footer-inner { padding-inline:15px; }
}
@media (max-width:640px) {
  body.up-home-page .uhp-footer-inner { padding-inline:16px; }
}

/* Homepage photo slideshow. The copy and the shared page alignment stay fixed. */
#up-home-main .home-hero { padding:0; }
#up-home-main .home-hero-photo { pointer-events:none; }
#up-home-main .home-hero-slide {
  position:absolute; inset:0; opacity:0;
  transition:opacity 1100ms ease; overflow:hidden;
}
#up-home-main .home-hero-slide.is-active { opacity:1; }
#up-home-main .home-hero-slide picture { width:100%; height:100%; }
#up-home-main .home-hero-slide img {
  width:100%; height:100%; object-fit:cover;
  object-position:var(--hero-position,50% 57%);
  transform-origin:var(--hero-origin,65% 55%);
}
#up-home-main .home-hero-slide.is-moving img {
  animation:up-home-photo-drift 7200ms linear both;
}
#up-home-main .home-hero.is-paused .home-hero-slide img { animation-play-state:paused; }
#up-home-main .home-hero-photo::after {
  background:linear-gradient(90deg,rgba(24,18,30,.82),rgba(24,18,30,.54) 38%,rgba(24,18,30,.14) 68%,rgba(24,18,30,.06));
}
#up-home-main .home-hero-bottom { justify-content:space-between; align-items:center; gap:16px; }
#up-home-main .home-hero-controls { display:flex; align-items:center; gap:4px; }
#up-home-main .home-hero-controls[hidden] { display:none!important; }
#up-home-main .home-hero-controls button {
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; min-width:36px; margin:0; padding:0;
  border:0; border-radius:50%; background:transparent; color:#fff;
  cursor:pointer; font:inherit; box-shadow:none;
}
#up-home-main .home-hero-dot::before {
  content:""; width:7px; height:7px; border-radius:50%;
  background:rgba(255,255,255,.55); transition:width .25s,background .25s;
}
#up-home-main .home-hero-dot[aria-pressed="true"]::before {
  width:22px; border-radius:8px; background:#fff;
}
#up-home-main .home-hero-controls .home-hero-play {
  width:34px; min-width:34px; height:34px; margin-left:5px;
  border:1px solid rgba(255,255,255,.6); background:rgba(24,18,30,.22);
}
#up-home-main .home-hero-play .icon { width:14px; height:14px; }
#up-home-main .home-hero-play .play-icon { display:none; }
#up-home-main .home-hero-play[data-paused="true"] .play-icon { display:block; }
#up-home-main .home-hero-play[data-paused="true"] .pause-icon { display:none; }
#up-home-main .home-hero-controls button:focus-visible { outline:2px solid white; outline-offset:2px; }
#up-home-main .home-hero-controls button:hover { background:rgba(255,255,255,.14); }
#up-home-main .home-hero-controls button:disabled { opacity:.4; cursor:default; }
#up-home-main .home-hero-sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
@keyframes up-home-photo-drift { from { transform:scale(1); } to { transform:scale(1.05); } }
@media (max-width:760px) {
  /* Show the photograph above the copy so mobile text does not cover faces or the topper. */
  #up-home-main .home-hero-photo { height:240px; bottom:auto; }
  #up-home-main .home-hero-slide img { object-position:var(--hero-mobile-position,50% 50%); }
  #up-home-main .home-hero-photo::after {
    background:linear-gradient(180deg,rgba(24,18,30,.02) 55%,rgba(48,42,50,.2) 78%,#302a32 100%);
  }
  #up-home-main .home-hero-content { padding-top:256px; padding-bottom:74px; }
  #up-home-main .home-hero .eyebrow { margin-bottom:12px; }
  #up-home-main .home-hero-lead { margin-top:14px; }
  #up-home-main .home-hero-consult { margin-top:16px; }
  #up-home-main .home-hero-bottom { gap:6px; bottom:16px; }
  #up-home-main .home-hero-controls { gap:0; }
  #up-home-main .home-hero-controls button { width:30px; min-width:30px; }
  #up-home-main .home-hero-bottom > a { font-size:9px; gap:5px; }
}
@media (prefers-reduced-motion:reduce) {
  #up-home-main .home-hero-slide { transition:none; }
  #up-home-main .home-hero-slide.is-moving img { animation:none; transform:none; }
}

