@charset "utf-8";

/* header */
.header {position: fixed; top: 0; left: 0; right: 0; z-index: 10;}
.header .inner {display: flex; align-items: center; justify-content: space-between; height: 52px; padding: 0 20px; border-bottom: 1px solid #0F2C63; background: rgba(255,255,255,0.6);}
.header .inner .logo a {display: block;}
.header .inner .btnList {display: flex;}
.header .inner .btnList > li + li {margin-left: 8px;}
.header .inner .btnList > li a {display: block; height: 36px; line-height: 36px; padding: 0 16px; border-radius: 6px;}
.header .inner .btnList > li .mvShare {padding-left: 38px; background: #fff url(../img/festival/ico_share.svg) no-repeat center left 16px / 18px; color: #0F2C63; border: 1px solid transparent; transition: .25s;}
.header .inner .btnList > li .mvShare:hover {border: 1px solid #0F2C63;}
.header .inner .btnList > li .mvOnline {background: #592FFF; color: #fff; transition: .25s;} 
.header .inner .btnList > li .mvOnline:hover {opacity: 0.8;}
.header .inner .trigger {display: none; position: relative; width: 25px; height: 20px;}
.header .inner .trigger span {position: absolute; left: 0; right: 0; height: 3px; background: #592FFF; border-radius: 5px; transition: .25s;}
.header .inner .trigger span:nth-child(1) {top: 0;}
.header .inner .trigger span:nth-child(2) {top: 50%; transform: translateY(-50%);}
.header .inner .trigger span:nth-child(3) {top: calc(100% - 3px);}
.header.active .inner .btnList {display: block;}
.header.active .inner .trigger span:nth-child(1) {top: 50%; transform: translateY(-50%) rotate(45deg);}
.header.active .inner .trigger span:nth-child(2) {display: none;}
.header.active .inner .trigger span:nth-child(3) {top: 50%; transform: translateY(-50%) rotate(-45deg);}

/* inner */
section .inner {max-width: 1080px; padding: 0 20px; margin: 0 auto;}
section .inner .graTitArea {padding-bottom: 24px; background: url(../img/festival/line_graident.svg) repeat-x left bottom / auto 2px;}
section .inner .graTitArea strong {font-size: 56px; font-weight: 600; background: linear-gradient(90deg, rgba(32,127,252,1) 0%, rgba(200,32,252,1) 100%); color: transparent; background-clip: text;}

/* visual */
.visual { background: url(../img/festival/bg_visual.jpg) no-repeat center / cover;}
.visual .inner {display: flex; flex-direction: column; justify-content: center; max-width: 1200px; height: 100vh; padding: 12vw 20px}
.visual .inner .headingTxt {margin-bottom: 60px; text-align: center;}
.visual .inner .headingTxt h1 {font-size: 80px; font-weight: bold; background: linear-gradient(90deg, rgba(32,127,252,1) 0%, rgba(200,32,252,1) 100%); color: transparent; background-clip: text;}
.visual .inner .headingTxt h1 span {color: #ff3333;}
.visual .inner .headingTxt strong {font-size: 56px; font-weight: bold; color: #272c32;}
.visual .inner .dateBox {margin: 0 auto; text-align: center;}
.visual .inner .fixedBtn {display: flex; align-items: center; position: fixed; bottom: 50px; left: 50%; transform: translateX(-50%); padding: 0 35px; height: 90px; border-radius: 50px; background: linear-gradient(90deg, rgba(205,61,255,1) 0%, rgba(35,163,255,1) 100%); font-size: 30px; font-weight: bold; color: #fff; z-index: 10;}
.visual .inner .fixedBtn img {margin-right: 19px;}

/* about */
.about {padding: 160px 0; text-align: center;}
.about .aboutTit p {font-size: 56px; font-weight: bold; color: #242a30;}
.about .divide {margin: 80px auto; width: 60px; height: 1px; background: #dadada;}
.about .graTxt {margin-bottom: 40px;}
.about .graTxt p {font-size: 32px; font-weight: 600; background: linear-gradient(90deg, rgba(32,127,252,1) 0%, rgba(200,32,252,1) 100%); color: transparent; background-clip: text;}
.about span {font-size: 32px; font-weight: 600; color: #242a30;}

/* speaker */
.speaker {padding: 140px 0; background: #F8F9FA;}
.speaker .graTitArea {margin-bottom: 120px;}
.speaker .profile .item {display: flex; align-items: center;}
.speaker .profile .item + .item {margin-top: 100px;}
.speaker .profile .item img {margin-right: 65px;}
.speaker .profile .item .info .expert {font-size: 32px; font-weight: bold;}
.speaker .profile .item .info .company {display: flex; align-items: center; margin: 20px 0 12px;}
.speaker .profile .item .info .company span {font-weight: bold; font-size: 24px; color: #242a30;}
.speaker .profile .item .info .company .divide {width: 1px; height: 18px; background: #D7D7D7; margin: 0 20px;}
.speaker .profile .item .info .infoTxt p {color: #687079; font-weight: 600;}
.speaker .profile .item .info .infoTxt p span {display: block; font-size: 24px;}

/* curriculum */
.curriculum {padding: 140px 0;}
.curriculum .graTitArea {margin-bottom: 80px;}
.curriculum .curriTable table thead {border-bottom: 1px solid #000;}
.curriculum .curriTable table tr th {text-align: left; padding: 30px 10px; font-weight: bold; font-size: 26px;}
.curriculum .curriTable table tr th:last-child {text-align: right;}
.curriculum .curriTable table tr td {padding: 30px 10px; border-bottom: 1px solid #EBEBEB;}
.curriculum .curriTable table tr td div {display: flex; align-items: center;}
.curriculum .curriTable table tr td div span {font-size: 22px; font-weight: 600;}
.curriculum .curriTable table tr td div .divide {width: 1px; height: 16px; margin: 0 20px; background: #404040;}
.curriculum .curriTable table tr td:last-child div {justify-content: flex-end;}

/* benefit */
.benefit {padding: 140px 0; text-align: center; background: #F8F9FA;}
.benefit .graTitArea {margin-bottom: 80px; text-align: left;}
.benefit .promotion {margin-bottom: 60px;}
.benefit .promotion .graTxt {margin-bottom: 20px;}
.benefit .promotion .graTxt p {font-size: 56px; font-weight: 600; background: linear-gradient(90deg, rgba(32,127,252,1) 0%, rgba(200,32,252,1) 100%); color: transparent; background-clip: text;}
.benefit .promotion > span {color: #8d9bad; font-size: 28px; font-weight: 600;}
.benefit .rateImgWrap {display: flex;} 
.benefit .rateImgWrap img {width: calc(25% - 9px);} 
.benefit .rateImgWrap img + img {margin-left: 12px;} 
.benefit .ps {margin-top: 48px; color: #969B9F; font-size: 20px; font-weight: 600;}

/* gift */
.gift {padding: 140px 0;}
.gift .provide {margin-bottom: 160px; text-align: center;}
.gift .provide p {font-size: 56px; font-weight: bold; color: #242A30;}
.gift .event .item +.item {margin-top: 90px;}
.gift .event .item .tit {display: block; padding: 28px 0; margin-bottom: 60px; border-radius: 16px; font-weight: 600; font-size: 36px; background: linear-gradient(90deg, rgba(32,127,252,1) 0%, rgba(200,32,252,1) 100%); color: #fff; text-align: center;}
.gift .event .item .giftList {display: flex;}
.gift .event .item .giftList > li {flex: 1; text-align: center;}
.gift .event .item .giftList > li + li {margin-left: 12px;}
.gift .event .item .giftList > li .giftBox {display: flex; justify-content: center; align-items: center; height: 260px; margin-bottom: 40px; border-radius: 20px; background: #f9f9f9;}
.gift .event .item .giftList > li .name {color: #313b42; font-size: 32px; font-weight: bold;}
.gift .event .item .giftList > li .sponName {font-size: 18px; color: #929A9F;}
.gift .event .item .ps {margin-top: 40px; font-weight: 600; font-size: 18px; color: #929A9F; text-align: center;}

/* place */
.place {padding: 140px 0 180px; background: #F8F9FA;}
.place .graTitArea {margin-bottom: 80px;}
.place .placeItem .item {display: flex; justify-content: space-between;}
.place .placeItem .item + .item {margin-top: 60px;}
.place .placeItem .item .adress .name {margin-bottom: 24px; font-size: 30px; font-weight: 600;}
.place .placeItem .item .adress .infoList > li {position: relative; padding-left: 24px;}
.place .placeItem .item .adress .infoList > li::before {content: '•'; position: absolute; left: 0; top: 5px;}
.place .placeItem .item .adress .infoList > li .txtWrap {display: flex;}
.place .placeItem .item .adress .infoList > li .txtWrap .tit {flex: 0 0 auto; font-size: 24px;}
.place .placeItem .item .adress .infoList > li .txtWrap .txt {margin-left: 5px;}
.place .placeItem .item .adress .infoList > li .txtWrap .txt span {display: block; font-size: 24px;}
.place .placeItem .item .map {width: 360px; height: 240px; border-radius: 20px;}

.toast {opacity: 0; visibility: hidden; position: fixed; left: 0; right: 0; top: 20px; display: flex; justify-content: center; z-index: 1301; transition: .5s;}
.toast .inner {padding: 15px 18px; border-radius: 12px; background: rgba(29,41,57,0.7); color: #fff;}

/* toast팝업 active */
.toast.active {opacity: 1; visibility: visible; transform: translateY(60px);}

@media screen and (max-width: 400px) {
  .gift .event .item .giftList {display: block !important;}
  .gift .event .item .giftList > li + li {margin-top: 40px;}
  .gift .event .item .giftList > li .giftBox img {width: auto !important; height: 70%;}

  .benefit .rateImgWrap {display: block !important;}
  .benefit .rateImgWrap img {width: 70% !important;}
  .benefit .rateImgWrap img + img {margin-top: 60px !important;}
}

@media screen and (max-width: 767px) {
  section .inner .graTitArea {margin-bottom: 60px;}
  section .inner .graTitArea strong {font-size: 32px;}

  .header .inner .logo a {display: flex; height: 15px;}
  .header .inner .btnList {opacity: 0; visibility: hidden; display: block; position: absolute; top: 100%; left: 0; right: 0; transform: translateY(-100%); box-shadow: 0 4px 24px rgba(0,0,0,0.08); transition: .25s;}
  .header .inner .btnList > li + li {margin-left: 0;}
  .header .inner .btnList > li a {border-radius: 0; height: 45px; line-height: 45px; padding-left: 20px; transition: .25s;}
  .header .inner .btnList > li .mvShare {padding-left: 20px; background: rgba(255,255,255,0.6);}
  .header .inner .btnList > li .mvOnline {background: rgba(255,255,255,0.6); color: #0f2c63;}
  .header .inner .trigger {display: block;}
  .header.active .inner .btnList {opacity: 1; visibility: visible; transform: translateY(0);}

  .visual .inner .headingTxt h1 {font-size: 32px;}
  .visual .inner .headingTxt strong {font-size: 24px;}
  .visual .inner .fixedBtn {display: flex; justify-content: center; width: 220px; height: 60px; padding: 0 20px; font-size: 18px; white-space: nowrap;}
  .visual .inner .fixedBtn img {width: 18px; margin-right: 8px;}

  .about {padding: 80px 0;}
  .about .aboutTit p {font-size: 32px;}
  .about .divide {margin: 40px auto;}
  .about .graTxt p {font-size: 20px;}
  .about span {font-size: 20px;}

  .speaker {padding: 80px 0;}
  .speaker .graTitArea {margin-bottom: 60px;}
  .speaker .profile .item {display: block;}
  .speaker .profile .item img {display: block; width: 200px; margin: 0 auto;}
  .speaker .profile .item .info {margin-top: 20px; text-align: center;}
  .speaker .profile .item .info .expert {font-size: 24px;}
  .speaker .profile .item .info .company {display: block;}
  .speaker .profile .item .info .company span {display: block; margin-bottom: 4px; font-size: 18px;}
  .speaker .profile .item .info .company .divide {display: none;}
  .speaker .profile .item .info .infoTxt p span {display: inline; font-size: 16px;}

  .curriculum {padding: 80px 0;}
  .curriculum .curriTable table tr th {padding: 0 5px 10px 5px; font-size: 18px;}
  .curriculum .curriTable table tr td {padding: 20px 5px;}
  .curriculum .curriTable table tr td div {display: block;}
  .curriculum .curriTable table tr td div span {font-size: 16px;}
  .curriculum .curriTable table tr td div .divide {display: none;}
  .curriculum .curriTable table tr td:last-child div span {display: block; text-align: right;}

  .benefit {padding: 80px 0;}
  .benefit .promotion .graTxt p {font-size: 32px;}
  .benefit .promotion .graTxt p span {display: block;}
  .benefit .promotion > span {font-size: 14px;}
  .benefit .rateImgWrap {display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px 20px;}
  .benefit .rateImgWrap img {width: 80%; display: block; margin: 0 auto;}
  .benefit .rateImgWrap img + img {margin: 0 auto;}
  .benefit .ps {font-size: 14px;}

  .gift {padding: 80px 0;}
  .gift .provide {margin-bottom: 40px;}
  .gift .provide p {font-size: 32px;}
  .gift .event .item .tit {padding: 15px 0; margin-bottom: 20px; font-size: 20px;}
  .gift .event .item .giftList {display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 20px 10px;}
  .gift .event .item .giftList > li .giftBox {height: 200px; margin-bottom: 20px;}
  .gift .event .item .giftList > li .giftBox img {width: 70%;}
  .gift .event .item .giftList > li .name {font-size: 20px;}

  .place {padding: 80px 0 140px;}
  .place .placeItem .item {display: block;}
  .place .placeItem .item .adress .name {margin-bottom: 15px; font-size: 20px;}
  .place .placeItem .item .adress .infoList > li {padding-left: 0;}
  .place .placeItem .item .adress .infoList > li::before {content: none;}
  .place .placeItem .item .adress .infoList > li .txtWrap .tit {font-size: 16px;}
  .place .placeItem .item .adress .infoList > li .txtWrap .txt span {display: inline; font-size: 16px;}
  .place .placeItem .item .map {width: 100%; margin-top: 20px;}
}

@media (min-width: 768px) and (max-width: 1023px) {
  /* common */
  section .inner .graTitArea {margin-bottom: 60px;}
  section .inner .graTitArea strong {font-size: 42px;}

  /* visual */
  .visual .inner .headingTxt h1 {font-size: 42px;}
  .visual .inner .headingTxt strong {font-size: 30px;}
  .visual .inner .dateBox {width: 80%;}
  .visual .inner .fixedBtn {height: 70px; font-size: 24px;}

  /* about */
  .about {padding: 100px 0;}
  .about .aboutTit p {font-size: 42px;}
  .about .divide {margin: 50px auto;}
  .about .graTxt p {font-size: 28px;}
  .about span {font-size: 28px;}

  /* speaker */
  .speaker {padding: 100px 0;}
  .speaker .graTitArea {margin-bottom: 60px;}
  .speaker .profile .item img {width: 200px; margin-right: 40px;}
  .speaker .profile .item .info .expert {font-size: 28px;}
  .speaker .profile .item .info .company span {font-size: 20px;}
  .speaker .profile .item .info .infoTxt p span {display: inline; font-size: 18px;}

  /* curriculum */
  .curriculum {padding: 100px 0;}
  .curriculum .curriTable table tr th {padding-top: 0; font-size: 20px;}
  .curriculum .curriTable table tr td {padding: 20px 10px;}
  .curriculum .curriTable table tr td div span {font-size: 18px;}

  /* benefit */
  .benefit {padding: 100px 0;}
  .benefit .promotion .graTxt p {font-size: 42px;}
  .benefit .promotion .graTxt p span {display: block;}
  .benefit .promotion > span {font-size: 18px;}
  .benefit .ps {font-size: 18px;}

  /* .gift */
  .gift {padding: 100px 0;}
  .gift .provide {margin-bottom: 80px;}
  .gift .provide p {font-size: 42px;}
  .gift .event .item .tit {padding: 15px 0; font-size: 28px;}
  .gift .event .item .giftList > li .name {font-size: 24px;}

  /* .place */
  .place {padding: 100px 0 180px;}
  .place .placeItem .item {display: block;}
  .place .placeItem .item .adress .name {font-size: 28px;}
  .place .placeItem .item .map {width: 100%; height: 300px; margin-top: 40px;}
  .place .placeItem .item .adress .infoList > li .txtWrap .txt span {display: inline;}
}

@media (min-width: 1024px) and (max-width: 1200px) {
  /* visual */
  .visual .inner .headingTxt h1 {font-size: 56px;}
  .visual .inner .headingTxt strong {font-size: 32px;}
  .visual .inner .dateBox {width: 60%;}
}