/* === Base Reset (페이지 공통) === */
html,body{margin:0;padding:0}
html{box-sizing:border-box}
*,*:before,*:after{box-sizing:inherit}
body{
  font-family: system-ui,-apple-system,Segoe UI,Roboto,Pretendard,Apple SD Gothic Neo,Noto Sans KR,sans-serif;
  color:#111827; background:#fff; line-height:1.6; font-size:16px;
}
h1,h2,h3,h4,p{margin:0 0 .8rem}
a{color:inherit}


/* 전체 헤더 */
.header {
  background-color: #fff;
  border-bottom: 1px solid #ddd;
}

/* 헤더 내부 컨테이너: 최대 너비 지정 후 가운데 정렬, 세로로 쌓기 */
.header-container {
  max-width: 1200px;       /* 페이지 폭에 맞춰 조정 */
  margin: 0 auto;
  padding: 20px;
  display: flex;
  flex-direction: column;  
  align-items: center;     /* 가로 중앙 정렬 */
  text-align: center;
}

/* 로고 */
.header-container .logo {
  max-width: 300px;        /* 원하시는 로고 크기 */
  width: 100%;
  height: auto;
}

/* 메뉴: 로고 아래에 가로 정렬 */
.main-menu {
  list-style: none;
  padding: 0;
  margin: 0;
  display: inline-flex;
  gap: 40px;
  position: relative;
}

.main-menu li {
  position: relative; /* 서브메뉴 절대위치를 위한 기준 */
}

/* 메뉴 링크 기본 스타일 */
.main-menu a {
  position: relative;
  display: block;
  padding: 5px 0;
  color: #555;
  text-decoration: none;
  transition: color 0.2s;
}
/* 호버 시 색상 & 밑줄 애니메이션 */
.main-menu a:hover {
  color: #0078D7;
}
.main-menu a::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -3px;
  width: 0;
  height: 2px;
  background: #0078D7;
  transition: width 0.3s ease, left 0.3s ease;
}
.main-menu a:hover::after {
  left: 0;
  width: 100%;
}

/* 서브메뉴 기본 숨김 */
.submenu {
  display: none;
  position: absolute;
  top: 100%;            /* 부모 메뉴 바로 아래 */
  left: 0;
  background: #fff;
  border: 1px solid #ddd;
  list-style: none;
  padding: 8px 0;
  margin: 0;
  min-width: 150px;     /* 적당히 조정 */
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  z-index: 10;
}

/* 서브메뉴 아이템 스타일 */
.submenu li a {
  padding: 8px 16px;
  font-size: 0.95rem;
  white-space: nowrap;
  color: #333;
}
.submenu li a:hover {
  background: #f5f5f5;
  color: #0078D7;
}

/* 호버 시 서브메뉴 보이기 */
.has-submenu:hover .submenu {
  display: block;
}

/* slider / slide 레이아웃 */
.slider {
  display: flex;
  width: 400%;           /* 슬라이드 4장인 경우 */
  animation: slide 16s infinite;
}
.slide {
  position: relative;    /* caption 을 절대위치로 띄우기 위한 기준 */
  flex: 0 0 25%;         /* 100% ÷ 4장 */
  height: 600px;
  overflow: hidden;
}

/* 이미지 */
.slide img {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  display: block;
  object-fit: cover;
  transform: translate(-50%, -50%);
}

/* 슬라이드 위에 텍스트(캡션) */
.caption {
  position: absolute;
  color: #fff;
  font-size: 1.5rem;
  font-weight: bold;
  text-shadow: 0 0 6px rgba(0,0,0,0.8);
  background: rgba(0,0,0,0.5);
  padding: 0.5rem 1rem;
  border-radius: 4px;
}

/* 첫 번째 슬라이드 캡션 위치 */
.slider .slide:nth-child(1) .caption {
  top: 80%;
  left: 50%;
}

/* 두 번째 슬라이드 캡션 위치 */
.slider .slide:nth-child(2) .caption {
  top: 65%;
  left: 50%;
}

/* 세 번째 슬라이드 캡션 위치 */
.slider .slide:nth-child(3) .caption {
  bottom: 10%;
  right: 10%;
}

/* 네 번째 슬라이드 캡션 위치 */
.slider .slide:nth-child(4) .caption {
  top: 50%;
  left: 90%;
  transform: translateY(-50%);
}

/* 슬라이드 전체를 클릭 영역으로 */
.slide-link {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;   /* caption 절대 위치를 유지하기 위해 */
  text-decoration: none;/* 링크 밑줄 제거 */
  color: inherit;       /* caption의 색상 상속 */
}

/* 이미지와 캡션은 기존 스타일 그대로 적용됩니다. */
.slide-link img {
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
}

.slide-link .caption {
  /* 기존 caption 스타일을 유지 */
}

/* 중단 컨테이너: 화면 가로 꽉 채우기 */
.mid {
  width: 100%;
  overflow: hidden;
  /* 원하는 높이가 있다면 min-height: 400px; 등으로 걸어도 좋습니다 */
}

/* ─── footer 스타일 ─── */
footer {
  background-color: #2c3e50;   /* 진한 블루그레이 */
  color: #fff;                 /* 흰색 텍스트 */
  padding: 1rem 0;             /* 상하 여백 */
}

.footer-content {
  max-width: 1200px;           /* 중앙 컨테이너 폭 */
  margin: 0 auto;              /* 가운데 정렬 */
  text-align: center;          /* 텍스트 중앙 정렬 */
  line-height: 0.8;            /* 줄 간격 */
  font-size: 0.9rem;           /* 약간 작은 글씨 */
}

/* mid_detail */
.detail-mid .detail-image {
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}
.detail-mid .detail-intro {
  padding: 1rem;
  font-size: 1rem;
  text-align: center;
}

/* detail-content */
.detail-content {
  padding: 1rem;
}
.detail-content h2 {
  font-size: 1.5rem;
  margin-bottom: 0.5rem;
}
.detail-content p {
  font-size: 1rem;
  line-height: 1.6;
}

/* keyframes (이전 예시 참고) */
@keyframes slide {
  0%, 20%   { transform:translateX(   0%); }
  25%, 45%  { transform:translateX(-25%); }
  50%, 70%  { transform:translateX(-50%); }
  75%, 95%  { transform:translateX(-75%); }
  100%      { transform:translateX(   0%); }
}

/* 모바일 대응 (선택) */
@media (max-width: 768px) {
  .mid {
    height:auto !important;
  }
  .slide {
    height: 200px;
  }
  .slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .footer-content {
    font-size: 0.8rem;
    line-height: 1.4;
  }
  .caption {
    font-size: 10px;                                /* 글씨 작게 */
    padding: 0.3rem 0.6rem;                         /* 여백 줄이기 */
    top: 90% !important;                            /* 세로 중앙 */
    left: 50% !important;                           /* 가로 중앙 */
    transform: translate(-50%, -50%) !important;
    white-space: normal;                            /* 줄바꿈 허용 */
    text-align: center;
  }
}

/* 로그인 아이콘 고정 배치 */
.header-container{ position: relative; }              /* 기준점 */
.ha-login{
  position: absolute; right:16px; top:14px;           /* 위치 */
  width:44px; height:44px; display:inline-flex; 
  align-items:center; justify-content:center;
  border-radius:9999px; background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.08); z-index:100;
}
.ha-login svg{ display:block }

/* 데스크톱일 때 살짝 세로 보정(선택) */
@media (min-width: 768px){ .ha-login{ top:18px; } }

/* 스크린리더용 숨김 텍스트 */
.sr-only{ position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }

.company-history{max-width:1200px;margin:0 auto;padding:20px;}
.company-history h2{font-size:1.6rem;margin:0 0 12px 0;text-align:left;}
.history-table{width:100%;border-collapse:collapse;font-size:0.95rem;}
.history-table th,.history-table td{border-bottom:1px solid #e5e7eb;padding:10px 12px;text-align:left;}
.history-table thead th{background:#f9fafb;font-weight:600;}
.history-table tbody tr:hover{background:#fafafa;}
@media (max-width:768px){
  .history-table thead{display:none;}
  .history-table tr{display:block;border-bottom:1px solid #e5e7eb;margin-bottom:8px;}
  .history-table td{display:flex;justify-content:space-between;gap:12px;}
  .history-table td:first-child::before{content:"연도";}
  .history-table td:nth-child(2)::before{content:"월";}
  .history-table td:nth-child(3)::before{content:"내용";flex:0 0 auto;}
  .history-table td::before{color:#6b7280;}
}

/* ====== Vision & Mission 업그레이드 ====== */
.company-vision{
  --brand:#2563eb;           /* 포인트 블루 */
  --brand2:#10b981;          /* 보조 그린 */
  --line:#e5e7eb;
  --text:#111827;
  --muted:#6b7280;
  max-width:1200px; margin:0 auto; padding:28px 20px; color:var(--text);
}

/* 섹션 타이틀 */
.company-vision h2{
  font-size:1.8rem; margin:0 0 16px; font-weight:800; letter-spacing:-.2px;
  position:relative; display:inline-block; padding-bottom:6px;
}
.company-vision h2::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:3px;
  background:linear-gradient(90deg,var(--brand),var(--brand2));
  border-radius:2px;
}

/* 비전 Hero */
.company-vision .vision-hero{
  position:relative; overflow:hidden;
  margin:14px 0 18px; padding:18px 16px 20px;
  border-radius:14px; border:1px solid #dbe7ff;
  background:
    radial-gradient(1200px 400px at -10% -50%, rgba(37,99,235,.12), transparent 60%),
    linear-gradient(0deg,#fff, #f7fbff 70%);
}
.company-vision .vision-hero strong{
  display:inline-block; font-weight:700; color:#1e40af; background:#eaf1ff;
  border:1px solid #cfe1ff; border-radius:999px; padding:4px 10px; margin-bottom:8px;
  font-size:.95rem;
}
.company-vision .vision-hero p{
  margin:0; font-size:1.15rem; line-height:1.9; max-width:920px;
}

/* 미션 카드 3개 */
.company-vision .mission-cards{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:14px; margin:14px 0 4px;
}
.company-vision .mission-cards .card{
  background:#fff; border:1px solid var(--line); border-radius:16px;
  padding:16px 14px; box-shadow:0 8px 22px rgba(17,24,39,.06);
  transition:transform .18s ease, box-shadow .18s ease;
}
.company-vision .mission-cards .card:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 28px rgba(17,24,39,.10);
}
.company-vision .mission-cards .card h3{
  margin:2px 0 8px; font-size:1.05rem; display:flex; align-items:center; gap:8px;
}
.company-vision .mission-cards .card p{ margin:0; line-height:1.7; color:#1f2937; }

/* 카드 아이콘 (SVG 마스크) */
.company-vision .mission-cards .card h3::before{
  content:""; width:22px; height:22px; background:var(--brand);
  -webkit-mask:url('data:image/svg+xml;utf8,\
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\
  <path d="M12 2a10 10 0 100 20 10 10 0 000-20zm0 4a4 4 0 110 8 4 4 0 010-8zm0 10c-3.3 0-6 1.3-6 3v1h12v-1c0-1.7-2.7-3-6-3z"/></svg>') center/contain no-repeat;
          mask:url('data:image/svg+xml;utf8,\
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\
  <path d="M12 2a10 10 0 100 20 10 10 0 000-20zm0 4a4 4 0 110 8 4 4 0 010-8zm0 10c-3.3 0-6 1.3-6 3v1h12v-1c0-1.7-2.7-3-6-3z"/></svg>') center/contain no-repeat;
}
.company-vision .mission-cards .card:nth-child(2) h3::before{ background:var(--brand2); }
.company-vision .mission-cards .card:nth-child(3) h3::before{
  background:linear-gradient(135deg,var(--brand),var(--brand2));
}

/* 표 (핵심가치/SLA/KPI 공통) */
.company-vision .ha-table{ width:100%; border-collapse:separate; border-spacing:0; margin-top:8px;
  box-shadow:0 1px 0 rgba(0,0,0,.02);
}
.company-vision .ha-table thead th{
  background:#f8fafc; border-bottom:1px solid var(--line); font-weight:700;
  padding:11px 12px; text-align:left;
}
.company-vision .ha-table td{ padding:11px 12px; border-bottom:1px solid var(--line); }
.company-vision .ha-table tbody tr:nth-child(odd){ background:#fcfeff; }
.company-vision .ha-table tbody tr:hover{ background:#f5f9ff; }

/* 소제목 간격 */
.company-vision .mt{ margin-top:22px; margin-bottom:8px; font-size:1.1rem; font-weight:700; }

/* 불릿 & 스텝 */
.company-vision .bullets{ margin:6px 0 0; padding-left:0; list-style:none; }
.company-vision .bullets li{
  position:relative; padding:8px 0 8px 28px; line-height:1.8; color:#1f2937;
}
.company-vision .bullets li::before{
  content:""; position:absolute; left:0; top:14px; width:10px; height:10px; border-radius:50%;
  background:var(--brand2); box-shadow:0 0 0 3px rgba(16,185,129,.15);
}

.company-vision .steps{ margin:6px 0 0; padding-left:0; list-style:none;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px;
  counter-reset:step;
}
.company-vision .steps li{
  position:relative; background:#fff; border:1px solid var(--line);
  border-radius:12px; padding:14px 12px 12px 14px; min-height:58px;
}
.company-vision .steps li::before{
  counter-increment:step; content:counter(step);
  position:absolute; left:-8px; top:-10px; width:28px; height:28px; line-height:28px;
  text-align:center; color:#fff; background:var(--brand); border-radius:999px;
  box-shadow:0 0 0 3px #e6efff; font-weight:700; font-size:.95rem;
}

/* 주석/노트 */
.company-vision .note{ margin-top:12px; color:var(--muted); font-size:.9rem; }

/* 반응형 타이트닝 */
@media (max-width:768px){
  .company-vision{ padding:22px 14px; }
  .company-vision h2{ font-size:1.5rem; }
  .company-vision .vision-hero p{ font-size:1.02rem; }
}

/* ===== Company Org (2인 조직도) ===== */
.company-org{
  --brand:#2563eb; --line:#e5e7eb; --muted:#6b7280;
  max-width:1200px; margin:0 auto; padding:20px;
}
.company-org h2{font-size:1.6rem;margin:0 0 12px;font-weight:800;}
.company-org .mt{margin-top:18px;margin-bottom:8px;font-size:1.1rem;font-weight:700;}
.company-org .note{margin-top:10px;color:var(--muted);font-size:.9rem;}

.org-chart{display:flex;flex-direction:column;align-items:center;margin:6px 0 14px;}
.org-node{
  background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:14px 16px; min-width:260px; text-align:center;
  box-shadow:0 8px 22px rgba(17,24,39,.06);
}
.org-node .title{font-size:.88rem;color:#1e40af;font-weight:700;letter-spacing:.2px;}
.org-node .name{font-size:1.15rem;font-weight:800;margin:4px 0 2px;}
.org-node .desc{font-size:.92rem;color:#374151;}

.org-node.ceo{border-color:#bfd3ff; box-shadow:0 10px 26px rgba(37,99,235,.10);}
.org-node.ceo .title{color:#2563eb;}
.org-node.dept{margin-top:12px;}

.org-branch{
  position:relative; margin-top:16px; display:flex; gap:16px; justify-content:center;
}
/* 연결선(대표 → 하위) */
.org-branch::before{
  content:""; position:absolute; top:-16px; left:50%; transform:translateX(-50%);
  width:2px; height:16px; background:var(--line);
}

/* 표/스텝은 기존 테이블/steps 스타일 재사용 */
.company-org .ha-table{width:100%;border-collapse:collapse;font-size:.95rem;}
.company-org .ha-table th,.company-org .ha-table td{
  border-bottom:1px solid var(--line); padding:10px 12px; text-align:left;
}
.company-org .ha-table thead th{background:#f9fafb;font-weight:600;}
.company-org .ha-table tbody tr:nth-child(odd){background:#fcfeff;}
.company-org .ha-table tbody tr:hover{background:#f5f9ff;}

.company-org .steps{margin:6px 0 0;padding-left:0;list-style:none;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;
  counter-reset:step;
}
.company-org .steps li{
  position:relative;background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:14px 12px 12px 14px;min-height:58px;
}
.company-org .steps li::before{
  counter-increment:step;content:counter(step);position:absolute;left:-8px;top:-10px;
  width:28px;height:28px;line-height:28px;text-align:center;color:#fff;background:#2563eb;border-radius:999px;
  box-shadow:0 0 0 3px #e6efff;font-weight:700;font-size:.95rem;
}

@media (max-width:768px){
  .org-node{min-width:auto;width:100%;}
}

/* ===== 공통 톤 ===== */
:root{ --brand:#2563eb; --brand2:#10b981; --line:#e5e7eb; --text:#111827; }
.home-container{ max-width:1200px; margin:0 auto; padding:0 20px; }
.btn{ display:inline-flex; align-items:center; gap:8px; padding:12px 18px; border-radius:999px;
      text-decoration:none; font-weight:700; border:1px solid transparent; transition:.15s ease; }
.btn-primary{ background:linear-gradient(135deg,var(--brand),var(--brand2)); color:#fff; }
.btn-primary:hover{ filter:brightness(1.05); transform:translateY(-1px); }
.btn-outline{ border-color:var(--brand); color:var(--brand); background:#fff; }
.btn-outline:hover{ background:#f0f6ff; }
.btn-ghost{ color:#374151; }
.btn-ghost:hover{ color:#111827; }

/* ===== 홈 인트로 ===== */
.home-intro{
  background:
    radial-gradient(1000px 400px at -10% -80%, rgba(37,99,235,.12), transparent 60%),
    linear-gradient(#ffffff, #f8fbff 75%);
  padding:36px 0 18px;
  border-bottom:1px solid #eef2f6;
}
.home-intro .eyebrow{ margin:0 0 6px; color:#64748b; font-weight:700; letter-spacing:.3px; }
.home-intro h2{ margin:0 0 10px; font-size:1.9rem; line-height:1.35; color:var(--text); }
.home-intro h2 b{ color:#1e40af; }
.home-intro .sub{ margin:0 0 16px; color:#374151; }
.home-actions{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:10px; }
.badges{ display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:8px 0 0; }
.badges li{
  font-size:.92rem; color:#1f2937; background:#f1f5ff; border:1px solid #e0e9ff;
  padding:6px 10px; border-radius:999px;
}

/* ===== 하이라이트 카드 ===== */
.home-highlights{ padding:18px 0 8px; }
.home-highlights .grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:14px; }
.home-highlights .card{
  background:#fff; border:1px solid var(--line); border-radius:16px; padding:16px 14px;
  box-shadow:0 10px 24px rgba(17,24,39,.06); transition:transform .15s ease, box-shadow .15s ease;
}
.home-highlights .card:hover{ transform:translateY(-2px); box-shadow:0 16px 30px rgba(17,24,39,.10); }
.home-highlights .card h3{ margin:10px 0 6px; font-size:1.05rem; }
.home-highlights .card p{ margin:0; color:#374151; line-height:1.7; }

/* 카드 아이콘들 (마스크 아이콘) */
.home-highlights .ico{ width:36px; height:36px; border-radius:10px; background:#eef4ff; }
.home-highlights .ico::before{
  content:""; display:block; width:100%; height:100%; background:linear-gradient(135deg,var(--brand),var(--brand2));
  -webkit-mask:center/70% no-repeat; mask:center/70% no-repeat;
}
.ico-o2::before{ -webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 12a5 5 0 1 1 10 0 5 5 0 0 1-10 0Zm-3 6c0-3 4-5 8-5s8 2 8 5v1H4v-1Z"/></svg>'); mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 12a5 5 0 1 1 10 0 5 5 0 0 1-10 0Zm-3 6c0-3 4-5 8-5s8 2 8 5v1H4v-1Z"/></svg>'); }
.ico-badge::before{ -webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2l2.5 5 5.5.8-4 3.9.9 5.6L12 15l-4.9 2.3.9-5.6-4-3.9 5.5-.8L12 2Z"/></svg>'); mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2l2.5 5 5.5.8-4 3.9.9 5.6L12 15l-4.9 2.3.9-5.6-4-3.9 5.5-.8L12 2Z"/></svg>'); }
.ico-sound::before{ -webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 9h4l5-4v14l-5-4H4V9Zm12-3a8 8 0 0 1 0 12"/></svg>'); mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 9h4l5-4v14l-5-4H4V9Zm12-3a8 8 0 0 1 0 12"/></svg>'); }
.ico-support::before{ -webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6 9a6 6 0 1 1 12 0v6a3 3 0 0 1-3 3h-1l-2 2-2-2H9a3 3 0 0 1-3-3V9Z"/></svg>'); mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6 9a6 6 0 1 1 12 0v6a3 3 0 0 1-3 3h-1l-2 2-2-2H9a3 3 0 0 1-3-3V9Z"/></svg>'); }

/* ===== 프로세스(이 페이지 전용) ===== */
.home-process{ padding:14px 0 8px; }
.home-process h3{ margin:0 0 8px; font-size:1.2rem; }
.home-process .steps{
  margin:6px 0 0; padding-left:0; list-style:none;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px;
  counter-reset:step;
}
.home-process .steps li{
  position:relative; background:#fff; border:1px solid var(--line); border-radius:12px;
  padding:14px 12px 12px 14px; min-height:58px;
}
.home-process .steps li::before{
  counter-increment:step; content:counter(step);
  position:absolute; left:-8px; top:-10px; width:28px; height:28px; line-height:28px; text-align:center;
  color:#fff; background:var(--brand); border-radius:999px; box-shadow:0 0 0 3px #e6efff;
  font-weight:700; font-size:.95rem;
}

/* ===== CTA ===== */
.home-cta{
  padding:18px 0; background:
    linear-gradient(135deg, rgba(37,99,235,.09), rgba(16,185,129,.09));
  border-top:1px solid #eef2f6; border-bottom:1px solid #eef2f6;
}
.home-cta .cta-wrap{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.home-cta .cta-text{ font-size:1.05rem; color:#0f172a; }
.home-cta .cta-actions{ display:flex; gap:10px; }

/* 반응형 */
@media (max-width:768px){
  .home-intro h2{ font-size:1.5rem; }
  .home-highlights .grid{ grid-template-columns:1fr 1fr; }
}

/* 회사 연혁 테이블은 모바일에서도 '가로 3열' 유지 */
.history-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.history-table thead{ display:table-header-group !important; }
.history-table tbody{ display:table-row-group !important; }
.history-table tr   { display:table-row !important; }
.history-table th,
.history-table td   { display:table-cell !important; vertical-align:top; padding:10px 12px; }
.history-table td::before,
.history-table th::before { content:none !important; }

/* 보기 좋은 기본 스타일(선택) */
.history-table thead th{ background:#f8fafc; font-weight:700; border-bottom:1px solid #e5e7eb; }
.history-table tbody td{ border-bottom:1px solid #e5e7eb; }
@media (max-width:480px){
  .history-table th, .history-table td{ padding:8px 10px; font-size:.95rem; }
}

.gallery{position:relative;background:#f7fafc;border:1px solid #e6eef5;border-radius:12px;overflow:hidden}
.gallery .track{display:flex;transition:transform .5s ease}
.gallery img{width:100%;flex:0 0 100%;height:auto;object-fit:contain;display:block}
.gallery .nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(14,42,71,.85);color:#fff;
  border:0;border-radius:8px;width:36px;height:36px;line-height:36px;text-align:center;cursor:pointer}
.gallery .prev{left:8px}.gallery .next{right:8px}
.gallery .dots{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);display:flex;gap:8px}
.gallery .dots button{width:9px;height:9px;border-radius:50%;border:0;background:#cbd5e1;opacity:.8;cursor:pointer}
.gallery .dots button.active{background:#0e2a47;opacity:1}
@media (max-width:980px){.gallery .nav{width:32px;height:32px;line-height:32px}}

/* === 모바일 메뉴 글자 세로깨짐 방지 === */
.main-menu {              /* flex 컨테이너로 확실히 지정 */
  display: flex;
  gap: 40px;
}
.main-menu li {           /* 줄이기 금지 → 글자폭만큼 유지 */
  flex: 0 0 auto;
}
.main-menu a {            /* 한국어 단어(문자) 줄바꿈 금지 */
  white-space: nowrap;
  word-break: keep-all;
}

/* 모바일에서는 간격/글자 크기만 살짝 줄이고 wrap 허용 */
@media (max-width: 768px){
  .main-menu{
    flex-wrap: wrap;          /* 두 줄까지 자연스러운 줄바꿈 */
    gap: 10px 16px;           /* 모바일 간격 */
    justify-content: center;  /* 가운데 정렬 */
  }
  .main-menu a{
    font-size: 15px;
    padding: 4px 8px;
  }
}

/* 모바일: 연도/월 좁게, 주요 내용 넓게 */
@media (max-width: 768px){
  /* 컬럼 폭 분배 */
  .history-table th:nth-child(1),
  .history-table td:nth-child(1){ width:18%; text-align:center; }

  .history-table th:nth-child(2),
  .history-table td:nth-child(2){ width:14%; text-align:center; }

  .history-table th:nth-child(3),
  .history-table td:nth-child(3){ width:68%; }

  /* 패딩/가독성 미세 조정(선택) */
  .history-table td:nth-child(1),
  .history-table td:nth-child(2){ padding:8px; }        /* 숫자 칸은 더 촘촘히 */
  .history-table td:nth-child(3){ padding:10px 12px;    /* 내용 칸은 기본 유지 */
                                 word-break:keep-all; line-height:1.6; }
  /* 숫자 정렬 이쁘게(선택) */
  .history-table th:nth-child(1),
  .history-table td:nth-child(1){ font-variant-numeric: tabular-nums; }
}

/* === 메뉴 타이포 고정 === */
.header, .main-menu, .main-menu li, .main-menu a {
  word-break: keep-all;    /* 낱글자 줄바꿈 금지 */
  white-space: nowrap;     /* 메뉴는 줄바꿈 없이 한 줄 */
  letter-spacing: 0;       /* 불필요한 자간 제거 */
}

/* 모바일 메뉴 간격/크기 최적화 */
@media (max-width: 768px) {
  .main-menu { gap: 18px; }           /* 데스크톱 40px → 모바일 18px */
  .main-menu a { font-size: 15px; }   /* 살짝 작게 */
}

/* === 로그인 전용 === */
.login-wrap{
  max-width: 720px; margin: 28px auto; padding: 24px 20px;
}
.login-title{
  font-size: 1.6rem; font-weight: 800; margin-bottom: 12px; letter-spacing:-.2px;
}
.login-card{
  background:#fff; border:1px solid #e5e7eb; border-radius:12px;
  padding:18px; box-shadow:0 8px 18px rgba(17,24,39,.06);
}
.login-row{ display:flex; gap:10px; align-items:center; margin-bottom:10px; }
.login-row label{ flex:0 0 110px; color:#374151; }
.login-row input[type="text"],
.login-row input[type="password"]{
  flex:1 1 auto; height:38px; border:1px solid #d1d5db; border-radius:8px;
  padding:0 10px; outline:none;
}
.login-row input:focus{ border-color:#2563eb; box-shadow:0 0 0 3px rgba(37,99,235,.15); }
.login-actions{ display:flex; gap:10px; align-items:center; justify-content:flex-end; margin-top:8px; }
.btn-login{
  padding:10px 16px; border:0; border-radius:10px; cursor:pointer;
  background:linear-gradient(135deg,#2563eb,#10b981); color:#fff; font-weight:700;
}
.login-links{ margin-top:10px; font-size:.92rem; color:#64748b; }
