








@import url('https://fonts.googleapis.com/css2?family=Jua&display=swap');
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard-dynamic-subset.css');


*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Pretendard','Apple SD Gothic Neo',sans-serif; background:#fff; color:#333; word-break:keep-all; line-height:1.6; overflow-x:hidden; }
img  { max-width:100%; display:block; }
a    { text-decoration:none; color:inherit; }
ul   { list-style:none; }

.wrap { max-width:1140px; margin:0 auto; padding:0 20px; }




#header {
  position: sticky; top:0; z-index:1000;
  background:#fff;
  border-bottom:1px solid #f0f0f0;
  box-shadow:0 2px 8px rgba(0,0,0,.06);
  transition: box-shadow .3s;
}
#header.scrolled { box-shadow:0 2px 16px rgba(0,0,0,.10); }

.header-inner {
  height:72px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.header-logo img { height:36px; width:auto; object-fit:contain; }
.logo-fallback    { display:none; font-family:'Jua',sans-serif; font-synthesis:none; font-weight:700; font-size:20px; color:#1a1a1a; }

.header-nav { display:flex; align-items:center; gap:28px; }
.header-nav a { font-size:15px; font-weight:500; color:#444; transition:color .2s; }
.header-nav a:hover { color:#229C73; }

.header-actions { display:flex; align-items:center; gap:10px; flex-shrink:0; }


.btn { display:inline-flex; align-items:center; justify-content:center; font-family:'Pretendard',sans-serif; font-weight:600; border-radius:40px; transition:all .22s; cursor:pointer; border:none; white-space:nowrap; text-decoration:none; }
.btn-outline { font-size:14px; padding:9px 20px; background:transparent; color:#444; border:1.5px solid #ddd; }
.btn-outline:hover { border-color:#229C73; color:#229C73; }
.btn-solid  { font-size:14px; padding:9px 22px; background:#229C73; color:#fff; }
.btn-solid:hover { background:#1a7d59; }


.nav-toggle { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:4px; }
.nav-toggle span { display:block; width:22px; height:2px; background:#444; border-radius:2px; transition:all .3s; }




#hero {
  padding: 72px 0;
  background: #fff;
  overflow: hidden;
}


.hero-inner-section {
  max-width:1140px; margin:0 auto; padding:0 20px;
}
.hero-card-wrap {
  position:relative;
  min-height:460px;
  display:flex;
  align-items:stretch;
}


.hero-deco-frame {
  position:absolute;
  top:-17px; left:-18px;
  width:calc(100% + 18px);
  height:450px;
  background-image: url('/images/yellow_circle.png');
  background-position: 44px 22px;
  background-repeat: no-repeat;
  background-size: 112px auto;
  border: 2px solid #FFD800;
  border-radius: 30px;
  z-index:0;
  pointer-events:none;
}


.hero-mascot {
  position:absolute;
  width:90px;
  left:-72px;
  bottom:80px;
  z-index:3;
  animation: floatY 3s ease-in-out infinite;
}
@keyframes floatY { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }


.hero-card {
  position:relative;
  flex:1;
  min-height:460px;
  background-color: #FFD800;
  background-image: url('/images/landing_main.jpg');
  background-position: bottom center;
  background-size: cover;
  border-radius: 20px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center;
  z-index:1;
  overflow:hidden;
  padding:40px 20px;
}


.hero-card-overlay {
  position:absolute; inset:0;
  background-color:#545454;
  opacity:0.5;
  pointer-events:none;
}


.hero-title {
  position:relative; z-index:2;
  font-family:'Jua',sans-serif;
  font-size:50px;
  font-weight:400;
  text-shadow: 0 2px 8px rgba(0,0,0,0.45), 1px 1px 0 rgba(0,0,0,0.3);
  color:#FFFFFF;
  line-height:1.3;
  max-width:650px;
  margin-bottom:12px;

  opacity:0;
  transform:translateY(60px);
  animation: heroSlideUp 1.8s cubic-bezier(0.22,1,0.36,1) 0.3s forwards;
}
@keyframes heroSlideUp {
  from { opacity:0; transform:translateY(60px); }
  to   { opacity:1; transform:translateY(0); }
}


.hero-cta {
  position:relative; z-index:2;
  margin-top:10px;
}
.hero-btn {
  display:inline-flex; align-items:center; justify-content:center;
  background-color:#FFD800;
  font-family:'Jua',sans-serif; font-synthesis:none;
  font-weight:700;
  color:#414141;
  border-radius:40px;
  padding:14px 40px;
  font-size:16px;
  border:none;
  cursor:pointer;
  box-shadow:-4px 4px 0px 0px #FFFFFF;
  transition:all .25s;
  text-decoration:none;
}
.hero-btn:hover {
  background-color:#229C73;
  color:#FFFFFF;
  box-shadow:0px 0px 10px 0px rgba(0,0,0,.5);
}




#features {
  padding:100px 0;
  background:#fff;
}


.features-heading {
  padding-bottom:60px;
  text-align:center;
}
.features-heading h2 {
  font-family:'Jua',sans-serif; font-synthesis:none;
  font-size:40px;
  color:#191919;
}


.features-row { display:flex; gap:24px; }
.features-row + .features-row { margin-top:24px; }


.icon-box {
  flex:1;
  background-color:#FFFFFF;
  padding:32px;
  border-radius:24px;
  box-shadow:0px 0px 5px 0px rgba(156,156,156,.36);
  text-align:center;
  display:flex; flex-direction:column; align-items:center;
  transition:background .2s;
}
.icon-box:hover {
  background-color:#F8FCFC;
  background-image:url('/images/Design-Studio-Services-BG.webp');
  background-position:top right; background-repeat:no-repeat; background-size:30% auto;
}
.icon-box.yellow-hover:hover { background-color:#FFFFF8; }


.icon-wrp {
  border:1px solid transparent;
  border-radius:8px;
  padding:10px;
  margin-bottom:6px;
  display:inline-flex; align-items:center; justify-content:center;
}
.icon-wrp svg, .icon-wrp img { width:50px; height:50px; display:block; }

.icon-green .icon-wrp svg, .icon-green .icon-wrp i { fill:#229C73; color:#229C73; }

.icon-yellow .icon-wrp svg, .icon-yellow .icon-wrp i { fill:#FFCC00; color:#FFCC00; }

.icon-box h3 {
  font-family:'Jua',sans-serif; font-synthesis:none;
  font-size:18px;
  color:#1a1a1a;
  margin-bottom:8px;
}
.icon-box p { font-size:14px; color:#555; line-height:1.4; }




#pricing {
  padding:96px 0;
  background:#fff;
  position:relative;
}

.pricing-heading { text-align:center; margin-bottom:30px; }
.pricing-heading h2 {
  font-family:'Jua',sans-serif; font-synthesis:none;
  font-size:40px;
  color:#1a1a1a;
}


.pricing-grid {
  display:flex;
  gap:0;
  align-items:stretch;
  padding-top:30px;
}


.pricing-col { flex:1; display:flex; flex-direction:column; }
.pricing-col .pricing-card { flex:1; }
.pricing-card {
  border:1px solid #6EDBAE;
  border-radius:16px;
  margin:16px;
  padding:32px;
  display:flex; flex-direction:column;
  transition:background .3s, border .3s;
}

.pricing-card.free  { background:#FFFFFF; }
.pricing-card.free:hover { background:#F5FFF3; }

.pricing-card.std   { background:#FFFFFF; }
.pricing-card.std:hover { background:#F5FFF3; }

.pricing-card.school { background:#FFFFFF; }
.pricing-card.school:hover { background:#F5FFF3; }


.plan-name { font-family:'Jua',sans-serif; font-synthesis:none; font-size:18px; font-weight:700; color:#515151; margin-bottom:4px; }

.plan-price-row { display:flex; align-items:baseline; gap:4px; margin-bottom:4px; }

.plan-price { font-family:'Jua',sans-serif; font-synthesis:none; font-size:40px; color:#2F2F2F; line-height:1; }
.plan-price.sm { font-size:26px; }

.plan-unit  { font-family:'Jua',sans-serif; font-synthesis:none; font-size:20px; font-weight:bold; color:#2F2F2F; }


.plan-cta {
  width:100%;
  padding:12px;
  border-radius:40px;
  border:none;
  font-family:'Pretendard',sans-serif;
  font-size:15px;
  font-weight:600;
  letter-spacing:.6px;
  cursor:pointer;
  margin-top:12px;
  margin-bottom:0;
  transition:all .22s;
}

.plan-cta.green { background:#34D794; color:#FFFFFF; }
.plan-cta.green:hover { background:#229C73; }

.plan-cta.dark  { background:#414141; color:#FFFFFF; }
.plan-cta.dark:hover  { background:#FFFFFF; color:#000000; }

.plan-cta:disabled { opacity:.55; cursor:not-allowed; }


.plan-divider { border:none; border-top:1px solid rgba(0,0,0,.1); margin:16px 0; }


.plan-include { font-family:'Pretendard',sans-serif; font-size:16px; font-weight:500; color:#229C73; margin-bottom:8px; }


.plan-features { display:flex; flex-direction:column; gap:3px; }
.plan-feature  { display:flex; align-items:center; gap:8px; font-size:14px; }
.plan-feature svg { flex-shrink:0; width:18px; height:18px; }

.plan-feature.yellow-check svg { fill:#FFCC00; }
.plan-feature.yellow-check span { color:#4C4C4C; }

.plan-feature.cream-check  svg { fill:#FFF6CF; }
.plan-feature.cream-check  span { color:#1E1E1E; }




#faq {
  padding:96px 0;
  background:#fff;
}
.faq-inner { max-width:1048px; margin:0 auto; padding:0 20px; }


.faq-heading { text-align:center; padding-bottom:64px; }
.faq-heading h2 { font-family:'Jua',sans-serif; font-synthesis:none; font-size:40px; color:#191919; }


.faq-list { display:flex; flex-direction:column; gap:20px; }


.faq-item {}



.faq-title {
  background-color:#FFFFF8;
  color:#646464;
  border-radius:12px;
  overflow:hidden;
  padding:20px 16px 20px 20px;
  font-family:'Jua',sans-serif; font-synthesis:none;
  font-size:20px;
  font-weight:bold;
  line-height:1.4;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  cursor:pointer;
  user-select:none;
  transition:color .2s;
}
.faq-title:hover { color:#373737; }
.faq-item.open .faq-title {
  color:#373737;
  border-radius:12px 12px 0 0;
}


.faq-icon { flex-shrink:0; width:18px; height:18px; }
.faq-icon svg { width:14px; height:14px; fill:#229C73; }
.icon-times { display:none; }
.faq-item.open .icon-plus  { display:none; }
.faq-item.open .icon-times { display:block; }



.faq-content {
  background-color:#FCFCFC;
  color:#414141;
  border-radius:0 0 12px 12px;
  overflow:hidden;
  padding:0 20px;
  font-family:'Pretendard',sans-serif;
  font-weight:400;
  line-height:1.5;
  font-size:15px;
  max-height:0;
  transition:max-height .35s ease, padding .28s ease;
}
.faq-item.open .faq-content { max-height:300px; padding:20px; }




#footer {
  background:#1a1a1a;
  padding:36px 20px;
  text-align:center;
}
#footer p { font-size:14px; color:rgba(255,255,255,.5); line-height:1.8; }
#footer a { color:#229C73; transition:opacity .2s; }
#footer a:hover { opacity:.75; }


#footer { position:relative; }
.sysadmin-btn {
  position:absolute;
  right:24px;
  top:50%;
  transform:translateY(-50%);
  padding:0;
  background:none;
  border:none;
  font-family:'Pretendard',sans-serif;
  font-size:12px; font-weight:400;
  color:rgba(255,255,255,.42);
  cursor:pointer;
  transition:color .2s;
  white-space:nowrap;
}
.sysadmin-btn:hover { color:rgba(255,255,255,.85); text-decoration:underline; }




.admin-modal[hidden] { display:none; }
.admin-modal {
  position:fixed; inset:0; z-index:2000;
  display:flex; align-items:center; justify-content:center;
  padding:20px;
}
.admin-modal__backdrop {
  position:absolute; inset:0;
  background:rgba(20,20,20,.5);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  opacity:0; transition:opacity .22s ease;
}
.admin-modal.is-open .admin-modal__backdrop { opacity:1; }

.admin-modal__card {
  position:relative; z-index:1;
  width:100%; max-width:440px;
  background:#fff;
  border-radius:28px;
  padding:48px 44px 44px;
  box-shadow:0 24px 70px rgba(0,0,0,.22);
  text-align:center;
  opacity:0; transform:translateY(24px) scale(.98);
  transition:opacity .24s ease, transform .24s cubic-bezier(.22,1,.36,1);
}
.admin-modal.is-open .admin-modal__card { opacity:1; transform:translateY(0) scale(1); }

.admin-modal__close {
  position:absolute; top:18px; right:18px;
  width:34px; height:34px;
  display:inline-flex; align-items:center; justify-content:center;
  background:none; border:none; border-radius:50%;
  color:#C0C4CC; cursor:pointer; transition:all .18s;
}
.admin-modal__close svg { width:18px; height:18px; }
.admin-modal__close:hover { background:#F2F4F6; color:#666; }


.admin-modal__brand { margin-bottom:34px; }
.admin-modal__logo-img {
  height:56px; width:auto; margin:0 auto 26px;
  object-fit:contain;
}
.admin-modal__logo-text {
  display:none;
  font-family:'Jua',sans-serif; font-synthesis:none;
  font-size:26px; font-weight:700; color:#229C73;
  margin-bottom:26px;
}
.admin-modal__title {
  font-family:'Pretendard',sans-serif;
  font-size:28px; font-weight:800; color:#1F2937;
  letter-spacing:-0.5px;
}

.admin-form { display:flex; flex-direction:column; gap:20px; text-align:left; }
.admin-field { display:flex; flex-direction:column; gap:9px; }
.admin-field label {
  font-family:'Pretendard',sans-serif;
  font-size:15px; font-weight:700; color:#374151;
  padding-left:2px;
}
.admin-field input {
  width:100%;
  padding:15px 18px;
  font-family:'Pretendard',sans-serif;
  font-size:15px; color:#222;
  background:#fff;
  border:1.5px solid #E5E7EB;
  border-radius:12px;
  transition:border-color .18s, box-shadow .18s;
}
.admin-field input::placeholder { color:#B0B4BB; }
.admin-field input:focus {
  outline:none;
  border-color:#229C73;
  box-shadow:0 0 0 3px rgba(34,156,115,.12);
}

.admin-error {
  font-family:'Pretendard',sans-serif;
  font-size:13px; font-weight:500; color:#E5484D;
  margin:-6px 0 0; padding-left:2px;
}
.admin-error[hidden] { display:none; }

.admin-submit {
  width:100%;
  margin-top:6px;
  padding:16px;
  font-family:'Pretendard',sans-serif;
  font-size:16px; font-weight:700; letter-spacing:.4px;
  color:#fff; background:#229C73;
  border:none; border-radius:14px;
  cursor:pointer; transition:background .2s;
}
.admin-submit:hover { background:#1a7d59; }
.admin-submit:active { background:#176b4c; }




@media (max-width:1024px) {
  .hero-title { font-size:40px; }
  .hero-mascot { left:-30px; width:60px; bottom:60px; }
  .hero-deco-frame { top:-15px; left:-20px; height:370px; background-size:96px auto; }

  #features { padding:64px 0; }
  .features-heading { padding-bottom:20px; }
  .features-row { gap:16px; }

  .pricing-grid { flex-direction:column; max-width:440px; margin:0 auto; }
  .pricing-card { margin:10px; padding:20px; }
}

@media (max-width:768px) {

  .header-nav    { display:none; }
  .header-actions { display:none; }
  .nav-toggle    { display:flex; }
  body.nav-open .header-nav {
    display:flex; flex-direction:column;
    position:fixed; top:72px; left:0; right:0;
    background:#fff; padding:20px; gap:20px;
    border-bottom:1px solid #eee; z-index:999;
    box-shadow:0 8px 16px rgba(0,0,0,.08);
  }
  body.nav-open .header-nav a { font-size:18px; }
  body.nav-open .header-actions {
    display:flex; flex-direction:column;
    position:fixed; top:calc(72px + 130px); left:0; right:0;
    background:#fff; padding:16px 20px 24px; z-index:999;
    box-shadow:0 8px 16px rgba(0,0,0,.08);
    gap:10px;
  }
  body.nav-open .header-actions .btn { width:100%; text-align:center; }


  #hero { padding:40px 0; }
  .hero-deco-frame { top:-10px; left:-10px; background-size:21vw auto; background-position:25px 18px; }
  .hero-mascot { left:-30px; width:48px; bottom:20px; }
  .hero-card { min-height:60vh; padding:20px; }
  .hero-title { font-size:25px; }
  .hero-btn { font-size:14px; padding:12px 28px; }


  #features { padding:20px 0 20px; }
  .features-heading h2 { font-size:25px; }
  .features-heading { padding-bottom:10px; }
  .features-row { flex-direction:column; gap:12px; }


  #pricing { padding:60px 0 20px; }
  .pricing-heading h2 { font-size:30px; }


  #faq { padding:60px 0; }
  .faq-heading h2 { font-size:30px; }
  .faq-heading { padding-bottom:30px; }
  .faq-title { font-size:18px; padding:16px 10px 16px 16px; }
  .faq-content { font-size:14px; }


  .sysadmin-btn {
    position:static;
    transform:none;
    display:inline-block;
    margin:16px auto 0;
  }
  .admin-modal__card { padding:36px 24px 30px; border-radius:22px; }
  .admin-modal__title { font-size:24px; }
}
