@import url('https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap');
@font-face {
  font-family: 'S-CoreDream';
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-1Thin.woff') format('woff');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'S-CoreDream';
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-2ExtraLight.woff') format('woff');
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'S-CoreDream';
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-3Light.woff') format('woff');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'S-CoreDream';
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-4Regular.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'S-CoreDream';
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-5Medium.woff') format('woff');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'S-CoreDream';
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-6Bold.woff') format('woff');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'S-CoreDream';
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-7ExtraBold.woff') format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'S-CoreDream';
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-8Heavy.woff') format('woff');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}


:root {
  --primary: #5188f5;
  --orange: #FFA85C;
  --red:#FF635D;
  --teal: #2BBFB0;
  --skyblue:#3DB9EB;
  --purple:#9748f4;
  
  --dark: #0d1527;
  --gray900: #394152;
  --gray700: #525a6b;
  --gray: #808799;
  --white:#fff;
  
  --light-gray: #f5f5f5;
  --blue-bg:#EAF7FF;
  --white: #fff;
  --nav-h: 90px;
  
  --common-border-radius: 32px;
  
  --font-size-title: clamp(1.85rem, 4.141vw, 2.65rem);
  --font-size-subtitle: clamp(1.5rem, 3.125vw, 1.9rem);
  --font-size-bodytitle: clamp(1.125rem, 2.344vw, 1.5rem);
  --font-size-body: clamp(1rem, 1.953vw, 1.25rem);
  --font-size-subbody: clamp(0.9375rem, 1.852vw, 1.185rem);
  --font-size-body-small: clamp(0.875rem, 1.563vw, 1rem);
  
  
  --slide-1-bg: url('../images/mainbg-01.webp');
  --slide-2-bg: url('../images/mainbg-02.webp');
  --slide-3-bg: url('../images/mainbg-03.webp');
  --slide-4-bg: url('../images/mainbg-04.webp');
  
  /* 서브 비주얼 이미지 */
  --menu01-01bg:url(../images/sub01.webp);
  --menu01-02bg:url(../images/sub02.webp);
  --menu01-03bg:url(../images/sub03.webp);
  --menu01-04bg:url(../images/sub04.webp);
  --menu01-05bg:url(../images/sub05.webp);
  --menu02-01bg:url(../images/sub02_01_01.webp); 
  --menu02-02bg:url(../images/sub02_01_02.webp);
  --menu02-03bg:url(../images/sub02_01_03.webp);
  --menu02-04bg:url(../images/sub02_01_04.webp);
  --menu02-05bg:url(../images/special01_bg.webp);
  --menu02-06bg:url(../images/special02_bg.webp);
  --menu02-07bg:url(../images/special03_bg.webp);
  --menu03-01bg:url(../images/sub03_02.webp);
  --menu04-01bg:url(../images/sub04_01.webp);
  --menu05-01bg:url(../images/sub05_01.webp);    
  
}

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

body, button {
  font-family: 'S-CoreDream', sans-serif;
  color: var(--dark);
  letter-spacing: -1px;
  font-weight: 400;
}
a{
  text-decoration: none;
}
li{
  list-style: none;
}
.flex{
  display:flex;    
  gap: 24px;
}
.text_primary{
  color:var(--primary) !important;
}
.sub-text{
  font-size: var(--font-size-body);
  line-height: 1.6;
}
.primary{
  color: var(--primary);
}
/* ── HEADER ── */
header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: #fff;
  height: var(--nav-h);
  display: flex;
  align-items: center;
}
header.scrolled {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  
  border-bottom: 1px solid #eee;
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.08);
  background: #fff;
}

.header-inner{
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 0;
}

.logo {
  flex-shrink: 0;
}
.logo-img{
  min-width: 240px;
}
.logo-img img {
  height: 46px;
  display: flex;
  align-items: center;
}

/* Desktop Nav */
.nav-links {
  display: flex;
  align-items: center;
  list-style: none;
  gap: 0;
}

.nav-links > li {
  position: static;
}

.nav-links > li > a {
  display: block;
  height: var(--nav-h);
  line-height: var(--nav-h);
  font-size: 22px;
  font-weight: 600;
  color: var(--dark);
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.2s;
  position: relative;
  z-index: 1001;
  min-width: 140px;
  text-align: center;
}
/* Active underline indicator */
.nav-links > li > a::after {
  content: '';
  position: absolute;
  bottom: 0; left: 50%;
  width: 0; height: 2px;
  background: var(--primary);
  transform: translateX(-50%);
  transition: width 0.2s;
}

/* ── UNIFIED MEGA MENU ──
Shown on ANY nav-links li hover.
One panel with all columns visible at once. */
.mega-all {
  display: none;
  position: fixed;
  top: var(--nav-h);
  left: 0;
  width: 100%;
  background: #fff;
  box-shadow: 0 12px 12px rgba(0,0,0,.10);
  z-index: 1000;
  padding: 0;
  border-top:1px solid #eee;
  margin-top:-1px;
}

/* Show when hovering the nav wrapper or the panel itself */
.nav-wrapper{
  margin:0 auto;
  flex-shrink: 0;
}
.nav-wrapper:hover .mega-all { display: block; }

.mega-all-inner {
  margin: 0 auto;
  padding: 28px 0 32px;
  display: flex;
  gap: 0;
  justify-content: center;
}

/* Each column = one top-level menu */
.mega-all-col {
  width: 140px;        /* flex: 1 제거하고 고정 너비 */
  flex-shrink: 0;
  padding: 0;
  text-align: center;
}
.mega-all-col:first-child { padding-left: 0; }
.mega-all-col:last-child  { border-right: none; padding-right: 0; }


.mega-all-col a {
  display: block;
  font-size: 18px;
  color: #394152;
  text-decoration: none;
  padding: 7px 0;
  transition: color 0.15s, padding-left 0.15s;
}
.mega-all-col a:last-child { border-bottom: none; }
.mega-all-col a:hover { color: var(--primary); padding-left: 6px; }

/* Highlight active column based on hovered nav item */
.nav-links > li:hover > a { color: var(--primary); }
.nav-links > li:hover > a::after { width: 80%; }

/* Header right */
.header-right {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;   
  justify-content:flex-end;
  
  min-width: 240px;
}

.header-right a, .header-right button {
  font-size: 16px;
  color: #A1A1A1;
  text-decoration: none;
  white-space: nowrap;
  font-weight: 400;
  background-color: var(--white);
  border:0;
  cursor: pointer;
}
.header-right a:hover { color: var(--primary); }

.header-right .icon-btn {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 18px;
  color: var(--gray);
  display: flex;
  align-items: center;
  padding: 4px;
  line-height: 1;
}

/* Mobile hamburger */
.hamburger {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 24px;
  color: var(--dark);
  margin-left: 12px;
}

/* ── MOBILE MENU OVERLAY ── */
.mobile-nav {
  display: flex;          /* display:none 제거 */
  position: fixed;
  top: 0;
  right: 0;               /* left:0 → right:0 */
  width: 100%;           /* 전체 너비 → 320px */
  height: 100%;
  background: #fff;
  z-index: 20000;
  flex-direction: column;
  overflow-y: auto;
  transform: translateX(100%);    /* 오른쪽으로 숨김 */
  transition: transform 0.3s ease;
}

.mobile-nav.open { transform: translateX(0); }
.mobile-nav-header .logo-img img{
  height: 40px;
}
.mobile-nav-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 20px;
  height: 60px;
  border-bottom: 1px solid #eee;
  flex-shrink: 0;
}

.mobile-close {
  background: none;
  border: none;
  font-size: 24px;
  cursor: pointer;
  color: var(--dark);
}

.mobile-nav-body {
  display: flex;
  flex: 1;
}

.mobile-main-menu {
  width: 120px;
  background: #f5f5f5;
  padding: 12px 0;
  flex-shrink: 0;
}

.mobile-main-menu li { list-style: none; }

.mobile-main-menu li a {
  display: block;
  padding: 18px 20px;
  font-size: 18px;
  font-weight: 500;
  color: var(--dark);
  text-decoration: none;
  transition: background 0.15s;
}

.mobile-main-menu li.active a {
  background: #fff;
  color: var(--primary);
  font-weight: 700;
}

.mobile-sub-menu {
  flex: 1;
  padding: 12px 24px 24px 24px;
}

.mobile-sub-menu a {
  display: block;
  padding: 18px 0;
  font-size: 18px;
  color: var(--gray);
  text-decoration: none;
  border-bottom: 1px solid #eee;
}

.mobile-sub-accordion {
  border-bottom: 1px solid #eee;
}

.mobile-sub-title {
  position: relative;
  width: 100%;
  padding: 18px 0;
  border: 0;
  background: #fff;
  font-family: inherit;
  font-size: 18px;
  text-align: left;
  cursor: pointer;
  color:var(--gray);
  
  text-decoration: none;
}

.mobile-sub-title::after {
  content: "";
  position: absolute;
  right: 4px;
  top: 50%;
  width: 9px;
  height: 9px;
  border-right: 2px solid var(--gray);
  border-bottom: 2px solid var(--gray);
  transform: translateY(-65%) rotate(45deg);
  transition: 0.25s;
}

.mobile-sub-accordion.active .mobile-sub-title {
  color: var(--primary);
}

.mobile-sub-accordion.active .mobile-sub-title::after {
  transform: translateY(-35%) rotate(225deg);
  border-color: var(--primary);
}

.mobile-sub-depth {
  display: none;
  padding: 12px 12px;
}

.mobile-sub-accordion.active .mobile-sub-depth {
  display: block;
}

.mobile-sub-depth a {
  padding: 12px 0;
  font-size: 16px;
  color: var(--gray700);
  border-bottom: 0;
}

.mobile-sub-depth a:hover {
  color: var(--primary);
}

/* ── HERO ── */
.contents-in {
  max-width: 1600px;
  margin: 0 auto;
  align-items: flex-start;
}

/* ── SLIDER ── */
.hero-slide-wrap{
  position: relative;
}
.hero-text-wrap{
  position: absolute;
  z-index: 1;
  height: 672px;
  width: 40%;
  background: linear-gradient(to right, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0) 100%);
  border-radius: var(--common-border-radius);
  top:0;
  border-top-left-radius: var(--common-border-radius);
  border-bottom-left-radius: var(--common-border-radius);
}
.hero-title{
  top:60px;
  position: absolute;
  left:60px;
  color:var(--white)
}
.hero-title .num{
   font-family: "Rubik", sans-serif;
   font-size:24px;
}
.hero-title p{
  font-size:40px;
  margin-bottom:-4px;
  letter-spacing: -3px;
}
.hero-title h1{
  font-size:80px;
  letter-spacing: -10px;
}
.hero-sub-title{
  bottom:60px;
  position: absolute;
  left:60px;
}
.hero-sub-title strong{
  font-weight: 700;
  font-size:32px;
}
.hero-sub-title .point{
  font-size:24px;
  color:var(--white);
  font-weight: 300;
  letter-spacing: -1px;
  margin-top:28px;
}
.hero-sub-title .point b{
  font-weight: 700;
  text-decoration: underline;
}
.hero-slider {
  flex: 1;
  border-radius: var(--common-border-radius);
  overflow: hidden;
  position: relative;
  min-height: 672px;
  height: 672px;
}

.slider-track {
  display: flex;
  height: 100%;
  transition: transform 0.55s cubic-bezier(.4,0,.2,1);
}

.slide {
  min-width: 100%;
  height: 100%;
  position: relative;
  display: flex;
  align-items: flex-end;
}


.slide-1 {
  background-image: var(--slide-1-bg);
  background-size: cover;
  background-position: center top;
}
.slide-2 {
  background-image: var(--slide-2-bg);
  background-size: cover;
  background-position: center top;
}
.slide-3 {
  background-image: var(--slide-3-bg);
  background-size: cover;
  background-position: center top;
}
.slide-4 {
  background-image: var(--slide-4-bg);
  background-size: cover;
  background-position: center bottom;
}

.hero-badge {
  position: absolute;
  bottom:60px;
  right: 40px;
  width: 112px; 
  height: 112px;
  border-radius: 50%;
  color: #fff;
  font-size: 32px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(255,64,129,.4);
  z-index: 3;
  opacity: 0.8;
}
.slide-1  .hero-badge{
  background: #FF4081;
  box-shadow: 0 4px 12px rgba(255,64,129,.4);
}
.slide-2  .hero-badge{
  background: #27AE60;
  box-shadow: 0 4px 12px rgba(16,118,59,.4);
}
.slide-3  .hero-badge{
  background: #5180E4;
  box-shadow: 0 4px 12px rgba(30,79,184,.4);
}
.slide-4  .hero-badge{
  background: #7A5CE6;
  box-shadow: 0 4px 12px rgba(60,36,146,.4);
}
.hero-text {
  position: relative;
  z-index: 2;
  padding: 32px 24px;
  color: #fff;
}

.hero-text .sub { font-size: 14px; opacity: .85; margin-bottom: 6px; }

.hero-text h1 {
  font-size: 32px;
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: 18px;
  text-shadow: 0 2px 8px rgba(0,0,0,.3);
}

.hero-text .point { margin-bottom: 8px; }
.hero-text .point strong {
  font-size: 15px;
  font-weight: 700;
  color: #FFD600;
  display: block;
  margin-bottom: 2px;
}
.hero-text .point p {
  font-size: 13px;
  opacity: .9;
  line-height: 1.5;
}
.hero-text .point p b { color: #FFD600; font-weight: 700; }


/* Slider controls */
.slider-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  background: rgba(255,255,255,.0);
  border: none;
  color: #fff;
  width: 36px; height: 36px;
  border-radius: 50%;
  font-size: 60px;
  font-weight:200;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  font-family: sans-serif;
}
.slider-btn:hover { 
  background: rgba(255,255,255,0); 
  color:var(--primary)
}
.slider-btn.prev { left: 12px; }
.slider-btn.next { right: 12px; }

/* Dots */
.slider-dots {
  position: absolute;
  bottom: 14px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 6px;
  z-index: 10;
}

.dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: rgba(255,255,255,.5);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background 0.2s, transform 0.2s;
}
.dot.active {
  background: #fff;
  transform: scale(1.3);
}

/* Hero sidebar */
.hero-sidebar {
  min-width: 300px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
}

.since-badge {
  text-align: right;
  font-size: 17px;
  color: var(--primary);
  font-weight: 400;
  margin-bottom: 2px;
  margin-top:-6px;
  position: absolute;
  right:40px;
  z-index: 99;
  top:24px;
  padding:12px 24px;
  background-color: rgba(255, 255, 255, 0.3);
  border-radius: 40px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  letter-spacing: 0;
}
.since-badge span {
  font-size:22px;
  font-weight:400;
  color: var(--primary);
  letter-spacing: -1px;
  font-family: "Rubik", sans-serif;
} 
.sidebar-cards-row{
  margin-top:-8px;
}

.sidebar-card {
  border-radius: var(--common-border-radius);
  padding: 22px 32px;
  color: #fff;
  font-weight: 700;
  margin-top:8px
}

.sidebar-card.teal { background: var(--teal); }
.sidebar-card.orange { background: var(--orange); }
.sidebar-card.purple { background: var(--purple); }
.sidebar-card.blue { background: var(--primary); }

.sidebar-card .card-title {
  font-size: var(--font-size-subtitle);
  font-weight: 700;
  margin-bottom: 2px;
  word-break: keep-all;
  overflow-wrap: break-word;
  color: var(--white);
}

.sidebar-card .card-desc {
  font-size: var(--font-size-body);
  font-weight: 400;
  color: var(--white);
}

.contact-card {
  background: var(--primary);
  border-radius: var(--common-border-radius);
  padding: 24px 32px;
  color: #fff;
  margin-top:8px
}

.contact-card .contact-label {
  font-size: var(--font-size-subtitle);
  font-weight: 700;
}

.contact-card .phone {
  font-size: 42px;
  font-weight: 900;
  letter-spacing: -0.5px;
  margin-bottom: 8px;
  margin-top:-4px;
  color:#FFFA6C;
}

.contact-card .time-badge {
  background: rgba(0,0,0,.1);
  border-radius: 24px;
  padding:12px 20px;
  font-size: 19px;
  margin-bottom: 8px;
  display: inline-block;
  width: 100%;
}

.contact-card .info-row {
  font-size: 18px;
  line-height: 1.8;
}
.info-row p {
  display: flex;
  gap: 12px;
}

.info-row .label {
  display: inline-flex;
  justify-content: space-between;
  width: 4em;
  flex-shrink: 0;
}

/* ── SECTIONS ── */
.section {
  padding: 80px 0px;
}

.section-bg { background: var(--light-gray); }

.section-title {
  text-align: center;
  font-size: var(--font-size-title);
  font-weight: 700;
  margin-bottom: 36px;
  color: var(--black);
  display: block;
}



/* ── 기본 과정 2x2 ── */
.course-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.course-card {
  background: #F5F4F5;
  border-radius: var(--common-border-radius);
  padding: 24px 24px 40px ;
  text-align: center;
  transition: transform 0.2s, box-shadow 0.2s;
  cursor: pointer;
}

.course-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0,0,0,.05);
}


.course-card a h3 {
  font-size: var(--font-size-subtitle);
  font-weight: 700;
  margin-bottom: 6px;
  margin-top:12px;
  color:var(--dark)
  
}

.course-card p {
  font-size: var(--font-size-body);
  color: var(--gray);
}

/* ── 특별 과정 ── */

.special-grid-wrap {
  display: flex;
  gap: 24px;
}

.special-panel {
  flex: 1;
  background: #fff;
  border-radius: var(--common-border-radius);
}

.special-panel h4 {
  font-weight: 500;
  padding:20px 24px;    
  text-align: center;
  color:var(--white);
  border-top-left-radius: var(--common-border-radius);
  border-top-right-radius: var(--common-border-radius);
  font-size:24px;
}

.special-panel.p1 h4 {
  background-color:var(--primary);
}
.special-panel.p2 h4 { 
  background-color:var(--skyblue); 
}
.special-panel.p3 h4 {     
  background-color:var(--orange);
}

.special-items {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding:16px;
}

.special-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  border-radius: 10px;
  transition: background 0.15s;
}
.special-item:hover, .special-item:hover  .icon{ background: var(--blue-bg); cursor: pointer; }

.special-item .icon { 
  background-color: #f5f5f5;    
  height:80px;
  width: 100%;
  border-radius: 8px;
  margin-bottom:20px;
}
.special-item .icon img{
  width: 80px;
}
.special-item h5 {
  font-size: var(--font-size-body) ;
  font-weight: 600; 
  margin-bottom: 2px; 
  color: var(--dark);
}
.special-item p { 
  font-size:var(--font-size-body-small) ;
  color: var(--gray); 
  line-height: 1.4;  
  min-height: 52px;
  padding:0 12px;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.sub-tab-wrap {
  
  box-sizing: border-box;
}
.sub-body-wrap{
  padding:0px 0 100px;
}

.sub-tabs {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-bottom: 96px;
  width: 70%;
  margin:0 auto;
}
.speical-tabs{
  width: 100%;
}

.sub-tab-btn {
  width: 25%;
  height: 72px;
  line-height: 72px;
  border: 0;
  border-radius: 40px;
  background: var(--blue-bg);
  color: var(--primary);
  font-size: 24px;
  font-weight: 500;
  cursor: pointer;
  transition: 0.25s ease;
  text-align: center;
}

.sub-tab-btn.active {
  background: var(--primary);
  color: var(--white);
}

.sub-tab-btn:hover {
  background: #d7eaff;
}

.sub-tab-btn.active:hover {
  background: #4f83ee;
}

.sub-tab-content {
  display: none;
}

.sub-tab-content.active {
  display: block;
}

.sub-tab-content h2 {
  text-align: center;
  font-size: var(--font-size-title);
  font-weight: 700;
  margin: 64px 0 64px;
  word-break: keep-all;
}

.sub-content-wrap h3 {
  font-size: var(--font-size-subtitle);
  font-weight: 700;
  color: var(--dark);
  margin: 0 0 16px;
}
.sub-body-text{
  font-size:var(--font-size-subbody);
  color:var(--gray900);
  line-height:1.7;
}
.oneline{
  background-color: var(--blue-bg);
  font-size:var(--font-size-bodytitle);
  border-radius: var(--common-border-radius);
  padding:32px 132px 32px 32px;
  font-weight: 600;
  color:var(--primary);
  position: relative;
  min-height: 160px;
  display: flex;
  align-items: center;
  line-height: 1.7;
}

.oneline:after{
  content: "";
  position: absolute;
  right: 32px;
  top: 50%;
  width: 100px;
  height: 100px;
  transform: translateY(-50%);
  background: url("../images/oneline.png") no-repeat center / contain;
}
.sub-company-list {
  width: 100%;
  margin: 0 auto;

  display: flex;
  flex-wrap: wrap;
  gap:8px;
}
.sub-company-list p{
  border-radius: 40px;
  padding:12px 24px;
  border:1px solid #eee;
  font-size:var(--font-size-subbody);
  color:var(--dark);
}
.last-visual {
  position: relative;
  min-height: 540px;
  padding: 80px 0;
  
  display: flex;
  align-items: center;     /* 세로 가운데 */
  justify-content: center; /* 가로 가운데 */
  
  border-radius: var(--common-border-radius);
  overflow: hidden;
  
  background-image:
  linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),
  url("../images/special02_last_bg.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
.last-visual02{
  background-image:
  linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),
  url("../images/special02_last_bg2.webp");
}
.last-visual03{
  background-image:
  linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),
  url("../images/special02_last_bg3.webp");
}
.last-visual-company{
  background-image:
  linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)),
  url("../images/special03_06_bg3.webp");
}
.last-visual-oneline{
  background-image:
  linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)),
  url("../images/special03_onelinebg.webp");
}
.last-visual-adhd{
  background-image:
  linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)),
  url("../images/special03_adhdbg.webp");
}
.last-visual-self{
  background-image:
  linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)),
  url("../images/special02_last_bg3.webp");
}
.last-high{
  background-image:
  linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)),
  url("../images/special03_highbg.webp");
}
.last-high2{
  background-image:
  linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)),
  url("../images/special03_highbg2.webp");
}
.last-project{
  background-image:
  linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)),
  url("../images/special03_projectbg.webp");
}



.lastone {
  margin: 0;
  text-align: center;
  color: #fff;
  font-size: var(--font-size-body);
  line-height: 1.6;
  word-break: keep-all;
  font-weight: 300;
}
.lastone .title{
  font-size:var(--font-size-subtitle);
  color: var(--white);
}
.lastone b{
  color:#FFFA6C;
  font-weight: 600;
}

.sub-card {
  width: 100%;
  min-height: 210px;
  border: 10px solid #e5f2ff;
  border-radius: 32px;
  display: flex;
  align-items: center;
  gap: 36px;
  padding: 32px 40px;
  box-sizing: border-box;
}
.sub-card span{
  font-size:var(--font-size-body);
  color:var(--gray700);
  display: block;
}
.edutime-card .edu-info-row span{
  font-size: var(--font-size-body);
  color:var(--dark);
  line-height:1.6;
  font-weight: 500;
}
.edutime-card .edu-info-row {
  display: flex;
  gap:8px;
}
.edu-info-row {
  padding-left: 22px;
  position: relative;
}
.edu-info-row  span:first-child{
  color:var(--primary)
}

.edu-info-row::before {
  content: "";
  position: absolute;
  left: 0;
  top: 15px;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--primary);
  box-sizing: border-box;
}

.sub-edu-icon {
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.sub-edu-icon img {
  max-width: 160px;
  display: block;
}
.special02-icon{
  position: relative;
  gap:0;
  padding:32px 360px 32px 32px;
  min-height: 340px;
  border: 10px solid #f7f8f8;
}
.special02-icon:after{
  content: "";
  position: absolute;
  right: 24px;
  bottom: 32px;
  width: 340px;
  height: 260px;
  background: url("../images/icon_special01.png") no-repeat center / contain;
}

.sub-card p {
  margin: 0;
  font-size: var(--font-size-bodytitle);
  line-height: 1.6;
  font-weight: 400;
  color: var(--dark);
}
.sub-card p b.text_primary{
  font-weight: 500;
}
.special02-icon p {
  font-size: var(--font-size-body);
  font-weight: 400;
}
.sub-level-wrap {
  display: flex;
  gap: 24px;
  width: 100%;
}

.sub-level-card {
  flex: 1;
  overflow: hidden;
  border: 1px solid #eee;
  border-radius: var(--common-border-radius);
}
.sub-level-wrap .sub-level-card:last-child{
  min-width: 560px;
}
.sub-level-common .sub-level-card:last-child{
  min-width: 33.33%;
}

.sub-level-head {
  padding:12px 0;
  line-height: 1.4;
  text-align: center;
  color: #fff;
  font-size: var(--font-size-bodytitle);
  border-top-left-radius: var(--common-border-radius);
  border-top-right-radius: var(--common-border-radius);
}

.sub-level-head.sky {
  background: var(--skyblue);
}

.sub-level-head.blue {
  background: var(--primary);
}

.sub-level-head.purple {
  background: #9748f4;
}
.sub-level-head.purple p{
  font-size: var(--font-size-body-small);
  font-weight:400;
  margin-top:8px;
}
.sub-level-list, .sub-ai-list {
  margin: 0;
  padding: 0 24px;
  list-style: none;
}

.sub-level-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 68px;
  font-size: var(--font-size-subbody);
  border-bottom: 1px dashed #eee;
}
.sub-level-text:nth-of-type(1) .sub-level-ex{
  background-color: var(--blue-bg);
  color:var(--skyblue)
}
.sub-level-text:nth-of-type(2) .sub-level-ex{
  background-color: #EAEFFF;
  color:var(--primary)
}
.sub-level-ex{
  background-color:#EEE3FF;
  text-align: center;
  padding:12px 0;
  color:#9748f4;
}
.sub-level-ex strong{
  font-size:var(--font-size-bodytitle);
  padding:12px 0;
  display: block;
}
.sub-ai-list li{
  display: flex;
  align-items: center;
  font-size:var(--font-size-subbody);
  gap:16px;
  border-bottom: 1px dashed #eee;
  padding:16px 0px;
}
.sub-ai-list li:last-child{
  border-bottom:0;
}
.sub-ai-list li img{
  width: 54px;
  border-radius: 60px;  
}
.sub-ai-list li .ai-name{
  font-weight: 700;
  min-width: 114px;
}
.sub-ai-list li .ai-name span{
  display: block
}
.sub-ai-list li span{
  color:var(--gray);
  font-weight: 400;
  
  font-size:var(--font-size-body-small);
}

.sub-level-list li:last-child {
  border-bottom: 0;
}

.sub-level-list li span {
  padding:8px 16px;
  flex-shrink: 0;
  text-align: center;
  border-radius: 30px;
  background: var(--blue-bg);
  color: var(--primary);
  font-size: var(--font-size-body-small);
  font-weight: 500;
}
.sub-level-text .sub-level-list li{
  color:var(--gray700)
}
.sub-level-text .sub-level-list li span {
  padding:0;
  flex-shrink: 0;
  text-align: center;
  border-radius: 0px;
  background: none;
  color: var(--dark);
  font-size: var(--font-size-subbody);
  font-weight: 500;
}
.sub-level-text img{
  width: 32px;
  border-radius: var(--common-border-radius);
  vertical-align: middle;
  display: inline-block;
  margin-right:4px;
}
.sub-level-arrow-wrap{
  gap:48px;
}
.sub-level-arrow-wrap .sub-level-card {
  position: relative;
  overflow: inherit;
}

.sub-level-arrow-wrap .sub-level-card:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 50%;
  right:-42px;
  width: 32px;
  height: 32px;
  background: url("../images/icon_arrow.png") no-repeat center / contain;
  transform: translateY(-50%);
  z-index: 10;
  pointer-events: none;
  
}

.edu-table-wrap {
  width: 100%;
  overflow-x: auto;
  border:0;
}

.edu-table {
  width: 100%;
  min-width: 769px;
  border-collapse: collapse;
  color: var(--gray900);
  font-size: var(--font-size-subbody);
  line-height: 1.6;
  text-align: center;
}

.edu-table thead th {
  background-color: var(--primary);
  color: var(--dark);
  padding: 16px 14px;
  white-space: nowrap;
  color:var(--white);
  font-weight: 500;
  border-bottom:1px solid #eee;
  border-top-left-radius: var(--common-border-radius);
  border-top-right-radius: var(--common-border-radius);
}

.edu-table thead th:last-child {
  border-right: none;
}

.edu-table tbody td {
  padding: 16px 16px;
  border-bottom: 1px dashed #eee;
  border-right: 1px solid #eee;
  vertical-align: middle;
  word-break: keep-all;
  overflow-wrap: break-word;
}
.edu-table tbody td:first-child{
  color:var(--primary);
}
.edu-table tbody td:last-child {
  border-right: none;
  color:var(--gray700)
}

.edu-table tbody td:first-child {
  font-weight: 500;
  color: var(--primary);
  background-color: var(--blue-bg);
}


.edu-table tbody td:nth-child(4) {
  text-align: left;
}
.table-credit td:nth-of-type(2), .table-credit td:nth-of-type(3){
  text-align: left;
}
.table-left{
  margin-top:20px;
}
.table-left td:not(:first-child){
  text-align: left;
}
.table-left td:not(:first-child){
  vertical-align: top;
}
.table-center td{
  text-align: center !important;
}
.table-icon img{
  width: 32px;
  border-radius: var(--common-border-radius);
  vertical-align: middle;
}
.table-last-text{
  font-size: var(--font-size-body);
  color:var(--primary);
  font-weight: 500;
  position: relative;
  padding:12px 0px 12px 44px;
}

.table-last-text::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 32px;
  height: 32px;
  background: url("../images/icon_arrow.png") no-repeat center / contain;
  transform: translateY(-50%);
}
.edu-table-three table td{
  width: 33.33%;
}
.table-half table td{
  width: 50%;
}
.roadmap-list li {
  display: flex;
  align-items: center;
  gap: 8px;
}

.roadmap-list li span {
  flex: 0 0 auto;
}

.roadmap-list li em {
  margin-left: auto;
  font-style: normal;
  white-space: nowrap;
  text-align: right;
}

.credit-hero {
  position: relative;
  overflow: hidden;
  min-height: 520px;
  padding:48px 80px;
  border-radius: var(--common-border-radius);
  
  background-image:url("../images/basic04.webp");
  
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center right;
}


.credit-hero-label {
  line-height: 1.6;
  font-weight: 600;
  font-size: var(--font-size-body-small);
  background-color: var(--primary);
  color:var(--white) !important;
  padding:8px 16px;
  display: inline;
  border-radius: 32px;;
}

.credit-hero h2 {
  margin: 24px 0 34px;
  font-size: var(--font-size-subtitle);
  line-height: 1.4;
  font-weight: 600;
  color: var(--primary);
  text-align: left;
}

.credit-hero p {
  font-size: var(--font-size-body);
  line-height: 1.5;
  color: var(--gray);
}

.credit-hero ul {
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
}

.credit-hero li {
  position: relative;
  padding-left: 18px;
  font-size: var(--font-size-body);
  line-height: 1.6;
  color: var(--gray);
}

.credit-hero li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--gray);
  font-weight: 700;
}

/* ── CTA BANNER ── */
.cta-section {
  position: relative;
  background: linear-gradient(rgba(0,0,0,.55), rgba(0,0,0,.55)),
  url('../images/mainopenchatbg.webp') center/cover no-repeat;
  padding: 100px 20px;
  text-align: center;
  color: #fff;
}

.cta-section h2 {
  font-size: 32px;
  font-weight: 300;
  line-height: 1.6;
  margin-bottom: 48px;
}

.cta-section h2 b { color: #FFE812; font-weight: 700; }

.cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: #FFE000;
  color: #333;
  font-size: var(--font-size-body);
  font-weight: 700;
  padding: 14px 32px;
  border-radius: 80px;
  text-decoration: none;
  transition: transform 0.2s, box-shadow 0.2s;
  box-shadow: 0 4px 16px rgba(255,220,0,.4);
}
.cta-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(255,220,0,.5);
}

.cta-btn .talk-icon {
  width: 48px; height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
}


.company-inner {
  position: relative;
  display: flex;
  align-items: flex-start;
  min-height: 520px;
}
.company-inner::before {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 92%;
  height: 92%;
  border-radius: var(--common-border-radius);
  background: #f7f7fa;
  z-index: 0;
}
.company-img {
  position: relative;
  z-index: 2;
  width: 50%;
}

.company-img img {
  width: 100%;
  border-radius: var(--common-border-radius);
}

.company-info {
  position: relative;
  z-index: 1;
  width: 50%;
  padding: 92px 50px 50px 50px;
}

.company-list {
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.company-list > li {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 18px;
  padding-left: 20px;
  margin-bottom: 12px;
}

.company-list > li:last-child {
  margin-bottom: 0;
}

.company-list > li::before {
  content: "";
  position: absolute;
  top: 12px;
  left: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--primary);
}

.company-list strong {
  flex-shrink: 0;
  min-width: 110px;
  color: var(--primary);
  font-size: var(--font-size-subbody);
  line-height: 1.5;
}

.company-list span {
  color: var(--gray900);
  font-size: var(--font-size-subbody);
  line-height: 1.6;
  word-break: keep-all;
}

.ceo-info {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ceo-info > span {
  color: var(--gray900);
  font-size: 1.375rem;
  font-weight: 600;
  line-height: 1.6;
}

.ceo-info ul {
  margin: 0;
  padding-left: 0px;
}

.ceo-info ul li {
  color: var(--gray900);
  line-height: 1.7;
  margin-bottom: 4px;
  font-size: var(--font-size-subbody);
}

.ceo-info ul li:last-child {
  margin-bottom: 0;
}

/* ── 게시판 ── */
.board-wrap {
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
}

#counselBoardFrame {
  width: 100%;
  border: 0;
  display: block;
  overflow: hidden;
}
/* ── FOOTER ── */
footer {
  background: #222;
  color: #aaa;
  padding: 32px 0px 100px;
}

.footer-inner {
  max-width: 1600px;
  margin: 0 auto;
  display: flex;
  gap: 32px;
}

.footer-logo {
  font-size: var(--font-size-subtitle);
  font-weight: 900;
  color: #fff;
  white-space: nowrap;
  min-width: 120px;
}

.footer-info {
  font-size: var(--font-size-body-small);
  line-height: 1.9;
  flex: 1;
  color: #ccc;
  letter-spacing: -0.5px;
}

.footer-info p { 
  margin: 0; 
}

.footer-info .copyright {
  margin-top: 12px;
  color: #aaa;
  letter-spacing: 0;
  font-size:14px;
}
.footer-contact .flex{
  align-items: center;
  gap:0;
}
.footer-contact {
  line-height: 1.6;
  color: #aaa;
  white-space: nowrap;
  margin-right:186px
}

.footer-contact p { margin: 0; }


.footer-contact-phone {
  font-size: 24px;
  font-weight: 900;
  color: #fff !important;
  letter-spacing: -0.5px;
}

.footer-btns {
  display: flex;
  flex-direction: row;
  gap: 8px;
  flex-shrink: 0;
  position:fixed;
  right:32px;
  bottom:80px;
}

.footer-btn {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 900;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
}

.footer-btn.kakao {
  background: #FFE000;
  color: #3a1d00;
}
.footer-btn.chat{
  background:var(--primary)
}
.footer-btn.chat img{
  width: 100%;
}

.sub-page {
  border-top:1px solid #eee;
  position: relative;
  z-index: 0;
  overflow: hidden;
}
/*
.sub-page::after {
content: "";
position: absolute;
inset: 0 0 auto 0;
height: 480px;
background: linear-gradient(
to bottom,
rgba(234, 247, 255, 1) 0%,
rgba(255, 255, 255, 0) 100%
);
z-index: 0;
pointer-events: none;
}
*/

.sub-page > * {
  position: relative;
  z-index: 1;
}

.sub-header {
  text-align: center;
  padding: 60px 0 40px;
}

.sub-page-title {
  font-size: 52px;
  font-weight: 800;
  color: var(--dark);
}

/* 이미지 위에 띄우는 영역 */
.sub-visual-area {
  position: relative;
}

.sub-breadcrumb {
  position: relative;
  z-index: 20;
  width: fit-content;
  margin: 0 auto -32px;
  display: flex;
  align-items: center;
  background: #fff;
  border-radius: 40px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
  overflow: visible;
}

.sub-breadcrumb-home {
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--dark);
  text-decoration: none;
  border-right: 1px solid #eee;
  flex-shrink: 0;
  font-size: 18px;
}

.sub-breadcrumb-home:hover {
  color: var(--primary);
}

.sub-breadcrumb-dropdown {
  position: relative;
  width: 260px;
  border-right: 1px solid #eee;
  background: transparent;
}

.sub-breadcrumb-dropdown:last-child {
  border-right: 0;
}

.sub-breadcrumb-current {
  position: relative;
  width: 100%;
  height: 64px;
  padding: 0 42px 0 20px;
  border: 0;
  background: transparent;
  color: var(--dark);
  font-family: inherit;
  font-size: 18px;
  font-weight: 500;
  text-align: left;
  cursor: pointer;
}

.sub-breadcrumb-current::after {
  content: "";
  position: absolute;
  right: 24px;
  top: 50%;
  width:10px;
  height: 10px;
  border-right: 2px solid var(--gray);
  border-bottom: 2px solid var(--gray);
  transform: translateY(-65%) rotate(45deg);
  pointer-events: none;
}

.sub-breadcrumb-dropdown.is-open .sub-breadcrumb-current::after {
  transform: translateY(-35%) rotate(225deg);
}

.sub-breadcrumb-list {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  width: 100%;
  padding:8px 8px;
  list-style: none;
  background: #fff;
  border-radius:16px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12);
  z-index: 30;
}

.sub-breadcrumb-dropdown.is-open .sub-breadcrumb-list {
  display: block;
}

.sub-breadcrumb-list li a {
  display: block;
  padding: 16px ;  
  color: var(--dark);
  font-size: 17px;
  text-decoration: none;
  white-space: nowrap;
  font-weight: 500;
}

.sub-breadcrumb-list li a:hover,
.sub-breadcrumb-list li a.current {
  background: var(--blue-bg);
  color: var(--primary);
  font-weight: 700;
  border-radius:12px;
}

/* 서브 비주얼 이미지 */
.overview{
  background-image:var(--menu01-01bg);
}
.history{
  background-image:var(--menu01-02bg);
}
.location{
  background-image:var(--menu01-05bg);
}
.basic-01-01{
  background-image: var(--menu02-01bg);
}
.basic-01-02{
  background-image: var(--menu02-02bg);
}
.basic-01-03{
  background-image: var(--menu02-03bg);
}
.basic-01-04{
  background-image: var(--menu02-04bg); 
}
.special-01-01{
  background-image: var(--menu02-05bg);
}
.special-02-01{
  background-image: var(--menu02-06bg);
}
.special-03-01{
  background-image: var(--menu02-07bg);
}
.research_history{
  background-image: var(--menu03-01bg);
}
.faq{
  background-image: var(--menu04-01bg); 
}
.counsel-visual{
  background-image: var(--menu05-01bg);  
}
.sub-page-visual {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}


.sub-page-visual {
  position: relative;
  overflow: hidden;
  border-radius: var(--common-border-radius);
  width: 100%;
  height:600px;
  background-position: center;
  background-size: cover;
  
}

.sub-page-visual img {
  display: block;
  width: 100%;
  height: 470px;
  object-fit: cover;
}

/* 이미지 아래쪽 그라데이션 */
.sub-page-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
  to top,
  rgba(0, 0, 0, 0.8) 0%,
  rgba(0, 0, 0, 0.3) 25%,
  rgba(0, 0, 0, 0) 45%
  );
  pointer-events: none;
}

.sub-page-visual-text {
  position: absolute;
  left: 50%;
  bottom: 44px;
  z-index: 2;
  transform: translateX(-50%);
  width: 92%;
  text-align: center;
  color: #fff;
  line-height: 1.6;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.sub-page-visual-text p {
  font-size: 28px;
  font-weight: 400;
  display: inline;
}
.credit-hero b{
  color:var(--dark);
  font-weight:600;
}

.sub-page-visual-text strong {
  font-size: 28px;
  font-weight: 700;
  color: #ffe600;
}
.sub-content-wrap{
  padding: 80px 0 ;
}

.history-timeline {
  max-width: 1023px;
  margin: 0 auto;
}
.history-year {
  display: grid;
  grid-template-columns: 200px 40px 1fr;
  column-gap: 40px;
  position: relative;
}

.history-year h3 {
  font-size: 36px;
  font-weight: 400;
  color: var(--primary);
  line-height: 1;
  text-align: right;
  padding-top: 4px;
  font-family: "Rubik", sans-serif;
}

.history-line {
  position: relative;
  display: flex;
  justify-content: center;
}

.history-line::before {
  content: "";
  position: absolute;
  top: 12px;
  bottom: -10px;
  left: 50%;
  width: 0.5px;
  background: #9dbbff;
  transform: translateX(-50%);
}

.history-year:last-child .history-line::before {
  display: none;
}

.history-line .dot {
  position: relative;
  z-index: 1;
  width: 12px;
  height: 12px;
  margin-top: 12px;
  border-radius: 50%;
  background: var(--primary);
}

.history-detail {
  list-style: none;
  padding-top: 0;
  padding-bottom:60px;
}

.history-detail li {
  font-size: var(--font-size-subbody);
  line-height:1.5;
  color: var(--gray900);
  letter-spacing: -0.8px;
  margin-bottom:16px;
}

.history-detail li strong {
  display: inline-block;
  min-width: 42px;
  margin-right:8px;
  font-weight: 400;
  color: var(--skyblue);
  font-family: "Rubik", sans-serif;
}

.map-wrap{
  margin-top:80px
}
.map-wrap .root_daum_roughmap{
  width: 100% !important;
  border-radius: var(--common-border-radius);
}
.root_daum_roughmap .cont{
  display: none;
}

.faq-content {
  margin: 0 auto;
}

.faq-list {
  border-top: 2px solid var(--primary);
  margin-bottom:100px;
}

.faq-item {
  border-bottom: 1px solid #eee;
}

.faq-question {
  position: relative;
  width: 100%;
  min-height: 82px;
  padding: 0 32px 0 32px;
  border: 0;
  background: #fff;
  display: flex;
  align-items: center;
  gap: 22px;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
}

.faq-question::after {
  content: "";
  position: absolute;
  right: 24px;
  top: 50%;
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--gray900);
  border-bottom: 2px solid var(--gray900);
  transform: translateY(-65%) rotate(45deg);
  transition: transform 0.25s ease, border-color 0.25s ease;
  pointer-events: none;
}

.faq-num {
  flex: 0 0 auto;
  font-weight: 700;
  color: var(--dark);
  font-size:22px;
}

.faq-title {
  flex: 1;
  font-size:22px;
  font-weight: 500;
  color: var(--dark);
  line-height: 1.5;
  word-break: keep-all;
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  background: #f8f8f8;
  transition: max-height 0.75s cubic-bezier(0.25, 1, 0.5, 1);
}

.faq-answer-inner {
  padding: 28px 70px 38px;
}

.faq-answer p {
  margin: 0;
  font-size: var(--font-size-subbody);
  line-height: 1.9;
  color: var(--gray700);
  word-break: keep-all;
}

.faq-item.active .faq-title,
.faq-item.active .faq-num {
  color: var(--primary);
}

.faq-item.active .faq-answer {
  max-height: 600px;
  transition: max-height 0.75s cubic-bezier(0.25, 1, 0.5, 1);
}

.faq-item.active .faq-question::after {
  transform: translateY(-35%) rotate(225deg);
  border-right-color:  var(--primary);
  border-bottom-color:  var(--primary);
}
.faq-letter{
  border-radius: var(--common-border-radius);
  background-color:var(--blue-bg);
  padding:60px 32px;
  font-size:var(--font-size-body);
  text-align: center;
  line-height: 1.7;
  color:var(--gray700)
}
.faq-letter strong{
  font-size:var(--font-size-subtitle);
  font-weight: 500;
  color:var(--dark)
}
.faq-letter .flex{
  justify-content: center;
}
.faq-letter .flex img{
  width: 28%;
  margin-top:60px;
  border-radius: var(--common-border-radius);
}
.research-grid{
  margin-top:40px;
}
.program-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.grid-six{
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
}
.grid-three{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.grid-four{
  grid-template-columns: repeat(4, 1fr);
}
.icon-big{
  padding:0;
}
.icon-big .program-card{
  flex-direction: column;
  text-align: center;
  padding:0;
  overflow: hidden;
}
.icon-big .program-icon{
  background-color: #eee;;
  border:0;
  width: 100%;
  height:180px;
  max-height:180px;
  flex:auto;
  border-radius: 0;
}
.icon-big .program-icon img{
  width: auto;
  height: 140px;
  margin:10px auto
}
.icon-big .program-text{
  padding:0 24px 24px;
}
.program-card {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 24px;
  border: 1px solid #eee;
  border-radius: var(--common-border-radius);
}
.program-img .program-card{
  flex-direction: column;
  text-align: center;
  padding:0;
  overflow: hidden;
}
.program-icon {
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
  border-radius:32px;  
  display: flex;
  overflow: hidden;
}
.program-icon img{
  width: 100%;
}
.grid-three .program-icon img, .grid-six .program-icon img{
  width: auto;
  height: 180px;
  margin:0 auto;
}
.program-img .program-icon{
  width: 100%;
  height:auto;
  flex:none;
  border-radius: 0;
  background-color: #EBF4FE;
}
.program-img .program-text{
  padding:0px 24px 24px;
}

.program-text h4 {
  margin: 0 0 4px;
  color: var(--dark);
  font-size: var(--font-size-bodytitle);
  font-weight: 500;
  line-height: 1.35;
}

.program-text p {
  margin: 0;
  color: var(--gray700);
  font-size: var(--font-size-subbody);
  line-height: 1.6;
  word-break: keep-all;
}
.middle-check-list{
  display: flex;
  gap:12px
}
.middle-check-list li{
  border-radius: var(--common-border-radius);
  background-color: var(--blue-bg);
  width: 100%;
  font-size:var(--font-size-bodytitle);
  padding:48px 32px;
  font-weight: 600;
  display: flex;
  gap:8px;
  align-items: center;  
}
.middle-check-list li img{
  width: 32px;
  height:26px;
  display: inline-block;
}
.high-card-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

.high-card {
  overflow: hidden;
  border: 1px solid #eee;
  border-radius: var(--common-border-radius);
}

.high-img {
  width: 100%;
  overflow: hidden;
}

.high-img img {
  width: 100%;
  display: block;
  object-fit: cover;
}

.high-text {
  padding: 24px;
  text-align: center;
}

.high-text h4 {
  margin: 0 0 6px;
  font-size: var(--font-size-bodytitle);
  font-weight: 600;
  color: var(--dark);
}

.high-text p {
  margin: 0;
  font-size: var(--font-size-subbody);
  line-height: 1.4;
  color: var(--gray700);
}

.compare-card-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin: 0 auto;
}
.compare-grid-three{
  grid-template-columns: repeat(3, 1fr);
}

.compare-card {
  border: 1px solid #eee;
  border-radius: var(--common-border-radius);
  overflow: hidden;
}
.compare-card:nth-of-type(1) .compare-card-title{
  background-color: var(--skyblue);
}
.compare-card:nth-of-type(2) .compare-card-title {
  background-color: var(--primary);
}
.compare-card:nth-of-type(3) .compare-card-title{
  background-color: var(--purple);
}
.compare-card:nth-of-type(4) .compare-card-title {
  background-color: var(--orange);
}
.compare-card:nth-of-type(5) .compare-card-title {
  background-color: var(--teal);
}
.compare-card-title {
  color: #fff;
  text-align: center;
  font-size: var(--font-size-bodytitle);
  padding: 12px 0px;
  line-height: 1.4;
}
.compare-card-title span{
  font-size: var(--font-size-body);
}

.compare-card-head {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  background: #f8f8f8;
  border-bottom: 1px solid #eee;
}

.compare-card-head div {
  padding: 14px 12px;
  text-align: center;
  font-size: var(--font-size-body-small);
  color: var(--dark);
}

.compare-card-head div:first-child {
  border-right: 1px dashed #eee;
}

.compare-card-body {
  display: table;
  width: 100%;
  text-align: center;
}

.compare-row {
  display: table-row;
}

.compare-row p {
  display: table-cell;
  width: 50%;
  margin: 0;
  padding: 10px 16px;
  font-size: var(--font-size-body);
  line-height: 1.4;
  color: var(--gray900);
  word-break: keep-all;
  vertical-align: middle;
  border-bottom: 1px dashed #eee;;
}
.compare-row p:first-child {
  border-right: 1px dashed #eee;
}
.compare-row:last-child p{
  border-bottom:0;
}

.dev-roadmap-wrap {
  display: flex;
  gap:48px;
  align-items: stretch;
}

.dev-roadmap-card {
  position: relative;
  flex: 1;
  border: 1px solid #eee;
  border-radius: var(--common-border-radius);
  overflow: visible;
  background: #fff;
}

.dev-roadmap-card:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -42px;
  width: 32px;
  height: 32px;
  background: url("../images/icon_arrow.png") no-repeat center / contain;
  transform: translateY(-50%);
  z-index: 3;
}

.dev-roadmap-img {
  background: #e1eefd;
  border-radius: 20px 20px 0 0;
  padding: 24px 20px;
  text-align: center;
}

.dev-roadmap-img img {
  display: block;
  width: 100%;
  max-width: 180px;
  margin: 0 auto;
}

.dev-roadmap-text {
  padding: 22px 16px 26px;
  text-align: center;
}

.dev-roadmap-text h4 {
  font-size: var(--font-size-body);
  font-weight: 500;
  line-height: 1.35;
  color: var(--dark);
}

.dev-roadmap-text p {
  margin: 0;
  font-size: 18px;
  line-height: 1.5;
  color: var(var(--gray900));
  word-break: keep-all;
}
.sitemap-section {
  width: 100%;
}

.sitemap-group {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 48px;
  padding: 56px 0;
  border-bottom: 1px dashed #eee;
}

.sitemap-group:first-child {
  padding-top: 0;
}
.sitemap-group:last-child{
  border-bottom:0;
}
.sitemap-main-title {
  font-size: var(--font-size-subtitle);
  font-weight: 800;
  color: var(--dark);
  line-height: 1.2;
  margin-top:12px;
}

.sitemap-menu-area {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}

.sitemap-menu-four {
  grid-template-columns: repeat(4, 1fr);
}

.sitemap-menu-box {
  min-width: 0;
}

.sitemap-depth1 {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 68px;
  padding: 14px 20px;
  border: 1px solid #eee;
  background-color:#f7f7fa;
  border-radius: 12px;
  color: var(--dark);
  font-size: var(--font-size-bodytitle);
  font-weight: 500;
  text-align: center;
  text-decoration: none;
}

.sitemap-depth1:hover {
  border-color: var(--primary);
  color: var(--primary);
}

.sitemap-depth2 {
  margin-top: 28px;
  padding: 0;
}

.sitemap-depth2 > li {
  position: relative;
  padding-left: 16px;
  margin-bottom: 16px;
}

.sitemap-depth2 > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 13px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--gray700);
}

.sitemap-depth2 > li > a {
  color: var(--gray700);
  font-size: var(--font-size-subbody);
  line-height: 1.5;
  text-decoration: none;
  word-break: keep-all;
}

.sitemap-depth2 > li > a:hover {
  color: var(--primary);
}

.edu-flow {
  display: flex;
  align-items: center;
  gap: 0px;
  width: 100%;
  margin: 0 auto;
}

.edu-flow__left {
  display: flex;
  flex-direction: column;
  gap: 14px;
  flex: 0 0 320px;
}

.edu-flow__tag {
  height: 80px;
  padding: 0 20px;
  border-radius: var(--common-border-radius);
  background: #f7f7f7;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-size-body);
  font-weight: 500;
  color: var(--dark);
  text-align: center;
  margin-right:40px;
}

.edu-flow__arrow {
  width: 80px;
  height: 80px;
  background: var(--primary);
  opacity: 0.4;
  clip-path: polygon(0 28%, 62% 28%, 62% 0, 100% 50%, 62% 100%, 62% 72%, 0 72%);
  flex-shrink: 0;
}

.edu-flow__center {
  flex: 0 0 250px;
  text-align: center;
}

.edu-flow__center img {
  width: 100%;
  max-width: 220px;
  display: block;
  margin: 0 auto;
}

.edu-flow__right {
  display: flex;
  flex-direction: column;
  gap: 14px;
  flex: 1;
}

.edu-flow__box {
  min-height: 80px;
  padding: 24px 28px;
  border-radius: var(--common-border-radius);
  font-size: var(--font-size-body);
  
  color: var(--dark);
}

.edu-flow__box p {
  position: relative;
  margin: 0 0 8px;
  padding-left: 14px;
  line-height: 1.5;
}

.edu-flow__box p:last-child {
  margin-bottom: 0;
}

.edu-flow__box p::before {
  content: "·";
  position: absolute;
  left: 0;
  top: 0;
}

.edu-flow__box--blue {
  background: #f1f6ff;
  color:var(--primary)
}

.edu-flow__box--purple {
  background: #f5f1ff;
  color:var(--purple)
}

.edu-flow__box--orange {
  background: #fff3e9;
  color:#FF7A00;
}
.top-btn {
  position: fixed;
  right: 32px;
  bottom: 166px;
  width: 54px;
  height: 54px;
  border: 0;
  border-radius: 50%;
  background: var(--blue-bg);
  color: var(--primary);
  font-size: 26px;
  font-weight: 700;
  cursor: pointer;
  z-index: 9999;

  display: flex;
  align-items: center;
  justify-content: center;

  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: all 0.3s ease;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
}

.top-btn.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.top-btn:hover {
  background: var(--primary);
  color:var(--white)
}

.counsel-board-frame {
  width: 100%;
  min-height: 900px;
  border: 0;
  display: block;
}
.advisor-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap:12px;
}

.advisor-item {
  display: flex;
  gap: 28px;
  min-height: 260px;
  padding: 48px 52px;
  border: 1px solid #eee;
  border-radius: var(--common-border-radius);
  align-items: stretch;
  box-sizing: border-box;
}

.advisor-photo {
  flex: 0 0 110px;
}

.advisor-photo img {
  width: 110px;
  height: 130px;
  object-fit: cover;
  border-radius: 6px;
  display: block;
}

.advisor-info {
  flex: 1;
  min-width: 0;
}

.advisor-info h4 {
  margin: 0 0 4px;
  font-size: var(--font-size-bodytitle);
  font-weight: 700;
  color: var(--primary);
  line-height: 1.4;
  word-break: keep-all;
}

.advisor-info h4 span {
  font-size: var(--font-size-bodytitle);
  font-weight: 700;
  color: var(--primary);
}

.advisor-info > a {
  display: inline-block;
  margin-bottom: 20px;
  font-size: var(--font-size-bodytitle);
  font-weight: 700;
  color: var(--skyblue);
  text-decoration: none;
  line-height: 1.4;
}

.advisor-info > a:hover {
  text-decoration: underline;
}

.advisor-info ul {
  margin: 0;
  padding: 0;
}

.advisor-info li {
  position: relative;
  margin-bottom: 6px;
  padding-left: 10px;
  font-size: var(--font-size-body);
  color: var(--gray900);
  line-height: 1.5;
  word-break: keep-all;
}

.advisor-info li::before {
  content: "·";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--skyblue);
  font-weight: 700;
}
.news-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap:32px;
}

.news-item {
  text-align: center;
  gap: 28px;
  min-height: 260px;
  padding: 0px 0 24px 0;
  border: 1px solid #eee;
  border-radius: var(--common-border-radius);
  align-items: stretch;
  box-sizing: border-box;
  font-size:var(--font-size-body)
}
.news-item p{
  padding:24px 24px 4px;
}
.news-item b{
  padding:0 24px 24px;
  color:var(--primary)
}
.news-item img{
  width: 100%;
  border-top-left-radius: var(--common-border-radius);
  border-top-right-radius: var(--common-border-radius);
}

/* 1024 이하 */
@media (max-width: 1024px) {
  .sitemap-group {
    grid-template-columns: 180px 1fr;
    gap: 32px;
  }

  .sitemap-menu-area,
  .sitemap-menu-four {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* 767 이하 */
@media (max-width: 767px) {
  .sitemap-group {
    display: block;
    padding: 40px 0;
  }

  .sitemap-main-title {
    margin-bottom: 24px;
    font-size: 32px;
  }

  .sitemap-menu-area,
  .sitemap-menu-four {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .sitemap-depth1 {
    min-height: 56px;
    border-radius: 20px;
    font-size: 18px;
  }

  .sitemap-depth2 {
    margin-top: 18px;
  }

  .sitemap-depth2 > li {
    margin-bottom: 12px;
  }

  .sitemap-depth2 > li > a {
    font-size: 16px;
  }
}
@media (max-width: 1024px) {
  .program-card-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}



/* ========================================
RESPONSIVE — 1199px breakpoint
======================================== */
@media (max-width: 1199px) {
  .mega-all-col, .nav-links > li > a{
    width: 110px;  
    min-width: 110px;
  }
  .logo-img{
    min-width: 200px;
  }
  .sub-tab-btn{
    font-size:18px
  }
}
/* ========================================
RESPONSIVE — 1599px breakpoint
======================================== */
@media (max-width: 1599px) {
  .contents-in, .header-inner, .footer-inner{
    max-width: 100%;
    padding:0 16px;
  }
  .course-card .icon img{
    width: 100%;
  }
}
/* ========================================
RESPONSIVE — 1024px breakpoint
======================================== */
@media (max-width: 1024px) {
  .nav-links,
  .header-right { display: none; }
  .hamburger { display: flex; align-items: center; }
  .since-badge{
    position: absolute;
    top:20px;
    z-index: 99;
    right:60px
  }
  .hero-badge{
    bottom:40px;
  }
  .contents-in.flex{
    display: block;
  }
  .hero-text-wrap{
    width: 100%;
    height: 560px;
  }
  .hero-slider{
    height:560px;
    min-height: 560px;
  }
  .hero-title{
    top:60px;
    left:40px;
  }
  .hero-title p{
    font-size:32px
  }
  .hero-title h1{
    font-size:66px
  }
  .hero-sub-title{
    bottom:40px;
    left:40px;
  }
  .hero-sub-title .point{
    font-size:24px;
  }
  .time-badge br{
    display:none;
  }
  
  .hero-sidebar {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top:8px;
    align-items: stretch;
  }
  
  .sidebar-cards-row {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
    height: 100%;
    margin-top:0;
  }
  
  .sidebar-card {
    flex: 1;  /* 카드들이 균등하게 높이 나눔 */
    margin-top: 0;
  }
  
  .contact-card {
    grid-column: 2;
    grid-row: 1;
    margin-top: 0;
    height: 100%;
  }
  .course-grid, .special-grid-wrap{
    gap:16px;
  }
  .special-items{
    padding:16px;
    gap:8px;
  }
  .special-item p{
    min-height: 44px;
  }
  .special-item .icon{
    margin-bottom:12px;
  }
  .sub-level-wrap .sub-level-card:last-child{
    min-width: 400px;
  }
  .sub-tabs{
    width: 90%;;
  }
  
  .speical-tabs{
    width: 100%;
  }
  .sub-tabs{
    gap:8px;
  }
  .sub-tab-btn{
    font-size:16px;
  }
  .footer-inner {
    flex-wrap: wrap;
    gap: 16px;
  }

  
  .footer-contact {
    text-align: left;
  }
  
  .footer-btns {
    flex-direction: row;
    margin-left: auto;
  }
}

/* ========================================
RESPONSIVE — 768px breakpoint
======================================== */
@media (max-width: 768px) {
  :root { 
    --nav-h: 60px; 
    --common-border-radius:24px;

  --slide-4-bg: url('../images/m_mainbg-04.webp');
    
    /* 서브 비주얼 이미지 */
    --menu01-01bg:url(../images/m_sub01.webp);
    --menu01-02bg:url(../images/m_sub02.webp);
    --menu01-03bg:url(../images/sub01.webp);
    --menu01-04bg:url(../images/sub01.png);
    --menu02-01bg:url(../images/m_sub02_01_01.webp); 
    --menu02-02bg:url(../images/m_sub02_01_02.webp);
    --menu02-03bg:url(../images/m_sub02_01_03.webp);
    --menu02-04bg:url(../images/m_sub02_01_04.png);
    --menu03-01bg:url(../images/sub03_02.png);
    --menu04-01bg:url(../images/m_sub04_01.webp);
    --menu05-01bg:url(../images/m_sub05_01.webp);   
  } 
  .section{
    padding:60px 0;
  }
  
  header { padding: 0 px; }
  .logo-img img{
    height:38px;
  }
  
  .hero-title h1{
    font-size:48px;
    letter-spacing: -5px;
  }
  .hero-title p{
    font-size:24px;
    margin-bottom:0;
    font-weight: 600;
  }.hero-sub-title strong{
    font-size:24px;
    margin-bottom:0;
    font-weight: 600;
  }
  .hero-title .num{
   font-family: "Rubik", sans-serif;
   font-size:18px;
}
  .hero-sub-title .point{
    font-size:18px;
    margin-top:0;
  }
  .hero-sub-title .point:last-child{
    margin-top:20px;
  }
  .since-badge{
    top:24px;
    font-size:16px;
    right:32px;
    padding:4px 16px;
    background-color: rgba(255,255,255,0.6);
    border-radius: 40px;
    backdrop-filter: blur(40px);
    -webkit-backdrop-filter: blur(40px);
  }
  .since-badge span{
    font-size:17px;
  }
  .sidebar-cards-row {
    display: grid;
    grid-template-columns: 1fr ;
    gap: 8px;
    padding-top:16px
  }
  .hero-text-wrap{
    width: 100%;
    position: static;
    background:#FF8880;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    padding:20px;
    height:auto;
  }
  .hero-badge{
    left:20px;
    top:20px;
    width: 72px;
    height:72px;
    font-size:20px;
  }
  .hero-title{
    text-align: center;
    top: 165px;
    width: calc(100% - 32px);
    /* height: 100%; */
    background: linear-gradient(to top, rgba(0,0,0,0.0) 0%, rgba(0,0,0,0.2) 6%,  rgba(0,0,0,0.3) 60%, rgba(0,0,0,0) 100%);
    left: 50%;
    transform: translateX(-50%);
    padding:32px 0;
    border-bottom-left-radius: var(--common-border-radius);
    border-bottom-right-radius: var(--common-border-radius);
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }
  .hero-sub-title{
    position: static;
  }
  .hero-slider{
    height:340px;
    min-height: 340px;
  }
  .hero-text-wrap{
    display: block;
  }
  
  .contents-in{
    width:100%; 
    padding:0 16px;
    max-width: 100%;
  }
  /* Hero — stacked */
  .hero {
    flex-direction: column;
    padding: 16px;
    gap: 0;
  }
  
  .hero-slider {
    width: 100%;
    border-top-left-radius: var(--common-border-radius);
    border-top-right-radius: var(--common-border-radius);
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    min-height: 340px;
    height:340px;
  }
  
  .hero-sidebar {
    width: 100%;
    min-width: 100%;
    margin-top: 0px;
    gap: 8px;
    display:flex;
  }
  .slide-1 {
    background-position: center top;
  }
  .slide-2 {
    background-position: 70% top;
  }
  .slide-3 {
    background-position: 80% top;
  }
  .contact-card .phone{
    font-size:36px;
    margin-top:0;
  }
  .contact-card{
    padding:20px;
  }
  .contact-card .time-badge{
    font-size:17px;
    border-radius: 16px;
  }
  .contact-card .info-row{
    font-size:17px;
    line-height: 1.6;
  }
  .sidebar-card { 
    padding:20px;
    margin: 0; }
    
    /* 기본 과정 — 2x2 */
    .course-grid {
      grid-template-columns: 1fr 1fr;
      gap: 8px;
    }
    .course-card{
      padding:16px 16px 32px;
    }
    .section-title{
      margin-bottom:24px;
    }
    
    /* 특별 과정 — stacked */
    
    .special-grid-wrap {
      flex-direction: column;
      gap: 16px;
    }
    .special-panel h4{
      font-size:24px;
      padding:16px 0;
    }
    footer{
      padding:32px 0 160px;
    }
    .footer-inner {
      flex-direction: column;
      align-items: flex-start;
      gap: 12px;
    }
    .cta-section h2{
      font-size:1.4rem;
    }
    .cta-section h2 br{display:none}
    .footer-logo {
      order: 1;
    }
    
    .footer-info {
      order: 3;
      font-size:14px;
    }
    .footer-info span{
      display: block;
    }
    
    .footer-contact {
      order: 2;
      margin-bottom:12px;
      margin-right:0;
      text-align: left;
      font-size:14px;
    }
    .footer-contact-phone{
      font-size:20px;
    }
    .footer-btns {
      flex-direction: column;
      align-self: flex-end;
      position: fixed;
      bottom:32px;
      right:16px;
    }
    .footer-btn{
      
      width: 60px;
      height: 60px;
    }
    
    .company-inner {
      display: flex;
      flex-direction: column;
    }
    
    .company-inner::before {
      display: none;
    }
    
    .company-img {
      width: 100%;
      order: 2;
    }
    
    .company-img img {
      height: auto;
      border-radius: 22px;
    }
    
    .company-info {
      width: 100%;
      margin-top: 0px;
      
      padding: 0px 0 24px 0;;
      order: 1;
    }
    
    .company-list > li {
      flex-direction: column;
      gap: 6px;
      padding-left: 16px;
      margin-bottom: 20px;
    }
    
    .company-list > li::before {
      top: 9px;
      width: 7px;
      height: 7px;
    }
    
    .company-list strong {
      min-width: auto;
    }
    
    .ceo-info > span {
      font-size: 1rem;
    }
    .sub-header {
      padding: 40px 0 22px;
    }
    
    .sub-page-title {
      font-size: 36px;
    }
    
    .sub-breadcrumb {
      width: calc(100% - 24px);
      min-width: 0;
      margin: 0 auto -30px;
    }
    
    .sub-breadcrumb-home {
      display: none;
    }
    
    .sub-breadcrumb-dropdown {
      flex: 1;
      width: auto;
    }
    
    .sub-breadcrumb-current {
      height: 52px;
      padding: 0 40px 0 20px;
      font-size: 17px;
    }
    
    .sub-breadcrumb-current::after {
      right: 16px;
      width: 8px;
      height: 8px;
    }
    
    .sub-breadcrumb-list {
      top: calc(100% + 6px);
      padding: 6px;
      border-radius: 12px;
    }
    
    .sub-breadcrumb-list li a {
      padding: 12px;
      font-size: 16px;
    }
    
    
    .sub-page-visual {
      border-radius: var(--common-border-radius);
      height:380px;
    }
    
    .sub-page-visual img {
      height: 300px;
    }
    
    .sub-page-visual-text {
      bottom: 16px;
    }
    .sub-page-visual-text br{
      display: none;
    }
    .sub-page-visual-text p {
      font-size: 17px;
      line-height: 1.4;
    }
    
    .sub-page-visual-text strong {
      font-size: 17px;
      line-height: 1.4;
    }
    .sub-content-wrap{
      padding: 52px 0 ;
    }
    .history-year{
      grid-template-columns:74px 12px 1fr;
      gap:8px;
    }
    .history-detail li{
      display: flex;
    }
    .history-year h3{
      font-size:22px;
    }
    .history-detail{
      padding-bottom:40px;
    }
    
    .history-line .dot {
      width: 8px;
      height: 8px;
      margin-top: 8px;
    }
    .sub-tabs {
      flex-wrap: wrap;
      margin-bottom: 32px;
      width: 100%;
      gap:4px;
    }
    
    .sub-tab-btn {
      height: 56px;
      line-height: 56px;
      width: calc(50% - 4px);
      font-size: 16px;
    }
    .sub-tab-content h3{
      margin-bottom: 12px;
    }
    .sub-tab-content h2 {
      margin:48px 0 20px;
    }
    .sub-tab-content h2 span {
      font-size:1.35rem;
      font-weight: 500;
      display: block;
      color:var(--gray700);
      word-break: keep-all;
    }
    
    .sub-body-wrap{
      padding:0px 0 50px;
    }
    .faq-list{
      margin-bottom:40px;
    }
    .faq-letter{
      padding:32px
    }
    .faq-letter .flex{
      flex-direction: column;
      gap:8px;
      margin-top:40px;
      align-items: center;
    }
    .faq-letter .flex img{
      margin-top:0px;
      width: 90%;
    }
    .sub-card {
      flex-direction: column;
      align-items: flex-start;
      gap: 20px;
      padding: 20px;
    }
    
    .sub-edu-icon img {
      max-width: 100px;
    }
    .sub-card p {
      font-size: 17px;
      line-height: 1.4;
    }
    
    .sub-card p br {
      display: none;
    }
    .special02-icon p br {
      display: block;
    }
    .location-content .sub-card p br {
      display: block;;
    }
    .sub-level-wrap {
      flex-direction: column;
      gap:12px;
    }
    
    
    .sub-level-list {
      padding: 10px 14px;
    }
    
    .sub-level-list li {
      gap: 8px;
      min-height: auto;
      padding:8px 0;
    }
    .sub-level-wrap .sub-level-card:last-child{
      min-width: auto;
    }
    .sub-level-head{
      padding:12px 0;
    }
    .sub-ai-list li .ai-name{
      min-width: 88px
    }
    .sub-ai-list li img{
      width: 32px;
    }
    .sub-level-list, .sub-ai-list{
      padding:0 16px;
      
    }
    .sub-ai-list li{
      padding:12px 0;
      gap:8px;
    }
    .sub-level-arrow-wrap{
      gap:48px;
    }
    
    .sub-level-arrow-wrap .sub-level-card:not(:last-child)::after {
      top: auto;
      left: 50%;
      right: auto;
      bottom: -42px;
      transform: translateX(-50%) rotate(90deg);
      
    }
    .oneline{
      padding:32px 100px 32px 32px;
      min-height: 120px;
    }
    .oneline:after{
      width: 60px;
      height: 60px;
      bottom: 32px;
      transform: none;
      top:auto
    }
    .table-full table{
      min-width: 100%;
    }
    .edu-table {
      min-width: 769px;
    }
    
    .edu-table thead th,
    .edu-table tbody td {
      padding: 12px 12px;
    }
    .edu-table tbody td:nth-of-type(1){
      width: 100px;
       word-break: keep-all;
      overflow-wrap: break-word;
    }
    .edu-table tbody td:nth-of-type(2),
    .edu-table tbody td:nth-of-type(3){
      max-width: 150px;;
    }
    .map-wrap{
      margin-top:48px;
    }
    
    .faq-content {
      padding: 50px 16px 80px;
    }
    
    .faq-question {
      min-height: 72px;
      padding: 0 42px 0 12px;
      gap: 14px;
    }
    
    .faq-question::after {
      right: 16px;
      width: 8px;
      height: 8px;
    }
    
    .faq-num, .faq-title{
      font-size: 16px;
    }
    
    
    .faq-answer p {
      line-height: 1.8;
    }
    .faq-answer-inner{
      padding: 20px 32px 20px;
    }
    .middle-check-list{
      flex-direction: column;
      gap:8px;
    }
    .middle-check-list li{
      padding:32px 24px;
    }
    .high-card-grid {
      grid-template-columns: repeat(2, 1fr);
      gap:8px;
    }
    
    .high-text {
      padding: 20px;
    }
    .program-card-grid {
      grid-template-columns: 1fr;
      gap: 8px;
    }
    
    .program-card {
      gap: 16px;
      padding: 20px;
    }
    
    .program-icon {
      flex-basis: 54px;
      width: 54px;
      height: 54px;
      font-size: 22px;
    }
    .special02-icon:after{
      right: 24px;
      bottom: 0px;
      width: 200px;
      height: 180px;
      
    }
    .special02-icon{
      padding:0px 20px 180px 20px
    }
    .grid-six{
      grid-template-columns: repeat(2,3fr);
      gap:8px;
    }
    .compare-card-grid{
      grid-template-columns: repeat(1,4fr);
      gap:8px;
    }
    .last-visual{
      padding:40px 24px;
      min-height: 340px;
    }
    .edu-info-row::before{
      top:9px;
    }
    .edutime-card .edu-info-row span:nth-of-type(1){
      min-width: 66px;
      margin-left:-10px;
    }
    .dev-roadmap-wrap {
      display: block;
    }
    
    .dev-roadmap-card {
      margin-bottom: 48px;
    }
    
    .dev-roadmap-card:last-child {
      margin-bottom: 0;
    }
    .dev-roadmap-img{
      padding:8px;
      
    }
    .dev-roadmap-img img{
      max-width: 100px;
    }
    .dev-roadmap-card:not(:last-child)::after {
      top: auto;
      bottom: -42px;
      right: 50%;
      width: 32px;
      height: 32px;
      transform: translateX(50%) rotate(90deg);
    }
    .dev-roadmap-text{
      padding:16px;
    }
    .credit-hero h2{
      margin:24px 0 20px;
    }
    .credit-hero {
      padding:48px 30px 240px 30px;
      
      background-image:url("../images/m_basic04.webp");
      
      background-repeat: no-repeat;
      background-size: cover;
      background-position: center bottom;
    }
     .edu-flow {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }

  .edu-flow__left {
    width: 100%;
    flex: none;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
  }

  .edu-flow__tag {
    padding: 20px 12px;
    line-height: 1.4;
    margin-right:0;
      word-break: keep-all;
  overflow-wrap: break-word;
  }

  .edu-flow__arrow {
    width:62px;
    height: 40px;
    margin: 0 auto;
    clip-path: polygon(28% 0, 72% 0, 72% 62%, 100% 62%, 50% 100%, 0 62%, 28% 62%);
  }

  .edu-flow__center {
    width: 100%;
    flex: none;
  }

  .edu-flow__center img {
    max-width: 170px;
  }

  .edu-flow__right {
    width: 100%;
    gap: 8px;
  }

  .edu-flow__box {
    width: 100%;
    min-height: auto;
    padding: 20px 20px;
  }

  .edu-flow__box p {
    margin-bottom: 8px;
    line-height: 1.6;
  }
    

  .top-btn {
    right: 16px;
    bottom: 120px;
    width: 60px;
    height: 60px;
    font-size: 22px;
  }
  .news-grid {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap:8px;
  
}
.sub-company-list {
  gap:2px;
}
.sub-company-list p{
  padding:4px 12px;
}
  }
  

  #smtg_logo_div img{
    display:none !important
  }
  
  
  
  
  
  
  
  
  