/* Mentor lesson sub pages v1.2.0
 * 대메뉴 페이지 전용 CSS만 유지합니다.
 * 공통 레이아웃·버튼·폼은 mentor.base/layout/ui/components.css를 사용합니다. */

/* =========================================================
 * 멘토스키스쿨 (.lmi-*)
 * ========================================================= */

.lmi-page {
   overflow: hidden;
}

.lmi-page h2,
.lmi-page h3,
.lmi-page p {
   margin: 0;
}

#teachers {
   scroll-margin-top: 110px;
}

.lmi-kicker {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   margin-bottom: 14px;
   color: var(--ml-primary);
   font-size: 13px;
   line-height: 1.3;
   font-weight: 900;
   letter-spacing: .12em;
}

.lmi-section-head {
   display: flex;
   align-items: flex-end;
   justify-content: space-between;
   gap: 40px;
   margin-bottom: 42px;
}

.lmi-section-head.is-center {
   display: block;
   max-width: 760px;
   margin-right: auto;
   margin-left: auto;
   text-align: center;
}

.lmi-section-head h2 {
   color: var(--ml-dark);
   font-size: clamp(34px, 4vw, 52px);
   line-height: 1.14;
   font-weight: 900;
   letter-spacing: -.055em;
}

.lmi-section-head > p,
.lmi-section-head > div + p,
.lmi-section-head.is-center p {
   max-width: 550px;
   color: var(--ml-text);
   font-size: 16px;
   line-height: 1.8;
   font-weight: 700;
}

.lmi-section-head.is-center p {
   margin: 18px auto 0;
}

.lmi-button {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 9px;
   min-height: 54px;
   padding: 0 24px;
   border: 1px solid transparent;
   border-radius: 999px;
   font-size: 15px;
   line-height: 1;
   font-weight: 900;
   transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.lmi-button:hover {
   transform: translateY(-2px);
}

.lmi-button svg {
   width: 18px;
   height: 18px;
}

.lmi-button.is-primary {
   background: var(--ml-primary);
   color: var(--ml-white);
   box-shadow: 0 14px 34px rgba(var(--ml-primary-rgb), .24);
}

.lmi-button.is-ghost {
   border-color: var(--ml-line);
   background: var(--ml-white);
   color: var(--ml-dark);
}

.lmi-button.is-light {
   background: var(--ml-white);
   color: var(--ml-dark);
}

.lmi-button.is-kakao {
   background: var(--ml-kakao);
   color: var(--ml-kakao-text);
}

.lmi-intro {
   padding-top: 76px;
}

.lmi-intro-grid {
   display: grid;
   grid-template-columns: minmax(0, 1.12fr) minmax(360px, .88fr);
   gap: 56px;
   align-items: center;
}

.lmi-intro-copy h2 {
   color: var(--ml-dark);
   font-size: clamp(42px, 5vw, 68px);
   line-height: 1.08;
   font-weight: 900;
   letter-spacing: -.065em;
}

.lmi-intro-copy h2 strong {
   color: var(--ml-primary);
   font-weight: 900;
}

.lmi-intro-copy > p {
   max-width: 720px;
   margin-top: 26px;
   color: var(--ml-text);
   font-size: 18px;
   line-height: 1.85;
   font-weight: 700;
}

.lmi-intro-actions {
   display: flex;
   flex-wrap: wrap;
   gap: 10px;
   margin-top: 34px;
}

.lmi-intro-signature {
   position: relative;
   min-height: 520px;
   padding: 48px;
   border-radius: 38px 38px 110px 38px;
   background:
      radial-gradient(circle at 88% 12%, rgba(var(--ml-primary-bright-rgb), .28), transparent 34%),
      linear-gradient(145deg, var(--ml-hero-start), var(--ml-hero-mid) 58%, var(--ml-hero-end));
   color: var(--ml-white);
   box-shadow: 0 36px 90px rgba(var(--ml-shadow-rgb), .24);
}

.lmi-signature-mark span,
.lmi-signature-mark strong {
   display: block;
   line-height: .94;
   font-weight: 900;
   letter-spacing: -.06em;
}

.lmi-signature-mark span {
   color: rgba(var(--ml-white-rgb), .42);
   font-size: clamp(42px, 5vw, 64px);
}

.lmi-signature-mark strong {
   color: var(--ml-white);
   font-size: clamp(58px, 6vw, 82px);
}

.lmi-intro-signature > p {
   margin-top: 38px;
   color: rgba(var(--ml-white-rgb), .82);
   font-size: 20px;
   line-height: 1.7;
   font-weight: 800;
}

.lmi-intro-signature ul {
   position: absolute;
   right: 48px;
   bottom: 48px;
   left: 48px;
   display: grid;
   gap: 12px;
}

.lmi-intro-signature li {
   display: flex;
   align-items: center;
   gap: 12px;
   padding-top: 12px;
   border-top: 1px solid rgba(var(--ml-white-rgb), .12);
   color: rgba(var(--ml-white-rgb), .9);
   font-size: 15px;
   font-weight: 800;
}

.lmi-intro-signature li svg {
   width: 20px;
   height: 20px;
   color: var(--ml-primary-light);
}

.lmi-standard {
   background: var(--ml-surface-soft);
}

.lmi-standard-grid {
   display: grid;
   grid-template-columns: repeat(4, minmax(0, 1fr));
   gap: 16px;
}

.lmi-standard-grid article {
   position: relative;
   min-height: 270px;
   padding: 30px;
   border: 1px solid var(--ml-line);
   border-radius: 26px;
   background: var(--ml-white);
   box-shadow: 0 18px 44px rgba(var(--ml-shadow-rgb), .06);
}

.lmi-standard-grid article > span {
   position: absolute;
   top: 26px;
   right: 28px;
   color: var(--ml-number-soft);
   font-size: 42px;
   line-height: 1;
   font-weight: 900;
}

.lmi-standard-grid article > svg {
   width: 38px;
   height: 38px;
   color: var(--ml-primary);
   stroke-width: 1.8;
}

.lmi-standard-grid h3 {
   margin-top: 48px;
   color: var(--ml-dark);
   font-size: 21px;
   line-height: 1.3;
   font-weight: 900;
   letter-spacing: -.04em;
}

.lmi-standard-grid p {
   margin-top: 12px;
   color: var(--ml-text);
   font-size: 15px;
   line-height: 1.75;
   font-weight: 700;
}

.lmi-programs {
   background: var(--ml-white);
}

.lmi-program-list {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 16px;
}

.lmi-program-card {
   position: relative;
   display: grid;
   grid-template-columns: auto 1fr auto;
   gap: 20px;
   min-height: 260px;
   padding: 30px;
   border: 1px solid var(--ml-line);
   border-radius: 28px;
   background: var(--ml-primary-tint);
   transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}

.lmi-program-card:hover {
   transform: translateY(-6px);
   border-color: var(--ml-primary-line);
   box-shadow: 0 24px 60px rgba(var(--ml-shadow-rgb), .11);
}

.lmi-program-card.is-featured {
   background:
      radial-gradient(circle at 100% 0%, rgba(var(--ml-primary-bright-rgb), .25), transparent 35%),
      var(--ml-primary-soft);
}

.lmi-program-no {
   color: var(--ml-primary);
   font-size: 14px;
   line-height: 1.3;
   font-weight: 900;
}

.lmi-program-card em {
   color: var(--ml-muted);
   font-size: 11px;
   line-height: 1.3;
   font-style: normal;
   font-weight: 900;
   letter-spacing: .08em;
}

.lmi-program-card h3 {
   margin-top: 14px;
   color: var(--ml-dark);
   font-size: 28px;
   line-height: 1.2;
   font-weight: 900;
   letter-spacing: -.05em;
}

.lmi-program-card p {
   margin-top: 14px;
   color: var(--ml-text);
   font-size: 15px;
   line-height: 1.75;
   font-weight: 700;
}

.lmi-program-card > svg {
   width: 24px;
   height: 24px;
   color: var(--ml-primary);
}

.lmi-instructors {
   background:
      linear-gradient(180deg, var(--ml-surface-soft), var(--ml-white));
}

.lmi-instructor-list {
   display: grid;
   gap: 28px;
}

.lmi-instructor-card {
   display: grid;
   grid-template-columns: minmax(280px, .78fr) minmax(0, 1.22fr);
   min-height: 430px;
   border: 1px solid var(--ml-line);
   border-radius: 34px;
   background: var(--ml-white);
   box-shadow: 0 24px 70px rgba(var(--ml-shadow-rgb), .08);
   overflow: hidden;
}

.lmi-instructor-card:nth-child(even) {
   grid-template-columns: minmax(0, 1.22fr) minmax(280px, .78fr);
}

.lmi-instructor-card:nth-child(even) .lmi-instructor-photo {
   order: 2;
}

.lmi-instructor-card:nth-child(even) .lmi-instructor-body {
   order: 1;
}

.lmi-instructor-photo {
   position: relative;
   min-height: 430px;
   background:
      linear-gradient(145deg, var(--ml-photo-light), var(--ml-photo-mid));
   overflow: hidden;
}

.lmi-instructor-photo::after {
   content: "";
   position: absolute;
   inset: 0;
   background: linear-gradient(180deg, transparent 58%, rgba(var(--ml-black-rgb), .34));
   pointer-events: none;
}

.lmi-instructor-photo img {
   width: 100%;
   height: 100%;
   min-height: 430px;
   object-fit: cover;
}

.lmi-instructor-photo > span {
   position: absolute;
   left: 26px;
   bottom: 24px;
   z-index: 1;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 48px;
   height: 48px;
   border: 1px solid rgba(var(--ml-white-rgb), .34);
   border-radius: 16px;
   background: rgba(var(--ml-black-rgb), .2);
   backdrop-filter: blur(10px);
   color: var(--ml-white);
   font-size: 14px;
   font-weight: 900;
}

.lmi-instructor-placeholder {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 100%;
   height: 100%;
   min-height: 430px;
   color: rgba(var(--ml-white-rgb), .75);
}

.lmi-instructor-placeholder svg {
   width: 80px;
   height: 80px;
   stroke-width: 1.2;
}

.lmi-instructor-body {
   display: flex;
   flex-direction: column;
   justify-content: center;
   padding: 52px 58px;
}

.lmi-instructor-meta {
   display: flex;
   align-items: center;
   flex-wrap: wrap;
   gap: 9px;
}

.lmi-instructor-meta span,
.lmi-instructor-meta em {
   display: inline-flex;
   align-items: center;
   min-height: 32px;
   padding: 0 13px;
   border-radius: 999px;
   font-size: 12px;
   line-height: 1;
   font-style: normal;
   font-weight: 900;
}

.lmi-instructor-meta span {
   background: var(--ml-primary-soft);
   color: var(--ml-primary-deep);
}

.lmi-instructor-meta em {
   background: var(--ml-number-soft);
   color: var(--ml-text);
}

.lmi-instructor-body h3 {
   margin-top: 22px;
   color: var(--ml-dark);
   font-size: clamp(34px, 4vw, 50px);
   line-height: 1.08;
   font-weight: 900;
   letter-spacing: -.055em;
}

.lmi-instructor-intro {
   max-width: 670px;
   margin-top: 20px !important;
   color: var(--ml-text);
   font-size: 17px;
   line-height: 1.8;
   font-weight: 700;
}

.lmi-instructor-career {
   margin-top: 30px;
   padding-top: 24px;
   border-top: 1px solid var(--ml-line);
}

.lmi-instructor-career > strong {
   display: block;
   margin-bottom: 13px;
   color: var(--ml-muted);
   font-size: 11px;
   line-height: 1.3;
   font-weight: 900;
   letter-spacing: .1em;
}

.lmi-instructor-career ul {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 9px 24px;
}

.lmi-instructor-career li {
   position: relative;
   padding-left: 13px;
   color: var(--ml-text);
   font-size: 14px;
   line-height: 1.6;
   font-weight: 700;
}

.lmi-instructor-career li::before {
   content: "";
   position: absolute;
   top: .68em;
   left: 0;
   width: 5px;
   height: 5px;
   border-radius: 50%;
   background: var(--ml-primary);
}

.lmi-instructor-empty {
   padding: 64px 30px;
   border: 1px dashed var(--ml-primary-line);
   border-radius: 28px;
   background: var(--ml-primary-tint);
   text-align: center;
}

.lmi-instructor-empty svg {
   width: 44px;
   height: 44px;
   color: var(--ml-primary);
}

.lmi-instructor-empty strong {
   display: block;
   margin-top: 18px;
   color: var(--ml-dark);
   font-size: 22px;
   font-weight: 900;
}

.lmi-instructor-empty p {
   margin-top: 8px;
   color: var(--ml-text);
   font-size: 15px;
   font-weight: 700;
}

.lmi-process {
   background: var(--ml-white);
}

.lmi-process-list {
   display: grid;
   grid-template-columns: repeat(4, minmax(0, 1fr));
   gap: 16px;
   counter-reset: lmi-step;
}

.lmi-process-list li {
   position: relative;
   min-height: 280px;
   padding: 30px;
   border: 1px solid var(--ml-line);
   border-radius: 26px;
   background: var(--ml-white);
}

.lmi-process-list li:not(:last-child)::after {
   content: "";
   position: absolute;
   z-index: 1;
   top: 50px;
   right: -17px;
   width: 17px;
   height: 1px;
   background: var(--ml-connector);
}

.lmi-process-list li > span {
   color: var(--ml-date);
   font-size: 13px;
   font-weight: 900;
}

.lmi-process-list li > svg {
   display: block;
   width: 34px;
   height: 34px;
   margin-top: 30px;
   color: var(--ml-primary);
}

.lmi-process-list h3 {
   margin-top: 24px;
   color: var(--ml-dark);
   font-size: 21px;
   font-weight: 900;
   letter-spacing: -.04em;
}

.lmi-process-list p {
   margin-top: 11px;
   color: var(--ml-text);
   font-size: 15px;
   line-height: 1.7;
   font-weight: 700;
}

.lmi-base {
   background: var(--ml-surface-soft);
}

.lmi-base-grid {
   display: grid;
   grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
   gap: 24px;
}

.lmi-base-copy,
.lmi-contact-card {
   min-height: 420px;
   padding: 48px;
   border-radius: 34px;
}

.lmi-base-copy {
   border: 1px solid var(--ml-line);
   background: var(--ml-white);
}

.lmi-base-copy h2 {
   color: var(--ml-dark);
   font-size: clamp(36px, 4vw, 52px);
   line-height: 1.13;
   font-weight: 900;
   letter-spacing: -.055em;
}

.lmi-base-copy > p {
   max-width: 650px;
   margin-top: 20px;
   color: var(--ml-text);
   font-size: 16px;
   line-height: 1.8;
   font-weight: 700;
}

.lmi-base-copy ul {
   display: grid;
   gap: 12px;
   margin-top: 28px;
}

.lmi-base-copy li {
   display: flex;
   align-items: center;
   gap: 10px;
   color: var(--ml-dark);
   font-size: 15px;
   font-weight: 800;
}

.lmi-base-copy li svg {
   width: 19px;
   height: 19px;
   color: var(--ml-primary);
}

.lmi-contact-card {
   display: flex;
   flex-direction: column;
   justify-content: flex-end;
   background:
      radial-gradient(circle at 90% 10%, rgba(var(--ml-primary-bright-rgb), .3), transparent 34%),
      linear-gradient(145deg, var(--ml-standard-start), var(--ml-standard-mid) 56%, var(--ml-standard-end));
   color: var(--ml-white);
   box-shadow: 0 28px 70px rgba(var(--ml-shadow-rgb), .18);
}

.lmi-contact-card > span {
   color: var(--ml-primary-light);
   font-size: 12px;
   font-weight: 900;
   letter-spacing: .1em;
}

.lmi-contact-card > strong {
   display: block;
   margin-top: 14px;
   color: var(--ml-white);
   font-size: clamp(34px, 4vw, 48px);
   line-height: 1.12;
   font-weight: 900;
   letter-spacing: -.055em;
}

.lmi-contact-card > p {
   display: flex;
   align-items: flex-start;
   gap: 9px;
   margin-top: 20px;
   color: rgba(var(--ml-white-rgb), .72);
   font-size: 15px;
   line-height: 1.7;
   font-weight: 700;
}

.lmi-contact-card > p svg {
   flex: 0 0 auto;
   width: 19px;
   height: 19px;
   margin-top: 3px;
}

.lmi-contact-actions {
   display: flex;
   flex-wrap: wrap;
   gap: 10px;
   margin-top: 30px;
}

@media (max-width: 1100px) {
   .lmi-intro-grid {
      grid-template-columns: 1fr 400px;
      gap: 34px;
   }

   .lmi-standard-grid,
.lmi-process-list {
      grid-template-columns: repeat(2, minmax(0, 1fr));
   }

   .lmi-program-list {
      grid-template-columns: 1fr;
   }

   .lmi-program-card {
      min-height: 0;
   }

   .lmi-process-list li:not(:last-child)::after {
      display: none;
   }

   .lmi-instructor-body {
      padding: 42px;
   }
}

@media (max-width: 860px) {
   .lmi-section-head {
      display: block;
   }

   .lmi-section-head > div + p {
      margin-top: 18px;
   }

   .lmi-intro-grid,
.lmi-base-grid {
      grid-template-columns: 1fr;
   }

   .lmi-intro-signature {
      min-height: 470px;
   }

   .lmi-instructor-card,
.lmi-instructor-card:nth-child(even) {
      grid-template-columns: minmax(230px, .8fr) minmax(0, 1.2fr);
   }

   .lmi-instructor-card:nth-child(even) .lmi-instructor-photo,
.lmi-instructor-card:nth-child(even) .lmi-instructor-body {
      order: initial;
   }

   .lmi-instructor-body {
      padding: 34px;
   }

   .lmi-instructor-career ul {
      grid-template-columns: 1fr;
   }
}

@media (max-width: 640px) {
   #teachers {
      scroll-margin-top: 88px;
   }

   .lmi-intro {
      padding-top: 54px;
   }

   .lmi-intro-copy h2 {
      font-size: 39px;
   }

   .lmi-intro-copy > p {
      font-size: 16px;
      line-height: 1.75;
   }

   .lmi-intro-actions,
.lmi-contact-actions {
      display: grid;
      grid-template-columns: 1fr;
   }

   .lmi-button {
      width: 100%;
   }

   .lmi-intro-signature {
      min-height: 430px;
      padding: 34px 28px;
      border-radius: 28px 28px 76px 28px;
   }

   .lmi-signature-mark span {
      font-size: 38px;
   }

   .lmi-signature-mark strong {
      font-size: 54px;
   }

   .lmi-intro-signature > p {
      margin-top: 28px;
      font-size: 17px;
   }

   .lmi-intro-signature ul {
      right: 28px;
      bottom: 30px;
      left: 28px;
   }

   .lmi-section-head h2,
.lmi-base-copy h2 {
      font-size: 34px;
   }

   .lmi-standard-grid,
.lmi-process-list {
      grid-template-columns: 1fr;
   }

   .lmi-standard-grid article,
.lmi-process-list li {
      min-height: 0;
   }

   .lmi-program-card {
      grid-template-columns: auto 1fr;
      padding: 25px;
   }

   .lmi-program-card > svg {
      position: absolute;
      top: 24px;
      right: 24px;
   }

   .lmi-instructor-card,
.lmi-instructor-card:nth-child(even) {
      display: block;
      min-height: 0;
      border-radius: 26px;
   }

   .lmi-instructor-photo,
.lmi-instructor-photo img,
.lmi-instructor-placeholder {
      min-height: 390px;
      height: 390px;
   }

   .lmi-instructor-body {
      padding: 30px 26px 34px;
   }

   .lmi-instructor-body h3 {
      font-size: 36px;
   }

   .lmi-instructor-intro {
      font-size: 15px;
   }

   .lmi-base-copy,
.lmi-contact-card {
      min-height: 0;
      padding: 34px 28px;
      border-radius: 26px;
   }

   .lmi-contact-card {
      min-height: 380px;
   }
}

.lmi-video-section {
    background: var(--ml-white);
}

.lmi-video-box {
    display: grid;
    grid-template-columns: minmax(320px, .78fr) minmax(0, 1.22fr);
    border-radius: 34px;
    background:
        radial-gradient(
            circle at 8% 10%,
            rgba(var(--ml-primary-bright-rgb), .24),
            transparent 32%
        ),
        linear-gradient(
            145deg,
            var(--ml-hero-start),
            var(--ml-hero-mid) 58%,
            var(--ml-hero-end)
        );
    box-shadow: 0 30px 80px rgba(var(--ml-shadow-rgb), .2);
    overflow: hidden;
}

.lmi-video-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 48px;
}

.lmi-video-copy .lmi-kicker {
    color: var(--ml-primary-light);
}

.lmi-video-copy h2 {
    color: var(--ml-white);
    font-size: clamp(34px, 4vw, 48px);
    line-height: 1.15;
    font-weight: 900;
    letter-spacing: -.055em;
}

.lmi-video-copy > p {
    margin-top: 20px;
    color: rgba(var(--ml-white-rgb), .74);
    font-size: 16px;
    line-height: 1.8;
    font-weight: 700;
}

.lmi-video-copy ul {
    display: grid;
    gap: 10px;
    margin-top: 28px;
}

.lmi-video-copy li {
    display: flex;
    align-items: center;
    gap: 9px;
    color: rgba(var(--ml-white-rgb), .9);
    font-size: 14px;
    font-weight: 800;
}

.lmi-video-copy li svg {
    width: 18px;
    height: 18px;
    color: var(--ml-primary-light);
}

.lmi-video-media {
    position: relative;
    min-height: 480px;
    background: var(--ml-black);
}

.lmi-video-media iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 480px;
    border: 0;
}

.lmi-video-empty {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    background:
        radial-gradient(
            circle at center,
            rgba(var(--ml-primary-rgb), .25),
            transparent 38%
        ),
        var(--ml-dark);
    color: var(--ml-white);
    text-align: center;
}

.lmi-video-empty > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 76px;
    height: 76px;
    border: 1px solid rgba(var(--ml-white-rgb), .2);
    border-radius: 50%;
    background: var(--ml-primary);
    box-shadow: 0 18px 40px rgba(var(--ml-primary-rgb), .3);
}

.lmi-video-empty > span svg {
    width: 30px;
    height: 30px;
    fill: currentColor;
}

.lmi-video-empty strong {
    margin-top: 24px;
    font-size: 22px;
    font-weight: 900;
}

.lmi-video-empty p {
    margin-top: 7px;
    color: rgba(var(--ml-white-rgb), .58);
    font-size: 14px;
    font-weight: 700;
}

.lmi-instructor-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.lmi-instructor-card,
.lmi-instructor-card:nth-child(even) {
    display: grid;
    grid-template-columns: 155px minmax(0, 1fr);
    align-items: start;
    gap: 22px;
    min-height: 0;
    padding: 16px;
    border: 1px solid var(--ml-line);
    border-radius: 24px;
    background: var(--ml-white);
    box-shadow: 0 16px 44px rgba(var(--ml-shadow-rgb), .07);
    overflow: visible;
}

.lmi-instructor-card:nth-child(even) .lmi-instructor-photo,
.lmi-instructor-card:nth-child(even) .lmi-instructor-body {
    order: initial;
}

.lmi-instructor-photo {
    position: relative;
    width: 155px;
    height: 220px;
    min-height: 0;
    border-radius: 18px;
    background: linear-gradient(
        145deg,
        var(--ml-photo-light),
        var(--ml-photo-mid)
    );
    overflow: hidden;
}

.lmi-instructor-photo img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
    object-position: center top;
}

.lmi-instructor-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 220px;
    min-height: 0;
    color: var(--ml-white);
}

.lmi-instructor-photo > span {
    left: 12px;
    bottom: 12px;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    font-size: 12px;
}

.lmi-instructor-body {
    display: block;
    padding: 8px 10px 8px 0;
}

.lmi-instructor-meta {
    gap: 7px;
}

.lmi-instructor-meta span,
.lmi-instructor-meta em {
    min-height: 28px;
    padding: 0 11px;
    font-size: 11px;
}

.lmi-instructor-body h3 {
    margin-top: 15px;
    font-size: 27px;
    line-height: 1.25;
    word-break: keep-all;
}

.lmi-instructor-intro {
    margin-top: 12px !important;
    font-size: 14px;
    line-height: 1.65;
}

.lmi-instructor-career {
    margin-top: 18px;
    padding-top: 15px;
}

.lmi-instructor-career > strong {
    margin-bottom: 9px;
    font-size: 10px;
}

.lmi-instructor-career ul {
    grid-template-columns: 1fr;
    gap: 5px;
}

.lmi-instructor-career li {
    padding-left: 11px;
    font-size: 13px;
    line-height: 1.55;
}

@media (max-width: 1100px) {
    .lmi-instructor-list {
        grid-template-columns: 1fr;
    }

    .lmi-instructor-card,
.lmi-instructor-card:nth-child(even) {
        grid-template-columns: 210px minmax(0, 1fr);
    }
}

@media (max-width: 860px) {
    .lmi-video-box {
        grid-template-columns: 1fr;
    }

    .lmi-video-media,
.lmi-video-media iframe {
        min-height: auto;
        aspect-ratio: 16 / 9;
    }

    .lmi-video-empty {
        position: relative;
        min-height: 360px;
    }
}

@media (max-width: 640px) {
    .lmi-video-copy {
        padding: 34px 28px;
    }

    .lmi-video-copy h2 {
        font-size: 33px;
    }

    .lmi-video-empty {
        min-height: 260px;
    }

}

@media (max-width: 1100px) {
    .lmi-instructor-list {
        grid-template-columns: 1fr;
    }

    .lmi-instructor-card,
.lmi-instructor-card:nth-child(even) {
        grid-template-columns: 165px minmax(0, 1fr);
    }

    .lmi-instructor-photo {
        width: 165px;
        height: 230px;
    }
}

@media (max-width: 640px) {
    .lmi-instructor-card,
.lmi-instructor-card:nth-child(even) {
        display: grid;
        grid-template-columns: 110px minmax(0, 1fr);
        gap: 15px;
        padding: 12px;
        border-radius: 20px;
    }

    .lmi-instructor-photo {
        width: 110px;
        height: 155px;
        border-radius: 14px;
    }

    .lmi-instructor-placeholder {
        height: 155px;
    }

    .lmi-instructor-photo > span {
        left: 8px;
        bottom: 8px;
        width: 32px;
        height: 32px;
    }

    .lmi-instructor-body {
        padding: 3px 2px 3px 0;
    }

    .lmi-instructor-body h3 {
        margin-top: 11px;
        font-size: 22px;
    }

    .lmi-instructor-intro {
        font-size: 13px;
    }

    .lmi-instructor-career {
        margin-top: 14px;
        padding-top: 12px;
    }

    .lmi-instructor-career li {
        font-size: 12px;
    }
}

/* =========================================================
   스키보험 무료 가입 안내
========================================================= */
.lmi-insurance {
    padding-top: 40px;
    padding-bottom: 40px;
}

.lmi-insurance-box {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid rgba(var(--ml-white-rgb), .14);
    border-radius: var(--ml-radius);
    background:
        linear-gradient(
            135deg,
            var(--ml-hero-start),
            var(--ml-hero-mid) 55%,
            var(--ml-hero-end)
        );
    box-shadow: var(--ml-shadow);
}

.lmi-insurance-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 420px;
    border-right: 1px solid rgba(var(--ml-white-rgb), .12);
    background: rgba(var(--ml-white-rgb), .05);
}

.lmi-insurance-icon svg {
    width: 92px;
    height: 92px;
    color: var(--ml-primary-light);
    stroke-width: 1.35;
}

.lmi-insurance-content {
    padding: 58px 64px;
}

.lmi-insurance-content .lmi-kicker {
    color: var(--ml-primary-light);
}

.lmi-insurance-content h2 {
    margin: 14px 0 20px;
    color: var(--ml-white);
    font-size: clamp(32px, 3.2vw, 52px);
    line-height: 1.18;
    letter-spacing: -.045em;
}

.lmi-insurance-content h2 strong {
    color: var(--ml-primary-light);
}

.lmi-insurance-desc {
    max-width: 820px;
    margin: 0;
    color: rgba(var(--ml-white-rgb), .8);
    font-size: 17px;
    line-height: 1.8;
}

.lmi-insurance-cases {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 34px 0 0;
    padding: 0;
    list-style: none;
}

.lmi-insurance-cases li {
    position: relative;
    padding: 24px 22px 24px 38px;
    border: 1px solid rgba(var(--ml-white-rgb), .12);
    border-radius: 18px;
    background: rgba(var(--ml-white-rgb), .06);
}

.lmi-insurance-cases li::before {
    position: absolute;
    top: 30px;
    left: 20px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--ml-primary-light);
    content: "";
}

.lmi-insurance-cases strong {
    display: block;
    margin-bottom: 8px;
    color: var(--ml-white);
    font-size: 16px;
    line-height: 1.4;
}

.lmi-insurance-cases span {
    display: block;
    color: rgba(var(--ml-white-rgb), .68);
    font-size: 14px;
    line-height: 1.65;
}

.lmi-insurance-notice {
    margin: 22px 0 0;
    padding-top: 20px;
    border-top: 1px solid rgba(var(--ml-white-rgb), .12);
    color: rgba(var(--ml-white-rgb), .58);
    font-size: 13px;
    line-height: 1.7;
}


/* =========================================================
   스키보험 반응형
========================================================= */
@media (max-width: 980px) {
    .lmi-insurance-box {
        grid-template-columns: 150px minmax(0, 1fr);
    }

    .lmi-insurance-icon {
        min-height: 380px;
    }

    .lmi-insurance-icon svg {
        width: 70px;
        height: 70px;
    }

    .lmi-insurance-content {
        padding: 46px 38px;
    }

    .lmi-insurance-cases {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .lmi-insurance {
        padding-top: 24px;
        padding-bottom: 24px;
    }

    .lmi-insurance-box {
        display: block;
    }

    .lmi-insurance-icon {
        justify-content: flex-start;
        min-height: 0;
        padding: 30px 28px 0;
        border-right: 0;
        background: transparent;
    }

    .lmi-insurance-icon svg {
        width: 54px;
        height: 54px;
    }

    .lmi-insurance-content {
        padding: 26px 28px 34px;
    }

    .lmi-insurance-content h2 {
        margin-top: 10px;
        font-size: 30px;
    }

    .lmi-insurance-desc {
        font-size: 15px;
    }

    .lmi-insurance-cases {
        margin-top: 26px;
    }

    .lmi-insurance-cases li {
        padding: 20px 18px 20px 34px;
    }

    .lmi-insurance-cases li::before {
        top: 26px;
        left: 18px;
    }
}

/* 보험 영역은 신뢰감 있는 밝은 카드로 분리 */
.lmi-insurance-box {
   overflow: hidden;
   border: 1px solid var(--ml-primary-line);
   background:
      linear-gradient(
         135deg,
         var(--ml-primary-tint) 0%,
         var(--ml-white) 58%,
         var(--ml-primary-soft) 100%
      );
   box-shadow: var(--ml-shadow);
   color: var(--ml-dark);
}

.lmi-insurance-icon {
   border-right: 1px solid var(--ml-primary-line);
   background: rgba(var(--ml-primary-rgb), .07);
}

.lmi-insurance-icon i,
.lmi-insurance-icon svg {
   color: var(--ml-primary);
   stroke: currentColor;
}

.lmi-insurance-content .lmi-kicker {
   color: var(--ml-primary);
}

.lmi-insurance-content h2 {
   color: var(--ml-dark);
}

.lmi-insurance-content h2 strong {
   color: var(--ml-primary);
}

.lmi-insurance-desc {
   color: var(--ml-text);
}

.lmi-insurance-cases li {
   border: 1px solid var(--ml-line);
   background: rgba(var(--ml-white-rgb), .78);
   box-shadow: 0 10px 24px rgba(var(--ml-shadow-rgb), .05);
}

.lmi-insurance-cases li::before {
   color: var(--ml-primary);
}

.lmi-insurance-cases strong {
   color: var(--ml-dark);
}

.lmi-insurance-cases span {
   color: var(--ml-muted);
}

.lmi-insurance-notice {
   border-top-color: var(--ml-line);
   color: var(--ml-muted);
}
/* =========================================================
 * 일반강습 (.gl-*)
 * ========================================================= */

.gl-page{
   overflow:hidden;
   color:var(--ml-dark);
}

.gl-page .section{
   position:relative;
}

.gl-kicker{
   display:inline-flex;
   align-items:center;
   gap:8px;
   color:var(--ml-primary);
   font-size:13px;
   font-weight:950;
   letter-spacing:.08em;
}

.gl-section-head{
   display:flex;
   align-items:flex-end;
   justify-content:space-between;
   gap:40px;
   margin-bottom:46px;
}

.gl-section-head.is-center{
   display:block;
   text-align:center;
}

.gl-section-head h2{
   margin:10px 0 0;
   color:var(--ml-dark);
   font-size:clamp(32px,4vw,54px);
   line-height:1.12;
   letter-spacing:-.055em;
}

.gl-section-head>p{
   max-width:520px;
   margin:0;
   color:var(--ml-muted);
   font-size:17px;
   font-weight:700;
   line-height:1.75;
}

.gl-section-head.is-center>p{
   max-width:720px;
   margin:16px auto 0;
}

.gl-button{
   display:inline-flex;
   align-items:center;
   justify-content:center;
   gap:9px;
   min-height:54px;
   padding:0 24px;
   border:1px solid transparent;
   border-radius:14px;
   font-size:15px;
   font-weight:950;
   transition:transform .2s,background .2s,border-color .2s;
}

.gl-button:hover{
   transform:translateY(-2px);
}

.gl-button svg{
   width:18px;
   height:18px;
}

.gl-button.is-primary{
   background:var(--ml-primary);
   color:var(--ml-white);
   box-shadow:0 16px 34px rgba(var(--ml-primary-rgb),.22);
}

.gl-button.is-ghost{
   border-color:var(--ml-line);
   background:var(--ml-white);
   color:var(--ml-dark);
}

.gl-button.is-light{
   background:var(--ml-white);
   color:var(--ml-primary-deep);
}

.gl-actions{
   display:flex;
   align-items:center;
   gap:10px;
   flex-wrap:wrap;
}

.gl-summary{
   padding-top:76px;
   padding-bottom:92px;
   background:
      radial-gradient(circle at 82% 10%,rgba(var(--ml-primary-bright-rgb),.12),transparent 32%),
      var(--ml-primary-tint);
}

.gl-summary-grid{
   display:grid;
   grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);
   gap:72px;
   align-items:center;
}

.gl-summary-copy h2{
   margin:16px 0 22px;
   color:var(--ml-dark);
   font-size:clamp(42px,5.4vw,72px);
   line-height:1.06;
   letter-spacing:-.065em;
}

.gl-summary-copy h2 strong{
   color:var(--ml-primary);
}

.gl-summary-copy>p{
   max-width:690px;
   margin:0 0 30px;
   color:var(--ml-text);
   font-size:18px;
   font-weight:700;
   line-height:1.85;
}

.gl-trust-list{
   display:grid;
   grid-template-columns:repeat(2,minmax(0,1fr));
   gap:12px;
   margin:0;
   padding:18px;
   border:1px solid rgba(var(--ml-primary-rgb),.15);
   border-radius:28px;
   background:var(--ml-white);
   box-shadow:var(--ml-shadow);
   list-style:none;
}

.gl-trust-list li{
   display:flex;
   align-items:center;
   gap:13px;
   min-height:104px;
   padding:19px;
   border-radius:18px;
   background:var(--ml-surface-soft);
}

.gl-trust-list svg{
   flex:0 0 auto;
   width:26px;
   height:26px;
   color:var(--ml-primary);
}

.gl-trust-list span{
   display:grid;
   gap:4px;
   color:var(--ml-muted);
   font-size:13px;
   font-weight:750;
}

.gl-trust-list b{
   color:var(--ml-dark);
   font-size:16px;
}

.gl-target{
   background:var(--ml-white);
}

.gl-target-grid{
   display:grid;
   grid-template-columns:repeat(4,minmax(0,1fr));
   gap:16px;
}

.gl-target-grid article{
   position:relative;
   min-height:265px;
   padding:30px 26px;
   overflow:hidden;
   border:1px solid var(--ml-card-line);
   border-radius:24px;
   background:var(--ml-white);
   box-shadow:0 18px 50px rgba(var(--ml-shadow-rgb),.06);
}

.gl-target-grid article>span{
   position:absolute;
   top:22px;
   right:22px;
   color:var(--ml-number-soft);
   font-size:42px;
   font-weight:950;
}

.gl-target-grid article>svg{
   width:38px;
   height:38px;
   margin-bottom:42px;
   color:var(--ml-primary);
}

.gl-target-grid h3{
   margin:0 0 10px;
   font-size:21px;
   letter-spacing:-.035em;
}

.gl-target-grid p{
   margin:0;
   color:var(--ml-muted);
   font-size:14px;
   font-weight:700;
   line-height:1.72;
}

.gl-grade-link{
   display:flex;
   align-items:center;
   justify-content:center;
   gap:7px;
   width:max-content;
   max-width:100%;
   margin:26px auto 0;
   color:var(--ml-muted);
   font-size:14px;
   font-weight:750;
}

.gl-grade-link strong{
   color:var(--ml-primary);
}

.gl-grade-link svg{
   width:17px;
}

.gl-sports{
   background:var(--ml-surface-soft);
}

.gl-sport-grid{
   display:grid;
   grid-template-columns:repeat(2,minmax(0,1fr));
   gap:22px;
}

.gl-sport-card{
   position:relative;
   min-height:430px;
   padding:42px;
   overflow:hidden;
   border:1px solid var(--ml-line);
   border-radius:30px;
   background:var(--ml-white);
}

.gl-sport-card:after{
   content:"";
   position:absolute;
   right:-70px;
   bottom:-80px;
   width:250px;
   height:250px;
   border-radius:50%;
   background:var(--ml-primary-soft);
}

.gl-sport-icon{
   display:flex;
   align-items:center;
   justify-content:center;
   width:66px;
   height:66px;
   margin-bottom:30px;
   border-radius:19px;
   background:var(--ml-primary);
   color:var(--ml-white);
}

.gl-sport-icon svg{
   width:31px;
   height:31px;
}

.gl-sport-card>span{
   color:var(--ml-primary);
   font-size:12px;
   font-weight:950;
   letter-spacing:.08em;
}

.gl-sport-card h3{
   margin:7px 0 13px;
   font-size:40px;
   letter-spacing:-.055em;
}

.gl-sport-card>strong{
   display:block;
   margin-bottom:12px;
   font-size:18px;
}

.gl-sport-card>p{
   max-width:520px;
   margin:0;
   color:var(--ml-muted);
   font-size:15px;
   font-weight:700;
   line-height:1.75;
}

.gl-sport-card ul{
   position:relative;
   z-index:1;
   display:flex;
   gap:9px;
   margin:28px 0 0;
   padding:0;
   flex-wrap:wrap;
   list-style:none;
}

.gl-sport-card li{
   display:inline-flex;
   align-items:center;
   gap:5px;
   padding:9px 12px;
   border-radius:999px;
   background:var(--ml-primary-soft);
   color:var(--ml-primary-deep);
   font-size:12px;
   font-weight:900;
}

.gl-sport-card li svg{
   width:14px;
   height:14px;
}

.gl-price{
   background:var(--ml-white);
}

.gl-price-list{
   display:grid;
   gap:14px;
}

.gl-price-card{
   display:grid;
   grid-template-columns:300px 1fr;
   border:1px solid var(--ml-line);
   border-radius:24px;
   overflow:hidden;
   background:var(--ml-white);
   box-shadow:0 16px 45px rgba(var(--ml-shadow-rgb),.055);
}

.gl-price-course{
   padding:28px;
   background:var(--ml-dark);
   color:var(--ml-white);
}

.gl-price-course>span{
   color:var(--ml-primary-light);
   font-size:11px;
   font-weight:950;
   letter-spacing:.08em;
}

.gl-price-course h3{
   margin:8px 0 24px;
   color:var(--ml-white);
   font-size:23px;
   line-height:1.25;
   letter-spacing:-.04em;
}

.gl-price-course>div{
   display:flex;
   align-items:center;
   gap:7px;
   flex-wrap:wrap;
}

.gl-price-course b,
.gl-price-course em{
   padding:7px 10px;
   border-radius:999px;
   background:rgba(var(--ml-white-rgb),.1);
   color:var(--ml-white);
   font-size:12px;
   font-style:normal;
}

.gl-level-list{
   display:grid;
   align-content:center;
   padding:16px 24px;
}

.gl-level-row{
   display:grid;
   grid-template-columns:minmax(120px,.7fr) 1fr 1fr;
   gap:14px;
   align-items:center;
   min-height:75px;
   padding:10px 4px;
   border-bottom:1px solid var(--ml-card-line);
}

.gl-level-row:last-child{
   border-bottom:0;
}

.gl-level-row>strong{
   display:flex;
   align-items:center;
   gap:7px;
   font-size:16px;
}

.gl-level-row>strong small{
   padding:5px 7px;
   border-radius:999px;
   background:var(--ml-primary-soft);
   color:var(--ml-primary-deep);
   font-size:10px;
}

.gl-level-row>span{
   display:grid;
   gap:4px;
}

.gl-level-row>span small{
   color:var(--ml-muted);
   font-size:11px;
   font-weight:800;
}

.gl-level-row>span b{
   color:var(--ml-dark);
   font-size:18px;
}

.gl-price-notice{
   display:flex;
   align-items:flex-start;
   justify-content:center;
   gap:7px;
   margin:20px 0 0;
   color:var(--ml-muted);
   font-size:13px;
   font-weight:750;
   text-align:center;
}

.gl-price-notice svg{
   flex:0 0 auto;
   width:17px;
   height:17px;
   color:var(--ml-primary);
}

.gl-empty{
   display:flex;
   align-items:center;
   justify-content:center;
   flex-direction:column;
   min-height:250px;
   padding:36px;
   border:1px dashed var(--ml-line);
   border-radius:24px;
   background:var(--ml-surface-soft);
   text-align:center;
}

.gl-empty svg{
   width:38px;
   height:38px;
   margin-bottom:16px;
   color:var(--ml-primary);
}

.gl-empty strong{
   font-size:20px;
}

.gl-empty p{
   margin:8px 0 0;
   color:var(--ml-muted);
   font-weight:700;
}

.gl-schedule{
   background:var(--ml-surface-soft);
}

.gl-schedule-grid{
   display:grid;
   grid-template-columns:repeat(2,minmax(0,1fr));
   gap:20px;
}

.gl-schedule-card{
   padding:34px;
   border:1px solid var(--ml-line);
   border-radius:28px;
   background:var(--ml-white);
   box-shadow:0 20px 55px rgba(var(--ml-shadow-rgb),.06);
}

.gl-schedule-head{
   display:flex;
   align-items:center;
   justify-content:space-between;
   gap:18px;
   margin-bottom:30px;
}

.gl-schedule-head span{
   color:var(--ml-primary);
   font-size:11px;
   font-weight:950;
}

.gl-schedule-head h3{
   margin:6px 0 0;
   font-size:28px;
   letter-spacing:-.045em;
}

.gl-schedule-head>b{
   padding:10px 13px;
   border-radius:999px;
   background:var(--ml-dark);
   color:var(--ml-white);
   font-size:12px;
}

.gl-time-axis{
   display:grid;
   grid-template-columns:repeat(5,1fr);
   margin:0 0 8px;
   padding-left:67px;
   color:var(--ml-date);
   font-size:10px;
   font-weight:900;
}

.gl-time-axis span{
   text-align:center;
}

.gl-time-list{
   display:grid;
   gap:10px;
}

.gl-time-row{
   display:grid;
   grid-template-columns:58px 1fr;
   gap:9px;
   align-items:center;
}

.gl-time-row>strong{
   color:var(--ml-text);
   font-size:13px;
}

.gl-time-track{
   position:relative;
   height:46px;
   overflow:hidden;
   border-radius:10px;
   background:repeating-linear-gradient(90deg,var(--ml-number-soft) 0,var(--ml-number-soft) calc(25% - 1px),var(--ml-connector) calc(25% - 1px),var(--ml-connector) 25%);
}

.gl-time-track>span{
   position:absolute;
   top:5px;
   bottom:5px;
   display:flex;
   align-items:center;
   justify-content:center;
   min-width:5px;
   padding:0 6px;
   border-radius:8px;
   background:linear-gradient(90deg,var(--ml-primary),var(--ml-primary-bright));
   color:var(--ml-white);
}

.gl-time-track b{
   overflow:hidden;
   font-size:11px;
   text-overflow:ellipsis;
   white-space:nowrap;
}

.gl-process{
   background:var(--ml-white);
}

.gl-process-list{
   display:grid;
   grid-template-columns:repeat(5,minmax(0,1fr));
   gap:0;
   margin:0;
   padding:0;
   list-style:none;
}

.gl-process-list li{
   position:relative;
   min-height:255px;
   padding:28px 24px;
   border-top:1px solid var(--ml-line);
   border-bottom:1px solid var(--ml-line);
   border-left:1px solid var(--ml-line);
}

.gl-process-list li:first-child{
   border-radius:22px 0 0 22px;
}

.gl-process-list li:last-child{
   border-right:1px solid var(--ml-line);
   border-radius:0 22px 22px 0;
}

.gl-process-list li>span{
   color:var(--ml-primary);
   font-size:12px;
   font-weight:950;
}

.gl-process-list li>svg{
   display:block;
   width:32px;
   height:32px;
   margin:32px 0 24px;
   color:var(--ml-primary);
}

.gl-process-list h3{
   margin:0 0 9px;
   font-size:17px;
}

.gl-process-list p{
   margin:0;
   color:var(--ml-muted);
   font-size:13px;
   font-weight:700;
   line-height:1.7;
}

.gl-notices{
   background:var(--ml-primary-tint);
}

.gl-notice-grid{
   display:grid;
   grid-template-columns:1.12fr .94fr .94fr;
   gap:16px;
}

.gl-notice-card{
   padding:30px;
   border:1px solid var(--ml-line);
   border-radius:24px;
   background:var(--ml-white);
}

.gl-notice-card.is-main{
   border-color:rgba(var(--ml-primary-rgb),.22);
   background:var(--ml-primary-soft);
}

.gl-notice-card>div:first-child{
   display:flex;
   align-items:center;
   gap:10px;
   margin-bottom:21px;
}

.gl-notice-card svg{
   width:24px;
   height:24px;
   color:var(--ml-primary);
}

.gl-notice-card h3{
   margin:0;
   font-size:19px;
}

.gl-notice-copy{
   color:var(--ml-text);
   font-size:14px;
   font-weight:700;
   line-height:1.95;
}

@media(max-width:1180px){
   .gl-summary-grid{
      grid-template-columns:1fr;
      gap:40px;
   }

   .gl-target-grid{
      grid-template-columns:repeat(2,minmax(0,1fr));
   }

   .gl-price-card{
      grid-template-columns:250px 1fr;
   }

   .gl-schedule-grid{
      grid-template-columns:1fr;
   }

   .gl-process-list{
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:12px;
   }

   .gl-process-list li,
.gl-process-list li:first-child,
.gl-process-list li:last-child{
      border:1px solid var(--ml-line);
      border-radius:18px;
   }

   .gl-notice-grid{
      grid-template-columns:1fr 1fr;
   }

   .gl-notice-card.is-main{
      grid-column:1/-1;
   }
}

@media(max-width:780px){
   .gl-section-head{
      align-items:flex-start;
      flex-direction:column;
      gap:14px;
      margin-bottom:30px;
   }

   .gl-section-head.is-center{
      display:block;
   }

   .gl-section-head h2{
      font-size:34px;
   }

   .gl-section-head>p{
      font-size:15px;
   }

   .gl-summary{
      padding-top:52px;
      padding-bottom:62px;
   }

   .gl-summary-copy h2{
      font-size:43px;
   }

   .gl-summary-copy>p{
      font-size:16px;
   }

   .gl-trust-list,
.gl-target-grid,
.gl-sport-grid,
.gl-notice-grid{
      grid-template-columns:1fr;
   }

   .gl-trust-list li{
      min-height:84px;
   }

   .gl-target-grid article{
      min-height:225px;
   }

   .gl-grade-link{
      align-items:flex-start;
      width:100%;
   }

   .gl-sport-card{
      min-height:0;
      padding:30px 24px;
   }

   .gl-sport-card h3{
      font-size:34px;
   }

   .gl-price-card{
      grid-template-columns:1fr;
   }

   .gl-price-course{
      padding:24px;
   }

   .gl-level-list{
      padding:10px 18px;
   }

   .gl-level-row{
      grid-template-columns:1fr 1fr;
      gap:8px;
      padding:16px 0;
   }

   .gl-level-row>strong{
      grid-column:1/-1;
   }

   .gl-schedule-card{
      padding:25px 18px;
   }

   .gl-time-axis{
      padding-left:0;
   }

   .gl-time-row{
      grid-template-columns:1fr;
   }

   .gl-time-track{
      height:42px;
   }

   .gl-process-list{
      grid-template-columns:1fr;
   }

   .gl-process-list li{
      display:grid;
      grid-template-columns:38px 35px 1fr;
      gap:8px 12px;
      min-height:0;
      padding:22px;
   }

   .gl-process-list li>span,
.gl-process-list li>svg,
.gl-process-list h3{
      align-self:center;
      margin:0;
   }

   .gl-process-list p{
      grid-column:3/4;
   }

   .gl-notice-card.is-main{
      grid-column:auto;
   }
}

@media(max-width:460px){
   .gl-actions,
.gl-actions .gl-button{
      width:100%;
   }

   .gl-summary-copy h2{
      font-size:37px;
   }

   .gl-trust-list{
      padding:12px;
   }

   .gl-schedule-head{
      align-items:flex-start;
   }

   .gl-schedule-head h3{
      font-size:24px;
   }

   .gl-time-track b{
      font-size:10px;
   }
}

.gl-common-price-note{
   display:flex;
   align-items:center;
   gap:14px;
   max-width:760px;
   margin:0 auto 26px;
   padding:18px 22px;
   border:1px solid rgba(var(--ml-primary-rgb),.18);
   border-radius:18px;
   background:var(--ml-primary-soft);
}

.gl-common-price-note>svg{
   flex:0 0 auto;
   width:28px;
   height:28px;
   color:var(--ml-primary);
}

.gl-common-price-note strong{
   display:block;
   margin-bottom:4px;
   color:var(--ml-primary-deep);
   font-size:16px;
}

.gl-common-price-note p{
   margin:0;
   color:var(--ml-text);
   font-size:13px;
   font-weight:750;
   line-height:1.6;
}

.gl-price-hours{
   display:grid;
   gap:28px;
}

.gl-price-hour-group{
   padding:28px;
   border:1px solid var(--ml-line);
   border-radius:28px;
   background:var(--ml-surface-soft);
}

.gl-price-hour-head{
   display:flex;
   align-items:center;
   justify-content:space-between;
   gap:24px;
   margin-bottom:18px;
   padding:0 4px;
}

.gl-price-hour-head span{
   color:var(--ml-primary);
   font-size:11px;
   font-weight:950;
   letter-spacing:.08em;
}

.gl-price-hour-head h3{
   margin:6px 0 0;
   color:var(--ml-dark);
   font-size:30px;
   line-height:1.2;
   letter-spacing:-.045em;
}

.gl-price-hour-head p{
   margin:0;
   padding:10px 14px;
   border-radius:999px;
   background:var(--ml-white);
   color:var(--ml-muted);
   font-size:12px;
   font-weight:850;
   white-space:nowrap;
}

.gl-price-hour-head p b{
   color:var(--ml-primary);
}

.gl-price-hour-group .gl-price-list{
   gap:12px;
}

.gl-price-hour-group .gl-price-card{
   border-color:var(--ml-card-line);
   box-shadow:0 12px 34px rgba(var(--ml-shadow-rgb),.05);
}

.gl-price-course h4{
   margin:8px 0 24px;
   color:var(--ml-white);
   font-size:23px;
   line-height:1.25;
   letter-spacing:-.04em;
}

@media(max-width:780px){
   .gl-common-price-note{
      align-items:flex-start;
      margin-bottom:18px;
      padding:16px 17px;
   }

   .gl-price-hours{
      gap:18px;
   }

   .gl-price-hour-group{
      padding:18px;
      border-radius:22px;
   }

   .gl-price-hour-head{
      align-items:flex-start;
      flex-direction:column;
      gap:10px;
      margin-bottom:15px;
   }

   .gl-price-hour-head h3{
      font-size:26px;
   }

   .gl-price-hour-head p{
      padding:8px 11px;
   }
}

.gl-notice-list{
   display:grid;
   gap:12px;
   margin:0;
   padding:0;
   list-style:none;
}

.gl-notice-list li{
   position:relative;
   margin:0;
   padding-left:18px;
   color:var(--ml-text);
   font-size:14px;
   font-weight:700;
   line-height:1.75;
}

.gl-notice-list li:before{
   content:"";
   position:absolute;
   top:.72em;
   left:0;
   width:6px;
   height:6px;
   border-radius:50%;
   background:var(--ml-primary);
   box-shadow:0 0 0 4px rgba(var(--ml-primary-rgb),.1);
}

.gl-notice-card.is-main .gl-notice-list li:before{
   background:var(--ml-primary-deep);
}

@media(max-width:780px){
   .gl-notice-list{
      gap:10px;
   }

   .gl-notice-list li{
      padding-left:16px;
      font-size:13px;
   }
}

.gl-page .gl-gallery {
   padding: 110px 0;
   background: var(--ml-white);
}

.gl-page .gl-gallery-head {
   display: flex;
   align-items: flex-end;
   justify-content: space-between;
   gap: 40px;
   margin-bottom: 38px;
}

.gl-page .gl-gallery-head h2 {
   margin: 10px 0 12px;
   color: var(--ml-navy);
   font-size: clamp(34px, 4vw, 52px);
   font-weight: 900;
   line-height: 1.16;
   letter-spacing: -.055em;
}

.gl-page .gl-gallery-head p {
   max-width: 680px;
   margin: 0;
   color: var(--ml-text);
   font-size: 16px;
   font-weight: 600;
   line-height: 1.75;
}

.gl-page .gl-gallery-more {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
   min-height: 48px;
   padding: 0 19px;
   border: 1px solid var(--ml-primary-line);
   border-radius: 999px;
   background: var(--ml-primary-soft);
   color: var(--ml-primary-deep);
   font-size: 14px;
   font-weight: 850;
   text-decoration: none;
   white-space: nowrap;
   transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
}

.gl-page .gl-gallery-more svg {
   width: 17px;
   height: 17px;
}

.gl-page .gl-gallery-more:hover {
   border-color: var(--ml-primary);
   background: var(--ml-primary);
   color: var(--ml-white);
   transform: translateY(-2px);
}

.gl-page .gl-gallery-grid {
   display: grid;
   grid-template-columns: repeat(12, minmax(0, 1fr));
   grid-template-rows: repeat(2, 250px);
   gap: 16px;
}

.gl-page .gl-gallery-item {
   position: relative;
   display: block;
   overflow: hidden;
   border-radius: 24px;
   background: var(--ml-number-soft);
   box-shadow: 0 18px 46px rgba(var(--ml-shadow-rgb), .08);
   isolation: isolate;
}

.gl-page .gl-gallery-item.item-1 {
   grid-column: span 5;
   grid-row: span 2;
}

.gl-page .gl-gallery-item.item-2 {
   grid-column: span 4;
}

.gl-page .gl-gallery-item.item-3 {
   grid-column: span 3;
}

.gl-page .gl-gallery-item.item-4,
.gl-page .gl-gallery-item.item-5 {
   grid-column: span 2;
}

.gl-page .gl-gallery-item.item-6 {
   grid-column: span 3;
}

.gl-page .gl-gallery-item img {
   display: block;
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: transform .45s ease, filter .3s ease;
}

.gl-page .gl-gallery-overlay {
   position: absolute;
   inset: auto 0 0;
   display: grid;
   grid-template-columns: 1fr auto;
   align-items: end;
   gap: 3px 14px;
   padding: 46px 22px 20px;
   background: linear-gradient(180deg, transparent, rgba(var(--ml-black-rgb), .78));
   color: var(--ml-white);
}

.gl-page .gl-gallery-overlay small {
   grid-column: 1;
   font-size: 10px;
   font-weight: 850;
   letter-spacing: .08em;
   opacity: .72;
}

.gl-page .gl-gallery-overlay b {
   grid-column: 1;
   overflow: hidden;
   font-size: 15px;
   font-weight: 850;
   line-height: 1.35;
   text-overflow: ellipsis;
   white-space: nowrap;
}

.gl-page .gl-gallery-overlay > svg {
   grid-column: 2;
   grid-row: 1 / span 2;
   width: 22px;
   height: 22px;
   transition: transform .25s ease;
}

.gl-page .gl-gallery-item:hover img {
   filter: saturate(1.05) contrast(1.03);
   transform: scale(1.055);
}

.gl-page .gl-gallery-item:hover .gl-gallery-overlay > svg {
   transform: translate(3px, -3px);
}

@media (max-width: 1050px) {
   .gl-page .gl-gallery-grid {
      grid-template-columns: repeat(6, minmax(0, 1fr));
      grid-template-rows: repeat(3, 230px);
   }

   .gl-page .gl-gallery-item.item-1 {
      grid-column: span 4;
      grid-row: span 2;
   }

   .gl-page .gl-gallery-item.item-2,
.gl-page .gl-gallery-item.item-3 {
      grid-column: span 2;
   }

   .gl-page .gl-gallery-item.item-4,
.gl-page .gl-gallery-item.item-5,
.gl-page .gl-gallery-item.item-6 {
      grid-column: span 2;
   }
}

@media (max-width: 720px) {
   .gl-page .gl-gallery {
      padding: 72px 0;
   }

   .gl-page .gl-gallery-head {
      display: block;
      margin-bottom: 28px;
   }

   .gl-page .gl-gallery-head h2 {
      font-size: 32px;
   }

   .gl-page .gl-gallery-head p {
      font-size: 14px;
   }

   .gl-page .gl-gallery-more {
      margin-top: 20px;
   }

   .gl-page .gl-gallery-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      grid-template-rows: none;
      gap: 10px;
   }

   .gl-page .gl-gallery-item,
.gl-page .gl-gallery-item.item-1,
.gl-page .gl-gallery-item.item-2,
.gl-page .gl-gallery-item.item-3,
.gl-page .gl-gallery-item.item-4,
.gl-page .gl-gallery-item.item-5,
.gl-page .gl-gallery-item.item-6 {
      grid-column: span 1;
      grid-row: auto;
      aspect-ratio: 4 / 3;
      border-radius: 17px;
   }

   .gl-page .gl-gallery-item.item-1,
.gl-page .gl-gallery-item.item-6 {
      grid-column: 1 / -1;
      aspect-ratio: 16 / 9;
   }

   .gl-page .gl-gallery-overlay {
      padding: 36px 14px 13px;
   }

   .gl-page .gl-gallery-overlay small {
      font-size: 8px;
   }

   .gl-page .gl-gallery-overlay b {
      font-size: 12px;
   }

   .gl-page .gl-gallery-overlay > svg {
      width: 18px;
      height: 18px;
   }
}

/* =========================================================
 * 주니어 기술등급제 (.jg-*)
 * ========================================================= */

.jg-page {
   background: var(--ml-white);
   color: var(--ml-dark);
}

.jg-page * {
   box-sizing: border-box;
}

.jg-page svg {
   width: 1em;
   height: 1em;
   stroke-width: 2;
}

.jg-kicker {
   display: inline-flex;
   align-items: center;
   color: var(--ml-primary);
   font-size: 14px;
   font-weight: 850;
   letter-spacing: .08em;
}

.jg-section-head {
   display: flex;
   align-items: flex-end;
   justify-content: space-between;
   gap: 40px;
   margin-bottom: 42px;
}

.jg-section-head.is-center {
   display: block;
   max-width: 820px;
   margin: 0 auto 46px;
   text-align: center;
}

.jg-section-head h2 {
   margin: 10px 0 0;
   color: var(--ml-navy);
   font-size: clamp(32px, 4vw, 52px);
   line-height: 1.18;
   letter-spacing: -.055em;
}

.jg-section-head > p,
.jg-section-head > div + p {
   max-width: 580px;
   margin: 0;
   color: var(--ml-text);
   font-size: 17px;
   font-weight: 600;
   line-height: 1.8;
}

.jg-section-head.is-center > p {
   margin-left: auto;
   margin-right: auto;
   text-align: center;
}

.jg-actions {
   display: flex;
   flex-wrap: wrap;
   gap: 12px;
}

.jg-button {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 9px;
   min-height: 54px;
   padding: 0 24px;
   border: 1px solid transparent;
   border-radius: 999px;
   font-size: 15px;
   font-weight: 850;
   transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}

.jg-button:hover {
   transform: translateY(-2px);
}

.jg-button.is-primary {
   background: var(--ml-primary);
   box-shadow: 0 14px 32px rgba(var(--ml-primary-rgb), .24);
   color: var(--ml-white);
}

.jg-button.is-ghost {
   border-color: var(--ml-primary-line);
   background: var(--ml-white);
   color: var(--ml-primary-deep);
}

.jg-summary {
   padding: 100px 0;
   background:
      radial-gradient(circle at 85% 20%, rgba(var(--ml-primary-bright-rgb), .16), transparent 32%),
      linear-gradient(135deg, var(--ml-primary-tint), var(--ml-white));
}

.jg-summary-grid {
   display: grid;
   grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr);
   align-items: center;
   gap: 76px;
}

.jg-summary-copy h2 {
   margin: 18px 0 24px;
   color: var(--ml-navy);
   font-size: clamp(42px, 5.3vw, 72px);
   font-weight: 900;
   line-height: 1.08;
   letter-spacing: -.07em;
}

.jg-summary-copy h2 strong {
   color: var(--ml-primary);
}

.jg-summary-copy > p {
   max-width: 690px;
   margin: 0 0 32px;
   color: var(--ml-text);
   font-size: 18px;
   font-weight: 600;
   line-height: 1.8;
}

.jg-hero-panel {
   padding: 18px;
   border: 1px solid var(--ml-primary-line);
   border-radius: 34px;
   background: rgba(var(--ml-white-rgb), .84);
   box-shadow: var(--ml-shadow);
}

.jg-age-card {
   padding: 34px;
   border-radius: 24px;
   background: linear-gradient(135deg, var(--ml-primary-deep), var(--ml-primary));
   color: var(--ml-white);
}

.jg-age-card span {
   display: block;
   margin-bottom: 7px;
   font-size: 13px;
   font-weight: 850;
   letter-spacing: .08em;
   opacity: .78;
}

.jg-age-card strong {
   display: block;
   font-size: clamp(32px, 4vw, 48px);
   line-height: 1.15;
   letter-spacing: -.045em;
}

.jg-age-card p {
   margin: 12px 0 0;
   font-size: 14px;
   font-weight: 650;
   line-height: 1.6;
   opacity: .82;
}

.jg-hero-panel ul {
   display: grid;
   gap: 4px;
   margin: 14px 0 0;
   padding: 0;
   list-style: none;
}

.jg-hero-panel li {
   display: grid;
   grid-template-columns: 48px 1fr;
   align-items: center;
   gap: 14px;
   padding: 17px 14px;
   border-radius: 18px;
}

.jg-hero-panel li + li {
   border-top: 1px solid var(--ml-card-line);
}

.jg-hero-panel li > svg {
   width: 25px;
   height: 25px;
   color: var(--ml-primary);
}

.jg-hero-panel li span {
   color: var(--ml-muted);
   font-size: 13px;
   font-weight: 650;
   line-height: 1.45;
}

.jg-hero-panel li b {
   display: block;
   margin-bottom: 3px;
   color: var(--ml-navy);
   font-size: 16px;
}

.jg-ksia {
   padding: 100px 0;
   background: var(--ml-white);
}

.jg-ksia-box {
   display: grid;
   grid-template-columns: 260px minmax(0, 1fr) minmax(300px, .65fr);
   align-items: center;
   gap: 48px;
   padding: 54px;
   border: 1px solid var(--ml-line);
   border-radius: 34px;
   background: var(--ml-surface-soft);
   box-shadow: 0 28px 80px rgba(var(--ml-shadow-rgb), .08);
}

.jg-ksia-logo {
   display: flex;
   align-items: center;
   justify-content: center;
   min-height: 220px;
   padding: 28px;
   border: 1px solid var(--ml-card-line);
   border-radius: 26px;
   background: var(--ml-white);
}

.jg-ksia-logo img {
   display: block;
   max-width: 100%;
   max-height: 160px;
   object-fit: contain;
}

.jg-ksia-copy h2 {
   margin: 12px 0 18px;
   color: var(--ml-navy);
   font-size: clamp(32px, 4vw, 50px);
   line-height: 1.16;
   letter-spacing: -.055em;
}

.jg-ksia-copy p {
   margin: 0;
   color: var(--ml-text);
   font-size: 16px;
   font-weight: 600;
   line-height: 1.8;
}

.jg-ksia-points {
   display: grid;
   gap: 12px;
   margin: 0;
   padding: 0;
   list-style: none;
}

.jg-ksia-points li {
   display: grid;
   grid-template-columns: 42px 1fr;
   align-items: center;
   gap: 12px;
   padding: 16px;
   border: 1px solid var(--ml-card-line);
   border-radius: 18px;
   background: var(--ml-white);
}

.jg-ksia-points svg {
   width: 23px;
   height: 23px;
   color: var(--ml-primary);
}

.jg-ksia-points span {
   color: var(--ml-muted);
   font-size: 12px;
   font-weight: 650;
   line-height: 1.45;
}

.jg-ksia-points b {
   display: block;
   margin-bottom: 2px;
   color: var(--ml-navy);
   font-size: 14px;
}

.jg-grades {
   padding: 110px 0;
   background: var(--ml-bg);
}

.jg-grade-age-note {
   display: flex;
   align-items: center;
   gap: 18px;
   max-width: 900px;
   margin: 0 auto 32px;
   padding: 20px 24px;
   border: 1px solid var(--ml-primary-line);
   border-radius: 22px;
   background: var(--ml-primary-soft);
}

.jg-grade-age-note > svg {
   width: 30px;
   height: 30px;
   color: var(--ml-primary);
   flex: 0 0 auto;
}

.jg-grade-age-note strong {
   display: block;
   color: var(--ml-primary-deep);
   font-size: 17px;
}

.jg-grade-age-note p {
   margin: 4px 0 0;
   color: var(--ml-text);
   font-size: 13px;
   font-weight: 600;
   line-height: 1.55;
}

.jg-grade-card li.is-ksia-level1 > span {
   color: #222 !important;
}

.jg-grade-card .jg-level1-badge {
   display: inline-flex;
   align-items: center;
   margin-left: 8px;
   padding: 4px 8px;
   border: 1px solid var(--point, #a66d26);
   border-radius: 999px;
   background: transparent;
   color: var(--point, #a66d26) !important;
   font-size: 11px;
   font-style: normal;
   font-weight: 800;
   line-height: 1;
   letter-spacing: 0.02em;
   vertical-align: middle;
}
.jg-level1-note {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 12px;
   margin-top: 24px;
   padding: 18px 22px;
   border: 1px solid rgba(166, 109, 38, 0.22);
   border-radius: 16px;
   background: rgba(166, 109, 38, 0.07);
   text-align: center;
}

.jg-level1-note svg {
   flex: 0 0 auto;
   width: 22px;
   height: 22px;
   color: var(--point);
}

.jg-level1-note p {
   margin: 0;
}

.jg-level1-note strong {
   margin-right: 8px;
}

@media (max-width: 640px) {
   .jg-level1-note {
      align-items: flex-start;
      text-align: left;
   }

   .jg-level1-note strong {
      display: block;
      margin: 0 0 4px;
   }
}

.jg-grade-grid {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 26px;
}

.jg-grade-card {
   overflow: hidden;
   border: 1px solid var(--ml-line);
   border-radius: 30px;
   background: var(--ml-white);
   box-shadow: 0 24px 70px rgba(var(--ml-shadow-rgb), .07);
}

.jg-grade-card header {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 20px;
   padding: 30px 34px;
   background: var(--ml-navy);
   color: var(--ml-white);
}

.jg-grade-card.is-board header {
   background: var(--ml-primary-deep);
}

.jg-grade-card header span {
   font-size: 12px;
   font-weight: 850;
   letter-spacing: .08em;
   opacity: .65;
}

.jg-grade-card header h3 {
   margin: 4px 0 0;
   font-size: 26px;
   letter-spacing: -.035em;
}

.jg-grade-card header > svg {
   width: 38px;
   height: 38px;
   opacity: .8;
}

.jg-grade-card ol {
   margin: 0;
   padding: 0 34px 16px;
   list-style: none;
}

.jg-grade-card li {
   display: grid;
   grid-template-columns: 108px 1fr;
   align-items: center;
   min-height: 68px;
   border-bottom: 1px solid var(--ml-card-line);
}

.jg-grade-card li:last-child {
   border-bottom: 0;
}

.jg-grade-card li b {
   color: var(--ml-primary);
   font-size: 17px;
   font-weight: 900;
}

.jg-grade-card li span {
   color: var(--ml-text);
   font-size: 16px;
   font-weight: 700;
}

.jg-roadmap {
   padding: 110px 0;
   background: var(--ml-white);
}

.jg-roadmap-list {
   display: grid;
   grid-template-columns: repeat(5, minmax(0, 1fr));
   gap: 14px;
   margin: 0;
   padding: 0;
   list-style: none;
}

.jg-roadmap-list li {
   position: relative;
   min-height: 240px;
   padding: 28px 24px;
   border: 1px solid var(--ml-line);
   border-radius: 24px;
   background: var(--ml-surface-soft);
}

.jg-roadmap-list li > span {
   display: block;
   color: var(--ml-primary-line);
   font-size: 38px;
   font-weight: 900;
   line-height: 1;
}

.jg-roadmap-list li > svg {
   width: 32px;
   height: 32px;
   margin: 25px 0 22px;
   color: var(--ml-primary);
}

.jg-roadmap-list b {
   display: block;
   color: var(--ml-navy);
   font-size: 18px;
}

.jg-roadmap-list p {
   margin: 8px 0 0;
   color: var(--ml-muted);
   font-size: 13px;
   font-weight: 600;
   line-height: 1.65;
}

.jg-price {
   padding: 110px 0;
   background: var(--ml-bg);
}

.jg-common-price-note {
   display: flex;
   align-items: center;
   gap: 18px;
   max-width: 900px;
   margin: 0 auto 30px;
   padding: 20px 24px;
   border: 1px solid var(--ml-primary-line);
   border-radius: 20px;
   background: var(--ml-primary-soft);
}

.jg-common-price-note > svg {
   width: 28px;
   height: 28px;
   color: var(--ml-primary);
   flex: 0 0 auto;
}

.jg-common-price-note strong {
   display: block;
   color: var(--ml-primary-deep);
   font-size: 16px;
}

.jg-common-price-note p {
   margin: 3px 0 0;
   color: var(--ml-text);
   font-size: 13px;
   font-weight: 600;
}

.jg-price-list {
   display: grid;
   gap: 18px;
}

.jg-price-card {
   display: grid;
   grid-template-columns: 340px minmax(0, 1fr);
   overflow: hidden;
   border: 1px solid var(--ml-line);
   border-radius: 28px;
   background: var(--ml-white);
   box-shadow: 0 16px 50px rgba(var(--ml-shadow-rgb), .06);
}

.jg-price-course {
   padding: 32px;
   background: var(--ml-navy);
   color: var(--ml-white);
}

.jg-price-course > span {
   color: var(--ml-primary-light);
   font-size: 12px;
   font-weight: 900;
   letter-spacing: .08em;
}

.jg-price-course h3 {
   margin: 10px 0 22px;
   font-size: 24px;
   line-height: 1.25;
   letter-spacing: -.035em;
}

.jg-price-tags {
   display: flex;
   flex-wrap: wrap;
   gap: 7px;
}

.jg-price-tags b {
   padding: 7px 11px;
   border-radius: 999px;
   background: rgba(var(--ml-white-rgb), .12);
   font-size: 12px;
}

.jg-price-course > small {
   display: block;
   margin-top: 18px;
   color: rgba(var(--ml-white-rgb), .64);
   font-size: 12px;
   font-weight: 700;
}

.jg-level-list {
   display: grid;
   align-content: center;
   padding: 20px 34px;
}

.jg-level-row {
   display: grid;
   grid-template-columns: 1fr 1fr 1fr;
   align-items: center;
   gap: 20px;
   min-height: 82px;
   border-bottom: 1px solid var(--ml-card-line);
}

.jg-level-row:last-child {
   border-bottom: 0;
}

.jg-level-row > strong {
   color: var(--ml-navy);
   font-size: 18px;
}

.jg-level-row > strong small {
   margin-left: 8px;
   padding: 5px 8px;
   border-radius: 999px;
   background: var(--ml-primary-soft);
   color: var(--ml-primary);
   font-size: 10px;
}

.jg-level-row > span small {
   display: block;
   margin-bottom: 4px;
   color: var(--ml-muted);
   font-size: 11px;
   font-weight: 700;
}

.jg-level-row > span b {
   color: var(--ml-dark);
   font-size: 18px;
}

.jg-grade-fee {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 30px;
   margin-top: 24px;
   padding: 26px 30px;
   border: 1px solid var(--ml-primary-line);
   border-radius: 22px;
   background: var(--ml-primary-soft);
}

.jg-grade-fee > div {
   display: flex;
   align-items: center;
   gap: 15px;
}

.jg-grade-fee svg {
   width: 30px;
   height: 30px;
   color: var(--ml-primary);
}

.jg-grade-fee span {
   color: var(--ml-text);
   font-size: 13px;
   font-weight: 650;
}

.jg-grade-fee span b {
   display: block;
   margin-bottom: 3px;
   color: var(--ml-primary-deep);
   font-size: 17px;
}

.jg-grade-fee > strong {
   color: var(--ml-primary-deep);
   font-size: 26px;
   white-space: nowrap;
}

.jg-price-notice {
   display: flex;
   align-items: flex-start;
   gap: 9px;
   margin: 20px 0 0;
   color: var(--ml-muted);
   font-size: 13px;
   font-weight: 600;
   line-height: 1.6;
}

.jg-price-notice svg {
   width: 17px;
   height: 17px;
   margin-top: 2px;
   color: var(--ml-primary);
   flex: 0 0 auto;
}

.jg-grooming-notice {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
   margin: 28px auto 0;
   text-align: center;
}

@media (max-width: 640px) {
   .jg-grooming-notice {
      flex-wrap: wrap;
   }
}

.jg-empty {
   display: grid;
   place-items: center;
   min-height: 220px;
   padding: 36px;
   border: 1px dashed var(--ml-primary-line);
   border-radius: 26px;
   background: var(--ml-white);
   text-align: center;
}

.jg-empty svg {
   width: 36px;
   height: 36px;
   margin-bottom: 14px;
   color: var(--ml-primary);
}

.jg-empty strong {
   color: var(--ml-navy);
   font-size: 18px;
}

.jg-empty p {
   margin: 7px 0 0;
   color: var(--ml-muted);
   font-size: 13px;
}

.jg-test {
   padding: 100px 0;
   background: var(--ml-navy);
   color: var(--ml-white);
}

.jg-test-intro {
   display: grid;
   grid-template-columns: 1fr auto;
   align-items: end;
   gap: 50px;
   margin-bottom: 34px;
}

.jg-test .jg-kicker {
   color: var(--ml-primary-light);
}

.jg-test-intro h2 {
   margin: 10px 0 14px;
   font-size: clamp(32px, 4vw, 50px);
   line-height: 1.15;
   letter-spacing: -.055em;
}

.jg-test-intro p {
   max-width: 720px;
   margin: 0;
   color: rgba(var(--ml-white-rgb), .68);
   font-size: 16px;
   font-weight: 600;
   line-height: 1.75;
}

.jg-test-intro ul {
   display: grid;
   gap: 10px;
   margin: 0;
   padding: 0;
   list-style: none;
}

.jg-test-intro li {
   display: flex;
   align-items: center;
   gap: 9px;
   font-size: 13px;
   font-weight: 750;
   white-space: nowrap;
}

.jg-test-intro li svg {
   width: 19px;
   height: 19px;
   color: var(--ml-primary-light);
}

.jg-test-list {
   display: grid;
   gap: 12px;
}

.jg-test-card {
   display: grid;
   grid-template-columns: 340px minmax(0, 1fr);
   align-items: center;
   gap: 32px;
   padding: 26px 30px;
   border: 1px solid rgba(var(--ml-white-rgb), .13);
   border-radius: 22px;
   background: rgba(var(--ml-white-rgb), .07);
}

.jg-test-card > div:first-child > span {
   color: var(--ml-primary-light);
   font-size: 11px;
   font-weight: 850;
}

.jg-test-card h3 {
   margin: 5px 0;
   font-size: 20px;
}

.jg-test-card p {
   margin: 0;
   color: rgba(var(--ml-white-rgb), .58);
   font-size: 12px;
}

.jg-test-prices {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 12px;
}

.jg-test-prices span {
   padding: 14px 16px;
   border-radius: 15px;
   background: rgba(var(--ml-black-rgb), .16);
}

.jg-test-prices small,
.jg-test-prices b {
   display: block;
}

.jg-test-prices small {
   margin-bottom: 5px;
   color: rgba(var(--ml-white-rgb), .55);
   font-size: 10px;
}

.jg-test-prices b {
   font-size: 14px;
}

.jg-test-contact {
   margin: 0;
   padding: 22px 26px;
   border: 1px solid rgba(var(--ml-white-rgb), .13);
   border-radius: 18px;
   background: rgba(var(--ml-white-rgb), .07);
   color: rgba(var(--ml-white-rgb), .75);
   font-size: 14px;
   font-weight: 650;
}

.jg-schedule {
   padding: 110px 0;
   background: var(--ml-bg);
}

.jg-schedule-grid {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 24px;
}

.jg-schedule-card {
   padding: 34px;
   border: 1px solid var(--ml-line);
   border-radius: 28px;
   background: var(--ml-white);
}

.jg-schedule-head {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 20px;
   margin-bottom: 34px;
}

.jg-schedule-head span {
   color: var(--ml-primary);
   font-size: 11px;
   font-weight: 900;
}

.jg-schedule-head h3 {
   margin: 5px 0 0;
   color: var(--ml-navy);
   font-size: 24px;
}

.jg-schedule-head > b {
   padding: 9px 13px;
   border-radius: 999px;
   background: var(--ml-navy);
   color: var(--ml-white);
   font-size: 11px;
}

.jg-time-axis {
   display: grid;
   grid-template-columns: repeat(5, 1fr);
   margin: 0 0 8px 76px;
   color: var(--ml-date);
   font-size: 10px;
   font-weight: 850;
}

.jg-time-axis span:last-child {
   text-align: right;
}

.jg-time-list {
   display: grid;
   gap: 10px;
}

.jg-time-row {
   display: grid;
   grid-template-columns: 62px 1fr;
   align-items: center;
   gap: 14px;
}

.jg-time-row > strong {
   color: var(--ml-text);
   font-size: 13px;
}

.jg-time-track {
   position: relative;
   height: 46px;
   overflow: hidden;
   border-radius: 12px;
   background:
      linear-gradient(to right, transparent 24.7%, var(--ml-line) 25%, transparent 25.3%, transparent 49.7%, var(--ml-line) 50%, transparent 50.3%, transparent 74.7%, var(--ml-line) 75%, transparent 75.3%),
      var(--ml-number-soft);
}

.jg-time-track > span {
   position: absolute;
   top: 6px;
   bottom: 6px;
   min-width: 80px;
   border-radius: 9px;
   background: var(--ml-primary);
   color: var(--ml-white);
}

.jg-time-track b {
   position: absolute;
   top: 50%;
   left: 50%;
   font-size: 10px;
   white-space: nowrap;
   transform: translate(-50%, -50%);
}

.jg-process {
   padding: 110px 0;
   background: var(--ml-white);
}

.jg-process-list {
   display: grid;
   grid-template-columns: repeat(5, minmax(0, 1fr));
   gap: 14px;
   margin: 0;
   padding: 0;
   list-style: none;
}

.jg-process-list li {
   position: relative;
   padding: 28px 22px;
   border: 1px solid var(--ml-line);
   border-radius: 22px;
   background: var(--ml-surface-soft);
}

.jg-process-list li > span {
   position: absolute;
   top: 18px;
   right: 18px;
   color: var(--ml-number-soft);
   font-size: 30px;
   font-weight: 900;
}

.jg-process-list li > svg {
   width: 30px;
   height: 30px;
   margin-bottom: 32px;
   color: var(--ml-primary);
}

.jg-process-list h3 {
   margin: 0 0 8px;
   color: var(--ml-navy);
   font-size: 17px;
}

.jg-process-list p {
   margin: 0;
   color: var(--ml-muted);
   font-size: 12px;
   font-weight: 600;
   line-height: 1.65;
}

.jg-notices {
   padding: 110px 0;
   background: var(--ml-bg);
}

.jg-notice-grid {
   display: grid;
   grid-template-columns: 1.15fr .925fr .925fr;
   gap: 18px;
}

.jg-notice-card {
   padding: 30px;
   border: 1px solid var(--ml-line);
   border-radius: 26px;
   background: var(--ml-white);
}

.jg-notice-card.is-main {
   border-color: var(--ml-primary-line);
   background: var(--ml-primary-soft);
}

.jg-notice-card > div {
   display: flex;
   align-items: center;
   gap: 13px;
   margin-bottom: 22px;
}

.jg-notice-card svg {
   width: 26px;
   height: 26px;
   color: var(--ml-primary);
}

.jg-notice-card h3 {
   margin: 0;
   color: var(--ml-navy);
   font-size: 19px;
}

.jg-notice-card ul {
   display: grid;
   gap: 10px;
   margin: 0;
   padding: 0;
   list-style: none;
}

.jg-notice-card li {
   position: relative;
   padding-left: 15px;
   color: var(--ml-text);
   font-size: 13px;
   font-weight: 650;
   line-height: 1.7;
}

.jg-notice-card li::before {
   position: absolute;
   top: .72em;
   left: 0;
   width: 5px;
   height: 5px;
   border-radius: 50%;
   background: var(--ml-primary);
   content: "";
}

.jg-button.is-light {
   background: var(--ml-white);
   color: var(--ml-primary-deep);
}

@media (max-width: 1180px) {
   .jg-summary-grid {
      gap: 42px;
   }

   .jg-ksia-box {
      grid-template-columns: 210px minmax(0, 1fr);
   }

   .jg-ksia-points {
      grid-column: 1 / -1;
      grid-template-columns: repeat(3, 1fr);
   }

   .jg-roadmap-list,
.jg-process-list {
      grid-template-columns: repeat(3, 1fr);
   }

   .jg-notice-grid {
      grid-template-columns: 1fr 1fr;
   }

   .jg-notice-card.is-main {
      grid-row: span 2;
   }
}

@media (max-width: 900px) {
   .jg-summary,
.jg-ksia,
.jg-grades,
.jg-roadmap,
.jg-price,
.jg-test,
.jg-schedule,
.jg-process,
.jg-notices {
      padding: 78px 0;
   }

   .jg-summary-grid,
.jg-grade-grid,
.jg-schedule-grid {
      grid-template-columns: 1fr;
   }

   .jg-hero-panel {
      max-width: 620px;
   }

   .jg-section-head {
      display: block;
   }

   .jg-section-head > p,
.jg-section-head > div + p {
      margin-top: 14px;
   }

   .jg-ksia-box {
      grid-template-columns: 180px 1fr;
      padding: 36px;
   }

   .jg-ksia-points {
      grid-template-columns: 1fr;
   }

   .jg-price-card,
.jg-test-card {
      grid-template-columns: 1fr;
   }

   .jg-test-intro {
      grid-template-columns: 1fr;
      align-items: start;
   }

   .jg-test-intro ul {
      grid-template-columns: repeat(3, 1fr);
   }

   .jg-test-intro li {
      white-space: normal;
   }
}

@media (max-width: 640px) {
   .jg-summary,
.jg-ksia,
.jg-grades,
.jg-roadmap,
.jg-price,
.jg-test,
.jg-schedule,
.jg-process,
.jg-notices {
      padding: 60px 0;
   }

   .jg-summary-copy h2 {
      font-size: 38px;
   }

   .jg-summary-copy > p {
      font-size: 16px;
   }

   .jg-actions,
.jg-button {
      width: 100%;
   }

   .jg-section-head,
.jg-section-head.is-center {
      margin-bottom: 30px;
   }

   .jg-section-head h2 {
      font-size: 30px;
   }

   .jg-section-head > p,
.jg-section-head > div + p {
      font-size: 14px;
   }

   .jg-ksia-box {
      grid-template-columns: 1fr;
      gap: 28px;
      padding: 22px;
   }

   .jg-ksia-logo {
      min-height: 160px;
   }

   .jg-grade-age-note,
.jg-common-price-note {
      align-items: flex-start;
      padding: 18px;
   }

   .jg-grade-card header {
      padding: 24px;
   }

   .jg-grade-card ol {
      padding: 0 24px 12px;
   }

   .jg-grade-card li {
      grid-template-columns: 82px 1fr;
      min-height: 58px;
   }

   .jg-grade-card li b,
.jg-grade-card li span {
      font-size: 14px;
   }

   .jg-roadmap-list,
.jg-process-list,
.jg-notice-grid {
      grid-template-columns: 1fr;
   }

   .jg-notice-card.is-main {
      grid-row: auto;
   }

   .jg-roadmap-list li {
      min-height: auto;
   }

   .jg-price-course,
.jg-level-list {
      padding: 25px;
   }

   .jg-level-row {
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      padding: 16px 0;
   }

   .jg-level-row > strong {
      grid-column: 1 / -1;
   }

   .jg-grade-fee {
      display: block;
      padding: 22px;
   }

   .jg-grade-fee > strong {
      display: block;
      margin-top: 18px;
   }

   .jg-test-intro ul,
.jg-test-prices {
      grid-template-columns: 1fr;
   }

   .jg-test-card,
.jg-schedule-card,
.jg-notice-card {
      padding: 24px;
   }

   .jg-time-axis {
      margin-left: 55px;
   }

   .jg-time-row {
      grid-template-columns: 44px 1fr;
      gap: 10px;
   }

   .jg-time-track b {
      font-size: 9px;
   }
}

.jg-page .jg-gallery {
   padding: 110px 0;
   background: var(--ml-white);
}

.jg-page .jg-gallery-head {
   display: flex;
   align-items: flex-end;
   justify-content: space-between;
   gap: 40px;
   margin-bottom: 38px;
}

.jg-page .jg-gallery-head h2 {
   margin: 10px 0 12px;
   color: var(--ml-navy);
   font-size: clamp(34px, 4vw, 52px);
   font-weight: 900;
   line-height: 1.16;
   letter-spacing: -.055em;
}

.jg-page .jg-gallery-head p {
   max-width: 700px;
   margin: 0;
   color: var(--ml-text);
   font-size: 16px;
   font-weight: 600;
   line-height: 1.75;
}

.jg-page .jg-gallery-more {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
   min-height: 48px;
   padding: 0 19px;
   border: 1px solid var(--ml-primary-line);
   border-radius: 999px;
   background: var(--ml-primary-soft);
   color: var(--ml-primary-deep);
   font-size: 14px;
   font-weight: 850;
   text-decoration: none;
   white-space: nowrap;
   transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
}

.jg-page .jg-gallery-more svg {
   width: 17px;
   height: 17px;
}

.jg-page .jg-gallery-more:hover {
   border-color: var(--ml-primary);
   background: var(--ml-primary);
   color: var(--ml-white);
   transform: translateY(-2px);
}

.jg-page .jg-gallery-grid {
   display: grid;
   grid-template-columns: repeat(12, minmax(0, 1fr));
   grid-template-rows: repeat(3, 220px);
   gap: 16px;
}

.jg-page .jg-gallery-item {
   position: relative;
   display: block;
   overflow: hidden;
   border-radius: 24px;
   background: var(--ml-number-soft);
   box-shadow: 0 18px 46px rgba(var(--ml-shadow-rgb), .08);
   isolation: isolate;
}

.jg-page .jg-gallery-item.item-1 {
   grid-column: span 6;
   grid-row: span 2;
}

.jg-page .jg-gallery-item.item-2,
.jg-page .jg-gallery-item.item-3,
.jg-page .jg-gallery-item.item-4,
.jg-page .jg-gallery-item.item-5 {
   grid-column: span 3;
}

.jg-page .jg-gallery-item.item-6,
.jg-page .jg-gallery-item.item-7 {
   grid-column: span 6;
}

.jg-page .jg-gallery-item img {
   display: block;
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: transform .45s ease, filter .3s ease;
}

.jg-page .jg-gallery-overlay {
   position: absolute;
   inset: auto 0 0;
   display: grid;
   grid-template-columns: 1fr auto;
   align-items: end;
   gap: 3px 14px;
   padding: 46px 22px 20px;
   background: linear-gradient(180deg, transparent, rgba(var(--ml-black-rgb), .78));
   color: var(--ml-white);
}

.jg-page .jg-gallery-overlay small {
   grid-column: 1;
   font-size: 10px;
   font-weight: 850;
   letter-spacing: .08em;
   opacity: .72;
}

.jg-page .jg-gallery-overlay b {
   grid-column: 1;
   overflow: hidden;
   font-size: 15px;
   font-weight: 850;
   line-height: 1.35;
   text-overflow: ellipsis;
   white-space: nowrap;
}

.jg-page .jg-gallery-overlay > svg {
   grid-column: 2;
   grid-row: 1 / span 2;
   width: 22px;
   height: 22px;
   transition: transform .25s ease;
}

.jg-page .jg-gallery-item:hover img {
   filter: saturate(1.05) contrast(1.03);
   transform: scale(1.055);
}

.jg-page .jg-gallery-item:hover .jg-gallery-overlay > svg {
   transform: translate(3px, -3px);
}

@media (max-width: 900px) {
   .jg-page .jg-gallery {
      padding: 78px 0;
   }

   .jg-page .jg-gallery-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      grid-template-rows: none;
      gap: 12px;
   }

   .jg-page .jg-gallery-item,
.jg-page .jg-gallery-item.item-1,
.jg-page .jg-gallery-item.item-2,
.jg-page .jg-gallery-item.item-3,
.jg-page .jg-gallery-item.item-4,
.jg-page .jg-gallery-item.item-5,
.jg-page .jg-gallery-item.item-6,
.jg-page .jg-gallery-item.item-7 {
      grid-column: span 1;
      grid-row: auto;
      aspect-ratio: 4 / 3;
   }

   .jg-page .jg-gallery-item.item-1,
.jg-page .jg-gallery-item.item-6,
.jg-page .jg-gallery-item.item-7 {
      grid-column: 1 / -1;
      aspect-ratio: 16 / 8;
   }
}

@media (max-width: 640px) {
   .jg-page .jg-gallery {
      padding: 60px 0;
   }

   .jg-page .jg-gallery-head {
      display: block;
      margin-bottom: 28px;
   }

   .jg-page .jg-gallery-head h2 {
      font-size: 30px;
   }

   .jg-page .jg-gallery-head p {
      font-size: 14px;
   }

   .jg-page .jg-gallery-more {
      margin-top: 20px;
   }

   .jg-page .jg-gallery-grid {
      gap: 10px;
   }

   .jg-page .jg-gallery-item,
.jg-page .jg-gallery-item.item-1,
.jg-page .jg-gallery-item.item-2,
.jg-page .jg-gallery-item.item-3,
.jg-page .jg-gallery-item.item-4,
.jg-page .jg-gallery-item.item-5,
.jg-page .jg-gallery-item.item-6,
.jg-page .jg-gallery-item.item-7 {
      border-radius: 17px;
   }

   .jg-page .jg-gallery-overlay {
      padding: 36px 14px 13px;
   }

   .jg-page .jg-gallery-overlay small {
      font-size: 8px;
   }

   .jg-page .jg-gallery-overlay b {
      font-size: 12px;
   }

   .jg-page .jg-gallery-overlay > svg {
      width: 18px;
      height: 18px;
   }
}
/* =========================================================
 * 준비물
 * ========================================================= */
 .lp-preparation {
    background: var(--ml-white);
 }
 
 .lp-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
    margin-bottom: 42px;
 }
 
 .lp-section-head span {
    color: var(--ml-primary);
    font-size: 13px;
    font-weight: 950;
    letter-spacing: .08em;
 }
 
 .lp-section-head h2 {
    margin: 10px 0 0;
    color: var(--ml-dark);
    font-size: clamp(32px, 4vw, 54px);
    line-height: 1.12;
    letter-spacing: -.055em;
 }
 
 .lp-section-head > p {
    max-width: 520px;
    margin: 0;
    color: var(--ml-muted);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.75;
 }
 
 .lp-preparation-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
 }
 
 .lp-preparation-item {
    position: relative;
    padding: 18px 12px 17px;
    border: 1px solid var(--ml-card-line);
    border-radius: 22px;
    background: var(--ml-surface-soft);
    text-align: center;
    transition: transform .2s, border-color .2s, box-shadow .2s;
 }
 
 .lp-preparation-item:hover {
    transform: translateY(-3px);
    border-color: var(--ml-primary-line);
    box-shadow: 0 14px 32px rgba(var(--ml-shadow-rgb), .08);
 }
 
 .lp-preparation-image {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 84px;
    max-width: 100%;
    aspect-ratio: 1;
    margin: 0 auto 14px;
    overflow: hidden;
    border-radius: 50%;
    background: var(--ml-white);
 }
 
 .lp-preparation-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
 }
 
 .lp-preparation-item h3 {
    margin: 0 0 8px;
    color: var(--ml-dark);
    font-size: 16px;
    line-height: 1.3;
    letter-spacing: -.025em;
 }
 
 .lp-preparation-item > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    padding: 0 9px;
    border-radius: 999px;
    background: var(--ml-primary-soft);
    color: var(--ml-primary-deep);
    font-size: 10px;
    font-weight: 900;
 }
 
 .lp-preparation-item.is-rental > span {
    background: var(--ml-surface-soft);
    box-shadow: inset 0 0 0 1px var(--ml-primary-line);
 }
 
 .lp-preparation-item.is-required {
    border-color: var(--ml-primary-line);
    background: var(--ml-primary-tint);
 }
 
 .lp-preparation-item.is-required > span {
    background: var(--ml-primary);
    color: var(--ml-white);
 }
 
 .lp-preparation-notice {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-top: 20px;
    padding: 18px 22px;
    border: 1px solid rgba(var(--ml-primary-rgb), .18);
    border-radius: 18px;
    background: var(--ml-primary-soft);
 }
 
 .lp-preparation-notice > svg {
    flex: 0 0 auto;
    width: 21px;
    height: 21px;
    margin-top: 2px;
    color: var(--ml-primary);
 }
 
 .lp-preparation-notice p {
    margin: 0;
    color: var(--ml-text);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.75;
 }
 
 .lp-preparation-notice strong {
    display: block;
    margin-bottom: 2px;
    color: var(--ml-primary-deep);
 }
 
 @media (max-width: 1100px) {
    .lp-preparation-grid {
       grid-template-columns: repeat(4, minmax(0, 1fr));
    }
 }
 
 @media (max-width: 780px) {
    .lp-section-head {
       align-items: flex-start;
       flex-direction: column;
       gap: 14px;
       margin-bottom: 28px;
    }
 
    .lp-section-head h2 {
       font-size: 34px;
    }
 
    .lp-section-head > p {
       font-size: 15px;
    }
 
    .lp-preparation-grid {
       grid-template-columns: repeat(3, minmax(0, 1fr));
       gap: 10px;
    }
 
    .lp-preparation-item {
       padding: 14px 8px;
       border-radius: 18px;
    }
 
    .lp-preparation-image {
       width: 72px;
       margin-bottom: 10px;
    }
 
    .lp-preparation-item h3 {
       font-size: 14px;
    }
 }
 
 @media (max-width: 480px) {
    .lp-preparation-grid {
       grid-template-columns: repeat(2, minmax(0, 1fr));
    }
 
    .lp-preparation-image {
       width: 68px;
    }
 
    .lp-preparation-notice {
       padding: 16px;
    }
 }
 
/* =========================================================
 * 시즌강습 (.sl-*)
 * ========================================================= */

.sl-page {
   background: var(--ml-white);
   color: var(--ml-dark);
}

.sl-page * {
   box-sizing: border-box;
}

.sl-page svg {
   width: 1em;
   height: 1em;
   stroke-width: 2;
}

.sl-kicker {
   display: inline-flex;
   color: var(--ml-primary);
   font-size: 13px;
   font-weight: 900;
   letter-spacing: .08em;
}

.sl-section-head {
   display: flex;
   align-items: flex-end;
   justify-content: space-between;
   gap: 42px;
   margin-bottom: 42px;
}

.sl-section-head.is-center {
   display: block;
   max-width: 820px;
   margin: 0 auto 46px;
   text-align: center;
}

.sl-section-head h2 {
   margin: 10px 0 0;
   color: var(--ml-navy);
   font-size: clamp(32px, 4vw, 52px);
   line-height: 1.16;
   letter-spacing: -.055em;
}

.sl-section-head > p,
.sl-section-head > div + p {
   max-width: 580px;
   margin: 0;
   color: var(--ml-text);
   font-size: 17px;
   font-weight: 600;
   line-height: 1.8;
}

.sl-actions {
   display: flex;
   flex-wrap: wrap;
   gap: 12px;
}

.sl-button {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 9px;
   min-height: 54px;
   padding: 0 24px;
   border: 1px solid transparent;
   border-radius: 999px;
   font-size: 15px;
   font-weight: 850;
   text-decoration: none;
   transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}

.sl-button:hover {
   transform: translateY(-2px);
}

.sl-button.is-primary {
   background: var(--ml-primary);
   box-shadow: 0 14px 32px rgba(var(--ml-primary-rgb), .24);
   color: var(--ml-white);
}

.sl-button.is-ghost {
   border-color: var(--ml-primary-line);
   background: var(--ml-white);
   color: var(--ml-primary-deep);
}

.sl-summary {
   padding: 100px 0;
   background:
      radial-gradient(circle at 88% 18%, rgba(var(--ml-primary-bright-rgb), .18), transparent 31%),
      linear-gradient(135deg, var(--ml-primary-tint), var(--ml-white));
}

.sl-summary-grid {
   display: grid;
   grid-template-columns: minmax(0, 1.08fr) minmax(380px, .92fr);
   align-items: center;
   gap: 72px;
}

.sl-summary-copy h2 {
   margin: 18px 0 24px;
   color: var(--ml-navy);
   font-size: clamp(42px, 5.2vw, 70px);
   font-weight: 900;
   line-height: 1.08;
   letter-spacing: -.07em;
}

.sl-summary-copy h2 strong {
   color: var(--ml-primary);
}

.sl-summary-copy > p {
   max-width: 690px;
   margin: 0 0 32px;
   color: var(--ml-text);
   font-size: 18px;
   font-weight: 600;
   line-height: 1.8;
}

.sl-summary-panel {
   overflow: hidden;
   border: 1px solid var(--ml-primary-line);
   border-radius: 32px;
   background: var(--ml-white);
   box-shadow: var(--ml-shadow);
}

.sl-summary-mark {
   display: flex;
   align-items: center;
   gap: 18px;
   padding: 30px;
   background: linear-gradient(135deg, var(--ml-primary-deep), var(--ml-primary));
   color: var(--ml-white);
}

.sl-summary-mark > svg {
   width: 45px;
   height: 45px;
   opacity: .9;
}

.sl-summary-mark small,
.sl-summary-mark b {
   display: block;
}

.sl-summary-mark small {
   font-size: 10px;
   font-weight: 850;
   letter-spacing: .09em;
   opacity: .7;
}

.sl-summary-mark b {
   margin-top: 4px;
   font-size: 22px;
   letter-spacing: -.03em;
}

.sl-summary-panel ul {
   margin: 0;
   padding: 12px 26px 20px;
   list-style: none;
}

.sl-summary-panel li {
   display: grid;
   grid-template-columns: 48px 1fr;
   align-items: center;
   gap: 12px;
   padding: 19px 4px;
   border-bottom: 1px solid var(--ml-card-line);
}

.sl-summary-panel li:last-child {
   border-bottom: 0;
}

.sl-summary-panel li > span {
   color: var(--ml-primary-line);
   font-size: 25px;
   font-weight: 900;
}

.sl-summary-panel li b {
   display: block;
   color: var(--ml-navy);
   font-size: 16px;
}

.sl-summary-panel li p {
   margin: 3px 0 0;
   color: var(--ml-muted);
   font-size: 12px;
   font-weight: 600;
}

.sl-benefits {
   padding: 110px 0;
   background: var(--ml-white);
}

.sl-benefit-grid {
   display: grid;
   grid-template-columns: repeat(4, minmax(0, 1fr));
   gap: 16px;
}

.sl-benefit-grid article {
   position: relative;
   min-height: 270px;
   padding: 30px;
   border: 1px solid var(--ml-line);
   border-radius: 26px;
   background: var(--ml-surface-soft);
}

.sl-benefit-grid article > span {
   position: absolute;
   top: 20px;
   right: 22px;
   color: var(--ml-number-soft);
   font-size: 34px;
   font-weight: 900;
}

.sl-benefit-grid article > svg {
   width: 36px;
   height: 36px;
   margin: 22px 0 48px;
   color: var(--ml-primary);
}

.sl-benefit-grid h3 {
   margin: 0 0 9px;
   color: var(--ml-navy);
   font-size: 20px;
}

.sl-benefit-grid p {
   margin: 0;
   color: var(--ml-muted);
   font-size: 13px;
   font-weight: 600;
   line-height: 1.65;
}

.sl-general-link {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
   max-width: 650px;
   margin: 26px auto 0;
   padding: 17px 20px;
   border: 1px solid var(--ml-primary-line);
   border-radius: 18px;
   background: var(--ml-primary-soft);
   color: var(--ml-text);
   font-size: 14px;
   font-weight: 650;
   text-decoration: none;
}

.sl-general-link strong,
.sl-general-link svg {
   color: var(--ml-primary-deep);
}

.sl-roadmap {
   padding: 110px 0;
   background: var(--ml-bg);
}

.sl-roadmap-list {
   display: grid;
   grid-template-columns: repeat(6, minmax(0, 1fr));
   gap: 12px;
   margin: 0;
   padding: 0;
   list-style: none;
}

.sl-roadmap-list li {
   min-height: 245px;
   padding: 25px 20px;
   border: 1px solid var(--ml-line);
   border-radius: 23px;
   background: var(--ml-white);
}

.sl-roadmap-list li > span {
   display: block;
   color: var(--ml-primary-line);
   font-size: 32px;
   font-weight: 900;
   line-height: 1;
}

.sl-roadmap-list li > svg {
   width: 30px;
   height: 30px;
   margin: 28px 0 25px;
   color: var(--ml-primary);
}

.sl-roadmap-list b {
   display: block;
   color: var(--ml-navy);
   font-size: 16px;
}

.sl-roadmap-list p {
   margin: 7px 0 0;
   color: var(--ml-muted);
   font-size: 12px;
   font-weight: 600;
   line-height: 1.6;
}

.sl-gallery {
   padding: 110px 0;
   background: var(--ml-white);
}

.sl-gallery-head {
   display: flex;
   align-items: flex-end;
   justify-content: space-between;
   gap: 40px;
   margin-bottom: 38px;
}

.sl-gallery-head h2 {
   margin: 10px 0 12px;
   color: var(--ml-navy);
   font-size: clamp(34px, 4vw, 52px);
   line-height: 1.16;
   letter-spacing: -.055em;
}

.sl-gallery-head p {
   max-width: 700px;
   margin: 0;
   color: var(--ml-text);
   font-size: 16px;
   font-weight: 600;
   line-height: 1.75;
}

.sl-gallery-more {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
   min-height: 48px;
   padding: 0 19px;
   border: 1px solid var(--ml-primary-line);
   border-radius: 999px;
   background: var(--ml-primary-soft);
   color: var(--ml-primary-deep);
   font-size: 14px;
   font-weight: 850;
   text-decoration: none;
   white-space: nowrap;
   transition: .2s ease;
}

.sl-gallery-more:hover {
   border-color: var(--ml-primary);
   background: var(--ml-primary);
   color: var(--ml-white);
   transform: translateY(-2px);
}

.sl-gallery-grid {
   display: grid;
   grid-template-columns: repeat(12, minmax(0, 1fr));
   grid-template-rows: repeat(3, 220px);
   gap: 16px;
}

.sl-gallery-item {
   position: relative;
   display: block;
   overflow: hidden;
   border-radius: 24px;
   background: var(--ml-number-soft);
   box-shadow: 0 18px 46px rgba(var(--ml-shadow-rgb), .08);
   isolation: isolate;
}

.sl-gallery-item.item-1 {
   grid-column: span 6;
   grid-row: span 2;
}

.sl-gallery-item.item-2,
.sl-gallery-item.item-3,
.sl-gallery-item.item-4,
.sl-gallery-item.item-5 {
   grid-column: span 3;
}

.sl-gallery-item.item-6,
.sl-gallery-item.item-7 {
   grid-column: span 6;
}

.sl-gallery-item img {
   display: block;
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: transform .45s ease, filter .3s ease;
}

.sl-gallery-overlay {
   position: absolute;
   inset: auto 0 0;
   display: grid;
   grid-template-columns: 1fr auto;
   align-items: end;
   gap: 3px 14px;
   padding: 46px 22px 20px;
   background: linear-gradient(180deg, transparent, rgba(var(--ml-black-rgb), .78));
   color: var(--ml-white);
}

.sl-gallery-overlay small,
.sl-gallery-overlay b {
   grid-column: 1;
}

.sl-gallery-overlay small {
   font-size: 10px;
   font-weight: 850;
   letter-spacing: .08em;
   opacity: .72;
}

.sl-gallery-overlay b {
   overflow: hidden;
   font-size: 15px;
   text-overflow: ellipsis;
   white-space: nowrap;
}

.sl-gallery-overlay > svg {
   grid-column: 2;
   grid-row: 1 / span 2;
   width: 22px;
   height: 22px;
   transition: transform .25s ease;
}

.sl-gallery-item:hover img {
   filter: saturate(1.05) contrast(1.03);
   transform: scale(1.055);
}

.sl-gallery-item:hover .sl-gallery-overlay > svg {
   transform: translate(3px, -3px);
}

.sl-price {
   padding: 110px 0;
   background: var(--ml-bg);
}

.sl-common-price-note {
   display: flex;
   align-items: center;
   gap: 18px;
   max-width: 900px;
   margin: 0 auto 30px;
   padding: 20px 24px;
   border: 1px solid var(--ml-primary-line);
   border-radius: 20px;
   background: var(--ml-primary-soft);
}

.sl-common-price-note > svg {
   width: 28px;
   height: 28px;
   color: var(--ml-primary);
   flex: 0 0 auto;
}

.sl-common-price-note strong {
   display: block;
   color: var(--ml-primary-deep);
   font-size: 16px;
}

.sl-common-price-note p {
   margin: 3px 0 0;
   color: var(--ml-text);
   font-size: 13px;
   font-weight: 600;
}

.sl-price-groups {
   display: grid;
   gap: 32px;
}

.sl-price-group {
   padding: 28px;
   border: 1px solid var(--ml-line);
   border-radius: 30px;
   background: var(--ml-surface-soft);
}

.sl-price-group-head {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 20px;
   margin-bottom: 22px;
   padding: 0 4px;
}

.sl-price-group-head span {
   color: var(--ml-primary);
   font-size: 11px;
   font-weight: 900;
   letter-spacing: .08em;
}

.sl-price-group-head h3 {
   margin: 5px 0 0;
   color: var(--ml-navy);
   font-size: 27px;
   letter-spacing: -.04em;
}

.sl-price-group-head p {
   margin: 0;
   padding: 10px 14px;
   border-radius: 999px;
   background: var(--ml-white);
   color: var(--ml-muted);
   font-size: 12px;
   font-weight: 700;
}

.sl-price-list {
   display: grid;
   gap: 14px;
}

.sl-price-card {
   display: grid;
   grid-template-columns: 320px minmax(0, 1fr);
   overflow: hidden;
   border: 1px solid var(--ml-line);
   border-radius: 24px;
   background: var(--ml-white);
}

.sl-price-course {
   padding: 30px;
   background: var(--ml-navy);
   color: var(--ml-white);
}

.sl-price-course > span {
   color: var(--ml-primary-light);
   font-size: 11px;
   font-weight: 900;
   letter-spacing: .08em;
}

.sl-price-course h4 {
   margin: 9px 0 22px;
   font-size: 23px;
   line-height: 1.3;
   letter-spacing: -.035em;
}

.sl-price-course > div {
   display: flex;
   flex-wrap: wrap;
   gap: 7px;
}

.sl-price-course b,
.sl-price-course em {
   padding: 7px 10px;
   border-radius: 999px;
   background: rgba(var(--ml-white-rgb), .12);
   font-size: 11px;
   font-style: normal;
}

.sl-level-list {
   display: grid;
   align-content: center;
   padding: 18px 32px;
}

.sl-level-row {
   display: grid;
   grid-template-columns: 1fr 1fr 1fr;
   align-items: center;
   gap: 20px;
   min-height: 78px;
   border-bottom: 1px solid var(--ml-card-line);
}

.sl-level-row:last-child {
   border-bottom: 0;
}

.sl-level-row > strong {
   color: var(--ml-navy);
   font-size: 18px;
}

.sl-level-row > strong small {
   margin-left: 8px;
   padding: 5px 8px;
   border-radius: 999px;
   background: var(--ml-primary-soft);
   color: var(--ml-primary);
   font-size: 10px;
}

.sl-level-row > span small {
   display: block;
   margin-bottom: 4px;
   color: var(--ml-muted);
   font-size: 11px;
   font-weight: 700;
}

.sl-level-row > span b {
   color: var(--ml-dark);
   font-size: 18px;
}

.sl-price-notice {
   display: flex;
   align-items: flex-start;
   gap: 9px;
   margin: 20px 0 0;
   color: var(--ml-muted);
   font-size: 13px;
   font-weight: 600;
   line-height: 1.6;
}

.sl-price-notice svg {
   width: 17px;
   height: 17px;
   margin-top: 2px;
   color: var(--ml-primary);
   flex: 0 0 auto;
}

.sl-empty {
   display: grid;
   place-items: center;
   min-height: 210px;
   padding: 34px;
   border: 1px dashed var(--ml-primary-line);
   border-radius: 25px;
   background: var(--ml-white);
   text-align: center;
}

.sl-empty svg {
   width: 35px;
   height: 35px;
   margin-bottom: 14px;
   color: var(--ml-primary);
}

.sl-empty strong {
   color: var(--ml-navy);
   font-size: 18px;
}

.sl-empty p {
   margin: 7px 0 0;
   color: var(--ml-muted);
   font-size: 13px;
}

.sl-schedule {
   padding: 110px 0;
   background: var(--ml-white);
}

.sl-schedule-grid {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 24px;
}

.sl-schedule-card {
   padding: 34px;
   border: 1px solid var(--ml-line);
   border-radius: 28px;
   background: var(--ml-surface-soft);
}

.sl-schedule-head {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 20px;
   margin-bottom: 34px;
}

.sl-schedule-head span {
   color: var(--ml-primary);
   font-size: 11px;
   font-weight: 900;
}

.sl-schedule-head h3 {
   margin: 5px 0 0;
   color: var(--ml-navy);
   font-size: 24px;
}

.sl-schedule-head > b {
   padding: 9px 13px;
   border-radius: 999px;
   background: var(--ml-navy);
   color: var(--ml-white);
   font-size: 11px;
}

.sl-time-axis {
   display: grid;
   grid-template-columns: repeat(5, 1fr);
   margin: 0 0 8px 76px;
   color: var(--ml-date);
   font-size: 10px;
   font-weight: 850;
}

.sl-time-axis span:last-child {
   text-align: right;
}

.sl-time-list {
   display: grid;
   gap: 10px;
}

.sl-time-row {
   display: grid;
   grid-template-columns: 62px 1fr;
   align-items: center;
   gap: 14px;
}

.sl-time-row > strong {
   color: var(--ml-text);
   font-size: 13px;
}

.sl-time-track {
   position: relative;
   height: 46px;
   overflow: hidden;
   border-radius: 12px;
   background:
      linear-gradient(to right, transparent 24.7%, var(--ml-line) 25%, transparent 25.3%, transparent 49.7%, var(--ml-line) 50%, transparent 50.3%, transparent 74.7%, var(--ml-line) 75%, transparent 75.3%),
      var(--ml-number-soft);
}

.sl-time-track > span {
   position: absolute;
   top: 6px;
   bottom: 6px;
   min-width: 80px;
   border-radius: 9px;
   background: var(--ml-primary);
   color: var(--ml-white);
}

.sl-time-track b {
   position: absolute;
   top: 50%;
   left: 50%;
   font-size: 10px;
   white-space: nowrap;
   transform: translate(-50%, -50%);
}

.sl-process {
   padding: 110px 0;
   background: var(--ml-bg);
}

.sl-process-list {
   display: grid;
   grid-template-columns: repeat(5, minmax(0, 1fr));
   gap: 14px;
   margin: 0;
   padding: 0;
   list-style: none;
}

.sl-process-list li {
   position: relative;
   padding: 28px 22px;
   border: 1px solid var(--ml-line);
   border-radius: 22px;
   background: var(--ml-white);
}

.sl-process-list li > span {
   position: absolute;
   top: 18px;
   right: 18px;
   color: var(--ml-number-soft);
   font-size: 30px;
   font-weight: 900;
}

.sl-process-list li > svg {
   width: 30px;
   height: 30px;
   margin-bottom: 32px;
   color: var(--ml-primary);
}

.sl-process-list h3 {
   margin: 0 0 8px;
   color: var(--ml-navy);
   font-size: 17px;
}

.sl-process-list p {
   margin: 0;
   color: var(--ml-muted);
   font-size: 12px;
   font-weight: 600;
   line-height: 1.65;
}

.sl-notices {
   padding: 110px 0;
   background: var(--ml-white);
}

.sl-notice-grid {
   display: grid;
   grid-template-columns: 1.15fr .925fr .925fr;
   gap: 18px;
}

.sl-notice-card {
   padding: 30px;
   border: 1px solid var(--ml-line);
   border-radius: 26px;
   background: var(--ml-surface-soft);
}

.sl-notice-card.is-main {
   border-color: var(--ml-primary-line);
   background: var(--ml-primary-soft);
}

.sl-notice-card > div {
   display: flex;
   align-items: center;
   gap: 13px;
   margin-bottom: 22px;
}

.sl-notice-card svg {
   width: 26px;
   height: 26px;
   color: var(--ml-primary);
}

.sl-notice-card h3 {
   margin: 0;
   color: var(--ml-navy);
   font-size: 19px;
}

.sl-notice-card ul {
   display: grid;
   gap: 10px;
   margin: 0;
   padding: 0;
   list-style: none;
}

.sl-notice-card li {
   position: relative;
   padding-left: 15px;
   color: var(--ml-text);
   font-size: 13px;
   font-weight: 650;
   line-height: 1.7;
}

.sl-notice-card li::before {
   position: absolute;
   top: .72em;
   left: 0;
   width: 5px;
   height: 5px;
   border-radius: 50%;
   background: var(--ml-primary);
   content: "";
}

.sl-button.is-light {
   background: var(--ml-white);
   color: var(--ml-primary-deep);
}

@media (max-width: 1180px) {
   .sl-summary-grid {
      gap: 42px;
   }

   .sl-roadmap-list {
      grid-template-columns: repeat(3, 1fr);
   }

   .sl-process-list {
      grid-template-columns: repeat(3, 1fr);
   }

   .sl-notice-grid {
      grid-template-columns: 1fr 1fr;
   }

   .sl-notice-card.is-main {
      grid-row: span 2;
   }
}

@media (max-width: 900px) {
   .sl-summary,
.sl-benefits,
.sl-roadmap,
.sl-gallery,
.sl-price,
.sl-schedule,
.sl-process,
.sl-notices {
      padding: 78px 0;
   }

   .sl-summary-grid,
.sl-schedule-grid {
      grid-template-columns: 1fr;
   }

   .sl-summary-panel {
      max-width: 650px;
   }

   .sl-section-head {
      display: block;
   }

   .sl-section-head > p,
.sl-section-head > div + p {
      margin-top: 14px;
   }

   .sl-benefit-grid {
      grid-template-columns: repeat(2, 1fr);
   }

   .sl-gallery-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      grid-template-rows: none;
      gap: 12px;
   }

   .sl-gallery-item,
.sl-gallery-item.item-1,
.sl-gallery-item.item-2,
.sl-gallery-item.item-3,
.sl-gallery-item.item-4,
.sl-gallery-item.item-5,
.sl-gallery-item.item-6,
.sl-gallery-item.item-7 {
      grid-column: span 1;
      grid-row: auto;
      aspect-ratio: 4 / 3;
   }

   .sl-gallery-item.item-1,
.sl-gallery-item.item-6,
.sl-gallery-item.item-7 {
      grid-column: 1 / -1;
      aspect-ratio: 16 / 8;
   }

   .sl-price-card {
      grid-template-columns: 1fr;
   }
}

@media (max-width: 640px) {
   .sl-summary,
.sl-benefits,
.sl-roadmap,
.sl-gallery,
.sl-price,
.sl-schedule,
.sl-process,
.sl-notices {
      padding: 60px 0;
   }

   .sl-summary-copy h2 {
      font-size: 38px;
   }

   .sl-summary-copy > p {
      font-size: 16px;
   }

   .sl-actions,
.sl-button {
      width: 100%;
   }

   .sl-section-head,
.sl-section-head.is-center {
      margin-bottom: 30px;
   }

   .sl-section-head h2 {
      font-size: 30px;
   }

   .sl-section-head > p,
.sl-section-head > div + p {
      font-size: 14px;
   }

   .sl-benefit-grid,
.sl-roadmap-list,
.sl-process-list,
.sl-notice-grid {
      grid-template-columns: 1fr;
   }

   .sl-notice-card.is-main {
      grid-row: auto;
   }

   .sl-benefit-grid article,
.sl-roadmap-list li {
      min-height: auto;
   }

   .sl-gallery-head {
      display: block;
      margin-bottom: 28px;
   }

   .sl-gallery-head h2 {
      font-size: 30px;
   }

   .sl-gallery-head p {
      font-size: 14px;
   }

   .sl-gallery-more {
      margin-top: 20px;
   }

   .sl-gallery-item {
      border-radius: 17px;
   }

   .sl-gallery-overlay {
      padding: 36px 14px 13px;
   }

   .sl-gallery-overlay small {
      font-size: 8px;
   }

   .sl-gallery-overlay b {
      font-size: 12px;
   }

   .sl-price-group {
      padding: 18px;
   }

   .sl-price-group-head {
      display: block;
   }

   .sl-price-group-head h3 {
      font-size: 23px;
   }

   .sl-price-group-head p {
      display: inline-flex;
      margin-top: 12px;
   }

   .sl-price-course,
.sl-level-list {
      padding: 24px;
   }

   .sl-level-row {
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      padding: 16px 0;
   }

   .sl-level-row > strong {
      grid-column: 1 / -1;
   }

   .sl-schedule-card,
.sl-notice-card {
      padding: 24px;
   }

   .sl-time-axis {
      margin-left: 55px;
   }

   .sl-time-row {
      grid-template-columns: 44px 1fr;
      gap: 10px;
   }

   .sl-time-track b {
      font-size: 9px;
   }
}

/* =========================================================
 * 이용절차 (.lpr-*)
 * ========================================================= */

.lpr-page {
   color: var(--ml-dark);
   background: var(--ml-white);
}

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

.lpr-page .section {
   padding: 110px 0;
}

.lpr-kicker {
   display: inline-flex;
   align-items: center;
   margin-bottom: 18px;
   color: var(--ml-primary);
   font-size: 13px;
   font-weight: 900;
   letter-spacing: .12em;
}

.lpr-section-head {
   max-width: 820px;
   margin-bottom: 48px;
}

.lpr-section-head.is-center {
   margin-right: auto;
   margin-left: auto;
   text-align: center;
}

.lpr-section-head h2 {
   margin: 0;
   color: var(--ml-dark);
   font-size: clamp(34px, 4vw, 54px);
   line-height: 1.18;
   letter-spacing: -.045em;
}

.lpr-section-head p {
   margin: 18px 0 0;
   color: var(--ml-text);
   font-size: 17px;
   line-height: 1.8;
}

.lpr-button {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 9px;
   min-height: 54px;
   padding: 0 24px;
   border: 1px solid transparent;
   border-radius: 999px;
   font-size: 15px;
   font-weight: 900;
   transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.lpr-button:hover {
   transform: translateY(-2px);
}

.lpr-button svg {
   width: 18px;
   height: 18px;
}

.lpr-button.is-primary {
   background: var(--ml-primary);
   color: var(--ml-white);
   box-shadow: 0 14px 32px rgba(var(--ml-primary-rgb), .22);
}

.lpr-button.is-ghost {
   border-color: var(--ml-primary-line);
   background: var(--ml-white);
   color: var(--ml-primary-deep);
}

.lpr-overview {
   background:
      radial-gradient(circle at 15% 20%, rgba(var(--ml-primary-bright-rgb), .12), transparent 36%),
      linear-gradient(145deg, var(--ml-primary-tint), var(--ml-white));
}

.lpr-overview-grid {
   display: grid;
   grid-template-columns: minmax(0, 1.15fr) minmax(380px, .85fr);
   align-items: center;
   gap: 76px;
}

.lpr-overview-copy h2 {
   margin: 0;
   color: var(--ml-dark);
   font-size: clamp(42px, 5vw, 68px);
   line-height: 1.12;
   letter-spacing: -.055em;
}

.lpr-overview-copy h2 strong {
   color: var(--ml-primary);
   font-weight: 900;
}

.lpr-overview-copy > p {
   max-width: 690px;
   margin: 26px 0 0;
   color: var(--ml-text);
   font-size: 18px;
   line-height: 1.85;
}

.lpr-actions {
   display: flex;
   flex-wrap: wrap;
   gap: 10px;
   margin-top: 34px;
}

.lpr-reassurance {
   display: grid;
   gap: 12px;
   margin: 0;
   padding: 24px;
   border: 1px solid var(--ml-card-line);
   border-radius: var(--ml-radius);
   background: rgba(var(--ml-white-rgb), .9);
   box-shadow: var(--ml-shadow);
   list-style: none;
}

.lpr-reassurance li {
   display: flex;
   align-items: center;
   gap: 16px;
   padding: 18px;
   border-radius: 18px;
   background: var(--ml-surface-soft);
}

.lpr-reassurance svg {
   flex: 0 0 auto;
   width: 25px;
   height: 25px;
   color: var(--ml-primary);
}

.lpr-reassurance span {
   color: var(--ml-text);
   font-size: 14px;
   line-height: 1.55;
}

.lpr-reassurance b {
   display: block;
   margin-bottom: 2px;
   color: var(--ml-dark);
   font-size: 16px;
}

.lpr-process {
   background: var(--ml-white);
}

.lpr-process-list {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 16px;
   margin: 0;
   padding: 0;
   list-style: none;
}

.lpr-process-item {
   position: relative;
   display: grid;
   grid-template-columns: 62px minmax(0, 1fr);
   gap: 20px;
   padding: 30px;
   overflow: hidden;
   border: 1px solid var(--ml-card-line);
   border-radius: 24px;
   background: var(--ml-white);
   box-shadow: 0 14px 38px rgba(var(--ml-shadow-rgb), .07);
}

.lpr-process-number {
   position: absolute;
   right: 20px;
   top: 11px;
   color: var(--ml-number-soft);
   font-size: 48px;
   font-weight: 900;
   line-height: 1;
}

.lpr-process-icon {
   position: relative;
   z-index: 1;
   display: flex;
   align-items: center;
   justify-content: center;
   width: 62px;
   height: 62px;
   border-radius: 20px;
   background: var(--ml-primary-soft);
   color: var(--ml-primary);
}

.lpr-process-icon svg {
   width: 28px;
   height: 28px;
}

.lpr-process-body {
   position: relative;
   z-index: 1;
   padding-top: 3px;
}

.lpr-process-body h3 {
   margin: 0;
   color: var(--ml-dark);
   font-size: 21px;
   letter-spacing: -.035em;
}

.lpr-process-body p {
   margin: 10px 0 0;
   color: var(--ml-text);
   font-size: 15px;
   line-height: 1.7;
}

.lpr-process-body span {
   display: block;
   margin-top: 12px;
   padding-top: 12px;
   border-top: 1px solid var(--ml-line);
   color: var(--ml-muted);
   font-size: 13px;
   line-height: 1.65;
}

.lpr-time-guide {
   padding-top: 0 !important;
   background: var(--ml-white);
}

.lpr-time-box {
   display: grid;
   grid-template-columns: 80px minmax(0, 1fr);
   gap: 24px;
   padding: 42px;
   border-radius: 30px;
   background: linear-gradient(135deg, var(--ml-standard-start), var(--ml-standard-end));
   color: var(--ml-white);
   box-shadow: 0 24px 60px rgba(var(--ml-shadow-rgb), .2);
}

.lpr-time-icon {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 80px;
   height: 80px;
   border: 1px solid rgba(var(--ml-white-rgb), .18);
   border-radius: 24px;
   background: rgba(var(--ml-white-rgb), .1);
}

.lpr-time-icon svg {
   width: 36px;
   height: 36px;
}

.lpr-time-copy .lpr-kicker {
   margin-bottom: 8px;
   color: var(--ml-primary-light);
}

.lpr-time-copy h2 {
   margin: 0;
   color: var(--ml-white);
   font-size: clamp(28px, 3.5vw, 44px);
   letter-spacing: -.045em;
}

.lpr-time-copy p {
   max-width: 900px;
   margin: 14px 0 0;
   color: rgba(var(--ml-white-rgb), .76);
   font-size: 16px;
   line-height: 1.8;
}

.lpr-time-copy strong {
   color: var(--ml-white);
}

.lpr-time-flow {
   grid-column: 1 / -1;
   display: grid;
   grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
   align-items: center;
   gap: 12px;
   margin-top: 8px;
}

.lpr-time-flow > span {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 9px;
   min-height: 58px;
   border: 1px solid rgba(var(--ml-white-rgb), .14);
   border-radius: 16px;
   background: rgba(var(--ml-white-rgb), .08);
   font-weight: 800;
}

.lpr-time-flow b {
   color: var(--ml-primary-light);
}

.lpr-time-flow > svg {
   width: 18px;
   height: 18px;
   opacity: .5;
}

.lpr-location {
   background: var(--ml-surface-soft);
}

.lpr-location-grid {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 20px;
}

.lpr-location-card {
   padding: 38px;
   border: 1px solid var(--ml-card-line);
   border-radius: 28px;
   background: var(--ml-white);
   box-shadow: 0 18px 50px rgba(var(--ml-shadow-rgb), .08);
}

.lpr-location-card.is-shop {
   border-color: var(--ml-primary-line);
   background: linear-gradient(145deg, var(--ml-primary-tint), var(--ml-white));
}

.lpr-location-top {
   display: flex;
   align-items: center;
   justify-content: space-between;
   color: var(--ml-primary);
}

.lpr-location-top span {
   font-size: 13px;
   font-weight: 900;
   letter-spacing: .06em;
}

.lpr-location-top svg {
   width: 28px;
   height: 28px;
}

.lpr-location-card h3 {
   margin: 19px 0 0;
   color: var(--ml-dark);
   font-size: 30px;
   letter-spacing: -.04em;
}

.lpr-location-card > p {
   margin: 14px 0 0;
   color: var(--ml-text);
   font-size: 16px;
   line-height: 1.8;
}

.lpr-location-card dl {
   display: grid;
   gap: 10px;
   margin: 26px 0 0;
   padding: 20px;
   border-radius: 18px;
   background: rgba(var(--ml-white-rgb), .76);
}

.lpr-location-card dl > div {
   display: grid;
   grid-template-columns: 58px minmax(0, 1fr);
   gap: 10px;
}

.lpr-location-card dt {
   color: var(--ml-muted);
   font-size: 13px;
   font-weight: 800;
}

.lpr-location-card dd {
   margin: 0;
   color: var(--ml-dark);
   font-size: 14px;
   font-weight: 800;
}

.lpr-location-actions {
   display: flex;
   flex-wrap: wrap;
   gap: 8px;
   margin-top: 18px;
}

.lpr-location-actions a {
   display: inline-flex;
   align-items: center;
   gap: 7px;
   min-height: 44px;
   padding: 0 16px;
   border: 1px solid var(--ml-primary-line);
   border-radius: 999px;
   background: var(--ml-white);
   color: var(--ml-primary-deep);
   font-size: 13px;
   font-weight: 900;
}

.lpr-location-actions svg {
   width: 16px;
   height: 16px;
}

.lpr-location-notice {
   display: flex;
   gap: 13px;
   margin-top: 26px;
   padding: 22px;
   border-radius: 18px;
   background: var(--ml-surface-soft);
   color: var(--ml-text);
   font-size: 14px;
   line-height: 1.75;
}

.lpr-location-notice svg {
   flex: 0 0 auto;
   width: 21px;
   height: 21px;
   color: var(--ml-primary);
}

.lpr-resort {
   background: var(--ml-white);
}

.lpr-resort-grid {
   display: grid;
   grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
   align-items: stretch;
   gap: 54px;
}

.lpr-resort-photo {
   min-height: 520px;
   border-radius: 30px;
   background:
      linear-gradient(180deg, rgba(var(--ml-black-rgb), .02), rgba(var(--ml-black-rgb), .26)),
      url('../img/lesson_pic/lesson_06.webp') center / cover no-repeat,
      var(--ml-photo-light);
   box-shadow: var(--ml-shadow);
}

.lpr-resort-copy {
   align-self: center;
}

.lpr-resort-copy h2 {
   margin: 0;
   color: var(--ml-dark);
   font-size: clamp(34px, 4vw, 52px);
   line-height: 1.2;
   letter-spacing: -.05em;
}

.lpr-resort-copy > p {
   margin: 20px 0 0;
   color: var(--ml-text);
   font-size: 17px;
   line-height: 1.85;
}

.lpr-resort-copy ul {
   display: grid;
   gap: 13px;
   margin: 26px 0 0;
   padding: 0;
   list-style: none;
}

.lpr-resort-copy li {
   display: flex;
   gap: 11px;
   color: var(--ml-text);
   font-size: 15px;
   line-height: 1.65;
}

.lpr-resort-copy li svg {
   flex: 0 0 auto;
   width: 19px;
   height: 19px;
   margin-top: 3px;
   color: var(--ml-primary);
}

.lpr-resort-route {
   display: flex;
   align-items: center;
   flex-wrap: wrap;
   gap: 9px;
   margin-top: 30px;
   padding: 18px;
   border-radius: 18px;
   background: var(--ml-primary-soft);
   color: var(--ml-primary-ink);
   font-size: 13px;
   font-weight: 900;
}

.lpr-resort-route svg {
   width: 15px;
   height: 15px;
   color: var(--ml-primary);
}

.lpr-course {
   background: var(--ml-surface-soft);
}

.lpr-course-grid {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 18px;
}

.lpr-course-card {
   display: flex;
   flex-direction: column;
   min-height: 340px;
   padding: 32px;
   border: 1px solid var(--ml-card-line);
   border-radius: 26px;
   background: var(--ml-white);
   box-shadow: 0 16px 44px rgba(var(--ml-shadow-rgb), .07);
   transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.lpr-course-card:hover {
   transform: translateY(-5px);
   border-color: var(--ml-primary-line);
   box-shadow: var(--ml-shadow);
}

.lpr-course-icon {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 58px;
   height: 58px;
   margin-bottom: 24px;
   border-radius: 18px;
   background: var(--ml-primary-soft);
   color: var(--ml-primary);
}

.lpr-course-icon svg {
   width: 27px;
   height: 27px;
}

.lpr-course-card > span {
   color: var(--ml-primary);
   font-size: 12px;
   font-weight: 900;
   letter-spacing: .04em;
}

.lpr-course-card h3 {
   margin: 9px 0 0;
   color: var(--ml-dark);
   font-size: 26px;
   letter-spacing: -.04em;
}

.lpr-course-card p {
   margin: 14px 0 0;
   color: var(--ml-text);
   font-size: 15px;
   line-height: 1.75;
}

.lpr-course-card b {
   display: flex;
   align-items: center;
   gap: 7px;
   margin-top: auto;
   padding-top: 24px;
   color: var(--ml-primary);
   font-size: 14px;
}

.lpr-course-card b svg {
   width: 17px;
   height: 17px;
}

.lpr-preparation {
   background: var(--ml-white);
}

.lpr-preparation-legend {
   display: flex;
   flex-wrap: wrap;
   gap: 8px;
   margin: -24px 0 26px;
}

.lpr-preparation-legend span,
.lpr-preparation-grid li > span {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   border-radius: 999px;
   font-size: 11px;
   font-weight: 900;
}

.lpr-preparation-legend span {
   min-height: 32px;
   padding: 0 12px;
}

.lpr-preparation-grid {
   display: grid;
   grid-template-columns: repeat(6, minmax(0, 1fr));
   gap: 14px;
   margin: 0;
   padding: 0;
   list-style: none;
}

.lpr-preparation-grid li {
   padding: 16px 12px 18px;
   border: 1px solid var(--ml-card-line);
   border-radius: 20px;
   background: var(--ml-surface-soft);
   text-align: center;
}

.lpr-preparation-image {
   width: 92px;
   height: 92px;
   margin: 0 auto;
   overflow: hidden;
   border-radius: 50%;
   background: var(--ml-white);
}

.lpr-preparation-image img {
   display: block;
   width: 100%;
   height: 100%;
   object-fit: contain;
}

@media (max-width: 760px) {
   .lpr-preparation-image {
      width: 76px;
      height: 76px;
   }
}

.lpr-preparation-grid strong {
   display: block;
   margin: 13px 0 8px;
   color: var(--ml-dark);
   font-size: 15px;
}

.lpr-preparation-grid li > span {
   min-height: 27px;
   padding: 0 9px;
}

.lpr-preparation .is-required {
   background: var(--ml-primary-soft);
   color: var(--ml-primary-deep);
}

.lpr-preparation .is-purchase {
   background: var(--orange-soft);
   color: var(--orange2);
}

.lpr-preparation .is-rental {
   background: var(--ml-surface-soft);
   color: var(--ml-muted);
   box-shadow: inset 0 0 0 1px var(--ml-line);
}

.lpr-preparation-note {
   display: flex;
   align-items: center;
   gap: 16px;
   margin-top: 22px;
   padding: 22px 26px;
   border: 1px solid var(--ml-primary-line);
   border-radius: 20px;
   background: var(--ml-primary-tint);
}

.lpr-preparation-note svg {
   flex: 0 0 auto;
   width: 28px;
   height: 28px;
   color: var(--ml-primary);
}

.lpr-preparation-note p {
   margin: 0;
   color: var(--ml-text);
   font-size: 14px;
   line-height: 1.75;
}

.lpr-preparation-note strong {
   color: var(--ml-dark);
}

.lpr-notice {
   background: var(--ml-surface-soft);
}

.lpr-notice-grid {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 16px;
}

.lpr-notice-card {
   padding: 28px;
   border: 1px solid var(--ml-card-line);
   border-radius: 24px;
   background: var(--ml-white);
}

.lpr-notice-title {
   display: flex;
   align-items: center;
   gap: 11px;
}

.lpr-notice-title svg {
   width: 24px;
   height: 24px;
   color: var(--ml-primary);
}

.lpr-notice-title h3 {
   margin: 0;
   color: var(--ml-dark);
   font-size: 19px;
}

.lpr-notice-card ul {
   display: grid;
   gap: 10px;
   margin: 20px 0 0;
   padding: 0;
   list-style: none;
}

.lpr-notice-card li {
   position: relative;
   padding-left: 14px;
   color: var(--ml-text);
   font-size: 14px;
   line-height: 1.7;
}

.lpr-notice-card li::before {
   position: absolute;
   left: 0;
   top: .72em;
   width: 5px;
   height: 5px;
   border-radius: 50%;
   background: var(--ml-primary);
   content: '';
}

@media (max-width: 1100px) {
   .lpr-page .section {
      padding: 90px 0;
   }

   .lpr-overview-grid,
.lpr-resort-grid {
      grid-template-columns: 1fr;
      gap: 42px;
   }

   .lpr-reassurance {
      grid-template-columns: repeat(2, minmax(0, 1fr));
   }

   .lpr-resort-photo {
      min-height: 460px;
   }

   .lpr-course-grid,
.lpr-notice-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
   }

   .lpr-preparation-grid {
      grid-template-columns: repeat(4, minmax(0, 1fr));
   }
}

@media (max-width: 760px) {
   .lpr-page .section {
      padding: 70px 0;
   }

   .lpr-section-head {
      margin-bottom: 34px;
   }

   .lpr-overview-grid {
      gap: 34px;
   }

   .lpr-overview-copy h2 {
      font-size: 40px;
   }

   .lpr-overview-copy > p {
      font-size: 16px;
   }

   .lpr-reassurance {
      grid-template-columns: 1fr;
      padding: 14px;
   }

   .lpr-process-list,
.lpr-location-grid,
.lpr-course-grid,
.lpr-notice-grid {
      grid-template-columns: 1fr;
   }

   .lpr-process-item {
      grid-template-columns: 54px minmax(0, 1fr);
      gap: 15px;
      padding: 24px 20px;
   }

   .lpr-process-icon {
      width: 54px;
      height: 54px;
      border-radius: 17px;
   }

   .lpr-process-number {
      font-size: 40px;
   }

   .lpr-time-box {
      grid-template-columns: 58px minmax(0, 1fr);
      gap: 16px;
      padding: 28px 22px;
   }

   .lpr-time-icon {
      width: 58px;
      height: 58px;
      border-radius: 18px;
   }

   .lpr-time-icon svg {
      width: 28px;
      height: 28px;
   }

   .lpr-time-flow {
      grid-template-columns: 1fr 1fr;
   }

   .lpr-time-flow > svg {
      display: none;
   }

   .lpr-location-card {
      padding: 28px 22px;
   }

   .lpr-resort-photo {
      min-height: 360px;
      border-radius: 24px;
   }

   .lpr-resort-route svg {
      display: none;
   }

   .lpr-preparation-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 9px;
   }

   .lpr-preparation-grid li {
      padding: 10px 8px 14px;
      border-radius: 16px;
   }

   .lpr-preparation-grid strong {
      font-size: 13px;
   }

   .lpr-preparation-grid li > span {
      min-height: 24px;
      padding: 0 6px;
      font-size: 9px;
   }

   .lpr-preparation-note {
      align-items: flex-start;
      padding: 20px;
   }
}

@media (max-width: 480px) {
   .lpr-overview-copy h2 {
      font-size: 34px;
   }

   .lpr-actions,
.lpr-actions .lpr-button {
      width: 100%;
   }

   .lpr-preparation-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
   }
}

/* =========================================================
 * 예약확인·동의서작성 (.lmp-*)
 * ========================================================= */

.lmp-page {
   color: var(--ml-dark, #17212b);
   background: var(--ml-bg, #f6f8f7);
}

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

.lmp-hero {
   padding: 210px 0 72px;
   text-align: center;
   background:
      radial-gradient(circle at 50% 0, rgba(var(--ml-primary-rgb, 24, 125, 88), .16), transparent 44%),
      linear-gradient(180deg, var(--ml-primary-tint, #f4fbf8), var(--ml-bg, #f6f8f7));
}

.lmp-kicker,
.lmp-section-title > span,
.lmp-complete > div > span {
   display: block;
   margin-bottom: 12px;
   color: var(--ml-primary, #187d58);
   font-size: 14px;
   font-weight: 900;
   letter-spacing: .08em;
}

.lmp-hero h1 {
   margin: 0;
   font-size: clamp(38px, 5vw, 62px);
   line-height: 1.12;
   letter-spacing: -.055em;
}

.lmp-hero p {
   max-width: 720px;
   margin: 22px auto 0;
   color: var(--ml-text, #52615b);
   font-size: 18px;
   line-height: 1.75;
}

.lmp-content {
   padding: 26px 0 110px;
}

.lmp-content .wrap {
   display: grid;
   gap: 26px;
}

.lmp-system-notice,
.lmp-form-message {
   margin: 0;
   padding: 17px 20px;
   border: 1px solid var(--ml-primary-line, #bfdfd1);
   border-radius: 14px;
   color: var(--ml-primary-deep, #115d42);
   background: var(--ml-primary-soft, #eaf7f1);
   font-weight: 750;
   line-height: 1.6;
}

.lmp-system-notice.is-error,
.lmp-form-message.is-error {
   border-color: #f0c7c7;
   color: #b23333;
   background: #fff5f5;
}

.lmp-system-notice.is-resign {
   border-color: #fedf89;
   color: #93370d;
   background: #fffaeb;
}

.lmp-lookup-card,
.lmp-reservations,
.lmp-selected,
.lmp-agreement,
.lmp-complete {
   padding: clamp(28px, 4vw, 52px);
   border: 1px solid var(--ml-line, #dde6e1);
   border-radius: var(--ml-radius, 28px);
   background: var(--ml-white, #fff);
   box-shadow: var(--ml-shadow, 0 24px 70px rgba(20, 41, 32, .08));
}

.lmp-section-title {
   display: grid;
   grid-template-columns: auto minmax(0, 1fr) auto;
   align-items: start;
   gap: 0 24px;
   margin-bottom: 30px;
}

.lmp-section-title > span {
   grid-column: 1 / -1;
}

.lmp-section-title h2 {
   margin: 0;
   font-size: clamp(25px, 3vw, 36px);
   line-height: 1.25;
   letter-spacing: -.045em;
}

.lmp-section-title p {
   margin: 10px 0 0;
   color: var(--ml-muted, #75827c);
   font-size: 16px;
   line-height: 1.65;
}

.lmp-lookup-form {
   display: grid;
   grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 180px;
   align-items: end;
   gap: 14px;
}

.lmp-lookup-form label,
.lmp-signer-grid label {
   display: grid;
   gap: 9px;
}

.lmp-lookup-form label > span,
.lmp-signer-grid label > span,
.lmp-photo-choice legend {
   font-size: 14px;
   font-weight: 850;
}

.lmp-lookup-form input,
.lmp-signer-grid input,
.lmp-signer-grid select {
   width: 100%;
   height: 58px;
   padding: 0 18px;
   border: 1px solid var(--ml-line, #dce5e0);
   border-radius: 14px;
   color: var(--ml-dark, #17212b);
   background: var(--ml-white, #fff);
   font: inherit;
   font-weight: 700;
}

.lmp-signer-grid input[readonly] {
   color: var(--ml-muted, #75827c);
   background: var(--ml-surface-soft, #f6f8f7);
}

.lmp-lookup-form input:focus,
.lmp-signer-grid input:focus,
.lmp-signer-grid select:focus {
   outline: 3px solid rgba(var(--ml-primary-rgb, 24, 125, 88), .13);
   border-color: var(--ml-primary, #187d58);
}

.lmp-lookup-form button,
.lmp-submit {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
   height: 58px;
   padding: 0 24px;
   border: 0;
   border-radius: 14px;
   color: var(--ml-white, #fff);
   background: var(--ml-primary, #187d58);
   box-shadow: 0 14px 28px rgba(var(--ml-primary-rgb, 24, 125, 88), .2);
   font: inherit;
   font-weight: 900;
   cursor: pointer;
}

.lmp-lookup-form button:hover,
.lmp-submit:hover {
   background: var(--ml-primary-deep, #115d42);
}

.lmp-form-message {
   margin-top: 16px;
}

.lmp-clear-link {
   align-self: end;
   padding: 11px 14px;
   border: 1px solid var(--ml-line, #dce5e0);
   border-radius: 12px;
   color: var(--ml-text, #52615b);
   font-size: 14px;
   font-weight: 800;
}

.lmp-reservation-list {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 16px;
}

.lmp-reservation-card {
   display: block;
   padding: 24px;
   border: 1px solid var(--ml-line, #dce5e0);
   border-radius: 18px;
   color: inherit;
   background: var(--ml-white, #fff);
   transition: border-color .2s, transform .2s, box-shadow .2s;
}

.lmp-reservation-card:hover,
.lmp-reservation-card.is-active {
   border-color: var(--ml-primary, #187d58);
   box-shadow: 0 15px 35px rgba(var(--ml-primary-rgb, 24, 125, 88), .1);
   transform: translateY(-2px);
}

.lmp-reservation-code,
.lmp-summary-head,
.lmp-signer-head,
.lmp-signature-head {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 16px;
}

.lmp-reservation-code span {
   color: var(--ml-primary, #187d58);
   font-size: 14px;
   font-weight: 900;
}

.lmp-reservation-code b,
.lmp-summary-head > b {
   padding: 7px 10px;
   border-radius: 999px;
   color: var(--ml-primary-deep, #115d42);
   background: var(--ml-primary-soft, #eaf7f1);
   font-size: 12px;
}

.lmp-reservation-card h3 {
   margin: 18px 0 20px;
   font-size: 21px;
}

.lmp-reservation-card dl,
.lmp-customer-info {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 10px;
   margin: 0;
}

.lmp-reservation-card dl > div,
.lmp-customer-info > div {
   display: grid;
   gap: 5px;
}

.lmp-reservation-card dt,
.lmp-customer-info dt,
.lmp-group-list dt {
   color: var(--ml-muted, #75827c);
   font-size: 12px;
   font-weight: 800;
}

.lmp-reservation-card dd,
.lmp-customer-info dd,
.lmp-group-list dd {
   margin: 0;
   font-size: 14px;
   font-weight: 800;
   line-height: 1.45;
}

.lmp-reservation-card dd.is-complete {
   color: var(--ml-primary, #187d58);
}

.lmp-reservation-card dd.is-waiting {
   display: inline-flex;
   align-items: flex-start;
   flex-direction: column;
   gap: 2px;
   padding: 9px 11px;
   border-radius: 10px;
   color: var(--ml-white, #fff);
   background: var(--ml-primary, #187d58);
   box-shadow: 0 9px 20px rgba(var(--ml-primary-rgb, 24, 125, 88), .2);
}

.lmp-reservation-card dd.is-waiting strong {
   font-size: 14px;
   font-weight: 950;
}

.lmp-reservation-card dd.is-waiting span {
   color: rgba(var(--ml-white-rgb, 255, 255, 255), .88);
   font-size: 12px;
   font-weight: 850;
   white-space: nowrap;
}

.lmp-summary {
   overflow: hidden;
   border: 1px solid var(--ml-line, #dce5e0);
   border-radius: 20px;
}

.lmp-summary-head {
   padding: 22px 26px;
   background: var(--ml-surface-soft, #f6f8f7);
}

.lmp-summary-head > div {
   display: grid;
   gap: 5px;
}

.lmp-summary-head > div span {
   color: var(--ml-muted, #75827c);
   font-size: 12px;
   font-weight: 800;
}

.lmp-summary-head strong {
   color: var(--ml-primary, #187d58);
   font-size: 18px;
}

.lmp-customer-info {
   padding: 24px 26px;
   border-top: 1px solid var(--ml-line, #dce5e0);
   border-bottom: 1px solid var(--ml-line, #dce5e0);
}

.lmp-customer-info > div:last-child {
   grid-column: span 1;
}

.lmp-group-list {
   display: grid;
   gap: 0;
}

.lmp-group-list article {
   display: grid;
   grid-template-columns: 80px minmax(0, 1fr) minmax(260px, auto);
   align-items: center;
   gap: 20px;
   padding: 24px 26px;
}

.lmp-group-list article + article {
   border-top: 1px solid var(--ml-line, #dce5e0);
}

.lmp-group-list article > span {
   color: var(--ml-primary, #187d58);
   font-weight: 900;
}

.lmp-group-list h3 {
   margin: 0;
   font-size: 18px;
}

.lmp-group-list p {
   margin: 7px 0 0;
   color: var(--ml-text, #52615b);
   font-size: 14px;
   line-height: 1.55;
}

.lmp-group-list dl {
   display: grid;
   grid-template-columns: auto auto;
   gap: 5px 14px;
   margin: 0;
}

.lmp-complete {
   display: grid;
   grid-template-columns: 70px minmax(0, 1fr);
   align-items: start;
   gap: 22px;
   border-color: var(--ml-primary-line, #bfdfd1);
   background: var(--ml-primary-tint, #f4fbf8);
}

.lmp-complete > svg {
   width: 64px;
   height: 64px;
   padding: 14px;
   border-radius: 20px;
   color: var(--ml-white, #fff);
   background: var(--ml-primary, #187d58);
}

.lmp-complete h2 {
   margin: 0;
   font-size: 30px;
   letter-spacing: -.04em;
}

.lmp-complete p {
   margin: 12px 0 0;
   color: var(--ml-text, #52615b);
   line-height: 1.7;
}

.lmp-complete ul {
   display: flex;
   flex-wrap: wrap;
   gap: 8px;
   margin: 18px 0 0;
   padding: 0;
   list-style: none;
}

.lmp-complete li {
   padding: 8px 11px;
   border-radius: 999px;
   background: var(--ml-white, #fff);
   font-size: 13px;
   font-weight: 800;
}

.lmp-agreement-intro,
.lmp-terms {
   padding: 24px;
   border: 1px solid var(--ml-line, #dce5e0);
   border-radius: 18px;
   color: var(--ml-text, #52615b);
   background: var(--ml-surface-soft, #f6f8f7);
   line-height: 1.8;
}

.lmp-terms {
   margin-top: 14px;
   background: var(--ml-white, #fff);
}

.lmp-terms.is-optional {
   border-style: dashed;
}

.lmp-terms h3 {
   margin: 0 0 13px;
   color: var(--ml-dark, #17212b);
   font-size: 18px;
}

.lmp-terms > div {
   font-size: 15px;
}

.lmp-check-list {
   display: grid;
   gap: 10px;
   margin-top: 24px;
}

.lmp-check-list label,
.lmp-photo-choice label,
.lmp-same-check {
   display: flex;
   align-items: flex-start;
   gap: 11px;
   padding: 16px 18px;
   border: 1px solid var(--ml-line, #dce5e0);
   border-radius: 14px;
   font-weight: 750;
   line-height: 1.55;
   cursor: pointer;
}

.lmp-check-list input,
.lmp-photo-choice input,
.lmp-same-check input {
   width: 20px;
   height: 20px;
   margin: 1px 0 0;
   accent-color: var(--ml-primary, #187d58);
   flex: 0 0 auto;
}

.lmp-photo-choice {
   display: flex;
   flex-wrap: wrap;
   gap: 10px;
   margin: 24px 0 0;
   padding: 20px;
   border: 1px solid var(--ml-line, #dce5e0);
   border-radius: 16px;
}

.lmp-photo-choice legend {
   padding: 0 8px;
}

.lmp-photo-choice label {
   padding: 12px 16px;
}

.lmp-signer,
.lmp-signature {
   margin-top: 28px;
   padding: 24px;
   border: 1px solid var(--ml-line, #dce5e0);
   border-radius: 18px;
}

.lmp-signer-head h3,
.lmp-signature-head h3 {
   margin: 0;
   font-size: 20px;
}

.lmp-signer-head p,
.lmp-signature-head p {
   margin: 7px 0 0;
   color: var(--ml-muted, #75827c);
   font-size: 14px;
   line-height: 1.6;
}

.lmp-same-check {
   align-items: center;
   padding: 10px 13px;
   white-space: nowrap;
}

.lmp-signer-grid {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 12px;
   margin-top: 20px;
}

.lmp-signature-head button {
   padding: 10px 14px;
   border: 1px solid var(--ml-line, #dce5e0);
   border-radius: 10px;
   color: var(--ml-text, #52615b);
   background: var(--ml-white, #fff);
   font: inherit;
   font-size: 13px;
   font-weight: 800;
   cursor: pointer;
}

.lmp-signature-pad {
   position: relative;
   overflow: hidden;
   margin-top: 18px;
   border: 1px dashed var(--ml-primary-line, #bfdfd1);
   border-radius: 15px;
   background: var(--ml-white, #fff);
   touch-action: none;
}

.lmp-signature-pad canvas {
   display: block;
   width: 100%;
   cursor: crosshair;
}

.lmp-signature-pad > span {
   position: absolute;
   top: 50%;
   left: 50%;
   color: var(--ml-muted, #75827c);
   font-size: 14px;
   font-weight: 700;
   pointer-events: none;
   transform: translate(-50%, -50%);
}

.lmp-submit {
   width: 100%;
   height: 64px;
   margin-top: 22px;
   font-size: 18px;
}

@media (max-width: 900px) {
   .lmp-lookup-form,
.lmp-signer-grid {
      grid-template-columns: 1fr 1fr;
   }

   .lmp-lookup-form button,
.lmp-signer-grid label:last-child {
      grid-column: 1 / -1;
   }

   .lmp-group-list article {
      grid-template-columns: 66px minmax(0, 1fr);
   }

   .lmp-group-list article dl {
      grid-column: 2;
   }
}

@media (max-width: 640px) {
   .lmp-hero {
      padding: 116px 0 48px;
   }

   .lmp-hero p {
      font-size: 15px;
   }

   .lmp-content {
      padding-bottom: 70px;
   }

   .lmp-lookup-card,
.lmp-reservations,
.lmp-selected,
.lmp-agreement,
.lmp-complete {
      padding: 22px 18px;
      border-radius: 20px;
   }

   .lmp-section-title {
      grid-template-columns: 1fr;
      gap: 14px;
   }

   .lmp-section-title > span {
      grid-column: auto;
      margin-bottom: -5px;
   }

   .lmp-clear-link {
      justify-self: start;
   }

   .lmp-lookup-form,
.lmp-reservation-list,
.lmp-signer-grid,
.lmp-customer-info {
      grid-template-columns: 1fr;
   }

   .lmp-lookup-form button,
.lmp-signer-grid label:last-child,
.lmp-customer-info > div:last-child {
      grid-column: auto;
   }

   .lmp-reservation-card dl {
      grid-template-columns: repeat(3, 1fr);
   }

   .lmp-reservation-card dd.is-waiting span {
      white-space: normal;
   }

   .lmp-group-list article {
      grid-template-columns: 1fr;
      gap: 9px;
   }

   .lmp-group-list article dl {
      grid-column: auto;
      margin-top: 7px;
   }

   .lmp-complete {
      grid-template-columns: 1fr;
   }

   .lmp-complete > svg {
      width: 54px;
      height: 54px;
   }

   .lmp-signer-head,
.lmp-signature-head {
      align-items: flex-start;
      flex-direction: column;
   }

   .lmp-same-check {
      align-self: stretch;
   }
}

/* =========================================================
 * 공통 FAQ (.lsf-*)
 * ========================================================= */

.lsf-section {
   padding: 110px 0;
   background: var(--ml-surface-soft, var(--ml-bg, #f8fafc));
}

.lsf-wrap {
   display: grid;
   grid-template-columns: minmax(320px, .82fr) minmax(560px, 1.45fr);
   gap: 80px;
   width: min(1280px, calc(100% - 48px));
   margin: 0 auto;
}

.lsf-head {
   padding-top: 12px;
}

.lsf-kicker {
   display: block;
   margin-bottom: 24px;
   color: var(--ml-primary);
   font-size: 15px;
   font-weight: 900;
   letter-spacing: .12em;
}

.lsf-title {
   max-width: 560px;
   margin: 0;
   color: var(--ml-navy);
   font-size: clamp(42px, 4.2vw, 68px);
   font-weight: 900;
   line-height: 1.13;
   letter-spacing: -.055em;
   word-break: keep-all;
}

.lsf-desc {
   max-width: 520px;
   margin: 24px 0 0;
   color: var(--ml-text);
   font-size: 17px;
   line-height: 1.8;
   word-break: keep-all;
}

.lsf-list {
   display: grid;
   gap: 14px;
}

.lsf-item {
   overflow: hidden;
   border: 1px solid var(--ml-line);
   border-radius: 22px;
   background: var(--ml-white);
   box-shadow: 0 12px 35px rgba(var(--ml-shadow-rgb), .035);
   transition: border-color .2s ease, box-shadow .2s ease;
}

.lsf-item.is-open {
   border-color: var(--ml-primary-line);
   box-shadow: 0 18px 45px rgba(var(--ml-primary-rgb), .08);
}

.lsf-question {
   margin: 0;
}

.lsf-trigger {
   display: grid;
   grid-template-columns: minmax(0, 1fr) 30px;
   align-items: center;
   gap: 20px;
   width: 100%;
   min-height: 92px;
   padding: 24px 30px;
   border: 0;
   border-radius: 0;
   background: transparent;
   color: var(--ml-navy);
   font: inherit;
   text-align: left;
   cursor: pointer;
}

.lsf-question-text {
   color: inherit;
   font-size: 18px;
   font-weight: 900;
   line-height: 1.5;
   letter-spacing: -.025em;
   word-break: keep-all;
}

.lsf-toggle {
   position: relative;
   width: 24px;
   height: 24px;
   justify-self: end;
   color: var(--ml-primary);
}

.lsf-toggle::before,
.lsf-toggle::after {
   position: absolute;
   top: 11px;
   left: 3px;
   width: 18px;
   height: 2px;
   border-radius: 2px;
   background: currentColor;
   content: '';
   transition: transform .2s ease;
}

.lsf-toggle::after {
   transform: rotate(90deg);
}

.lsf-item.is-open .lsf-toggle::after {
   transform: rotate(0deg);
}

.lsf-answer {
   padding: 0 76px 30px 30px;
   color: var(--ml-text);
   font-size: 16px;
   line-height: 1.85;
}

.lsf-answer p {
   margin: 0;
   word-break: keep-all;
}

.lsf-answer[hidden] {
   display: none;
}

.lsf-empty {
   padding: 60px 30px;
   border: 1px solid var(--ml-line);
   border-radius: 22px;
   background: var(--ml-white);
   color: var(--ml-muted);
   text-align: center;
}

@media (max-width: 1050px) {
   .lsf-wrap {
      grid-template-columns: 1fr;
      gap: 42px;
   }

   .lsf-head {
      padding-top: 0;
   }

   .lsf-title,
.lsf-desc {
      max-width: none;
   }
}

@media (max-width: 767px) {
   .lsf-section {
      padding: 72px 0;
   }

   .lsf-wrap {
      width: min(100% - 32px, 1400px);
      gap: 32px;
   }

   .lsf-kicker {
      margin-bottom: 16px;
      font-size: 13px;
   }

   .lsf-title {
      font-size: 38px;
   }

   .lsf-desc {
      margin-top: 18px;
      font-size: 15px;
   }

   .lsf-list {
      gap: 10px;
   }

   .lsf-item {
      border-radius: 17px;
   }

   .lsf-trigger {
      grid-template-columns: minmax(0, 1fr) 24px;
      gap: 13px;
      min-height: 78px;
      padding: 20px;
   }

   .lsf-question-text {
      font-size: 16px;
   }

   .lsf-answer {
      padding: 0 54px 23px 20px;
      font-size: 14px;
   }

   .lsf-toggle {
      width: 22px;
      height: 22px;
   }

   .lsf-toggle::before,
.lsf-toggle::after {
      top: 10px;
      left: 3px;
      width: 16px;
   }
}
