*{
    box-sizing:border-box
}

html{
    scroll-behavior:smooth
}

body{
    margin:0;color:#2b1f0e;background:#2b1f0e;font-family:-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Noto Sans KR','Malgun Gothic',sans-serif;line-height:1.75;word-break:keep-all
}

.wrap{
    width:min(100% - 32px,820px);margin:0 auto
}

header{
    padding:18px 0 10px
}

.brand{
    display:flex;justify-content:space-between;color:#2b1f0e;font-size:13px;letter-spacing:.08em
}

.brand strong,span{
    color:#f9f5eb;letter-spacing:0
}

.hero,main section,#textBook{
    background:#f9f5eb;border-radius:22px;box-shadow:0 10px 32px rgba(65,55,42,.06)
}

.hero{
    text-align:center;padding:58px 26px 42px;margin-top:10px
}

.eyebrow {
    display: inline-block;
    padding: 6px 13px;
    background-color: #2b1f0e;
    border: 1px solid #2b1f0e;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    color: #f9f5eb;
}

h1{
    margin:18px 0 14px;font-size:clamp(20px,6.5vw,46px);line-height:1.15;letter-spacing:-.01em
}

.quote{
    margin:0 auto;max-width:680px;font-size:20px;line-height:1.8;color:#2b1f0e
}

.program-meta{
    width:fit-content;max-width:min(680px,100%);margin:30px auto 0;padding:6px 18px;text-align:left
}

.program-meta div{
    display:grid;grid-template-columns:42px auto;align-items:baseline;column-gap:14px;padding:5px 0
}

.program-meta small{
    color:#f36f10;font-size:16px;font-weight:700
}

.program-meta b{
    font-size:15px;font-weight:400
}

.program-meta .detail{
    color:#2b1f0e;font-size:inherit
}

main{
    padding:18px 0 42px
}

main section{
    padding:30px 26px;margin-top:18px
}

h2{
    margin:0 0 18px;font-size:25px;line-height:1.3;letter-spacing:-.01em;color:#f36f10
}

.intro{
    color:#2b1f0e;font-size:15px
}

.timeline{
    position:relative;margin-top:8px;padding-left:116px
}

.timeline:before{
    content:'';position:absolute;left:105px;top:1px;bottom:60px;width:1px;background:#f36f10
}

.timeline-item{
    position:relative;display:grid;grid-template-columns:1fr;min-height:86px;padding:0 0 22px
}

.timeline-item:last-child{
    padding-bottom:0
}

.timeline-item time{
    position:absolute;left:-113px;top:2px;width:88px;color:#2b1f0e;font-size:12px;font-weight:900;letter-spacing:.02em;text-align:right
}

.timeline-item time span{
    display:block;margin-top:-2px;color:#2b1f0e;font-weight:600
}

.timeline-item>div{
    position:relative;padding-left:24px
}

.timeline h3{
    margin:0 0 2px -2%;font-size:15px
}

.timeline p{
    margin:0 0 0 -2%;color:#2b1f0e;font-size:13px;line-height:1.6
}

.schedule-total{
    padding-left:4%
}

.weeks article{
    display:grid;grid-template-columns:82px 1fr;gap:18px;padding:18px 0;border-top:1px solid #f9f5eb
}

.weeks article:first-child{
    border-top:0;padding-top:0
}

.weeks em{
    font-style:normal;text-align:center;align-self:start;padding:6px 4px;border-radius:999px;background:#f36f10;color:#f9f5eb;font-size:11px;font-weight:900
}

.weeks h3{
    margin:0 0 4px;font-size:16px
}

.weeks p{
    margin:0;color:#2b1f0e;font-size:14px
}

.curriculum-intro{
    margin:0 0 14px
}

.curriculum-closing{
  margin-top:24px;
  padding:22px 24px;
  background:#f36f10;
  border-radius:16px;
  text-align:center;
}

.curriculum-closing p{
  margin:0;
  color:#f9f5eb;
}

.curriculum-closing p + p{
  margin-top:6px;
}

.book{
    display:flex;gap:18px;align-items:center
}

.book-cover{
    flex:0 0 86px;width:86px;height:122px;object-fit:cover;border-radius:7px;box-shadow:0 6px 16px rgba(60,75,68,.16)
}

.book h3{
    margin:0 0 6px;font-size:16px
}

.book p{
    margin:0;color:#2b1f0e;font-size:14px
}

@media(max-width:620px){
    .wrap{
        width:min(100% - 20px,820px)
    }
    
    .hero{
        padding:45px 19px 34px;border-radius:20px
    }
    
    h1{
        font-size:clamp(22px,8.7vw,44px);
        line-height:1.25;
    }
    
    .program-meta{
        padding:6px 4px
    }
    
    main section{
        padding:25px 19px
    }
    
    .weeks article{
        grid-template-columns:62px 1fr;gap:12px
    }
    
    .book{
        align-items:flex-start
    }
    
    .timeline{
        padding-left:88px
    }
    
    .timeline:before{
        left:77px
    }
    
    .timeline-item time{
        left:-88px;width:64px;font-size:10px
    }
    
    .timeline-item>div{
        padding-left:20px
    }
    
    .timeline-dot{
        left:-23px
    }
    
    .quote{
        font-size:14px
    }
}

#textBook{
  padding:30px 26px;
  margin-top:18px;
}

#textBook{
  margin-bottom:0;
}

main{
  padding-top:0;
}

body{letter-spacing:.01em}