@charset "utf-8";
:root {
  --font-family: -apple-system, BlinkMacSystemFont, "SF UI Display", "Apple SD Gothic Neo", Roboto, "Noto Sans KR",
    notosans, sans-serif;

  --color-primary: #3b1dcf;
}
html,
body {
  font-family: var(--font-family);
  color: #000;
  font-size: 16px;
  line-height: 1.4;
  font-weight: 400;
  word-break: keep-all;
  -webkit-text-size-adjust: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  box-sizing: border-box;
}
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
input,
select,
textarea,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0px;
  padding: 0px;
  vertical-align: top;
}
body {
  position: relative;
  width: 100%;
}
ul,
ol,
dl {
  list-style-type: none;
}
h1,
h2,
h3,
h4,
h5,
h6,
th {
  font-weight: 700;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
  word-break: break-all;
}
table th {
  font-weight: normal;
}
img,
button,
fieldset,
abbr,
acronym {
  border: 0;
}
label {
  cursor: pointer;
}
address,
caption,
cite,
code,
dfn,
var {
  font-style: normal;
  font-weight: normal;
}
strong {
  font-weight: 700;
}
em {
  font-style: normal;
}
caption,
legend {
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
img {
  max-width: 100%;
}
q:before,
q:after {
  content: "";
}
hr {
  display: none;
}
iframe {
  border: none;
  outline: none;
}
br {
  font-family: dotum;
}
fieldset {
  display: block;
  min-width: 0;
}
pre,
code,
kbd,
samp {
  font-family: sans-serif;
}
a {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
a:link,
a:visited {
  text-decoration: none;
}
a:hover,
a:focus,
a:active {
  text-decoration: none;
}

*::selection {
  color: #fff;
  background: #000;
}
*::-moz-selection {
  color: #fff;
  background: #000;
}

html.fix {
  overflow: hidden;
}

*,
*:before,
*:after {
  box-sizing: border-box;
}

button,
textarea,
select,
input[type="text"],
input[type="number"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="file"],
input[type="date"],
input[type="datetime-local"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="file"],
input[type="image"],
input[type="reset"],
input[type="button"],
input[type="submit"] {
  padding: 0;
  border: none;
  outline: none;
  border-radius: 0;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  vertical-align: top;
  background: none;
}

input[type="file"],
input[type="image"],
input[type="reset"],
input[type="button"],
input[type="submit"],
button {
  cursor: pointer;
  border: none;
  background: none;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  font-weight: 500;
}

.inner {
  width: 100%;
  max-width: 65.625rem;
  margin-left: auto;
  margin-right: auto;
  padding: 0 1.25rem;
}

/* header */
#header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 150;
  .header-inner {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4rem;
    background-color: #fff;

    .inner {
      max-width: 75.5rem;
      height: 100%;
    }
  }

  h1 {
    display: inline-flex;
    height: 100%;
    align-items: center;
    font-size: 1.25rem;
    color: #1f2937;
    font-weight: 700;

    img {
      width: 1.5rem;
      height: 1.5rem;
      flex: 0 0 auto;
      margin-right: 1.5rem;
    }
  }
}

/* footer */
#footer {
  padding: 2rem 1.25rem;
  .copy {
    font-size: 0.875rem;
    line-height: 1.6;
    font-weight: 500;
    color: #a2a8b4;
    text-align: center;
  }
}

#container {
  padding-top: 4rem;
}

/* headline */
.headline {
  position:relative;
  background: #3A21B7;

  .text-group {    
    position:relative;
    padding-top: 3rem;
    padding-bottom: 7.5rem;    
    z-index:5;

    h2 {
      font-size: 1.750rem;
      line-height: 1.42;
      font-weight: 700;
      letter-spacing:-0.025em;
      color: #fff;

      img {
        vertical-align:middle;
      }
    }

    .btns {
      margin-top: 3.750rem;
      display: flex;
      align-items: center;
      gap: 0.5rem;

      & > a {
        display: inline-block;

        img {
          width: auto;
          max-width: none;
          height: 3rem;
        }
      }
    }
  }

  .visual-group {
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    z-index:0;
    .inner {
      position:relative;
      height:100%;
    }

    .obj {
      position:absolute;
      top:-70px;
      right:0;
      width:28.750rem;
    }
  }

  .inner {
  }
}

/* special */
.special {
  margin-top: -3.75rem;
  position:relative;
  z-index:5;
  .point {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }

  .point-items {
    display: flex;
    align-items: center;
    min-height: 7.5rem;
    padding: 0.75rem 1.5rem;
    background-color: #fff;
    border-radius: 0.75rem;
    box-shadow: 0px 4px 14px rgba(12, 12, 13, 0.1);

    .item-info {
      flex: 1;
      width: 100%;
    }

    .item-title {
      font-size: 1.125rem;
      line-height: 1.33;
      font-weight: 700;
      letter-spacing:-0.025em;
      color: var(--color-primary);
    }

    .item-desc {
      margin-top: 0.5rem;
      font-size: 0.875rem;
      line-height: 1.42;
    }

    .item-visual {
      flex: 0 0 auto;
      width: 6rem;
      height: 6rem;

      .obj {
        position:relative;
        display: inline-flex;
        align-items: center;
		    justify-content:center;
        width: 100%;
        height: 100%;
        background-color: #f3f3f3;
        border-radius: 50%;

        img {
          width: 5rem;

          &.luminosity {
            mix-blend-mode: luminosity;
          }

          &.cover {
            position:absolute;
            top:50%;
            left:50%;
            transform:translate(-50% , -50%);
          }
        }
      }
    }
  }
}

/* banner */
.banner {
  .point {
    position: relative;
    margin-top: 4rem;
    min-height:7.500rem;
    padding: 1.5rem 5rem;
    background-color: #EDE8FC;
    border-radius: 0.75rem;
    text-align: left;
    overflow:hidden;

    h3 {
      font-size: 1.5rem;
      line-height: 1.5;
      font-weight: 700;
      letter-spacing:-0.025em;
      color: #4130df;
    }

    &:after {
      content: "";
      position: absolute;
      top: -1.125rem;
      right: 3.313rem;
      width: 20.375rem;
      height: 15.500rem;
      background: url(../images/banner-visual.png) center center no-repeat;
      background-size: 100% auto;
    }
  }
}

/* faq */
.faq {
  margin-top: 1.5rem;
}
.accordion-cell {
  &:not(:first-child) {
    border-top: 1px solid #E5E7EB;
  }
  &.actived {
    .accordion-content {
      display: block;
    }

    .accordion-items {
      .btn-accordion-menu {
        .arrow {
          transform:translate(0% , -50%) rotate(180deg);
        }
      }
    }
  }
}
.accordion-items {
  .btn-accordion-menu {
    position: relative;
    padding: 1.5rem 3.25rem 1.5rem 1rem;
    min-height: 5.000rem;
    display: flex;
    align-items: center;
    width: 100%;
    color: #242424;
    font-size: 1.125rem;
    line-height: 1.33;
    box-sizing: border-box;

    .txt {
      flex: 1;
      width: 100%;
      text-align: left;
      display:flex;
      align-items:center;      
      gap:0.5rem; 
    }
    .txt:before {
      content: "Q";
	  flex-shrink : 0;
      display: inline-flex;
      width:2.0rem;
      height:2.0rem;
      align-items:center;
      justify-content: center;
      border-radius:50%;
      text-align:center;
      background-color:#EDE8FC;
      font-weight:500;

    }
    .arrow {
      position: absolute;
      top: 50%;
      right: 1rem;
      width: 1.25rem;
      height: 1.25rem;
      transform:translate(0% , -50%) rotate(0deg);

      &:before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        font-size: 0;
        display: block;
        background: url(../images/icon-accordion-arrow.svg) center center no-repeat;
        background-size: 100% 100%;
        opacity: 1;
      }
    }
  }

  .accordion-content {
    display: none;
  }

  .accordion-detail {
    border-top: 1px solid #e5e7eb;
    font-size: 1.125rem;
    line-height: 1.77;
    letter-spacing:-0.025em;
    color: #000;
    text-align: left;
    padding: 1.5rem 1.25rem;
    background: #f7f7f8;
  }
}

@media screen and (max-width: 980px) {  
  /* header */
  #header {
    .header-inner {
      .inner {
        padding: 0 1rem;
      }
    }

    h1 {
      font-size: 1rem;

      img {
        width: 1.5rem;
        height: 1.5rem;
        flex: 0 0 auto;
        margin-right: 1rem;
      }
    }
  }

  /* footer */
  #footer {
    padding: 1.5rem 1.25rem;
    .copy {
      font-size: 0.75rem;
      line-height: 1.6;
    }
  }

  #container {
    padding-top:4rem;
  }

  /* headline */
  .headline {

    .text-group {
      padding-top: 1.7rem;
      padding-bottom: 4.125rem;

      h2 {
        font-size: 1.250rem;
        line-height: 1.7;      
        padding-right:1.5rem;  
        img { 
          width:1.5rem;
        }
      }

      .btns {
        margin-top: 11.250rem;
        gap: 0.5rem;        

        & > a {
          img {            
            height:2.750rem;
          }
        }
      }
    }

    .visual-group {
      position:absolute;
      top:0;
      left:0;
      width:100%;
      height:100%;
      z-index:0;
      .inner {
        position:relative;
        height:100%;
      }
  
      .obj {        
        top:-84px;
        right:0;        
        width:100%;
        max-width:24.375rem;
      }
    }

    .inner {
    }
  }

  /* special */
  .special {
    margin-top: -3.0rem;
    .point {
      grid-template-columns: repeat(1, 1fr);
    }

    .point-items {
      display: flex;
      flex-direction: row-reverse;
      align-items: center;
      min-height: 6.000rem;
      padding: 0.75rem 1.0rem;            
	    gap:1.0rem;

      .item-title {
        font-size: 1rem;
        line-height: 1.5;
        font-weight: 700;
        color: var(--color-primary);
      }

      .item-desc {
        margin-top: 0.25rem;
        font-size: 0.875rem;        
      }

      .item-visual {
        width: 4.500rem;
        height: 4.500rem;

        .obj {
          img {
            width: 3.500rem;
          }
        }
      }
    }
  }

  /* banner */
  .banner {
    .point {
      margin-top: 4rem;
      padding:1rem 3.000rem 10.250rem 3.000rem;
      min-height:15.000rem;
	    text-align:center;

      h3 {
        font-size: 1.0rem;
        line-height: 1.25;
      }

      &:after {        
        top:3.750rem;
        left:50%;
		    transform:translate(-50% , 0%);
        width: 26.313rem;
        height: 19.063rem;                
      }
    }
  }

  /* faq */
  .faq {
    margin-top: 1.5rem;
  }

  .accordion-items {
    .btn-accordion-menu {
      padding: 1.5rem 3.25rem 1.5rem 0.5rem;
      min-height: 4.500rem;
      font-size: 0.938rem;
      line-height: 1.46;
    }

    .accordion-detail {
      font-size: 0.875rem;
      line-height: 1.57;
      padding:1.0rem;
    }
  }
}

@media screen and (max-width: 640px) { 
  .headline {
    .visual-group {  
      .obj {        
        top:0;
      }
    }
  }
}

@media screen and (max-width: 420px) { 
  br.enter {
    display: none;
  }
}