/* === 글로벌 === */
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
  font-family: 'Noto Sans KR', -apple-system, BlinkMacSystemFont, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  letter-spacing: -0.01em;
  overflow-x: clip;
  word-break: keep-all;
  overflow-wrap: break-word;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
.mono { font-family: 'JetBrains Mono', monospace; }
.en { font-family: 'Inter', 'Noto Sans KR', sans-serif; }

/* === 공통 토큰 === */
:root {
  --brand: #1A4FB8;
  --brand-deep: #0E2F73;
  --brand-bright: #2D6BE0;
  --brand-soft: #E6EEFA;
  --brand-tint: #F5F8FD;
  --max-w: 1280px;
}

/* === Mood A — Apple Light === */
.mood-light {
  background: #FFFFFF;
  color: #0A0A0A;
}
.mood-light .hero-bg-a    { background: #FFFFFF; color: #0A0A0A; }
.mood-light .sec-bg-tint  { background: #F5F5F7; color: #0A0A0A; }
.mood-light .sec-bg-dark  { background: #0A0A0A; color: #FFFFFF; }
.mood-light .sec-bg-brand { background: var(--brand); color: #FFFFFF; }

/* === Mood D — Colorful Modern === */
.mood-color {
  background: #FFFFFF;
  color: #0F1B3D;
}
.mood-color .gradient-blue {
  background: linear-gradient(180deg, #E8F0FE 0%, #F5F8FD 50%, #FFFFFF 100%);
}
.mood-color .gradient-deep {
  background: linear-gradient(135deg, #0A1F5C 0%, #1A4FB8 50%, #4A82E8 100%);
}
.mood-color .gradient-bright {
  background: linear-gradient(135deg, #2D6BE0 0%, #5A93F2 50%, #8AB8FA 100%);
}
.mood-color .gradient-sunset {
  background: linear-gradient(135deg, #FFE9D6 0%, #FFD0AE 50%, #FFB585 100%);
}
.mood-color .gradient-mint {
  background: linear-gradient(135deg, #D4F4E2 0%, #B7E4CD 50%, #93D4B0 100%);
}

/* === 컨테이너 === */
.wrap { max-width: var(--max-w); margin: 0 auto; padding: 0 32px; }
@media (max-width: 768px) { .wrap { padding: 0 20px; } }

/* === Sticky Header === */
.bw-header {
  position: fixed; top: 0; left: 0; right: 0;
  z-index: 100;
  transition: all .35s cubic-bezier(.4,0,.2,1);
}
.bw-header.is-scrolled { backdrop-filter: blur(20px) saturate(180%); }

.bw-header.theme-light  { background: rgba(255,255,255,.72); border-bottom: 1px solid rgba(0,0,0,.05); }
.bw-header.theme-light.is-top { background: rgba(255,255,255,0); border-bottom-color: transparent; }
.bw-header.theme-light .nav-link { color: #1d1d1f; }
.bw-header.theme-light .nav-cta  { background: #0A0A0A; color: #FFF; }

.bw-header.theme-dark   { background: rgba(10,10,10,.72); border-bottom: 1px solid rgba(255,255,255,.08); }
.bw-header.theme-dark.is-top { background: rgba(10,10,10,0); border-bottom-color: transparent; }
.bw-header.theme-dark .nav-link { color: #FFFFFF; opacity: 1; }
.bw-header.theme-dark .nav-dd-trigger { color: #FFFFFF; opacity: 1; }
.bw-header.theme-dark .nav-dd-caret { color: rgba(255,255,255,.6); }
.bw-header.theme-dark .nav-cta  { background: #FFF; color: #0A0A0A; }

.bw-header-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  height: 60px;
  padding: 0 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.bw-logo { display: flex; align-items: center; gap: 10px; font-weight: 800; letter-spacing: -0.02em; font-size: 18px; }
.bw-logo .logo-hex { width: 28px; height: 28px; }
.bw-logo-btn { background: none; cursor: pointer; padding: 0; }
.bw-logo-img {
  height: 26px; width: auto; display: block;
  transition: filter .35s ease;
}
.bw-header.theme-dark .bw-logo-img { filter: brightness(0) invert(1); }
.bw-nav-links { display: flex; gap: 22px; }
.nav-link { font-size: 14px; font-weight: 500; letter-spacing: 0; opacity: .85; transition: opacity .2s; }
.nav-link:hover { opacity: 1; }
.nav-cta {
  padding: 8px 18px; border-radius: 999px; font-size: 13px; font-weight: 600;
  transition: transform .2s, opacity .2s;
}
.nav-cta:hover { transform: translateY(-1px); opacity: .92; }

/* 모바일 햄버거 버튼 (데스크탑에서 숨김) */
.bw-burger {
  display: none;
  flex-direction: column; justify-content: center; gap: 5px;
  width: 44px; height: 44px; padding: 10px;
  background: none; border: none; cursor: pointer;
  margin-left: auto;
}
.bw-burger span {
  display: block; height: 2px; width: 100%; border-radius: 2px;
  background: #1d1d1f; transition: transform .3s cubic-bezier(.4,0,.2,1), opacity .2s;
}
.bw-header.theme-dark .bw-burger span { background: #F0F0F0; }
.bw-burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.bw-burger.is-open span:nth-child(2) { opacity: 0; }
.bw-burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* 모바일 메뉴 드로어 */
.bw-mobile-menu {
  position: fixed; top: 0; right: 0; bottom: 0;
  width: min(82vw, 360px);
  background: #FFFFFF;
  box-shadow: -20px 0 60px rgba(0,0,0,.18);
  z-index: 200;
  transform: translateX(100%);
  transition: transform .36s cubic-bezier(.4,0,.2,1);
  display: flex; flex-direction: column;
  padding-top: 72px;
}
.bw-mobile-menu.is-open { transform: translateX(0); }
.bw-mobile-scroll { overflow-y: auto; padding: 8px 0 40px; -webkit-overflow-scrolling: touch; }
.bw-mobile-backdrop {
  position: fixed; inset: 0; background: rgba(0,0,0,.4);
  z-index: 150; animation: bwFadeIn .25s ease;
}
@keyframes bwFadeIn { from { opacity: 0; } to { opacity: 1; } }

.bw-msec { border-bottom: 1px solid rgba(0,0,0,.07); }
.bw-msec-trigger {
  width: 100%; display: flex; align-items: center; justify-content: space-between;
  padding: 18px 24px; background: none; border: none; cursor: pointer;
  font-size: 17px; font-weight: 700; color: #1d1d1f; letter-spacing: -0.01em;
}
.bw-msec-caret { font-size: 13px; color: #86868B; transition: transform .3s; }
.bw-msec.open .bw-msec-caret { transform: rotate(180deg); }
.bw-msec-body {
  max-height: 0; overflow: hidden;
  transition: max-height .36s cubic-bezier(.4,0,.2,1);
}
.bw-msec.open .bw-msec-body { max-height: 600px; }
.bw-mitem {
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 13px 24px 13px 36px; background: none; border: none; cursor: pointer; text-align: left;
}
.bw-mitem:active { background: rgba(26,79,184,.08); }
.bw-mitem-name { font-size: 15px; font-weight: 500; color: #424245; }
.bw-mitem.featured .bw-mitem-name { color: #1A4FB8; font-weight: 600; }
.bw-mitem.disabled { cursor: default; }
.bw-mitem.disabled .bw-mitem-name { color: #aeaeb2; }
.bw-mitem-arrow { font-size: 14px; color: #1A4FB8; flex-shrink: 0; }

@media (max-width: 1080px) {
  .bw-nav-links { display: none; }
  .bw-burger { display: flex; }
}
@media (min-width: 1081px) {
  .bw-mobile-menu, .bw-mobile-backdrop { display: none; }
}

/* === 공통 모션 유틸 === */
.fade-in {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1);
}
.fade-in.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.fade-in.delay-1 { transition-delay: .08s; }
.fade-in.delay-2 { transition-delay: .16s; }
.fade-in.delay-3 { transition-delay: .24s; }
.fade-in.delay-4 { transition-delay: .32s; }

/* === Footer === */
.bw-footer {
  background: #0A0A0A;
  color: #C9CDD4;
  padding: 80px 0 40px;
}
.bw-footer h4 { color: #FFF; font-size: 13px; font-weight: 600; margin-bottom: 16px; letter-spacing: 0.02em; text-transform: uppercase; }
.bw-footer .ftr-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr 1fr;
  gap: 40px;
  padding-bottom: 56px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.bw-footer .ftr-li { font-size: 13px; line-height: 1.9; opacity: .75; cursor: pointer; text-decoration: none; color: inherit; display: block; }
.bw-footer .ftr-li:hover { opacity: 1; }
.bw-footer .ftr-bottom { padding-top: 32px; display: flex; justify-content: space-between; font-size: 12px; opacity: .55; }
@media (max-width: 980px) {
  .bw-footer .ftr-grid { grid-template-columns: 1fr 1fr 1fr; gap: 36px 32px; }
}
@media (max-width: 768px) {
  .bw-footer .ftr-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
}

/* === 공통 카드 hover === */
.lift {
  transition: transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s;
}
.lift:hover { transform: translateY(-4px); }

/* === Mood Toggle Badge (보조 표시) === */
.mood-badge {
  position: fixed; bottom: 24px; left: 24px;
  z-index: 50;
  background: rgba(0,0,0,.75); color: #FFF;
  padding: 8px 14px; border-radius: 999px;
  font-size: 12px; font-weight: 500;
  backdrop-filter: blur(12px);
  pointer-events: none;
}

/* === Mood A specific === */
.ma-hero {
  min-height: 100vh;
  background: #FFFFFF;
  padding: 100px 32px 60px;
}

/* 2컨럼 스플릿 히어로 */
.ma-hero-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
  max-width: 1280px;
  margin: 0 auto;
  width: 100%;
}
.ma-hero-left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.ma-hero h1 {
  font-size: clamp(40px, 5.5vw, 80px);
  font-weight: 800;
  line-height: 1.04;
  letter-spacing: -0.04em;
  color: #0A0A0A;
  text-align: left;
  word-break: keep-all;
}
.ma-hero h1 .accent { color: var(--brand); }
.ma-hero .eyebrow {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--brand);
  text-transform: uppercase;
  margin-bottom: 24px;
}
.ma-hero p.lead {
  font-size: clamp(15px, 1.4vw, 18px);
  color: #515154;
  max-width: 520px;
  margin: 24px 0 0;
  line-height: 1.6;
  font-weight: 400;
  text-align: left;
}
.ma-hero .cta-row { display: flex; gap: 14px; margin-top: 40px; flex-wrap: wrap; justify-content: flex-start; }

/* 스탯 */
.ma-hero-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 56px;
  width: 100%;
  max-width: 520px;
}
.ma-hero-stat-val {
  font-size: clamp(22px, 2.5vw, 32px);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #0A0A0A;
}
.ma-hero-stat-lbl {
  font-size: 11px;
  color: #86868B;
  margin-top: 5px;
  line-height: 1.4;
}

/* 우측 비주얼 */
.ma-hero-right {
  position: relative;
}
.ma-hero-visual {
  position: relative;
  width: 100%;
  aspect-ratio: 4/3;
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 32px 80px rgba(10,28,70,.35);
}
.ma-hero-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: 28px;
  display: block;
}
.ma-hero-slot-wrap {
  position: absolute;
  inset: 0;
  border-radius: 28px;
  overflow: hidden;
}
/* image-slot 비어있을 때 배경 투명하게 유지 */
.ma-hero-slot-wrap image-slot {
  display: block;
  width: 100%;
  height: 100%;
  --slot-bg: transparent;
  --slot-border: rgba(255,255,255,.12);
  --slot-text: rgba(255,255,255,.45);
}
.ma-hero-visual-badge {
  position: absolute;
  bottom: 20px;
  right: 20px;
  background: rgba(255,255,255,.1);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.18);
  color: rgba(255,255,255,.85);
  font-size: 12px;
  font-weight: 600;
  padding: 7px 14px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  gap: 7px;
  letter-spacing: .02em;
  z-index: 2;
}
.ma-hero-visual-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: #4ADE80;
  box-shadow: 0 0 8px #4ADE80;
  animation: dot-pulse 2s ease-in-out infinite;
}
@keyframes dot-pulse {
  0%,100% { opacity: 1; } 50% { opacity: .3; }
}

/* 반응형 */
@media (max-width: 960px) {
  .ma-hero-split { grid-template-columns: 1fr; gap: 48px; }
  .ma-hero-stats { grid-template-columns: repeat(2, 1fr); }
  .ma-hero { padding: 100px 24px 60px; }
  .ma-hero h1, .ma-hero p.lead { text-align: center; }
  .ma-hero-left { align-items: center; }
  .ma-hero .cta-row { justify-content: center; }
  .ma-hero-stats { max-width: 100%; justify-items: center; }
  .ma-hero-stat-val, .ma-hero-stat-lbl { text-align: center; }
}
/* === C안: 풀블리드 다크 오버레이 히어로 === */
.ma-hero-c {
  position: relative;
  min-height: 100vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0;
  background: #060E26;
}
.ma-hero-c-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
.ma-hero-c-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(4, 10, 28, 0.25) 0%,
    rgba(4, 10, 28, 0.55) 35%,
    rgba(4, 10, 28, 0.90) 70%,
    rgba(4, 10, 28, 0.98) 100%
  );
  pointer-events: none;
}
.ma-hero-c-wrap {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  width: 100%;
}
.ma-hero-c-body {
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
  padding: 0 64px 64px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.ma-hero-c-eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #A8CCFF;
  margin-bottom: 24px;
}
.ma-hero-c-title,
.ma-hero.ma-hero-c h1 {
  font-size: clamp(52px, 7.5vw, 108px);
  font-weight: 800;
  line-height: 1.03;
  letter-spacing: -0.04em;
  color: #FFFFFF !important;
  word-break: keep-all;
  overflow-wrap: break-word;
  max-width: 900px;
  text-wrap: balance;
  text-shadow: 0 2px 24px rgba(0,0,0,0.45);
}
.ma-hero-c-accent {
  color: #8AB8FA;
}
.ma-hero-c-lead {
  font-size: clamp(15px, 1.4vw, 18px);
  color: rgba(255,255,255,0.80);
  max-width: 600px;
  margin: 28px auto 0;
  line-height: 1.7;
  font-weight: 400;
  word-break: keep-all;
  text-align: center;
}
.ma-hero-c-cta {
  margin-top: 40px;
  display: flex;
  justify-content: center;
}
.ma-hero-c-btn-pri {
  background: #FFFFFF;
  color: #0B1A3E;
  padding: 15px 32px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.01em;
  transition: transform .2s, background .2s, box-shadow .2s;
  box-shadow: 0 4px 24px rgba(0,0,0,.25);
}
.ma-hero-c-btn-pri:hover {
  background: #EEF4FF;
  transform: translateY(-2px);
  box-shadow: 0 8px 32px rgba(0,0,0,.35);
}
/* 스탯 — 중앙 4컬럼 */
.ma-hero-c-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid rgba(255,255,255,0.1);
  max-width: var(--max-w);
  width: 100%;
  margin: 0 auto;
  padding: 0 64px;
}
.ma-hero-c-stat {
  padding: 36px 24px;
  text-align: center;
  border-right: none;
}
.ma-hero-c-stat-val {
  font-family: 'Inter', 'Noto Sans KR', sans-serif;
  font-size: clamp(32px, 3.8vw, 52px);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: #FFFFFF;
  line-height: 1;
  text-align: center;
}
.ma-hero-c-stat-lbl {
  font-size: 12px;
  color: rgba(255,255,255,0.50);
  margin-top: 10px;
  line-height: 1.5;
  word-break: keep-all;
  text-align: center;
}
@media (max-width: 960px) {
  .ma-hero-c-body { padding: 0 32px 48px; }
  .ma-hero-c-stats { grid-template-columns: repeat(2, 1fr); }
  .ma-hero-c-stat { padding: 22px 28px; }
  .ma-hero-c-stat:nth-child(2) { border-right: none; }
}
@media (max-width: 600px) {
  .ma-hero-c-body { padding: 0 24px 40px; }
  .ma-hero-c-title { font-size: clamp(40px, 10vw, 64px); }
  .ma-hero-c-stat { padding: 18px 20px; }
}

.ma-btn-pri {
  background: var(--brand); color: #FFF;
  padding: 14px 28px; border-radius: 999px;
  font-size: 15px; font-weight: 600;
  transition: transform .2s, background .2s;
}
.ma-btn-pri:hover { background: var(--brand-deep); transform: translateY(-1px); }
.ma-btn-sec {
  background: #F0F2F5; color: #0A0A0A;
  padding: 14px 28px; border-radius: 999px;
  font-size: 15px; font-weight: 600;
}
.ma-btn-sec:hover { background: #E6E9EE; }

.ma-section {
  padding: 140px 0;
  border-bottom: 1px solid rgba(0,0,0,.04);
}
.ma-section.no-border { border-bottom: none; }
.ma-section.tint { background: #F5F5F7; }
.ma-section.dark { background: #0A0A0A; color: #FFFFFF; }
.ma-section.brand { background: var(--brand); color: #FFFFFF; }

.ma-eyebrow {
  font-size: 14px;
  font-weight: 600;
  color: var(--brand);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 16px;
}
.ma-section.dark .ma-eyebrow,
.ma-section.brand .ma-eyebrow { color: rgba(255,255,255,.7); }

.ma-title {
  font-size: clamp(36px, 5vw, 64px);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.08;
  text-wrap: balance;
}
.ma-sub {
  font-size: clamp(16px, 1.5vw, 20px);
  color: #515154;
  line-height: 1.55;
  margin-top: 20px;
  max-width: 720px;
  text-wrap: pretty;
}
.ma-section.dark .ma-sub { color: rgba(255,255,255,.7); }
.ma-section.brand .ma-sub { color: rgba(255,255,255,.85); }

/* === Pillars (3-step storytelling) === */
.pillar-block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 80px;
  margin-bottom: 140px;
  min-height: 60vh;
}
.pillar-block:last-child { margin-bottom: 0; }
.pillar-block:nth-child(even) .pillar-text { order: 2; }
.pillar-num {
  font-size: 14px; font-weight: 600; color: var(--brand);
  letter-spacing: 0.08em;
  margin-bottom: 16px;
}
.pillar-title {
  font-size: clamp(32px, 4vw, 52px);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.1;
  text-wrap: balance;
}
.pillar-desc {
  font-size: 17px;
  color: #515154;
  line-height: 1.65;
  margin-top: 20px;
  text-wrap: pretty;
}
.pillar-tags { display: flex; gap: 8px; margin-top: 24px; flex-wrap: wrap; }
.pillar-tag {
  font-size: 12px; font-weight: 500;
  background: var(--brand-soft); color: var(--brand-deep);
  padding: 6px 12px; border-radius: 999px;
}
.pillar-image {
  border-radius: 24px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #F0F2F5;
  position: relative;
}
.pillar-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.16,1,.3,1); }
.pillar-image:hover img { transform: scale(1.04); }

@media (max-width: 880px) {
  .pillar-block { grid-template-columns: 1fr; gap: 32px; margin-bottom: 80px; }
  .pillar-block:nth-child(even) .pillar-text { order: 0; }
}

/* === Partner Grid === */
.partner-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(0,0,0,.08);
  border-radius: 24px;
  overflow: hidden;
  margin-top: 56px;
  border: 1px solid rgba(0,0,0,.08);
}
.partner-cell {
  background: #FFF;
  padding: 36px 28px;
  display: flex; flex-direction: column;
  gap: 12px; min-height: 200px;
  transition: background .2s;
  cursor: pointer;
}
.partner-cell:hover { background: var(--brand-tint); }
.partner-cat {
  font-size: 11px; font-weight: 600;
  color: var(--brand); letter-spacing: 0.06em;
  text-transform: uppercase;
}
.partner-name {
  font-size: 24px; font-weight: 700;
  letter-spacing: -0.02em;
  color: #0A0A0A;
}
.partner-tagline {
  font-size: 13px; color: #515154;
  line-height: 1.5; margin-top: auto;
}
.partner-awards {
  font-size: 11px; color: #86868B;
  border-top: 1px solid rgba(0,0,0,.06);
  padding-top: 10px; margin-top: 8px;
}
.ma-section.dark .partner-grid,
.ma-section.brand .partner-grid {
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.1);
}
.ma-section.dark .partner-cell,
.ma-section.brand .partner-cell {
  background: #0A0A0A;
}
.ma-section.dark .partner-cell:hover { background: #131313; }
.ma-section.dark .partner-name,
.ma-section.brand .partner-name { color: #FFF; }
.ma-section.dark .partner-tagline,
.ma-section.brand .partner-tagline { color: rgba(255,255,255,.65); }
.ma-section.dark .partner-awards,
.ma-section.brand .partner-awards { color: rgba(255,255,255,.4); border-top-color: rgba(255,255,255,.08); }
.ma-section.brand .partner-cell { background: rgba(255,255,255,.04); }
.ma-section.brand .partner-cell:hover { background: rgba(255,255,255,.1); }
.ma-section.brand .partner-cat { color: rgba(255,255,255,.8); }

@media (max-width: 880px) {
  .partner-grid { grid-template-columns: repeat(2, 1fr); }
}

/* === Featured Product Cards === */
.feat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 56px;
}
.feat-card {
  background: #FFF;
  border-radius: 24px;
  overflow: hidden;
  padding: 32px;
  display: flex; flex-direction: column;
  border: 1px solid rgba(0,0,0,.06);
  min-height: 320px;
  transition: transform .35s, box-shadow .35s;
}
.feat-card:hover { transform: translateY(-4px); box-shadow: 0 24px 48px rgba(0,0,0,.08); }
.feat-card .feat-brand {
  font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase;
  font-weight: 600;
  padding: 4px 10px; border-radius: 999px; background: rgba(0,0,0,.05);
  align-self: flex-start;
}
.feat-card .feat-product {
  font-size: 22px; font-weight: 700; letter-spacing: -0.02em;
  margin-top: 16px;
}
.feat-card .feat-pitch {
  font-size: 15px; color: #515154; line-height: 1.55;
  margin-top: 10px;
}
.feat-card ul {
  list-style: none;
  margin-top: auto;
  padding-top: 20px;
  display: flex; flex-direction: column; gap: 8px;
  border-top: 1px solid rgba(0,0,0,.06);
}
.feat-card ul li {
  font-size: 13px; color: #1d1d1f;
  display: flex; gap: 8px; align-items: flex-start;
}
.feat-card ul li::before {
  content: ""; flex-shrink: 0;
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--accent, var(--brand));
  margin-top: 3px;
}
@media (max-width: 880px) { .feat-grid { grid-template-columns: 1fr; } }

/* === DigitalTwin (Dark sticky pinned) === */
.dt-pin {
  background: #0A0A0A;
  color: #FFF;
  padding: 0;
  position: relative;
}
.dt-pin-inner {
  position: sticky;
  top: 0;
  min-height: 100vh;
  display: flex;
  align-items: center;
}
.dt-pin .wrap { width: 100%; }
.dt-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 80px; align-items: center;
}
.dt-grid h2 {
  font-size: clamp(40px, 5.5vw, 72px);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.05;
  text-wrap: balance;
}
.dt-grid h2 .accent { background: linear-gradient(135deg, #4A82E8 0%, #8AB8FA 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.dt-grid p {
  font-size: 18px; color: rgba(255,255,255,.7);
  line-height: 1.65; margin-top: 24px;
}
.dt-stats {
  margin-top: 40px;
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 24px;
  border-top: 1px solid rgba(255,255,255,.1);
  padding-top: 24px;
}
.dt-stats .num { font-size: 36px; font-weight: 700; letter-spacing: -0.02em; }
.dt-stats .lbl { font-size: 13px; color: rgba(255,255,255,.6); margin-top: 4px; }

.dt-vis {
  aspect-ratio: 1;
  border-radius: 24px;
  background: radial-gradient(circle at center, rgba(74,130,232,.25) 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.dt-vis img { width: 100%; height: 100%; object-fit: cover; opacity: .82; mix-blend-mode: lighten; }
@media (max-width: 880px) {
  .dt-grid { grid-template-columns: 1fr; gap: 40px; }
}

/* === Stats === */
.stats-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
  margin-top: 72px;
}
.stat-block .stat-num {
  font-size: clamp(48px, 6vw, 80px);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--brand);
}
.ma-section.dark .stat-num,
.ma-section.brand .stat-num { color: #FFF; }
.stat-block .stat-lbl {
  font-size: 14px;
  color: #515154;
  margin-top: 8px;
}
.ma-section.dark .stat-lbl,
.ma-section.brand .stat-lbl { color: rgba(255,255,255,.7); }
@media (max-width: 880px) { .stats-row { grid-template-columns: repeat(2, 1fr); gap: 32px; } }

/* === Cert List === */
.cert-list {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 0; margin-top: 48px;
  border-top: 1px solid rgba(255,255,255,.1);
}
.cert-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 24px 0;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.cert-row:nth-child(2n) { padding-left: 32px; border-left: 1px solid rgba(255,255,255,.1); }
.cert-name { font-size: 15px; font-weight: 500; color: #FFF; }
.cert-date { font-size: 13px; color: rgba(255,255,255,.5); }
@media (max-width: 880px) {
  .cert-list { grid-template-columns: 1fr; }
  .cert-row:nth-child(2n) { padding-left: 0; border-left: none; }
}

/* === Autodesk PDMC 공인 파트너 배지 (브랜드 페이지 히어로) === */
.adb-pdmc {
  display: inline-flex; align-items: center; gap: 14px; margin-top: 28px;
  padding: 10px 18px 10px 12px; border-radius: 16px;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(6px);
}
.adb-pdmc img { width: 52px; height: 52px; display: block; border-radius: 10px; flex-shrink: 0; }
.adb-pdmc-text { display: flex; flex-direction: column; gap: 3px; }
.adb-pdmc-label {
  font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase;
  color: #E8A93B;
}
.adb-pdmc-title { font-size: 15px; font-weight: 700; letter-spacing: -0.01em; color: #FFFFFF; }
@media (max-width: 600px) { .adb-pdmc { margin-top: 22px; } }

/* === Contact === */
.contact-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 80px; margin-top: 56px; align-items: center;
}
.contact-info { display: flex; flex-direction: column; gap: 24px; }
.contact-row { border-top: 1px solid rgba(0,0,0,.08); padding-top: 20px; }
.contact-row .lbl { font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--brand); margin-bottom: 6px; }
.contact-row .val { font-size: 17px; font-weight: 500; }
.ma-section.dark .contact-row { border-top-color: rgba(255,255,255,.1); }
.ma-section.dark .contact-row .lbl { color: var(--brand-bright); }
.contact-map {
  aspect-ratio: 4/3;
  border-radius: 24px;
  background: linear-gradient(135deg, #1A4FB8, #4A82E8);
  position: relative;
  overflow: hidden;
}
.contact-map img { width: 100%; height: 100%; object-fit: cover; opacity: .9; }
@media (max-width: 880px) { .contact-grid { grid-template-columns: 1fr; gap: 40px; } }

/* === Mood D — Colorful Modern === */
.mc-hero {
  min-height: 100vh;
  padding: 120px 32px 80px;
  background: linear-gradient(180deg, #E8F0FE 0%, #DFEAFD 40%, #C9DCFB 100%);
  position: relative; overflow: hidden;
  display: flex; align-items: center;
}
.mc-hero-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  width: 100%;
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 64px;
  align-items: center;
  position: relative;
  z-index: 2;
}
.mc-hero h1 {
  font-size: clamp(48px, 7.5vw, 100px);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.04em;
  color: #0A1F5C;
}
.mc-hero h1 .accent {
  background: linear-gradient(135deg, #1A4FB8 0%, #4A82E8 50%, #8AB8FA 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.mc-hero .eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 500;
  color: var(--brand-deep);
  background: rgba(255,255,255,.7);
  padding: 8px 16px; border-radius: 999px;
  margin-bottom: 24px;
  backdrop-filter: blur(12px);
  border: 1px solid rgba(26,79,184,.15);
}
.mc-hero .eyebrow .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--brand); }
.mc-hero p.lead {
  font-size: clamp(15px, 1.4vw, 18px);
  color: #2C3E78;
  line-height: 1.65;
  margin-top: 28px;
  max-width: 540px;
}
.mc-hero .cta-row { display: flex; gap: 12px; margin-top: 40px; flex-wrap: wrap; }
.mc-btn-pri {
  background: var(--brand); color: #FFF;
  padding: 16px 28px; border-radius: 999px;
  font-size: 15px; font-weight: 600;
  box-shadow: 0 12px 28px rgba(26,79,184,.3);
  transition: transform .2s, box-shadow .2s;
}
.mc-btn-pri:hover { transform: translateY(-2px); box-shadow: 0 16px 36px rgba(26,79,184,.4); }
.mc-btn-sec {
  background: rgba(255,255,255,.7); color: #0A1F5C;
  padding: 16px 28px; border-radius: 999px;
  font-size: 15px; font-weight: 600;
  border: 1px solid rgba(26,79,184,.15);
  backdrop-filter: blur(12px);
}

.mc-hero-visual {
  position: relative;
  aspect-ratio: 1;
  border-radius: 36px;
  overflow: hidden;
  background: linear-gradient(135deg, #0A1F5C, #1A4FB8);
}
.mc-hero-visual img { width: 100%; height: 100%; object-fit: cover; opacity: .85; }
.mc-hero-visual::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(26,79,184,.4), transparent 60%);
}
.mc-floating-card {
  position: absolute;
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(20px);
  border-radius: 20px;
  padding: 16px 20px;
  box-shadow: 0 20px 40px rgba(10,31,92,.15);
  display: flex; align-items: center; gap: 12px;
  border: 1px solid rgba(255,255,255,.6);
  z-index: 3;
}
.mc-floating-card .fc-icon {
  width: 36px; height: 36px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; font-weight: 700; color: #FFF;
}
.mc-floating-card .fc-title { font-size: 13px; font-weight: 600; color: #0A1F5C; }
.mc-floating-card .fc-sub { font-size: 11px; color: #8A98C0; margin-top: 2px; }

/* Mood D background blocks transition */
.mc-section { padding: 140px 0; position: relative; overflow: hidden; }
.mc-section.bg-mint { background: linear-gradient(180deg, #E8F8EF 0%, #D4F4E2 100%); color: #06402C; }
.mc-section.bg-deep { background: linear-gradient(180deg, #0A1F5C 0%, #0E2F73 50%, #1A4FB8 100%); color: #FFF; }
.mc-section.bg-sunset { background: linear-gradient(180deg, #FFF4E6 0%, #FFE9D6 100%); color: #6B3A0E; }
.mc-section.bg-bright { background: linear-gradient(180deg, #DFEAFD 0%, #C9DCFB 100%); color: #0A1F5C; }
.mc-section.bg-white { background: #FFFFFF; color: #0A1F5C; }
.mc-section.bg-lavender { background: linear-gradient(180deg, #F4F0FE 0%, #E8E0FC 100%); color: #2A1761; }

.mc-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase;
  padding: 6px 14px; border-radius: 999px;
  margin-bottom: 24px;
}
.mc-section.bg-mint    .mc-eyebrow { background: rgba(6,64,44,.1);  color: #06402C; }
.mc-section.bg-deep    .mc-eyebrow { background: rgba(255,255,255,.15); color: #FFF; }
.mc-section.bg-sunset  .mc-eyebrow { background: rgba(107,58,14,.1); color: #6B3A0E; }
.mc-section.bg-bright  .mc-eyebrow { background: rgba(10,31,92,.1); color: #0A1F5C; }
.mc-section.bg-white   .mc-eyebrow { background: var(--brand-soft); color: var(--brand-deep); }
.mc-section.bg-lavender .mc-eyebrow { background: rgba(42,23,97,.1); color: #2A1761; }

.mc-title {
  font-size: clamp(40px, 5.5vw, 76px);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1.04;
  text-wrap: balance;
}
.mc-sub {
  font-size: clamp(16px, 1.4vw, 19px);
  line-height: 1.65;
  margin-top: 20px;
  opacity: .8;
  max-width: 720px;
  text-wrap: pretty;
}

/* Mood D — Pillar cards (different layout than A) */
.mc-pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 64px;
}
.mc-pillar-card {
  background: rgba(255,255,255,.7);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,.6);
  border-radius: 28px;
  padding: 36px 32px;
  display: flex; flex-direction: column;
  min-height: 360px;
  transition: transform .35s, box-shadow .35s;
}
.mc-pillar-card:hover { transform: translateY(-6px); box-shadow: 0 24px 60px rgba(10,31,92,.15); }
.mc-section.bg-deep .mc-pillar-card { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.12); color: #FFF; }
.mc-section.bg-deep .mc-pillar-card:hover { background: rgba(255,255,255,.12); }
.mc-pillar-card .mc-pillar-num {
  font-size: 64px; font-weight: 700;
  letter-spacing: -0.03em; line-height: 1;
  background: linear-gradient(135deg, #1A4FB8, #4A82E8);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.mc-section.bg-deep .mc-pillar-num { background: linear-gradient(135deg, #8AB8FA, #C9DCFB); -webkit-background-clip: text; background-clip: text; color: transparent; }
.mc-pillar-card h3 { font-size: 24px; font-weight: 700; margin-top: 20px; letter-spacing: -0.02em; }
.mc-pillar-card p { font-size: 14px; line-height: 1.6; margin-top: 12px; opacity: .75; flex-grow: 1; }
.mc-pillar-card .tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 20px; }
.mc-pillar-card .tag {
  font-size: 11px; padding: 5px 10px; border-radius: 999px;
  background: rgba(26,79,184,.1); color: var(--brand-deep);
  font-weight: 500;
}
.mc-section.bg-deep .tag { background: rgba(255,255,255,.1); color: #FFF; }
@media (max-width: 880px) { .mc-pillars { grid-template-columns: 1fr; } }

/* Mood D — Partner Marquee */
.mc-marquee-wrap {
  overflow: hidden;
  margin: 56px -32px 0;
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.mc-marquee {
  display: flex;
  gap: 24px;
  animation: marquee 50s linear infinite;
  width: max-content;
}
@keyframes marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.mc-marquee-card {
  flex-shrink: 0;
  width: 320px;
  background: #FFF;
  border-radius: 24px;
  padding: 28px;
  border: 1px solid rgba(0,0,0,.06);
  display: flex; flex-direction: column;
}
.mc-marquee-card .mc-mc-cat { font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--brand); font-weight: 600; margin-bottom: 10px; }
.mc-marquee-card .mc-mc-name { font-size: 24px; font-weight: 700; color: #0A1F5C; letter-spacing: -0.02em; }
.mc-marquee-card .mc-mc-tag { font-size: 13px; color: #6B7AA0; margin-top: 8px; line-height: 1.5; }
.mc-marquee-card .mc-mc-aw { margin-top: auto; padding-top: 14px; font-size: 11px; color: #8A98C0; border-top: 1px solid rgba(0,0,0,.06); }

/* Mood D — featured product (gradient cards) */
.mc-feat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 56px;
}
.mc-feat-card {
  border-radius: 28px;
  padding: 36px 32px;
  display: flex; flex-direction: column;
  min-height: 380px;
  color: #FFF;
  position: relative;
  overflow: hidden;
}
.mc-feat-card::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(circle at 80% 0%, rgba(255,255,255,.25), transparent 60%);
}
.mc-feat-card > * { position: relative; z-index: 1; }
.mc-feat-card .feat-brand {
  font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
  font-weight: 600; padding: 4px 12px; border-radius: 999px;
  background: rgba(255,255,255,.18);
  align-self: flex-start; backdrop-filter: blur(8px);
}
.mc-feat-card .feat-product { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; margin-top: 16px; }
.mc-feat-card .feat-pitch { font-size: 15px; line-height: 1.55; margin-top: 10px; opacity: .9; }
.mc-feat-card ul {
  list-style: none; margin-top: auto; padding-top: 20px;
  display: flex; flex-direction: column; gap: 8px;
  border-top: 1px solid rgba(255,255,255,.2);
}
.mc-feat-card ul li {
  font-size: 13px; display: flex; gap: 8px; align-items: flex-start;
}
.mc-feat-card ul li::before {
  content: "→"; font-weight: 600; opacity: .8;
}
@media (max-width: 880px) { .mc-feat-grid { grid-template-columns: 1fr; } }

/* Mood D — digital twin showpiece */
.mc-dt {
  position: relative;
  overflow: hidden;
}
.mc-dt-grid {
  display: grid; grid-template-columns: 1fr 1.2fr;
  gap: 64px; align-items: center;
}
.mc-dt-vis {
  aspect-ratio: 5/4; border-radius: 32px; overflow: hidden;
  background: linear-gradient(135deg, #0A1F5C, #4A82E8);
  position: relative;
}
.mc-dt-vis img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: screen; opacity: .85; }
.mc-dt-overlay {
  position: absolute; inset: 0;
  display: flex; align-items: flex-end; justify-content: flex-start;
  padding: 32px;
  background: linear-gradient(180deg, transparent 50%, rgba(10,31,92,.4));
}
.mc-dt-badge {
  background: rgba(255,255,255,.95); color: #0A1F5C;
  padding: 12px 20px; border-radius: 16px;
  font-size: 13px; font-weight: 600;
  display: flex; align-items: center; gap: 10px;
  backdrop-filter: blur(12px);
}
.mc-dt-badge .live { width: 8px; height: 8px; border-radius: 50%; background: #4FE08A; box-shadow: 0 0 0 4px rgba(79,224,138,.2); animation: pulse 2s infinite; }
@keyframes pulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(79,224,138,.2); }
  50%      { box-shadow: 0 0 0 8px rgba(79,224,138,.05); }
}
@media (max-width: 880px) { .mc-dt-grid { grid-template-columns: 1fr; } }

/* Mood D — Cert tags */
.mc-cert-grid {
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: 16px; margin-top: 48px;
}
.mc-cert-card {
  background: rgba(255,255,255,.6);
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 16px;
  padding: 20px 24px;
  display: flex; justify-content: space-between; align-items: center;
  backdrop-filter: blur(20px);
}
.mc-cert-name { font-size: 14px; font-weight: 600; }
.mc-cert-date { font-size: 12px; opacity: .7; }
@media (max-width: 880px) { .mc-cert-grid { grid-template-columns: 1fr; } }

/* Mood D — Contact CTA block */
.mc-cta-block {
  border-radius: 36px;
  padding: 80px 56px;
  background: linear-gradient(135deg, #1A4FB8 0%, #2D6BE0 50%, #4A82E8 100%);
  color: #FFF;
  position: relative;
  overflow: hidden;
  margin-top: 56px;
}
.mc-cta-block::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(circle at 90% 10%, rgba(255,255,255,.18), transparent 40%),
    radial-gradient(circle at 10% 90%, rgba(255,255,255,.12), transparent 50%);
}
.mc-cta-block > * { position: relative; }
.mc-cta-block h2 { font-size: clamp(36px, 5vw, 60px); font-weight: 800; letter-spacing: -0.03em; line-height: 1.05; text-wrap: balance; }
.mc-cta-block p { font-size: 18px; opacity: .88; margin-top: 20px; max-width: 560px; }
.mc-cta-actions { display: flex; gap: 12px; margin-top: 36px; flex-wrap: wrap; }
.mc-cta-actions .pri {
  background: #FFF; color: var(--brand-deep);
  padding: 16px 28px; border-radius: 999px;
  font-size: 15px; font-weight: 700;
}
.mc-cta-actions .sec {
  background: rgba(255,255,255,.18); color: #FFF;
  padding: 16px 28px; border-radius: 999px;
  font-size: 15px; font-weight: 600; backdrop-filter: blur(12px);
}

/* === Tweaks Panel Override === */
.tweaks-panel {
  width: 280px !important;
}

/* === Scroll progress bar (Mood D) === */
.scroll-progress {
  position: fixed; top: 0; left: 0; right: 0;
  height: 3px; z-index: 200;
  background: linear-gradient(90deg, #1A4FB8, #4A82E8, #8AB8FA);
  transform-origin: left;
  transform: scaleX(0);
  transition: transform .1s linear;
}

/* === Big number callout === */
.big-num {
  font-size: clamp(120px, 22vw, 280px);
  font-weight: 800;
  letter-spacing: -0.06em;
  line-height: .85;
  background: linear-gradient(180deg, currentColor, transparent 130%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  opacity: .12;
  pointer-events: none;
}

/* === Nav Dropdown (제품) === */
.nav-item { position: relative; display: inline-flex; align-items: center; }
.nav-dd-trigger {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 14px; font-weight: 500; cursor: pointer;
  opacity: .85; transition: opacity .2s; color: inherit;
}
.nav-dd-trigger:hover { opacity: 1; }
.nav-dd-caret { font-size: 9px; transition: transform .25s; opacity: .6; }
.nav-item.open .nav-dd-caret { transform: rotate(180deg); }
.nav-dd {
  position: absolute; top: calc(100% + 14px); left: 50%;
  transform: translateX(-50%) translateY(8px);
  width: 320px;
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(24px) saturate(180%);
  border: 1px solid rgba(0,0,0,.07);
  border-radius: 18px;
  box-shadow: 0 24px 60px rgba(0,0,0,.16);
  padding: 10px;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .22s, transform .22s, visibility .22s;
  z-index: 120;
  max-height: 72vh; overflow-y: auto;
}
.nav-item.open .nav-dd { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0); }
.bw-header.theme-dark .nav-dd { background: rgba(20,20,22,.9); border-color: rgba(255,255,255,.1); }
.nav-dd-head {
  font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase;
  color: #86868B; padding: 8px 12px 6px;
}
.nav-dd-item {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 11px 12px; border-radius: 12px; cursor: pointer;
  transition: background .16s;
}
.nav-dd-item:hover { background: rgba(26,79,184,.08); }
.bw-header.theme-dark .nav-dd-item:hover { background: rgba(255,255,255,.08); }
.nav-dd-item.disabled { cursor: default; opacity: .55; }
.nav-dd-item.disabled:hover { background: none; }
.nav-dd-item.featured { background: rgba(255,107,0,.08); }
.nav-dd-item.featured:hover { background: rgba(255,107,0,.14); }
.nav-dd-name { font-size: 14px; font-weight: 600; color: #1d1d1f; }
.bw-header.theme-dark .nav-dd-name { color: #F0F0F0; }
.nav-dd-item.featured .nav-dd-name { color: #E25400; }
.bw-header.theme-dark .nav-dd-item.featured .nav-dd-name { color: #FF8A3D; }
.nav-dd-sub { font-size: 11px; color: #86868B; margin-top: 2px; font-weight: 400; }
.nav-dd-badge {
  font-size: 10px; font-weight: 600; padding: 3px 8px; border-radius: 999px;
  background: rgba(0,0,0,.06); color: #86868B; flex-shrink: 0;
}
.bw-header.theme-dark .nav-dd-badge { background: rgba(255,255,255,.1); color: rgba(255,255,255,.6); }
.nav-dd-badge.go { background: #FF6B00; color: #FFF; }
.nav-dd-arrow { font-size: 13px; color: #1A4FB8; flex-shrink: 0; opacity: 0; transition: opacity .16s; }
.nav-dd-item:hover .nav-dd-arrow { opacity: 1; }
.nav-dd-item.featured .nav-dd-arrow { color: #FF6B00; opacity: 1; }
.bw-header.theme-dark .nav-dd-arrow { color: #8AB8FA; }

/* ============================================================
   AUTODESK DETAIL PAGE
   ============================================================ */
.ad-page { --ad: #FF6B00; --ad-deep: #E25400; background: #FFFFFF; color: #0A0A0A; min-height: 100vh; }
.ad-page .mono { font-family: 'JetBrains Mono', monospace; }

/* Sub-header */
.ad-subheader {
  position: fixed; top: 0; left: 0; right: 0; z-index: 150;
  background: rgba(255,255,255,0); transition: all .3s;
}
.ad-subheader.is-scrolled {
  background: rgba(255,255,255,.82); backdrop-filter: blur(20px) saturate(180%);
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.ad-subheader-inner {
  max-width: var(--max-w); margin: 0 auto; height: 60px; padding: 0 32px;
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
}
.ad-back {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 14px; font-weight: 500; color: #1d1d1f;
  padding: 8px 14px; border-radius: 999px; transition: background .2s;
}
.ad-back:hover { background: rgba(0,0,0,.05); }
/* 최상단(투명 헤더, 어두운 히어로 위)에서는 밝게 표시 */
.ad-subheader:not(.is-scrolled) .ad-back { color: #FFFFFF; background: rgba(255,255,255,.1); }
.ad-subheader:not(.is-scrolled) .ad-back:hover { background: rgba(255,255,255,.2); }
.ad-back-arrow { font-size: 16px; }
.ad-crumb { display: flex; align-items: center; gap: 10px; font-size: 13px; }
.ad-logo-mini { display: flex; }
.ad-crumb-sep { color: #86868B; }
.ad-crumb-sep::after { content: " ›"; }
.ad-crumb-cur { font-weight: 600; color: var(--ad-deep); }
.ad-cta-btn {
  background: #0A0A0A; color: #FFF; padding: 9px 18px; border-radius: 999px;
  font-size: 13px; font-weight: 600; transition: transform .2s;
}
.ad-cta-btn:hover { transform: translateY(-1px); }
@media (max-width: 700px) { .ad-crumb { display: none; } }

/* Hero */
.ad-hero {
  background: linear-gradient(160deg, #16181D 0%, #0A0A0A 60%);
  color: #FFF; padding: 150px 0 100px; position: relative; overflow: hidden;
}
.ad-hero::before {
  content: ""; position: absolute; top: -20%; right: -10%;
  width: 700px; height: 700px;
  background: radial-gradient(circle, rgba(255,107,0,.22), transparent 65%);
  filter: blur(40px); pointer-events: none;
}
.ad-hero-grid {
  display: grid; grid-template-columns: 1.1fr .9fr; gap: 64px; align-items: center;
  position: relative; z-index: 2;
}
.ad-hero-brand {
  display: flex; width: fit-content; align-items: center; gap: 10px;
  font-size: 16px; font-weight: 700; letter-spacing: -0.01em; margin-bottom: 22px;
}
.ad-brand-mark {
  width: 30px; height: 30px; border-radius: 7px;
  background: var(--ad); color: #FFF;
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 18px; font-family: 'Inter', sans-serif;
}
.ad-hero-badge {
  display: inline-block; font-size: 13px; font-weight: 500;
  color: rgba(255,255,255,.8);
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14);
  padding: 7px 16px; border-radius: 999px; margin-bottom: 26px;
}
.ad-hero h1 {
  font-size: clamp(40px, 5.5vw, 72px); font-weight: 800;
  letter-spacing: -0.04em; line-height: 1.05; text-wrap: balance;
}
.ad-hero h1 .ad-accent {
  background: linear-gradient(135deg, #FF8A3D, #FF6B00);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.ad-hero-body {
  font-size: 16px; line-height: 1.7; color: rgba(255,255,255,.72);
  margin-top: 26px; max-width: 560px;
}
.ad-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 32px; }
.ad-chip {
  font-size: 12px; font-weight: 500; padding: 7px 14px; border-radius: 999px;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.85);
}
.ad-hero-visual {
  aspect-ratio: 4/3; border-radius: 24px; overflow: hidden; position: relative;
  background: linear-gradient(135deg, #2A2D34, #16181D);
  box-shadow: 0 40px 80px rgba(0,0,0,.5);
}
.ad-hero-visual img { width: 100%; height: 100%; object-fit: cover; opacity: .9; }
.ad-hero-tag {
  position: absolute; bottom: 20px; left: 20px;
  background: rgba(255,255,255,.95); color: #0A0A0A; backdrop-filter: blur(12px);
  border-radius: 16px; padding: 16px 20px;
}
.ad-hero-tag-num { font-size: 36px; font-weight: 800; letter-spacing: -0.02em; line-height: 1; color: var(--ad-deep); }
.ad-hero-tag-num span { font-size: 16px; margin-left: 2px; }
.ad-hero-tag-lbl { font-size: 12px; color: #515154; margin-top: 4px; }
@media (max-width: 860px) {
  .ad-hero-grid { grid-template-columns: 1fr; gap: 40px; }
  .ad-hero { padding: 120px 0 70px; }
}

/* Section base */
.ad-section { padding: 110px 0; }
.ad-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 600; color: var(--ad-deep);
  letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 16px;
}
.ad-eyebrow::before { content: ""; width: 20px; height: 2px; background: var(--ad); }
.ad-title {
  font-size: clamp(30px, 4vw, 50px); font-weight: 700;
  letter-spacing: -0.03em; line-height: 1.1; text-wrap: balance; word-break: keep-all;
}

/* Overview */
.ad-overview { background: #F5F5F7; }
.ad-overview-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 56px; align-items: center; }
.ad-target-card {
  background: #FFF; border-radius: 20px; padding: 28px 30px;
  border: 1px solid rgba(0,0,0,.06);
}
.ad-target-label {
  font-size: 12px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase;
  color: var(--ad-deep); margin-bottom: 12px;
}
.ad-target-text { font-size: 16px; line-height: 1.6; color: #1d1d1f; font-weight: 500; }
@media (max-width: 860px) { .ad-overview-grid { grid-template-columns: 1fr; gap: 32px; } }

/* Effects */
.ad-effects-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 56px;
}
.ad-effect-card {
  background: #FFF; border: 1px solid rgba(0,0,0,.07); border-radius: 20px;
  padding: 28px 26px; transition: transform .35s, box-shadow .35s, border-color .35s;
}
.ad-effect-card:hover {
  transform: translateY(-4px); box-shadow: 0 20px 44px rgba(0,0,0,.08);
  border-color: rgba(255,107,0,.3);
}
.ad-effect-num {
  font-size: 14px; font-weight: 700; color: var(--ad); font-family: 'JetBrains Mono', monospace;
  margin-bottom: 16px;
}
.ad-effect-card h3 { font-size: 18px; font-weight: 700; letter-spacing: -0.02em; }
.ad-effect-card p { font-size: 13.5px; line-height: 1.6; color: #515154; margin-top: 10px; }
@media (max-width: 1080px) { .ad-effects-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .ad-effects-grid { grid-template-columns: 1fr; } }

/* Workflow */
.ad-workflow { background: #0A0A0A; color: #FFF; }
.ad-workflow .ad-eyebrow { color: #FF8A3D; }
.ad-tabs {
  display: flex; gap: 8px; margin-top: 44px; flex-wrap: wrap;
  border-bottom: 1px solid rgba(255,255,255,.1); padding-bottom: 0;
}
.ad-tab {
  font-size: 15px; font-weight: 600; color: rgba(255,255,255,.5);
  padding: 14px 24px; position: relative; transition: color .2s;
}
.ad-tab.active { color: #FFF; }
.ad-tab::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px;
  background: var(--ad); transform: scaleX(0); transition: transform .25s;
}
.ad-tab.active::after { transform: scaleX(1); }
.ad-wf-panel { margin-top: 48px; animation: adFade .4s ease; }
@keyframes adFade { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
.ad-wf-heading { font-size: clamp(20px, 2.4vw, 28px); font-weight: 700; letter-spacing: -0.02em; margin-bottom: 36px; }
.ad-wf-groups { display: flex; align-items: stretch; gap: 0; }
.ad-wf-group {
  flex: 1; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1);
  border-radius: 18px; padding: 28px 26px;
}
.ad-wf-group-title { font-size: 18px; font-weight: 700; margin-bottom: 20px; }
.ad-wf-items { display: flex; flex-direction: column; gap: 14px; }
.ad-wf-item {
  display: flex; align-items: center; gap: 10px;
  font-size: 15px; font-weight: 500; color: rgba(255,255,255,.92);
}
.ad-wf-item.more { color: rgba(255,255,255,.5); font-weight: 400; }
.ad-wf-dot { width: 18px; height: 18px; border-radius: 5px; background: var(--ad); flex-shrink: 0; }
.ad-wf-connector { width: 40px; align-self: center; height: 1px; background: rgba(255,255,255,.18); flex-shrink: 0; }
.ad-wf-note { font-size: 12px; color: rgba(255,255,255,.4); margin-top: 28px; }
.ad-software .ad-wf-note, .ad-pricing .ad-wf-note { color: #86868B; }
@media (max-width: 860px) {
  .ad-wf-groups { flex-direction: column; gap: 16px; }
  .ad-wf-connector { display: none; }
}

/* Software table */
.ad-sw-legend { font-size: 13px; color: #515154; display: flex; align-items: center; gap: 8px; }
.ad-sw-exbadge {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; border-radius: 6px;
  background: rgba(255,107,0,.12); color: var(--ad-deep); font-weight: 700; font-size: 13px;
}
.ad-sw-table { margin-top: 40px; border-radius: 18px; overflow: hidden; border: 1px solid rgba(0,0,0,.08); }
.ad-sw-head, .ad-sw-row {
  display: grid; grid-template-columns: 60px 240px 1fr 70px; align-items: center; gap: 16px;
  padding: 16px 24px;
}
.ad-sw-head {
  background: #0A0A0A; color: #FFF; font-size: 12px; font-weight: 600;
  letter-spacing: 0.04em; text-transform: uppercase;
}
.ad-sw-row { background: #FFF; border-top: 1px solid rgba(0,0,0,.06); transition: background .16s; }
.ad-sw-row:hover { background: #FAFAFC; }
.ad-sw-c-no { color: #86868B; font-size: 13px; }
.ad-sw-c-name { font-weight: 700; font-size: 15px; letter-spacing: -0.01em; }
.ad-sw-c-desc { font-size: 13.5px; color: #515154; line-height: 1.5; }
.ad-sw-c-ex { text-align: center; }
@media (max-width: 860px) {
  .ad-sw-head { display: none; }
  .ad-sw-row { grid-template-columns: 44px 1fr 40px; grid-template-areas: "no name ex" "no desc ex"; gap: 4px 12px; padding: 18px 20px; }
  .ad-sw-c-no { grid-area: no; } .ad-sw-c-name { grid-area: name; } .ad-sw-c-desc { grid-area: desc; } .ad-sw-c-ex { grid-area: ex; }
}

/* Pricing */
.ad-pricing { background: #F5F5F7; }
.ad-pricing-note { font-size: 13px; color: #86868B; margin-top: 14px; }
.ad-pricing-grid {
  display: grid; grid-template-columns: 1fr auto 1fr; gap: 28px; align-items: center;
  margin-top: 56px; max-width: 1000px; margin-left: auto; margin-right: auto;
}
.ad-price-col { display: flex; flex-direction: column; gap: 16px; }
.ad-price-coltitle { font-size: 14px; font-weight: 600; color: #86868B; text-align: center; margin-bottom: 4px; }
.ad-price-card {
  background: #FFF; border: 1px solid rgba(0,0,0,.07); border-radius: 18px; padding: 24px 26px;
}
.ad-price-name { font-size: 16px; font-weight: 700; letter-spacing: -0.01em; }
.ad-price-amount { font-size: 30px; font-weight: 800; letter-spacing: -0.02em; margin-top: 8px; }
.ad-price-amount span { font-size: 16px; font-weight: 600; margin-left: 3px; }
.ad-price-amount.big { font-size: 40px; }
.ad-price-term { font-size: 13px; color: #86868B; margin-top: 6px; }
.ad-price-sum { background: #ECEDF0; border: none; }
.ad-price-arrow { font-size: 28px; color: #B0B3BA; text-align: center; }
.ad-price-feature {
  position: relative; border: 2px solid var(--ad);
  box-shadow: 0 24px 60px rgba(255,107,0,.16);
}
.ad-price-rec {
  position: absolute; top: -13px; right: 24px;
  background: var(--ad); color: #FFF; font-size: 12px; font-weight: 700;
  padding: 5px 14px; border-radius: 999px;
}
.ad-price-divider { height: 1px; background: rgba(0,0,0,.08); margin: 20px 0; }
.ad-price-inclabel { font-size: 12px; font-weight: 600; color: #86868B; text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 12px; }
.ad-price-incl { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.ad-price-incl li { font-size: 14px; font-weight: 600; display: flex; align-items: center; gap: 10px; }
.ad-inc-check { color: var(--ad-deep); font-weight: 700; }
.ad-price-save {
  margin-top: 22px; background: rgba(255,107,0,.1); border-radius: 14px; padding: 16px;
  text-align: center;
}
.ad-price-save span { display: block; font-size: 12px; color: var(--ad-deep); }
.ad-price-save strong { display: block; font-size: 22px; font-weight: 800; color: var(--ad-deep); letter-spacing: -0.02em; margin-top: 4px; }
@media (max-width: 860px) {
  .ad-pricing-grid { grid-template-columns: 1fr; }
  .ad-price-arrow { transform: rotate(90deg); }
}

/* Inventor */
.ad-inventor { background: #FFFFFF; }
.ad-inv-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: center; }
.ad-inv-visual { aspect-ratio: 4/3; border-radius: 24px; overflow: hidden; background: #16181D; }
.ad-inv-visual img { width: 100%; height: 100%; object-fit: cover; }
.ad-inv-body { font-size: 16px; line-height: 1.7; color: #515154; margin-top: 22px; }
.ad-jobs { margin-top: 80px; }
.ad-jobs-title { font-size: 18px; font-weight: 700; color: var(--ad-deep); margin-bottom: 24px; }
.ad-jobs-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.ad-job-card {
  background: #F5F5F7; border-radius: 18px; padding: 26px 24px;
  border-top: 3px solid var(--ad);
}
.ad-job-role { font-size: 17px; font-weight: 700; letter-spacing: -0.01em; }
.ad-job-detail { font-size: 13px; color: #515154; line-height: 1.55; margin-top: 10px; }
@media (max-width: 860px) {
  .ad-inv-grid { grid-template-columns: 1fr; gap: 32px; }
  .ad-jobs-grid { grid-template-columns: 1fr 1fr; }
}

/* Final CTA */
.ad-final-cta { background: #F5F5F7; padding-bottom: 130px; }
.ad-cta-block {
  border-radius: 32px; padding: 72px 56px; text-align: center;
  background: linear-gradient(135deg, #16181D 0%, #0A0A0A 100%);
  color: #FFF; position: relative; overflow: hidden;
}
.ad-cta-block::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(circle at 80% 10%, rgba(255,107,0,.25), transparent 50%);
}
.ad-cta-block > * { position: relative; }
.ad-cta-block h2 { font-size: clamp(30px, 4vw, 48px); font-weight: 800; letter-spacing: -0.03em; line-height: 1.1; text-wrap: balance; }
.ad-cta-block p { font-size: 16px; color: rgba(255,255,255,.75); margin-top: 18px; max-width: 540px; margin-left: auto; margin-right: auto; }
.ad-cta-actions { display: flex; gap: 12px; justify-content: center; margin-top: 36px; flex-wrap: wrap; }
.ad-cta-pri { background: var(--ad); color: #FFF; padding: 15px 28px; border-radius: 999px; font-size: 15px; font-weight: 700; transition: transform .2s, background .2s; }
.ad-cta-pri:hover { background: var(--ad-deep); transform: translateY(-2px); }
.ad-cta-sec { background: rgba(255,255,255,.1); color: #FFF; padding: 15px 28px; border-radius: 999px; font-size: 15px; font-weight: 600; }
.ad-cta-sec:hover { background: rgba(255,255,255,.18); }

/* Mood-color variant: 따뜻한 톤 대신 블루 그라데이션 가미 */
.ad-mood-color .ad-overview,
.ad-mood-color .ad-pricing { background: linear-gradient(180deg, #EEF3FC 0%, #F5F8FD 100%); }
.ad-mood-color .ad-final-cta { background: linear-gradient(180deg, #F5F8FD 0%, #E8F0FE 100%); }
.ad-mood-color .ad-inventor { background: #FFFFFF; }
.ad-mood-color .ad-job-card { background: #EEF3FC; }

/* === Autodesk 브랜드(카드) 페이지 === */
.adb-hero {
  min-height: 100vh;
  padding: 150px 0 100px;
  background: linear-gradient(160deg, #16181D 0%, #0A0A0A 70%);
  color: #FFF; position: relative; overflow: hidden;
  display: flex; align-items: center;
}
.adb-hero::before {
  content: ""; position: absolute; top: -10%; right: -5%;
  width: 600px; height: 600px;
  background: radial-gradient(circle, rgba(255,107,0,.18), transparent 65%);
  filter: blur(40px); pointer-events: none;
}
.adb-hero .wrap { position: relative; z-index: 2; width: 100%; }
.adb-head { max-width: 680px; margin-bottom: 56px; }
.adb-head .ad-hero-brand { margin-bottom: 20px; }
.adb-head h1 {
  font-size: clamp(36px, 5vw, 60px); font-weight: 800;
  letter-spacing: -0.04em; line-height: 1.08; text-wrap: balance;
}
.adb-head p { font-size: 16px; line-height: 1.7; color: rgba(255,255,255,.7); margin-top: 18px; }
.adb-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px;
}
.adb-card {
  text-align: left; cursor: pointer;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12);
  border-radius: 22px; padding: 36px 34px; min-height: 200px;
  display: flex; flex-direction: column; color: #FFF;
  transition: transform .35s cubic-bezier(.16,1,.3,1), background .3s, border-color .3s, box-shadow .35s;
}
.adb-card.ready:hover {
  transform: translateY(-5px); background: rgba(255,107,0,.1);
  border-color: rgba(255,107,0,.5); box-shadow: 0 28px 60px rgba(0,0,0,.4);
}
.adb-card.soon { cursor: default; opacity: .62; }
.adb-card-top { display: flex; justify-content: space-between; align-items: center; }
.adb-code {
  font-size: 34px; font-weight: 800; letter-spacing: -0.03em;
  font-family: 'Inter', sans-serif;
}
.adb-card.ready .adb-code { color: #FF8A3D; }
.adb-status {
  font-size: 12px; font-weight: 600; padding: 5px 12px; border-radius: 999px;
  background: rgba(255,255,255,.1); color: rgba(255,255,255,.6); flex-shrink: 0;
}
.adb-status.go { background: #FF6B00; color: #FFF; }
.adb-card-name { font-size: 17px; font-weight: 700; letter-spacing: -0.01em; margin-top: 22px; }
.adb-card-desc { font-size: 14px; color: rgba(255,255,255,.6); margin-top: 8px; line-height: 1.5; }
@media (max-width: 760px) { .adb-grid { grid-template-columns: 1fr; } }

/* Mood-color variant for brand page */
.ad-mood-color .adb-hero {
  background: linear-gradient(160deg, #0A1F5C 0%, #0E2F73 60%, #16181D 100%);
}
.ad-mood-color .adb-hero::before {
  background: radial-gradient(circle, rgba(74,130,232,.28), transparent 65%);
}

/* === D&M 공통 칩 바 === */
.dm-chipbar { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 32px; }
.dm-chip {
  position: relative;
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 600; letter-spacing: -0.01em;
  padding: 10px 18px; border-radius: 999px;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14);
  color: rgba(255,255,255,.85); cursor: pointer;
  transition: background .2s, border-color .2s, transform .2s, color .2s;
}
.dm-chip.ready:hover { background: rgba(255,107,0,.15); border-color: rgba(255,107,0,.5); color: #FFF; transform: translateY(-2px); }
.dm-chip.current {
  background: #FF6B00; border-color: #FF6B00; color: #FFF; cursor: default;
  box-shadow: 0 8px 20px rgba(255,107,0,.3);
}
.dm-chip.soon { opacity: .5; cursor: default; }
.dm-chip-soon {
  font-size: 10px; font-weight: 600; padding: 2px 7px; border-radius: 999px;
  background: rgba(255,255,255,.12); color: rgba(255,255,255,.7);
}
.ad-mood-color .dm-chip.current { background: #2D6BE0; border-color: #2D6BE0; box-shadow: 0 8px 20px rgba(45,107,224,.35); }
.ad-mood-color .dm-chip.ready:hover { background: rgba(74,130,232,.2); border-color: rgba(74,130,232,.55); }

/* === Inventor — 핵심 기능 그룹 === */
.ad-features { background: #FFFFFF; }
.ad-mood-color .ad-features { background: linear-gradient(180deg, #FFFFFF 0%, #F5F8FD 100%); }
.inv-feature-groups { margin-top: 56px; display: flex; flex-direction: column; gap: 28px; }
.inv-fgroup {
  display: grid; grid-template-columns: 280px 1fr; gap: 40px;
  padding: 36px 0; border-top: 1px solid rgba(0,0,0,.1);
}
.inv-fgroup-title { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; }
.inv-fgroup-sub { font-size: 14px; color: #86868B; margin-top: 8px; line-height: 1.5; }
.inv-fgroup-items { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.inv-fitem {
  background: #F5F5F7; border-radius: 14px; padding: 18px 20px;
  border-left: 3px solid #FF6B00;
}
.ad-mood-color .inv-fitem { background: #EEF3FC; border-left-color: #2D6BE0; }
.inv-fitem-name { font-size: 15px; font-weight: 700; letter-spacing: -0.01em; }
.inv-fitem-desc { font-size: 13px; color: #515154; line-height: 1.5; margin-top: 6px; }
@media (max-width: 860px) {
  .inv-fgroup { grid-template-columns: 1fr; gap: 20px; }
  .inv-fgroup-items { grid-template-columns: 1fr; }
}

/* === Inventor — 설계 자동화 (dark) === */
.ad-automation .ad-title { color: #FFF; }
.inv-auto-grid {
  margin-top: 48px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
}
.inv-auto-card {
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1);
  border-radius: 16px; padding: 22px 22px;
  transition: background .25s, border-color .25s, transform .25s;
}
.inv-auto-card:hover { background: rgba(255,107,0,.1); border-color: rgba(255,107,0,.4); transform: translateY(-3px); }
.inv-auto-name { font-size: 15px; font-weight: 700; color: #FFF; }
.inv-auto-desc { font-size: 13px; color: rgba(255,255,255,.6); line-height: 1.5; margin-top: 8px; }
@media (max-width: 980px) { .inv-auto-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .inv-auto-grid { grid-template-columns: 1fr; } }

/* === Inventor — PDMC 확장 === */
.ad-expansion { background: #F5F5F7; }
.ad-mood-color .ad-expansion { background: linear-gradient(180deg, #F5F8FD 0%, #EEF3FC 100%); }
.inv-expand-block {
  border-radius: 32px; overflow: hidden;
  background: linear-gradient(135deg, #16181D 0%, #0A0A0A 100%);
  display: grid; grid-template-columns: 1fr 1.1fr; gap: 0;
  position: relative;
}
.inv-expand-block::before {
  content: ""; position: absolute; top: 0; left: 0; width: 50%; height: 100%;
  background: radial-gradient(circle at 30% 30%, rgba(255,107,0,.2), transparent 60%); pointer-events: none;
}
.inv-expand-head { padding: 56px 48px; position: relative; }
.inv-expand-note { font-size: 16px; color: rgba(255,255,255,.7); line-height: 1.6; margin-top: 16px; }
.inv-expand-list {
  background: rgba(255,255,255,.04); padding: 40px 44px;
  display: flex; flex-direction: column; gap: 4px; border-left: 1px solid rgba(255,255,255,.08);
}
.inv-expand-item { display: flex; gap: 16px; padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.08); }
.inv-expand-item:last-child { border-bottom: none; }
.inv-expand-plus {
  flex-shrink: 0; width: 28px; height: 28px; border-radius: 8px;
  background: rgba(255,107,0,.15); color: #FF8A3D;
  display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 18px;
}
.inv-expand-name { font-size: 16px; font-weight: 700; color: #FFF; }
.inv-expand-desc { font-size: 13px; color: rgba(255,255,255,.6); line-height: 1.5; margin-top: 4px; }
@media (max-width: 860px) {
  .inv-expand-block { grid-template-columns: 1fr; }
  .inv-expand-head { padding: 40px 32px; }
  .inv-expand-list { padding: 24px 32px; border-left: none; border-top: 1px solid rgba(255,255,255,.08); }
}

/* ============================================================
   COMPANY 회사소개 PAGE
   ============================================================ */
.co-page { background: #FFFFFF; color: #0A0A0A; min-height: 100vh; }
.co-page .mono { font-family: 'JetBrains Mono', monospace; }

.co-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 600; color: #1A4FB8;
  letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 16px;
}
.co-eyebrow::before { content: ""; width: 20px; height: 2px; background: #1A4FB8; }
.co-section.co-org .co-eyebrow,
.co-section.co-cert .co-eyebrow,
.co-section.co-contact .co-eyebrow { color: #6FA0F5; }
.co-section.co-org .co-eyebrow::before,
.co-section.co-cert .co-eyebrow::before,
.co-section.co-contact .co-eyebrow::before { background: #6FA0F5; }

.co-title {
  font-size: clamp(32px, 4.5vw, 56px); font-weight: 700;
  letter-spacing: -0.03em; line-height: 1.08; text-wrap: balance;
}
.co-sub { font-size: clamp(15px, 1.4vw, 18px); color: #515154; line-height: 1.6; margin-top: 16px; text-wrap: pretty; }
.co-head { margin-bottom: 56px; }
.co-section { padding: 120px 0; }
.co-section.co-org { background: #0A0A0A; color: #FFF; }
.co-section.co-history { background: #F5F5F7; }
.co-section.co-cert { background: #0A0A0A; color: #FFF; }
.co-section.co-partners { background: #FFFFFF; }
.co-section.co-contact { background: linear-gradient(150deg, #0E2F73 0%, #1A4FB8 100%); color: #FFF; }
.co-section.co-org .co-sub,
.co-section.co-cert .co-sub,
.co-section.co-contact .co-sub { color: rgba(255,255,255,.72); }

/* Hero */
.co-hero { padding: 150px 0 110px; background: #FFFFFF; }
.co-hero-head { max-width: 820px; margin-bottom: 72px; }
.co-hero h1 {
  font-size: clamp(40px, 6vw, 80px); font-weight: 800;
  letter-spacing: -0.04em; line-height: 1.05; text-wrap: balance;
}
.co-hero h1 .co-accent { color: #1A4FB8; }
.co-hero-sub { font-size: clamp(18px, 2vw, 24px); font-weight: 600; color: #1A4FB8; margin-top: 28px; letter-spacing: -0.01em; }
.co-hero-body { font-size: clamp(16px, 1.5vw, 19px); color: #515154; line-height: 1.6; margin-top: 14px; max-width: 720px; }
.co-stages { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.co-stage {
  background: #F5F5F7; border-radius: 24px; padding: 36px 32px;
  display: flex; flex-direction: column; min-height: 320px;
  transition: transform .35s, box-shadow .35s;
}
.co-stage:hover { transform: translateY(-5px); box-shadow: 0 24px 50px rgba(0,0,0,.08); }
.co-stage-num { font-size: 40px; font-weight: 800; color: #1A4FB8; letter-spacing: -0.03em; }
.co-stage h3 { font-size: 21px; font-weight: 700; margin-top: 16px; letter-spacing: -0.02em; }
.co-stage p { font-size: 14px; color: #515154; line-height: 1.6; margin-top: 12px; flex-grow: 1; }
.co-stage-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 20px; }
.co-stage-tags span { font-size: 11px; font-weight: 500; padding: 5px 11px; border-radius: 999px; background: #E6EEFA; color: #0E2F73; }
@media (max-width: 860px) { .co-stages { grid-template-columns: 1fr; } }

/* 조직도 */
.co-org-chart { display: flex; flex-direction: column; align-items: center; }
.co-ceo {
  background: #1A4FB8; color: #FFF; border-radius: 16px;
  padding: 22px 56px; text-align: center; min-width: 280px;
  box-shadow: 0 16px 40px rgba(26,79,184,.35);
}
.co-ceo-title { font-size: 13px; font-weight: 600; letter-spacing: 0.1em; opacity: .8; }
.co-ceo-name { font-size: 20px; font-weight: 700; margin-top: 4px; }
.co-org-stem { width: 2px; height: 48px; background: rgba(255,255,255,.2); }
.co-teams { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; width: 100%; }
.co-team {
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1);
  border-radius: 18px; padding: 28px 26px; position: relative;
}
.co-team::before {
  content: ""; position: absolute; top: -25px; left: 50%; transform: translateX(-50%);
  width: 2px; height: 25px; background: rgba(255,255,255,.15);
}
.co-team-name {
  font-size: 18px; font-weight: 700; padding-bottom: 16px; margin-bottom: 16px;
  border-bottom: 2px solid #1A4FB8;
}
.co-team-units { display: flex; flex-wrap: wrap; gap: 8px; }
.co-unit {
  font-size: 13px; font-weight: 500; padding: 8px 14px; border-radius: 8px;
  background: rgba(255,255,255,.07); color: rgba(255,255,255,.9);
  border-left: 3px solid #1A4FB8;
}
@media (max-width: 860px) {
  .co-teams { grid-template-columns: 1fr; }
  .co-team::before { display: none; }
}

/* 연혁 */
.co-timeline { position: relative; max-width: 820px; margin: 0 auto; padding-left: 8px; }
.co-timeline-line { position: absolute; left: 92px; top: 8px; bottom: 8px; width: 2px; background: #D4DBE6; }
.co-tl-row { display: grid; grid-template-columns: 76px 28px 1fr; align-items: start; gap: 0; margin-bottom: 28px; }
.co-tl-date { font-size: 15px; font-weight: 700; color: #1A4FB8; font-family: 'JetBrains Mono', monospace; padding-top: 18px; text-align: right; }
.co-tl-dot {
  width: 14px; height: 14px; border-radius: 50%; background: #FFF;
  border: 3px solid #1A4FB8; margin: 22px auto 0; position: relative; z-index: 2;
}
.co-tl-row.hl .co-tl-dot { background: #1A4FB8; box-shadow: 0 0 0 5px rgba(26,79,184,.18); }
.co-tl-card {
  background: #FFF; border: 1px solid rgba(0,0,0,.07); border-radius: 14px;
  padding: 16px 22px; transition: transform .25s, box-shadow .25s;
}
.co-tl-row:hover .co-tl-card { transform: translateX(4px); box-shadow: 0 12px 28px rgba(0,0,0,.07); }
.co-tl-row.hl .co-tl-card { border-color: #1A4FB8; border-width: 1.5px; }
.co-tl-item { font-size: 15px; line-height: 1.55; color: #1d1d1f; }
.co-tl-item + .co-tl-item { margin-top: 6px; padding-top: 6px; border-top: 1px dashed rgba(0,0,0,.08); }
.co-tl-row.hl .co-tl-item { font-weight: 700; }
@media (max-width: 620px) {
  .co-timeline-line { left: 60px; }
  .co-tl-row { grid-template-columns: 50px 24px 1fr; }
  .co-tl-date { font-size: 13px; }
}

/* 인증서 */
.co-cert-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.co-cert-card {
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1);
  border-radius: 16px; padding: 26px 24px; min-height: 160px;
  display: flex; flex-direction: column;
  transition: transform .3s, border-color .3s, background .3s;
}
.co-cert-card:hover { transform: translateY(-4px); background: rgba(255,255,255,.07); border-color: rgba(111,160,245,.5); }
.co-cert-seal {
  width: 44px; height: 44px; border-radius: 50%;
  border: 1.5px solid #6FA0F5; color: #6FA0F5;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 700; margin-bottom: 20px;
}
.co-cert-name { font-size: 15px; font-weight: 600; line-height: 1.45; color: #FFF; flex-grow: 1; }
.co-cert-date { font-size: 13px; color: rgba(255,255,255,.5); margin-top: 14px; }
@media (max-width: 1080px) { .co-cert-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .co-cert-grid { grid-template-columns: 1fr; } }

/* 파트너 이미지 */
.co-partner-img {
  background: #FFF; border: 1px solid rgba(0,0,0,.07); border-radius: 24px;
  padding: 48px; box-shadow: 0 24px 60px rgba(0,0,0,.05);
}
.co-partner-img img { width: 100%; height: auto; display: block; }
@media (max-width: 620px) { .co-partner-img { padding: 24px; } }

/* 연락처 */
.co-contact-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 64px; align-items: center; }
.co-contact-rows { margin-top: 36px; display: flex; flex-direction: column; gap: 4px; }
.co-c-row { padding: 20px 0; border-top: 1px solid rgba(255,255,255,.15); }
.co-c-label { font-size: 12px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: #6FA0F5; margin-bottom: 8px; }
.co-c-val { font-size: 16px; font-weight: 500; line-height: 1.55; color: #FFF; }
.co-c-btn {
  display: inline-block; margin-top: 32px; background: #FFF; color: #0E2F73;
  padding: 15px 28px; border-radius: 999px; font-size: 15px; font-weight: 700;
  transition: transform .2s;
}
.co-c-btn:hover { transform: translateY(-2px); }
.co-map { aspect-ratio: 4/3; border-radius: 24px; overflow: hidden; background: #16181D; box-shadow: 0 24px 60px rgba(0,0,0,.3); }
.co-map iframe { width: 100%; height: 100%; border: 0; display: block; filter: grayscale(.2); }
@media (max-width: 860px) { .co-contact-grid { grid-template-columns: 1fr; gap: 40px; } }

/* === Mood D (color) variant === */
.co-mood-color .co-hero { background: linear-gradient(180deg, #E8F0FE 0%, #F5F8FD 60%, #FFFFFF 100%); }
.co-mood-color .co-hero h1 .co-accent {
  background: linear-gradient(135deg, #1A4FB8, #4A82E8); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.co-mood-color .co-stage { background: rgba(255,255,255,.7); border: 1px solid rgba(26,79,184,.08); backdrop-filter: blur(10px); }
.co-mood-color .co-section.co-org { background: linear-gradient(180deg, #0A1F5C 0%, #0E2F73 60%, #1A4FB8 100%); }
.co-mood-color .co-section.co-history { background: linear-gradient(180deg, #F4F0FE 0%, #E8E0FC 100%); }
.co-mood-color .co-section.co-cert { background: linear-gradient(180deg, #0A1F5C 0%, #16215C 100%); }
.co-mood-color .co-section.co-partners { background: linear-gradient(180deg, #FFFFFF 0%, #EEF3FC 100%); }
.co-mood-color .co-section.co-contact { background: linear-gradient(150deg, #1A4FB8 0%, #2D6BE0 60%, #4A82E8 100%); }
.co-mood-color .co-tl-card { background: rgba(255,255,255,.85); }

/* ============================================================
   광대역 3D스캔 SCAN PAGE
   ============================================================ */
.sc-page { --sc: #0E9E83; --sc-deep: #0A7A66; background: #FFFFFF; color: #0A0A0A; min-height: 100vh; }
.sc-page .mono { font-family: 'JetBrains Mono', monospace; }

/* Sub-header */
.sc-subheader { position: fixed; top: 0; left: 0; right: 0; z-index: 150; background: rgba(255,255,255,0); transition: all .3s; }
.sc-subheader.is-scrolled { background: rgba(255,255,255,.82); backdrop-filter: blur(20px) saturate(180%); border-bottom: 1px solid rgba(0,0,0,.06); }
.sc-subheader-inner { max-width: var(--max-w); margin: 0 auto; height: 60px; padding: 0 32px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.sc-back { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 500; color: #1d1d1f; padding: 8px 14px; border-radius: 999px; transition: background .2s; }
.sc-back:hover { background: rgba(0,0,0,.05); }
.sc-subheader:not(.is-scrolled) .sc-back { color: #FFFFFF; background: rgba(255,255,255,.1); }
.sc-subheader:not(.is-scrolled) .sc-back:hover { background: rgba(255,255,255,.2); }
.sc-back-arrow { font-size: 16px; }
.sc-crumb { display: flex; align-items: center; gap: 10px; font-size: 13px; color: #86868B; }
.sc-crumb span:not(:last-child)::after { content: " ›"; margin-left: 2px; color: #86868B; }
.sc-crumb-cur { font-weight: 600; color: var(--sc-deep); }
.sc-cta-btn { background: #0A0A0A; color: #FFF; padding: 9px 18px; border-radius: 999px; font-size: 13px; font-weight: 600; transition: transform .2s; }
.sc-cta-btn:hover { transform: translateY(-1px); }
@media (max-width: 700px) { .sc-crumb { display: none; } }

/* Hero */
.sc-hero { position: relative; overflow: hidden; padding: 150px 0 100px; background: linear-gradient(165deg, #06241F 0%, #0A0A0A 65%); color: #FFF; }
.sc-hero::before { content: ""; position: absolute; top: -15%; right: -8%; width: 680px; height: 680px; background: radial-gradient(circle, rgba(14,158,131,.25), transparent 65%); filter: blur(40px); pointer-events: none; }
.sc-points { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .5; pointer-events: none; }
.sc-hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; position: relative; z-index: 2; }
.sc-badge { display: inline-block; font-size: 13px; font-weight: 600; color: #4FD9BE; background: rgba(14,158,131,.14); border: 1px solid rgba(14,158,131,.3); padding: 7px 16px; border-radius: 999px; margin-bottom: 24px; letter-spacing: 0.02em; }
.sc-hero h1 { font-size: clamp(40px, 5.6vw, 74px); font-weight: 800; letter-spacing: -0.04em; line-height: 1.04; text-wrap: balance; word-break: keep-all; overflow-wrap: break-word; }
.sc-hero h1 .sc-accent { background: linear-gradient(135deg, #4FD9BE, #0E9E83); -webkit-background-clip: text; background-clip: text; color: transparent; }
.sc-hero-body { font-size: 16px; line-height: 1.7; color: rgba(255,255,255,.72); margin-top: 26px; max-width: 560px; }
.sc-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 30px; }
.sc-chip { font-size: 12px; font-weight: 500; padding: 7px 14px; border-radius: 999px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.13); color: rgba(255,255,255,.85); }
.sc-hero-stats { display: flex; gap: 36px; margin-top: 40px; flex-wrap: wrap; }
.sc-stat-num { font-size: 34px; font-weight: 800; letter-spacing: -0.02em; color: #FFF; }
.sc-stat-num span { font-size: 15px; font-weight: 600; color: #4FD9BE; margin-left: 3px; }
.sc-stat-lbl { font-size: 12px; color: rgba(255,255,255,.6); margin-top: 4px; }
.sc-hero-visual { position: relative; aspect-ratio: 4/3; border-radius: 24px; overflow: hidden; background: linear-gradient(135deg, #0A2E27, #06241F); box-shadow: 0 40px 80px rgba(0,0,0,.5); }
.sc-hero-visual img { width: 100%; height: 100%; object-fit: cover; opacity: .9; }
.sc-hero-scanline { position: absolute; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, transparent, #4FD9BE, transparent); box-shadow: 0 0 16px 2px rgba(79,217,190,.6); animation: scanline 3.5s ease-in-out infinite; }
@keyframes scanline { 0%, 100% { top: 8%; opacity: 0; } 10% { opacity: 1; } 50% { top: 92%; opacity: 1; } 60% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .sc-hero-scanline { animation: none; opacity: .4; top: 50%; } }
@media (max-width: 860px) { .sc-hero-grid { grid-template-columns: 1fr; gap: 40px; } .sc-hero { padding: 120px 0 70px; } }

/* Section base */
.sc-section { padding: 110px 0; }
.sc-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--sc-deep); letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 16px; }
.sc-eyebrow::before { content: ""; width: 20px; height: 2px; background: var(--sc); }
.sc-eyebrow.light { color: #4FD9BE; }
.sc-eyebrow.light::before { background: #4FD9BE; }
.sc-title { font-size: clamp(30px, 4vw, 50px); font-weight: 700; letter-spacing: -0.03em; line-height: 1.1; text-wrap: balance; word-break: keep-all; overflow-wrap: break-word; }
.sc-sub { font-size: clamp(15px, 1.4vw, 18px); color: #515154; line-height: 1.65; margin-top: 18px; text-wrap: pretty; word-break: keep-all; }

/* Overview */
.sc-overview { background: #F4F8F7; }
.sc-ov-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 64px; align-items: center; }
.sc-ov-points { display: flex; flex-direction: column; gap: 14px; }
.sc-ov-point { background: #FFF; border: 1px solid rgba(0,0,0,.06); border-left: 3px solid var(--sc); border-radius: 14px; padding: 20px 24px; transition: transform .25s, box-shadow .25s; }
.sc-ov-point:hover { transform: translateX(4px); box-shadow: 0 12px 28px rgba(14,158,131,.1); }
.sc-ov-k { font-size: 16px; font-weight: 700; color: #0A0A0A; }
.sc-ov-v { font-size: 14px; color: #515154; line-height: 1.55; margin-top: 6px; }
@media (max-width: 860px) { .sc-ov-grid { grid-template-columns: 1fr; gap: 32px; } }

/* Process */
.sc-process { background: #0A0A0A; color: #FFF; }
.sc-proc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 56px; }
.sc-proc-card { position: relative; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: 20px; padding: 28px 26px; transition: transform .35s, background .3s, border-color .3s; }
.sc-proc-card:hover { transform: translateY(-4px); background: rgba(14,158,131,.1); border-color: rgba(14,158,131,.4); }
.sc-proc-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.sc-proc-no { font-size: 14px; font-weight: 700; font-family: 'JetBrains Mono', monospace; color: #4FD9BE; }
.sc-proc-icon { width: 48px; height: 48px; border-radius: 12px; background: rgba(14,158,131,.15); color: #4FD9BE; display: flex; align-items: center; justify-content: center; }
.sc-proc-card h3 { font-size: 18px; font-weight: 700; letter-spacing: -0.02em; }
.sc-proc-card p { font-size: 13.5px; line-height: 1.6; color: rgba(255,255,255,.65); margin-top: 10px; }
.sc-proc-arrow { position: absolute; top: 50%; right: -16px; transform: translateY(-50%); font-size: 20px; color: rgba(255,255,255,.25); z-index: 2; }
@media (max-width: 980px) { .sc-proc-grid { grid-template-columns: repeat(2, 1fr); } .sc-proc-arrow { display: none; } }
@media (max-width: 520px) { .sc-proc-grid { grid-template-columns: 1fr; } }

/* Formats */
.sc-formats { background: #FFFFFF; }
.sc-fmt-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.sc-fmt-cols { display: flex; flex-direction: column; gap: 16px; }
.sc-fmt-col { display: flex; align-items: center; gap: 20px; padding: 22px 26px; background: #F4F8F7; border-radius: 16px; }
.sc-fmt-group { font-size: 15px; font-weight: 700; color: var(--sc-deep); min-width: 120px; flex-shrink: 0; }
.sc-fmt-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.sc-fmt-tag { font-size: 13px; font-weight: 600; padding: 8px 14px; border-radius: 8px; background: #FFF; border: 1px solid rgba(14,158,131,.2); color: var(--sc-deep); }
@media (max-width: 860px) { .sc-fmt-grid { grid-template-columns: 1fr; gap: 36px; } }

/* Applications */
.sc-apps { background: #0A0A0A; color: #FFF; }
.sc-app-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 56px; }
.sc-app-card { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: 22px; overflow: hidden; display: flex; flex-direction: column; transition: transform .35s, border-color .3s; }
.sc-app-card:hover { transform: translateY(-5px); border-color: rgba(14,158,131,.4); }
.sc-app-img { position: relative; aspect-ratio: 16/10; overflow: hidden; background: #06241F; }
.sc-app-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s cubic-bezier(.16,1,.3,1); }
.sc-app-card:hover .sc-app-img img { transform: scale(1.06); }
.sc-app-tag { position: absolute; top: 14px; left: 14px; font-size: 11px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; padding: 5px 12px; border-radius: 999px; background: rgba(14,158,131,.9); color: #FFF; backdrop-filter: blur(8px); }
.sc-app-body { padding: 26px 26px 30px; }
.sc-app-body h3 { font-size: 19px; font-weight: 700; letter-spacing: -0.02em; }
.sc-app-body p { font-size: 13.5px; line-height: 1.6; color: rgba(255,255,255,.65); margin-top: 10px; }
@media (max-width: 980px) { .sc-app-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .sc-app-grid { grid-template-columns: 1fr; } }

/* CTA */
.sc-cta { background: #F4F8F7; padding-bottom: 130px; }
.sc-cta-block { border-radius: 32px; padding: 72px 56px; text-align: center; background: linear-gradient(135deg, #06241F 0%, #0A7A66 55%, #0E9E83 100%); color: #FFF; position: relative; overflow: hidden; }
.sc-cta-block::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 82% 12%, rgba(255,255,255,.2), transparent 50%); }
.sc-cta-block > * { position: relative; }
.sc-cta-block h2 { font-size: clamp(30px, 4vw, 48px); font-weight: 800; letter-spacing: -0.03em; line-height: 1.1; text-wrap: balance; }
.sc-cta-block p { font-size: 16px; color: rgba(255,255,255,.85); margin-top: 18px; max-width: 560px; margin-left: auto; margin-right: auto; }
.sc-cta-actions { display: flex; gap: 12px; justify-content: center; margin-top: 36px; flex-wrap: wrap; }
.sc-cta-pri { background: #FFF; color: var(--sc-deep); padding: 15px 28px; border-radius: 999px; font-size: 15px; font-weight: 700; transition: transform .2s; }
.sc-cta-pri:hover { transform: translateY(-2px); }
.sc-cta-sec { background: rgba(255,255,255,.16); color: #FFF; padding: 15px 28px; border-radius: 999px; font-size: 15px; font-weight: 600; }
.sc-cta-sec:hover { background: rgba(255,255,255,.24); }

/* Mood D (color) variant — 틸을 유지하되 블루를 가미 */
.sc-mood-color .sc-overview { background: linear-gradient(180deg, #EAF6F3 0%, #F0F6FC 100%); }
.sc-mood-color .sc-formats { background: linear-gradient(180deg, #FFFFFF 0%, #EFF6FB 100%); }
.sc-mood-color .sc-cta { background: linear-gradient(180deg, #F0F6FC 0%, #E8F0FE 100%); }

/* ============================================================
   ARTEC RAY II PRODUCT PAGE
   ============================================================ */
.ray-page { --ray: #E8491D; --ray-deep: #C5380F; background: #FFFFFF; color: #0A0A0A; min-height: 100vh; }
.ray-page .mono { font-family: 'JetBrains Mono', monospace; }

/* Sub-header */
.ray-subheader { position: fixed; top: 0; left: 0; right: 0; z-index: 150; background: rgba(255,255,255,0); transition: all .3s; }
.ray-subheader.is-scrolled { background: rgba(255,255,255,.82); backdrop-filter: blur(20px) saturate(180%); border-bottom: 1px solid rgba(0,0,0,.06); }
.ray-subheader-inner { max-width: var(--max-w); margin: 0 auto; height: 60px; padding: 0 32px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.ray-back { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 500; color: #1d1d1f; padding: 8px 14px; border-radius: 999px; transition: background .2s; }
.ray-back:hover { background: rgba(0,0,0,.05); }
.ray-subheader:not(.is-scrolled) .ray-back { color: #FFFFFF; background: rgba(255,255,255,.1); }
.ray-subheader:not(.is-scrolled) .ray-back:hover { background: rgba(255,255,255,.2); }
.ray-back-arrow { font-size: 16px; }
.ray-crumb { display: flex; align-items: center; gap: 10px; font-size: 13px; color: #86868B; }
.ray-crumb span:not(:last-child)::after { content: " ›"; margin-left: 2px; }
.ray-crumb-cur { font-weight: 600; color: var(--ray-deep); }
.ray-cta-btn { background: #0A0A0A; color: #FFF; padding: 9px 18px; border-radius: 999px; font-size: 13px; font-weight: 600; transition: transform .2s; }
.ray-cta-btn:hover { transform: translateY(-1px); }
@media (max-width: 700px) { .ray-crumb { display: none; } }

/* Hero */
.ray-hero { position: relative; overflow: hidden; padding: 140px 0 70px; background: linear-gradient(165deg, #1C1410 0%, #0A0A0A 60%); color: #FFF; }
.ray-hero::before { content: ""; position: absolute; top: -15%; right: -5%; width: 720px; height: 720px; background: radial-gradient(circle, rgba(232,73,29,.22), transparent 65%); filter: blur(50px); pointer-events: none; }
.ray-hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; position: relative; z-index: 2; }
.ray-series { display: inline-block; font-size: 13px; font-weight: 600; color: #FF8A5C; letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 18px; }
.ray-hero h1 { font-size: clamp(44px, 6vw, 84px); font-weight: 800; letter-spacing: -0.04em; line-height: 1; }
.ray-tagline { font-size: clamp(17px, 1.8vw, 22px); font-weight: 500; color: #FFF; margin-top: 22px; line-height: 1.4; letter-spacing: -0.01em; }
.ray-hero-body { font-size: 15.5px; line-height: 1.7; color: rgba(255,255,255,.68); margin-top: 20px; max-width: 560px; }
.ray-hero-actions { display: flex; align-items: stretch; gap: 12px; margin-top: 30px; flex-wrap: wrap; }
.ray-partner-inline { display: inline-flex; align-items: center; gap: 16px; padding: 12px 20px 12px 12px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: 16px; cursor: pointer; transition: background .2s, border-color .2s, transform .2s; }
.ray-partner-inline:hover { background: rgba(232,73,29,.12); border-color: rgba(232,73,29,.4); transform: translateY(-2px); }
.ray-partner-inline img { height: 48px; width: auto; border-radius: 8px; background: #FFF; padding: 4px; }
.ray-partner-inline-title { font-size: 15px; font-weight: 700; color: #FFF; }
.ray-partner-inline-sub { font-size: 12.5px; color: #FF8A5C; margin-top: 3px; font-weight: 600; }
.ray-brochure-btn { display: inline-flex; align-items: center; gap: 8px; padding: 0 22px; background: var(--ray); color: #FFF; border-radius: 16px; font-size: 14px; font-weight: 700; transition: background .2s, transform .2s; }
.ray-brochure-btn:hover { background: var(--ray-deep); transform: translateY(-2px); }
.ray-brochure-ico { font-size: 18px; }
.ray-hero-right { display: flex; flex-direction: column; gap: 18px; }
.ray-hero-visual { aspect-ratio: 1288/888; border-radius: 24px; overflow: hidden; background: linear-gradient(135deg, #2A1D16, #1C1410); box-shadow: 0 40px 80px rgba(0,0,0,.5); }
.ray-hero-visual img { width: 100%; height: 100%; object-fit: cover; }
.ray-quickspec { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); border-radius: 18px; padding: 22px 24px; }
.ray-quickspec-title { font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #FF8A5C; margin-bottom: 16px; }
.ray-quickspec-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px; }
.ray-qs-item { display: flex; flex-direction: column; gap: 3px; }
.ray-qs-k { font-size: 11.5px; color: rgba(255,255,255,.55); }
.ray-qs-v { font-size: 15px; font-weight: 700; color: #FFF; letter-spacing: -0.01em; }
.ray-hero-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 56px; padding-top: 40px; border-top: 1px solid rgba(255,255,255,.12); position: relative; z-index: 2; }
.ray-metric-num { font-size: clamp(28px, 3.4vw, 44px); font-weight: 800; letter-spacing: -0.02em; color: #FFF; }
.ray-metric-lbl { font-size: 13px; color: rgba(255,255,255,.6); margin-top: 6px; }
@media (max-width: 880px) { .ray-hero-grid { grid-template-columns: 1fr; gap: 36px; } .ray-hero-metrics { grid-template-columns: 1fr; gap: 18px; } .ray-quickspec-grid { grid-template-columns: 1fr 1fr; } }

/* Product Video */
.ray-video { background: #0A0A0A; color: #FFF; }
.ray-video-frame { position: relative; max-width: 980px; margin: 0 auto; aspect-ratio: 16/9; border-radius: 20px; overflow: hidden; box-shadow: 0 40px 90px rgba(0,0,0,.5); border: 1px solid rgba(255,255,255,.1); background: #000; }
.ray-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

/* Trust Band */
.ray-trust { padding: 70px 0; background: #F5F5F7; }
.ray-trust-card { display: grid; grid-template-columns: auto 1fr auto; gap: 40px; align-items: center; background: #FFF; border: 1px solid rgba(0,0,0,.07); border-radius: 28px; padding: 40px 44px; box-shadow: 0 24px 60px rgba(0,0,0,.06); position: relative; overflow: hidden; }
.ray-trust-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: linear-gradient(180deg, #E8491D, #FF8A5C); }
.ray-trust-badge img { width: 150px; height: auto; display: block; }
.ray-trust-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ray-deep); margin-bottom: 10px; }
.ray-trust-title { font-size: clamp(22px, 2.6vw, 32px); font-weight: 800; letter-spacing: -0.03em; line-height: 1.15; }
.ray-trust-body { font-size: 15px; color: #515154; line-height: 1.6; margin-top: 12px; max-width: 560px; }
.ray-trust-actions { margin-top: 20px; display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.ray-trust-view { display: inline-flex; align-items: center; gap: 8px; background: #0A0A0A; color: #FFF; padding: 12px 20px; border-radius: 999px; font-size: 14px; font-weight: 600; cursor: pointer; transition: transform .2s, background .2s; }
.ray-trust-view:hover { background: var(--ray-deep); transform: translateY(-2px); }
.ray-trust-doc-ico { font-size: 15px; }
.ray-trust-meta { font-size: 12px; color: #86868B; }
.ray-trust-thumb { position: relative; width: 140px; flex-shrink: 0; border-radius: 12px; overflow: hidden; border: 1px solid rgba(0,0,0,.1); cursor: pointer; box-shadow: 0 8px 24px rgba(0,0,0,.1); transition: transform .25s; padding: 0; background: #FFF; }
.ray-trust-thumb img { width: 100%; height: auto; display: block; }
.ray-trust-thumb:hover { transform: scale(1.04); }
.ray-trust-thumb-zoom { position: absolute; right: 8px; bottom: 8px; width: 28px; height: 28px; border-radius: 50%; background: rgba(10,10,10,.8); color: #FFF; display: flex; align-items: center; justify-content: center; font-size: 16px; backdrop-filter: blur(6px); }
@media (max-width: 980px) { .ray-trust-card { grid-template-columns: 1fr; gap: 24px; text-align: center; } .ray-trust-card::before { width: 100%; height: 5px; bottom: auto; } .ray-trust-badge img { margin: 0 auto; } .ray-trust-body { margin-left: auto; margin-right: auto; } .ray-trust-actions { align-items: center; } .ray-trust-thumb { margin: 0 auto; } }

/* Letter Modal */
.ray-modal { position: fixed; inset: 0; z-index: 1000; background: rgba(10,10,10,.82); backdrop-filter: blur(8px); display: flex; align-items: center; justify-content: center; padding: 32px; animation: rayFadeIn .25s ease; }
@keyframes rayFadeIn { from { opacity: 0; } to { opacity: 1; } }
.ray-modal-inner { position: relative; display: grid; grid-template-columns: auto 320px; gap: 0; max-width: 900px; max-height: 90vh; background: #FFF; border-radius: 20px; overflow: hidden; box-shadow: 0 40px 100px rgba(0,0,0,.5); animation: rayPop .3s cubic-bezier(.16,1,.3,1); }
@keyframes rayPop { from { transform: scale(.94); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.ray-modal-close { position: absolute; top: 14px; right: 14px; z-index: 3; width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.9); color: #0A0A0A; font-size: 16px; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 4px 12px rgba(0,0,0,.15); }
.ray-modal-close:hover { background: #FFF; }
.ray-modal-doc { background: #E8EAED; display: flex; align-items: center; justify-content: center; padding: 24px; overflow: auto; }
.ray-modal-doc img { max-width: 100%; max-height: calc(90vh - 48px); width: auto; height: auto; box-shadow: 0 8px 30px rgba(0,0,0,.18); border-radius: 4px; }
.ray-modal-side { padding: 40px 32px; display: flex; flex-direction: column; justify-content: center; background: #FFF; }
.ray-modal-badge { width: 120px; height: auto; margin-bottom: 24px; }
.ray-modal-title { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; }
.ray-modal-body { font-size: 14px; color: #515154; line-height: 1.6; margin-top: 14px; }
.ray-modal-meta { font-size: 12px; color: #86868B; margin-top: 20px; padding-top: 16px; border-top: 1px solid rgba(0,0,0,.08); }
.ray-modal-cta { display: inline-block; margin-top: 24px; background: var(--ray); color: #FFF; padding: 13px 22px; border-radius: 999px; font-size: 14px; font-weight: 700; text-align: center; transition: background .2s; }
.ray-modal-cta:hover { background: var(--ray-deep); }
@media (max-width: 760px) { .ray-modal-inner { grid-template-columns: 1fr; max-height: 92vh; overflow-y: auto; } .ray-modal-doc { padding: 16px; } .ray-modal-doc img { max-height: 60vh; } .ray-modal-side { padding: 28px 24px; } }

/* Sections */
.ray-section { padding: 100px 0; }
.ray-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--ray-deep); letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 16px; }
.ray-eyebrow::before { content: ""; width: 20px; height: 2px; background: var(--ray); }
.ray-eyebrow.light { color: #FF8A5C; }
.ray-eyebrow.light::before { background: #FF8A5C; }
.ray-title { font-size: clamp(30px, 4vw, 50px); font-weight: 700; letter-spacing: -0.03em; line-height: 1.1; text-wrap: balance; }

/* Overview */
.ray-overview { background: #FFFFFF; }
.ray-ov-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.ray-ov-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ray-ov-metric { background: #F5F5F7; border-radius: 16px; padding: 24px; }
.ray-ov-num { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; color: var(--ray-deep); }
.ray-ov-lbl { font-size: 12.5px; color: #515154; margin-top: 6px; line-height: 1.4; }
.ray-ov-price { grid-column: 1 / -1; background: #0A0A0A; color: #FFF; border-radius: 16px; padding: 22px 26px; display: flex; flex-direction: column; gap: 2px; }
.ray-ov-price span { font-size: 12px; color: rgba(255,255,255,.6); }
.ray-ov-price strong { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; }
.ray-ov-price small { font-size: 12px; color: rgba(255,255,255,.55); margin-top: 4px; }
@media (max-width: 880px) { .ray-ov-grid { grid-template-columns: 1fr; gap: 32px; } }

/* Highlights */
.ray-highlights { background: #F5F5F7; }
.ray-hl-row { display: grid; grid-template-columns: 1fr 1.1fr; gap: 56px; align-items: center; margin-bottom: 80px; }
.ray-hl-row:last-child { margin-bottom: 0; }
.ray-hl-row.rev .ray-hl-text { order: 2; }
.ray-hl-text h3 { font-size: clamp(24px, 2.8vw, 36px); font-weight: 700; letter-spacing: -0.03em; line-height: 1.15; }
.ray-hl-text p { font-size: 16px; color: #515154; line-height: 1.65; margin-top: 16px; }
.ray-hl-img { border-radius: 20px; overflow: hidden; aspect-ratio: 16/10; background: #16181D; box-shadow: 0 20px 50px rgba(0,0,0,.12); }
.ray-hl-img img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 880px) { .ray-hl-row, .ray-hl-row.rev { grid-template-columns: 1fr; gap: 28px; } .ray-hl-row.rev .ray-hl-text { order: 0; } }

/* Features */
.ray-features { background: #0A0A0A; color: #FFF; }
.ray-feat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 56px; }
.ray-feat-card { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: 20px; padding: 30px 28px; transition: transform .35s, background .3s, border-color .3s; }
.ray-feat-card:hover { transform: translateY(-4px); background: rgba(232,73,29,.1); border-color: rgba(232,73,29,.4); }
.ray-feat-ico { font-size: 30px; margin-bottom: 16px; }
.ray-feat-card h3 { font-size: 18px; font-weight: 700; letter-spacing: -0.01em; }
.ray-feat-card p { font-size: 13.5px; line-height: 1.6; color: rgba(255,255,255,.65); margin-top: 10px; }
@media (max-width: 900px) { .ray-feat-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .ray-feat-grid { grid-template-columns: 1fr; } }

/* Specs */
.ray-specs { background: #FFFFFF; }
.ray-spec-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; margin-top: 48px; border-top: 2px solid #0A0A0A; }
.ray-spec-row { display: grid; grid-template-columns: 160px 1fr; gap: 16px; padding: 18px 0; border-bottom: 1px solid rgba(0,0,0,.08); }
.ray-spec-k { font-size: 14px; font-weight: 600; color: var(--ray-deep); }
.ray-spec-v { font-size: 14.5px; color: #1d1d1f; line-height: 1.5; }
.ray-tables { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin-top: 64px; }
.ray-table-block h4 { font-size: 16px; font-weight: 700; margin-bottom: 16px; display: flex; align-items: baseline; gap: 8px; }
.ray-table-block h4 span { font-size: 12px; font-weight: 500; color: #86868B; }
.ray-table { border: 1px solid rgba(0,0,0,.1); border-radius: 14px; overflow: hidden; }
.ray-tr { display: grid; grid-template-columns: 1fr 1fr 1fr; }
.ray-tr > div { padding: 14px 18px; font-size: 14px; border-bottom: 1px solid rgba(0,0,0,.06); }
.ray-tr:last-child > div { border-bottom: none; }
.ray-th { background: #0A0A0A; }
.ray-th > div { color: #FFF; font-size: 12px; font-weight: 600; letter-spacing: 0.03em; text-transform: uppercase; }
.ray-tr:not(.ray-th) > div:first-child { font-weight: 700; color: var(--ray-deep); }
@media (max-width: 880px) { .ray-spec-grid { grid-template-columns: 1fr; gap: 0; } .ray-tables { grid-template-columns: 1fr; } }

/* Applications */
.ray-apps { background: #0A0A0A; color: #FFF; }
.ray-app-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 56px; }
.ray-app-card { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; transition: transform .35s, border-color .3s; }
.ray-app-card:hover { transform: translateY(-5px); border-color: rgba(232,73,29,.4); }
.ray-app-img { position: relative; aspect-ratio: 4/3; overflow: hidden; background: #1C1410; }
.ray-app-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s cubic-bezier(.16,1,.3,1); }
.ray-app-card:hover .ray-app-img img { transform: scale(1.07); }
.ray-app-tag { position: absolute; top: 12px; left: 12px; font-size: 12px; font-weight: 700; padding: 5px 12px; border-radius: 999px; background: rgba(232,73,29,.92); color: #FFF; backdrop-filter: blur(8px); }
.ray-app-desc { padding: 18px 20px 22px; font-size: 13px; line-height: 1.55; color: rgba(255,255,255,.72); }
@media (max-width: 1080px) { .ray-app-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .ray-app-grid { grid-template-columns: 1fr; } }

/* Software */
.ray-software { background: #F5F5F7; }
.ray-sw-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 56px; align-items: center; }
.ray-sw-list { margin-top: 32px; display: flex; flex-direction: column; gap: 16px; }
.ray-sw-item { background: #FFF; border: 1px solid rgba(0,0,0,.06); border-left: 3px solid var(--ray); border-radius: 12px; padding: 18px 22px; }
.ray-sw-name { font-size: 16px; font-weight: 700; }
.ray-sw-desc { font-size: 13.5px; color: #515154; line-height: 1.5; margin-top: 6px; }
.ray-fmt-card { background: #0A0A0A; color: #FFF; border-radius: 24px; padding: 32px; }
.ray-fmt-label { font-size: 12px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: rgba(255,255,255,.6); margin-bottom: 16px; }
.ray-fmt-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.ray-fmt-tag { font-size: 13px; font-weight: 600; padding: 8px 13px; border-radius: 8px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); color: #FFF; }
.ray-fmt-remote { margin-top: 24px; border-radius: 14px; overflow: hidden; }
.ray-fmt-remote img { width: 100%; height: auto; display: block; }
@media (max-width: 880px) { .ray-sw-grid { grid-template-columns: 1fr; gap: 36px; } }

/* CTA */
.ray-cta { background: #F5F5F7; padding-bottom: 130px; }
.ray-cta-block { border-radius: 32px; padding: 64px 56px; text-align: center; background: linear-gradient(135deg, #1C1410 0%, #0A0A0A 55%, #2A1D16 100%); color: #FFF; position: relative; overflow: hidden; }
.ray-cta-block::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 82% 14%, rgba(232,73,29,.28), transparent 50%); }
.ray-cta-block > * { position: relative; }
.ray-cta-badge { width: 96px; height: auto; margin: 0 auto 24px; background: #FFF; border-radius: 10px; padding: 6px; }
.ray-cta-block h2 { font-size: clamp(28px, 3.8vw, 46px); font-weight: 800; letter-spacing: -0.03em; line-height: 1.1; text-wrap: balance; }
.ray-cta-block p { font-size: 16px; color: rgba(255,255,255,.8); margin-top: 16px; max-width: 540px; margin-left: auto; margin-right: auto; }
.ray-cta-actions { display: flex; gap: 12px; justify-content: center; margin-top: 32px; flex-wrap: wrap; }
.ray-cta-pri { background: var(--ray); color: #FFF; padding: 15px 28px; border-radius: 999px; font-size: 15px; font-weight: 700; transition: transform .2s, background .2s; }
.ray-cta-pri:hover { background: var(--ray-deep); transform: translateY(-2px); }
.ray-cta-sec { background: rgba(255,255,255,.12); color: #FFF; padding: 15px 28px; border-radius: 999px; font-size: 15px; font-weight: 600; cursor: pointer; }
.ray-cta-sec:hover { background: rgba(255,255,255,.2); }
.ray-cta-source { font-size: 11px; color: rgba(255,255,255,.4); margin-top: 28px; }

/* Mood D (color) variant */
.ray-mood-color .ray-trust { background: linear-gradient(180deg, #EEF3FC 0%, #F5F8FD 100%); }
.ray-mood-color .ray-highlights { background: linear-gradient(180deg, #F5F8FD 0%, #EEF3FC 100%); }
.ray-mood-color .ray-software { background: linear-gradient(180deg, #EEF3FC 0%, #F5F8FD 100%); }
.ray-mood-color .ray-cta { background: linear-gradient(180deg, #F5F8FD 0%, #E8F0FE 100%); }

/* ===================================================================
   문의 모달 (BWInquiryModal) — 전역 공통
   =================================================================== */
.iq-overlay {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(10, 18, 38, 0.55);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  display: flex; align-items: flex-start; justify-content: center;
  padding: 6vh 20px 40px; overflow-y: auto;
  animation: iqFade .22s ease both;
  font-family: "Noto Sans KR", "Inter", system-ui, sans-serif;
}
@keyframes iqFade { from { opacity: 0; } to { opacity: 1; } }
.iq-modal {
  position: relative;
  width: 100%; max-width: 560px;
  background: #FFFFFF; border-radius: 22px;
  box-shadow: 0 30px 80px -20px rgba(14, 47, 115, 0.45), 0 4px 14px rgba(0,0,0,.06);
  padding: 40px 40px 36px;
  animation: iqRise .28s cubic-bezier(.2,.8,.25,1) both;
}
@keyframes iqRise { from { opacity: 0; transform: translateY(16px) scale(.98); } to { opacity: 1; transform: none; } }
.iq-close {
  position: absolute; top: 16px; right: 16px;
  width: 36px; height: 36px; border: none; border-radius: 50%;
  background: #F0F2F5; color: #5b6473; font-size: 22px; line-height: 1;
  cursor: pointer; transition: background .18s, color .18s; display: grid; place-items: center;
}
.iq-close:hover { background: #E4E7EC; color: #0A0A0A; }

.iq-head { margin-bottom: 24px; }
.iq-eyebrow {
  font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  color: var(--brand); margin-bottom: 8px;
}
.iq-title { font-size: 28px; font-weight: 800; letter-spacing: -.02em; color: #0A0A0A; }
.iq-sub { font-size: 14px; line-height: 1.65; color: #6b7280; margin-top: 10px; }
.iq-subject-tag {
  display: inline-block; margin-right: 8px; padding: 3px 11px; border-radius: 999px;
  background: var(--brand-soft); color: var(--brand-deep); font-size: 12px; font-weight: 700;
  vertical-align: middle;
}

.iq-form { display: flex; flex-direction: column; gap: 16px; }
.iq-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.iq-field { display: flex; flex-direction: column; gap: 7px; }
.iq-label { font-size: 13px; font-weight: 600; color: #344054; }
.iq-label em { color: var(--brand); font-style: normal; }
.iq-field input, .iq-field textarea {
  width: 100%; border: 1.5px solid #E1E5EB; border-radius: 12px;
  padding: 12px 14px; font-size: 14.5px; color: #0A0A0A; background: #FBFCFD;
  font-family: inherit; transition: border-color .16s, box-shadow .16s, background .16s;
}
.iq-field textarea { resize: vertical; min-height: 110px; line-height: 1.55; }
.iq-field input::placeholder, .iq-field textarea::placeholder { color: #aeb4bd; }
.iq-field input:focus, .iq-field textarea:focus {
  outline: none; border-color: var(--brand); background: #FFF;
  box-shadow: 0 0 0 4px rgba(26,79,184,.12);
}

.iq-agree {
  display: flex; gap: 11px; align-items: flex-start;
  background: var(--brand-tint); border: 1px solid var(--brand-soft);
  border-radius: 12px; padding: 14px 16px; cursor: pointer;
}
.iq-agree input { margin-top: 3px; width: 17px; height: 17px; accent-color: var(--brand); flex-shrink: 0; cursor: pointer; }
.iq-agree > span { display: flex; flex-direction: column; gap: 5px; }
.iq-agree strong { font-size: 13.5px; font-weight: 700; color: #1f2937; }
.iq-agree strong em { color: var(--brand); font-style: normal; }
.iq-privacy { font-size: 11.5px; line-height: 1.55; color: #8a909a; }

.iq-error {
  font-size: 13px; line-height: 1.5; color: #b42318;
  background: #FEF3F2; border: 1px solid #FECDCA; border-radius: 10px; padding: 11px 14px;
}

.iq-submit {
  margin-top: 4px; width: 100%;
  background: var(--brand); color: #FFF; border: none;
  padding: 15px 28px; border-radius: 999px;
  font-size: 15.5px; font-weight: 700; font-family: inherit; cursor: pointer;
  transition: background .2s, transform .15s, box-shadow .2s;
  box-shadow: 0 8px 20px -8px rgba(26,79,184,.6);
}
.iq-submit:hover:not(:disabled) { background: var(--brand-deep); transform: translateY(-1px); }
.iq-submit:disabled { background: #C5CCD6; box-shadow: none; cursor: not-allowed; }

.iq-done { text-align: center; padding: 14px 8px 6px; }
.iq-done-mark {
  width: 64px; height: 64px; margin: 0 auto 20px; border-radius: 50%;
  background: var(--brand-soft); color: var(--brand);
  display: grid; place-items: center; font-size: 32px; font-weight: 700;
  animation: iqPop .4s cubic-bezier(.2,1.2,.4,1) both;
}
@keyframes iqPop { from { transform: scale(.4); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.iq-done h3 { font-size: 23px; font-weight: 800; color: #0A0A0A; letter-spacing: -.02em; }
.iq-done p { font-size: 14.5px; line-height: 1.7; color: #6b7280; margin-top: 12px; }
.iq-demo-note {
  margin-top: 20px; text-align: left; font-size: 12.5px; line-height: 1.6; color: #5b6473;
  background: #FFF8EC; border: 1px solid #F5E2BC; border-radius: 12px; padding: 14px 16px;
}
.iq-demo-note strong { color: #92651a; }
.iq-demo-note code {
  background: #F0EBDD; padding: 1px 6px; border-radius: 5px; font-size: 11.5px;
  font-family: "JetBrains Mono", monospace; color: #6b4f1a;
}

@media (max-width: 560px) {
  .iq-modal { padding: 32px 22px 28px; border-radius: 18px; }
  .iq-row { grid-template-columns: 1fr; }
  .iq-title { font-size: 24px; }
}

/* ===================================================================
   커뮤니티 (공지 / 교육 / 문의)
   =================================================================== */
.cm-page { background: #FFFFFF; color: #0A0A0A; min-height: 100vh; }

/* Hero + 탭 */
.cm-hero { padding: 140px 0 0; background: linear-gradient(180deg, #F5F8FD 0%, #FFFFFF 100%); }
.cm-eyebrow {
  font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--brand); margin-bottom: 14px;
}
.cm-h1 { font-size: clamp(38px, 5vw, 60px); font-weight: 800; letter-spacing: -.03em; line-height: 1.05; }
.cm-hero-sub { font-size: clamp(16px, 1.6vw, 19px); color: #6b7280; margin-top: 18px; }
.cm-tabs { display: flex; gap: 6px; margin-top: 48px; }
.cm-tab {
  padding: 14px 24px; font-size: 15px; font-weight: 600; color: #6b7280;
  border-bottom: 2px solid transparent; transition: color .18s, border-color .18s;
}
.cm-tab:hover { color: #0A0A0A; }
.cm-tab.is-active { color: var(--brand); border-bottom-color: var(--brand); }

.cm-body { padding: 56px 0 110px; min-height: 46vh; }
.cm-list-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 24px; }
.cm-sec-title { font-size: 24px; font-weight: 800; letter-spacing: -.02em; }
.cm-count { font-size: 14px; color: #86868B; font-weight: 500; }

/* 공지 목록 */
.cm-list { border-top: 2px solid #0A0A0A; }
.cm-row {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 22px 8px; border-bottom: 1px solid #E8EBF0; cursor: pointer;
  transition: background .15s;
}
.cm-row:hover { background: var(--brand-tint); }
.cm-row.pinned { background: #FBFCFF; }
.cm-row-main { display: flex; align-items: center; gap: 10px; min-width: 0; }
.cm-pin { font-size: 13px; color: var(--brand); font-weight: 700; flex-shrink: 0; }
.cm-row-title {
  font-size: 16.5px; font-weight: 600; color: #1d1d1f; letter-spacing: -.01em;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.cm-row:hover .cm-row-title { color: var(--brand); }
.cm-row-date { font-size: 14px; color: #98a0ab; font-variant-numeric: tabular-nums; flex-shrink: 0; }

/* 공지 상세 */
.cm-detail { max-width: 820px; }
.cm-back {
  font-size: 14px; font-weight: 600; color: #6b7280; margin-bottom: 28px;
  transition: color .15s;
}
.cm-back:hover { color: var(--brand); }
.cm-detail-meta { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.cm-detail-date { font-size: 14px; color: #98a0ab; font-variant-numeric: tabular-nums; }
.cm-detail-title {
  font-size: clamp(26px, 3.2vw, 36px); font-weight: 800; letter-spacing: -.03em;
  line-height: 1.25; padding-bottom: 28px; border-bottom: 1px solid #E8EBF0;
}
.cm-detail-body {
  font-size: 16.5px; line-height: 1.85; color: #3a4150; white-space: pre-line;
  padding: 36px 0 44px;
}
.cm-detail-img {
  width: 100%; max-width: 720px; border-radius: 14px; margin: 28px 0 4px;
  border: 1px solid #EAEDF2;
}
.cm-empty { padding: 48px 8px; text-align: center; color: #98a0ab; font-size: 15px; }
.cm-detail-foot { border-top: 1px solid #E8EBF0; padding-top: 28px; }
.cm-back-btn {
  padding: 12px 24px; border-radius: 999px; background: #F0F2F5; color: #0A0A0A;
  font-size: 14px; font-weight: 600; transition: background .15s;
}
.cm-back-btn:hover { background: #E4E7EC; }

/* 교육 영상 */
.cm-yt-channel { font-size: 14px; font-weight: 600; color: var(--brand); }
.cm-yt-channel:hover { color: var(--brand-deep); }
.cm-video-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.cm-video-card {
  display: flex; flex-direction: column; border-radius: 16px; overflow: hidden;
  background: #FFF; border: 1px solid #EAEDF2; transition: transform .2s, box-shadow .2s, border-color .2s;
}
.cm-video-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -18px rgba(14,47,115,.32); border-color: #D6DEEA; }
.cm-video-thumb { position: relative; aspect-ratio: 16 / 9; background: #0A0A0A; overflow: hidden; }
.cm-video-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s, opacity .2s; }
.cm-video-card:hover .cm-video-thumb img { transform: scale(1.05); opacity: .9; }
.cm-play {
  position: absolute; inset: 0; margin: auto; width: 58px; height: 58px; border-radius: 50%;
  background: rgba(255,255,255,.92); display: grid; place-items: center;
  box-shadow: 0 6px 18px rgba(0,0,0,.28); transition: transform .2s, background .2s;
}
.cm-video-card:hover .cm-play { transform: scale(1.08); background: #FF0000; }
.cm-play-tri {
  width: 0; height: 0; margin-left: 4px;
  border-top: 11px solid transparent; border-bottom: 11px solid transparent;
  border-left: 18px solid #FF0000; transition: border-left-color .2s;
}
.cm-video-card:hover .cm-play-tri { border-left-color: #FFF; }
.cm-video-meta { padding: 18px 20px 22px; }
.cm-video-title { font-size: 16px; font-weight: 700; color: #1d1d1f; line-height: 1.4; letter-spacing: -.01em; }
.cm-video-go { font-size: 13px; font-weight: 600; color: var(--brand); margin-top: 12px; }

/* 블로그 카드 (네이버 블로그) */
.cm-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.cm-blog-card {
  display: flex; flex-direction: column; border-radius: 16px; overflow: hidden;
  background: #FFF; border: 1px solid #EAEDF2; transition: transform .2s, box-shadow .2s, border-color .2s;
  text-decoration: none; color: inherit;
}
.cm-blog-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -18px rgba(14,47,115,.32); border-color: #D6DEEA; }
.cm-blog-thumb {
  position: relative; aspect-ratio: 1 / 1; overflow: hidden;
  background: linear-gradient(135deg, var(--brand) 0%, var(--brand-deep, #0E2F73) 100%);
}
.cm-blog-ph {
  position: absolute; inset: 0; display: flex; flex-direction: column;
  align-items: flex-start; justify-content: center; gap: 12px;
  padding: 28px 26px; text-align: left;
}
.cm-blog-ph-kicker {
  font-family: 'Inter', sans-serif; font-size: 11px; font-weight: 800; letter-spacing: .16em;
  color: rgba(255,255,255,.65);
}
.cm-blog-ph-title {
  font-size: 20px; font-weight: 800; letter-spacing: -.02em; line-height: 1.32; color: #FFFFFF;
  display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
}
.cm-blog-thumb img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  transition: transform .3s;
}
.cm-blog-card:hover .cm-blog-thumb img { transform: scale(1.04); }
.cm-blog-meta { padding: 16px 20px 20px; display: flex; flex-direction: column; flex: 1; }
.cm-blog-date { font-size: 12.5px; font-weight: 600; color: #98a0ab; letter-spacing: .01em; }
.cm-blog-excerpt {
  font-size: 14px; line-height: 1.6; color: #4b5563; margin-top: 8px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.cm-blog-go { font-size: 13px; font-weight: 600; color: var(--brand); margin-top: auto; padding-top: 14px; }

.cm-yt-cta {
  margin-top: 56px; display: flex; align-items: center; justify-content: space-between; gap: 28px;
  background: #0A0A0A; color: #FFF; border-radius: 20px; padding: 38px 44px; flex-wrap: wrap;
}
.cm-yt-cta-title { font-size: 22px; font-weight: 800; letter-spacing: -.02em; }
.cm-yt-cta-sub { font-size: 14.5px; color: rgba(255,255,255,.62); margin-top: 8px; }
.cm-yt-btn {
  flex-shrink: 0; background: #FF0000; color: #FFF; padding: 14px 26px; border-radius: 999px;
  font-size: 15px; font-weight: 700; transition: background .2s, transform .15s;
}
.cm-yt-btn:hover { background: #d90000; transform: translateY(-1px); }

/* 문의 페이지 */
.cm-inq-grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 56px; align-items: start; }
.cm-inq-info { position: sticky; top: 120px; }
.cm-inq-lead { font-size: 15px; line-height: 1.7; color: #6b7280; margin-top: 16px; }
.cm-inq-contact { margin-top: 32px; display: flex; flex-direction: column; gap: 18px; }
.cm-inq-contact > div { display: grid; grid-template-columns: 56px 1fr; gap: 14px; align-items: start; }
.cm-inq-contact dt { font-size: 13px; font-weight: 700; color: var(--brand); padding-top: 1px; }
.cm-inq-contact dd { font-size: 14.5px; line-height: 1.6; color: #344054; }
.cm-inq-formwrap {
  background: #FFF; border: 1px solid #EAEDF2; border-radius: 20px; padding: 34px 34px 32px;
  box-shadow: 0 18px 50px -28px rgba(14,47,115,.28);
}
.cm-inq-done { text-align: center; padding: 18px 6px; }
.cm-inq-done h3 { font-size: 22px; font-weight: 800; color: #0A0A0A; letter-spacing: -.02em; }
.cm-inq-done > p { font-size: 14.5px; line-height: 1.7; color: #6b7280; margin-top: 12px; }

@media (max-width: 900px) {
  .cm-video-grid { grid-template-columns: 1fr 1fr; }
  .cm-blog-grid { grid-template-columns: 1fr 1fr; }
  .cm-inq-grid { grid-template-columns: 1fr; gap: 36px; }
  .cm-inq-info { position: static; }
}
@media (max-width: 560px) {
  .cm-hero { padding: 120px 0 0; }
  .cm-tabs { overflow-x: auto; }
  .cm-tab { padding: 12px 16px; white-space: nowrap; }
  .cm-video-grid { grid-template-columns: 1fr; }
  .cm-blog-grid { grid-template-columns: 1fr; }
  .cm-yt-cta { padding: 30px 26px; }
  .cm-inq-formwrap { padding: 26px 20px; }
}

/* ============================================================
   한글과컴퓨터 (HANCOM) PAGES
   ============================================================ */
.hc-page {
  --hc: #2563EB;
  --hc-deep: #1D4ED8;
  --hc-soft: #EFF6FF;
  --hc-tint: #F0F7FF;
  --ad: var(--hc);
  --ad-deep: var(--hc-deep);
}

/* 공통 토큰 재정의 */
.hc-page .ad-eyebrow { color: var(--hc-deep); }
.hc-page .ad-eyebrow::before { background: var(--hc); }
.hc-crumb-cur { color: var(--hc-deep) !important; }
.hc-cta-btn-header { background: var(--hc) !important; color: #FFF !important; }
.hc-cta-btn-header:hover { opacity: .88; }
.hc-accent {
  background: linear-gradient(135deg, #3B82F6, #1D4ED8);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* 칩바 — Hancom 파란 톤 */
.hc-chipbar .hc-chip {
  background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.18);
  color: rgba(255,255,255,.85);
}
.hc-chipbar .hc-chip-ready:hover {
  background: rgba(59,130,246,.2); border-color: rgba(59,130,246,.55); color: #FFF;
  transform: translateY(-2px);
}
.hc-chipbar .hc-chip-active {
  background: var(--hc); border-color: var(--hc); color: #FFF; cursor: default;
  box-shadow: 0 8px 20px rgba(37,99,235,.35);
}

/* 효과 카드 호버 */
.hc-effect-card:hover { border-color: rgba(37,99,235,.3) !important; }
.hc-effect-num { color: var(--hc) !important; }

/* 도입 대상 카드 */
.hc-target-card { border-top: 3px solid var(--hc) !important; }
.hc-target-label { color: var(--hc-deep) !important; }

/* fitem border */
.hc-fitem { border-left-color: var(--hc) !important; }

/* ── 브랜드 히어로 ─────────────────────────────────────── */
.hc-brand-hero {
  background: linear-gradient(160deg, #0A1F5C 0%, #0E2F73 55%, #1A4FB8 100%);
  color: #FFF;
  padding: 140px 0 90px;
  position: relative; overflow: hidden;
}
.hc-brand-hero::before {
  content: ""; position: absolute; top: -30%; right: -8%;
  width: 700px; height: 700px;
  background: radial-gradient(circle, rgba(59,130,246,.25), transparent 65%);
  filter: blur(50px); pointer-events: none;
}

.hc-brand-head { max-width: 700px; margin-bottom: 64px; position: relative; z-index: 2; }
.hc-brand-logo-row {
  display: inline-flex; align-items: center; gap: 12px;
  font-size: 17px; font-weight: 700; margin-bottom: 24px; color: rgba(255,255,255,.9);
}
.hc-brand-mark-lg {
  width: 36px; height: 36px; border-radius: 10px;
  background: var(--hc); color: #FFF;
  display: flex; align-items: center; justify-content: center;
  font-weight: 900; font-size: 20px; font-family: 'Noto Sans KR', sans-serif;
  box-shadow: 0 8px 24px rgba(37,99,235,.4);
}
.hc-brand-name-ko { letter-spacing: -0.01em; }
.hc-brand-head h1 {
  font-size: clamp(36px, 5vw, 64px); font-weight: 800;
  letter-spacing: -0.04em; line-height: 1.06; text-wrap: balance;
}
.hc-brand-head p {
  font-size: 17px; color: rgba(255,255,255,.7); line-height: 1.7; margin-top: 20px;
}

/* 제품 카드 그리드 */
.hc-brand-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
  position: relative; z-index: 2;
}
.hc-brand-card {
  background: #FFF; border: 1px solid rgba(255,255,255,.0);
  border-radius: 22px; padding: 28px 26px;
  display: flex; flex-direction: column; gap: 0;
  text-align: left; cursor: pointer; color: #1d1d1f;
  box-shadow: 0 4px 20px rgba(0,0,0,.18);
  transition: background .25s, border-color .25s, transform .3s, box-shadow .3s;
}
.hc-brand-card:hover {
  background: #FFF; border-color: rgba(37,99,235,.3);
  transform: translateY(-5px); box-shadow: 0 24px 50px rgba(0,0,0,.28);
}
.hc-license-entry-card {
  border: 2px dashed rgba(37,99,235,.25);
}
.hc-license-entry-card:hover {
  border-style: solid; border-color: rgba(37,99,235,.5);
}
.hc-brand-card-top {
  display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px;
}
.hc-product-badge {
  font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  background: #EFF6FF; color: #2563EB;
  padding: 5px 12px; border-radius: 999px;
}
.hc-badge-license {
  background: #F5F5F7; color: #515154;
}
.hc-card-arrow { font-size: 18px; color: #BFBFBF; transition: transform .2s; }
.hc-brand-card:hover .hc-card-arrow { transform: translateX(4px); color: #2563EB; }
.hc-brand-card-name { font-size: 20px; font-weight: 700; letter-spacing: -0.02em; margin-bottom: 10px; color: #1d1d1f; }
.hc-brand-card-desc { font-size: 13.5px; color: #515154; line-height: 1.55; flex-grow: 1; }
.hc-brand-card-footer {
  margin-top: auto; padding-top: 22px; font-size: 13px; font-weight: 600; color: #2563EB;
}

/* 신뢰 지표 */
.hc-trust-row {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
  margin-top: 60px; padding-top: 48px;
  border-top: 1px solid rgba(255,255,255,.1);
  position: relative; z-index: 2;
}
.hc-trust-item { text-align: center; }
.hc-trust-val {
  font-size: clamp(22px, 2.5vw, 32px); font-weight: 800; letter-spacing: -0.03em;
  color: #FFF; line-height: 1;
}
.hc-trust-lbl { font-size: 13px; color: rgba(255,255,255,.6); margin-top: 8px; line-height: 1.4; }

@media (max-width: 1080px) { .hc-brand-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) {
  .hc-brand-grid { grid-template-columns: 1fr; }
  .hc-trust-row { grid-template-columns: repeat(2, 1fr); gap: 16px; }
}

/* ── 제품 히어로 (공통) ───────────────────────────────── */
.hc-hero {
  background: linear-gradient(160deg, #0A1F5C 0%, #0E2F73 60%, #16181D 100%) !important;
}
.hc-hero::before {
  background: radial-gradient(circle, rgba(59,130,246,.22), transparent 65%) !important;
}
.hc-brand-mark-sm {
  width: 28px; height: 28px; border-radius: 7px;
  background: var(--hc); color: #FFF;
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 900; font-size: 16px; font-family: 'Noto Sans KR', sans-serif;
}
.hc-tag-num { color: var(--hc) !important; }

/* 한컴오피스 비주얼 박스 */
.hc-office-visual {
  width: 100%; height: 100%; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 24px; padding: 36px;
}
.hc-office-suite-label {
  font-size: 13px; font-weight: 700; color: rgba(255,255,255,.5);
  letter-spacing: 0.06em; text-transform: uppercase;
}
.hc-office-apps-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; width: 100%;
}
.hc-office-app-card {
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px; padding: 16px 12px;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  transition: background .2s, border-color .2s;
}
.hc-office-app-card:hover { background: rgba(37,99,235,.2); border-color: rgba(59,130,246,.4); }
.hc-app-initial {
  width: 36px; height: 36px; border-radius: 10px;
  background: var(--hc); color: #FFF;
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 18px; font-family: 'Noto Sans KR', sans-serif;
}
.hc-app-name { font-size: 12px; font-weight: 600; color: rgba(255,255,255,.8); }

/* 한글 비주얼 박스 */
.hc-hwp-visual {
  width: 100%; height: 100%; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 16px; padding: 40px;
}
.hc-hwp-icon-big {
  width: 80px; height: 80px; border-radius: 22px;
  background: linear-gradient(135deg, #2563EB, #1D4ED8);
  color: #FFF; display: flex; align-items: center; justify-content: center;
  font-weight: 900; font-size: 42px; font-family: 'Noto Sans KR', sans-serif;
  box-shadow: 0 20px 50px rgba(37,99,235,.5);
}
.hc-hwp-visual-name {
  font-size: 24px; font-weight: 800; color: #FFF; letter-spacing: -0.03em; margin-top: 4px;
}
.hc-hwp-visual-sub { font-size: 14px; color: rgba(255,255,255,.55); }
.hc-hwp-badges { display: flex; gap: 8px; margin-top: 8px; }
.hc-hwp-badge-chip {
  font-size: 11px; font-weight: 700; padding: 5px 12px; border-radius: 999px;
  background: rgba(37,99,235,.25); color: #93C5FD; border: 1px solid rgba(59,130,246,.35);
}

/* 한컴독스 비주얼 */
.hc-docs-visual-card {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14);
  border-radius: 22px; padding: 32px; width: 100%; display: flex; flex-direction: column; gap: 20px;
}
.hc-docs-visual-head {
  display: flex; align-items: center; gap: 12px;
  font-size: 18px; font-weight: 700; color: #FFF;
}
.hc-docs-visual-title { letter-spacing: -0.02em; }
.hc-docs-includes-list { display: flex; flex-direction: column; gap: 12px; }
.hc-docs-inc-row {
  display: flex; align-items: center; gap: 12px;
  font-size: 14px; color: rgba(255,255,255,.8); font-weight: 500;
}
.hc-docs-check {
  width: 22px; height: 22px; border-radius: 50%;
  background: rgba(37,99,235,.3); color: #93C5FD;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 800; flex-shrink: 0;
}

/* ── 경쟁 비교표 ──────────────────────────────────────── */
.hc-compare-section { background: #0A0A0A; color: #FFF; }
.hc-compare-section .ad-eyebrow { color: #60A5FA !important; }
.hc-compare-section .ad-eyebrow::before { background: #60A5FA !important; }
.hc-compare-section .ad-title { color: #FFF; }

.hc-compare-wrap { margin-top: 48px; border-radius: 20px; overflow: hidden; border: 1px solid rgba(255,255,255,.1); }
.hc-compare-head, .hc-compare-row, .hc-compare-verdict-row {
  display: grid; grid-template-columns: 180px 1fr 1fr 1fr; align-items: stretch;
}
.hc-compare-head {
  background: rgba(255,255,255,.04);
  font-size: 12px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;
  color: rgba(255,255,255,.5);
}
.hc-compare-row { border-top: 1px solid rgba(255,255,255,.08); }
.hc-compare-col-item, .hc-compare-col {
  padding: 18px 22px; font-size: 14px; line-height: 1.5;
}
.hc-compare-col-item { font-weight: 600; color: rgba(255,255,255,.6); font-size: 13px; }
.hc-compare-label { font-weight: 700; color: #FFF; font-size: 14px; }
.hc-col-hancom {
  background: rgba(37,99,235,.12); border-left: 2px solid var(--hc); border-right: 2px solid var(--hc);
}
.hc-compare-winner { font-weight: 600; color: #93C5FD; }
.hc-compare-other { color: rgba(255,255,255,.45); }
.hc-compare-verdict-row { border-top: 1px solid rgba(255,255,255,.1); }
.hc-verdict { font-size: 12px; font-weight: 700; padding: 14px 22px; color: rgba(255,255,255,.35); font-style: italic; }
.hc-verdict-win { color: #93C5FD !important; font-style: normal; }

@media (max-width: 860px) {
  .hc-compare-head, .hc-compare-row, .hc-compare-verdict-row { grid-template-columns: 1fr; }
  .hc-compare-col-item { background: rgba(255,255,255,.04); font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; padding: 12px 20px; }
  .hc-col-hancom { border-left: none; border-right: none; border-top: 2px solid var(--hc); }
}

/* ── 한컴독스 핵심 기능 그리드 ───────────────────────── */
.hc-docs-features-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 56px;
}
.hc-docs-feature-card {
  background: #FFF; border: 1px solid rgba(0,0,0,.07); border-radius: 20px; padding: 28px 24px;
  transition: transform .3s, box-shadow .3s, border-color .3s;
}
.hc-docs-feature-card:hover {
  transform: translateY(-4px); box-shadow: 0 20px 44px rgba(0,0,0,.08);
  border-color: rgba(37,99,235,.25);
}
.hc-docs-feature-icon { font-size: 28px; margin-bottom: 16px; }
.hc-docs-feature-title { font-size: 18px; font-weight: 700; letter-spacing: -0.02em; }
.hc-docs-feature-desc { font-size: 13.5px; color: #515154; line-height: 1.6; margin-top: 10px; }

/* 독스 includes 카드 */
.hc-docs-includes-card {
  background: #FFF; border: 1px solid rgba(0,0,0,.06); border-radius: 20px; padding: 28px 30px;
  display: flex; flex-direction: column; gap: 14px;
}
.hc-docs-inc-item {
  display: flex; align-items: center; gap: 12px; font-size: 15px; font-weight: 500;
}
.hc-inc-checkmark {
  width: 22px; height: 22px; border-radius: 50%; background: var(--hc-soft); color: var(--hc);
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 800; flex-shrink: 0;
}
.hc-docs-target-note { margin-top: 6px; padding-top: 18px; border-top: 1px solid rgba(0,0,0,.07); }

@media (max-width: 1080px) { .hc-docs-features-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 580px) { .hc-docs-features-grid { grid-template-columns: 1fr; } }

/* ── 라이선스 구매 안내 히어로 ───────────────────────── */
.hc-license-hero {
  background: linear-gradient(160deg, #0A1F5C 0%, #1A4FB8 100%);
  color: #FFF; padding: 140px 0 90px; position: relative; overflow: hidden;
}
.hc-license-hero::before {
  content: ""; position: absolute; top: -20%; right: -10%;
  width: 600px; height: 600px;
  background: radial-gradient(circle, rgba(59,130,246,.25), transparent 65%);
  filter: blur(40px); pointer-events: none;
}
.hc-license-hero-inner { max-width: 760px; position: relative; z-index: 2; }
.hc-license-hero-title {
  font-size: clamp(36px, 5vw, 60px); font-weight: 800;
  letter-spacing: -0.04em; line-height: 1.06; margin-top: 16px; text-wrap: balance;
}
.hc-license-hero-body { font-size: 17px; color: rgba(255,255,255,.72); line-height: 1.7; margin-top: 20px; }
.hc-license-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }
.hc-license-nav-chip {
  font-size: 13px; font-weight: 600; padding: 10px 20px; border-radius: 999px;
  background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); color: #FFF;
  transition: background .2s, transform .2s;
}
.hc-license-nav-chip:hover { background: rgba(255,255,255,.18); transform: translateY(-2px); }

/* ── 라이선스 카드 그리드 ─────────────────────────────── */
.hc-license-section { background: #F5F5F7; }
.hc-license-grid {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; align-items: stretch;
}
.hc-lic-card {
  background: #FFF; border: 1px solid rgba(0,0,0,.07); border-radius: 20px;
  padding: 26px 22px; position: relative;
  display: flex; flex-direction: column;
  transition: transform .3s, box-shadow .3s;
}
.hc-lic-card:hover { transform: translateY(-4px); box-shadow: 0 20px 50px rgba(0,0,0,.09); }
.hc-lic-highlight {
  border: 2px solid var(--hc); box-shadow: 0 24px 60px rgba(37,99,235,.15);
}
.hc-lic-rec {
  position: absolute; top: -13px; right: 20px;
  background: var(--hc); color: #FFF; font-size: 11px; font-weight: 700;
  padding: 4px 14px; border-radius: 999px;
}
.hc-lic-name { font-size: 16px; font-weight: 800; letter-spacing: -0.02em; }
.hc-lic-target { font-size: 12px; color: #86868B; margin-top: 6px; line-height: 1.45; }
.hc-lic-divider { height: 1px; background: rgba(0,0,0,.08); margin: 18px 0; }
.hc-lic-meta { display: flex; flex-direction: column; gap: 10px; }
.hc-lic-meta-row { display: flex; flex-direction: column; gap: 2px; }
.hc-lic-key { font-size: 10px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: #86868B; }
.hc-lic-val { font-size: 14px; font-weight: 700; color: #1d1d1f; }
.hc-lic-license-note {
  margin-top: 14px; font-size: 12px; color: #515154; line-height: 1.5;
  background: #F5F5F7; border-radius: 10px; padding: 10px 12px;
}
.hc-lic-highlight .hc-lic-license-note { background: var(--hc-soft); color: var(--hc-deep); }
.hc-lic-includes { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; flex-grow: 1; }
.hc-lic-inc-row { display: flex; align-items: flex-start; gap: 8px; font-size: 12.5px; color: #515154; line-height: 1.4; }
.hc-lic-btn {
  margin-top: auto; padding-top: 20px; width: 100%; padding: 12px 0; border-radius: 12px;
  font-size: 14px; font-weight: 700; transition: background .2s, transform .15s;
  flex-shrink: 0;
}
.hc-lic-btn-sec {
  background: #F5F5F7; color: #1d1d1f;
}
.hc-lic-btn-sec:hover { background: #ECEDF0; }
.hc-lic-btn-pri {
  background: var(--hc); color: #FFF;
  box-shadow: 0 8px 24px rgba(37,99,235,.3);
}
.hc-lic-btn-pri:hover { background: var(--hc-deep); transform: translateY(-1px); }

@media (max-width: 1200px) { .hc-license-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 780px) { .hc-license-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .hc-license-grid { grid-template-columns: 1fr; } }

/* ── 라이선스 비교표 ──────────────────────────────────── */
.hc-lic-table {
  border-radius: 18px; overflow: hidden; border: 1px solid rgba(0,0,0,.08);
}
.hc-lic-table-head, .hc-lic-table-row {
  display: grid; grid-template-columns: 220px 100px 110px 120px 1fr;
  align-items: center;
}
.hc-lic-table-head {
  background: #0A0A0A; color: #FFF;
  font-size: 11px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase;
  padding: 0;
}
.hc-lic-table-head > div, .hc-lic-table-row > div {
  padding: 14px 18px;
}
.hc-lic-table-row {
  background: #FFF; border-top: 1px solid rgba(0,0,0,.06);
  font-size: 13.5px; transition: background .15s;
}
.hc-lic-table-row:hover { background: #FAFAFC; }
.hc-lt-highlight-row { background: var(--hc-tint) !important; }
.hc-lt-name { font-weight: 700; font-size: 14px; }
.hc-lt-license { font-size: 12px; color: #515154; line-height: 1.4; }
@media (max-width: 900px) {
  .hc-lic-table-head { display: none; }
  .hc-lic-table-row {
    grid-template-columns: 1fr; padding: 16px 18px; gap: 6px; display: block;
  }
  .hc-lic-table-row > div { padding: 2px 0; font-size: 13px; }
  .hc-lt-name { font-size: 15px; margin-bottom: 4px; }
}

/* ── 프로모션 섹션 ────────────────────────────────────── */
.hc-promo-section { background: #F5F5F7; }
.hc-promo-block {
  background: linear-gradient(135deg, #0A1F5C 0%, #1A4FB8 50%, #2D6BE0 100%);
  border-radius: 28px; overflow: hidden; padding: 56px 60px;
  display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: center;
  color: #FFF; position: relative;
}
.hc-promo-block::before {
  content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 50%;
  background: rgba(255,255,255,.04); pointer-events: none;
}
.hc-promo-badge-tag {
  display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; background: rgba(255,255,255,.15); color: #93C5FD;
  padding: 5px 14px; border-radius: 999px; margin-bottom: 18px;
}
.hc-promo-title { font-size: clamp(22px, 3vw, 32px); font-weight: 800; letter-spacing: -0.03em; line-height: 1.2; }
.hc-promo-target { font-size: 13px; color: rgba(255,255,255,.6); margin-top: 12px; }
.hc-promo-body { font-size: 15px; color: rgba(255,255,255,.75); line-height: 1.65; margin-top: 16px; }
.hc-promo-steps { display: flex; flex-direction: column; gap: 16px; position: relative; z-index: 2; }
.hc-promo-step {
  display: flex; align-items: flex-start; gap: 16px;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px; padding: 16px 20px;
  transition: background .2s;
}
.hc-promo-step:hover { background: rgba(255,255,255,.12); }
.hc-promo-step-num {
  width: 28px; height: 28px; border-radius: 8px; background: var(--hc);
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 800; color: #FFF; flex-shrink: 0;
}
.hc-promo-step-text { font-size: 14px; font-weight: 600; color: rgba(255,255,255,.9); line-height: 1.5; }

@media (max-width: 860px) {
  .hc-promo-block { grid-template-columns: 1fr; gap: 36px; padding: 40px 32px; }
}

/* ── 공통 CTA 섹션 ────────────────────────────────────── */
.hc-final-cta {
  background: linear-gradient(135deg, #1A4FB8 0%, #2563EB 50%, #3B82F6 100%);
  padding: 110px 0;
}
.hc-cta-block { text-align: center; max-width: 640px; margin: 0 auto; color: #FFF; }
.hc-cta-block h2 {
  font-size: clamp(30px, 4vw, 48px); font-weight: 800; letter-spacing: -0.03em; line-height: 1.12;
}
.hc-cta-block p { font-size: 17px; color: rgba(255,255,255,.75); line-height: 1.7; margin-top: 18px; }
.hc-cta-pri {
  background: #FFF !important; color: var(--hc) !important;
  box-shadow: 0 12px 36px rgba(0,0,0,.2) !important;
}
.hc-cta-pri:hover { background: rgba(255,255,255,.92) !important; }
.hc-page .ad-cta-sec { color: rgba(255,255,255,.85); border-color: rgba(255,255,255,.3); }
.hc-page .ad-cta-sec:hover { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.5); }

/* ── Mood Color 변형 ──────────────────────────────────── */
.ad-mood-color .hc-brand-hero { background: linear-gradient(160deg, #0A1F5C 0%, #1A4FB8 55%, #2D6BE0 100%); }
.ad-mood-color .hc-docs-feature-card { background: #EEF3FC; border-color: rgba(37,99,235,.1); }
.ad-mood-color .hc-docs-includes-card { background: rgba(255,255,255,.85); }
.ad-mood-color .hc-lic-card { background: rgba(255,255,255,.85); }
.ad-mood-color .hc-license-section { background: linear-gradient(180deg, #F4F8FF 0%, #EEF3FC 100%); }
.ad-mood-color .hc-promo-section { background: linear-gradient(180deg, #EEF3FC 0%, #E8F0FE 100%); }
.ad-mood-color .ad-overview { background: linear-gradient(180deg, #F4F8FF 0%, #EEF3FC 100%) !important; }
.ad-mood-color .hc-fitem { background: #EEF3FC !important; }

/* ── 반응형 ───────────────────────────────────────────── */
@media (max-width: 860px) {
  .hc-license-hero { padding: 110px 0 60px; }
  .hc-brand-hero { padding: 110px 0 60px; }
}
@media (max-width: 600px) {
  .hc-trust-row { grid-template-columns: repeat(2, 1fr); }
  .hc-docs-features-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   기타소프트웨어 (OTHERS) PAGES
   ============================================================ */
.ot-page {
  --ot: #059669;
  --ot-deep: #047857;
  --ot-soft: #ECFDF5;
  --ot-tint: #F0FDF4;
  --ad: var(--ot);
  --ad-deep: var(--ot-deep);
}

/* 공통 토큰 재정의 */
.ot-page .ad-eyebrow { color: var(--ot-deep); }
.ot-page .ad-eyebrow::before { background: var(--ot); }
.ot-crumb-cur { color: var(--ot-deep) !important; }
.ot-cta-btn-header { background: var(--ot) !important; color: #FFF !important; }
.ot-cta-btn-header:hover { opacity: .88; }
.ot-accent {
  background: linear-gradient(135deg, #10B981, #047857);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.ot-eyebrow { color: var(--ot-deep) !important; }
.ot-eyebrow::before { background: var(--ot) !important; }

/* 효과 카드 */
.ot-effect-card:hover { border-color: rgba(5,150,105,.25) !important; }
.ot-effect-num { color: var(--ot) !important; }
.ot-target-card { border-top: 3px solid var(--ot) !important; }
.ot-target-label { color: var(--ot-deep) !important; }
.ot-fitem { border-left-color: var(--ot) !important; }

/* 칩바 */
.ot-chipbar .ot-chip {
  background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.18);
  color: rgba(255,255,255,.85);
}
.ot-chipbar .ot-chip-ready:hover {
  background: rgba(16,185,129,.2); border-color: rgba(16,185,129,.55); color: #FFF;
  transform: translateY(-2px);
}
.ot-chipbar .ot-chip-active {
  background: var(--ot); border-color: var(--ot); color: #FFF; cursor: default;
  box-shadow: 0 8px 20px rgba(5,150,105,.35);
}

/* ── 브랜드 히어로 ─────────────────────────────────────── */
.ot-brand-hero {
  background: linear-gradient(160deg, #022C22 0%, #065F46 55%, #047857 100%);
  color: #FFF; padding: 140px 0 90px; position: relative; overflow: hidden;
}
.ot-brand-hero::before {
  content: ""; position: absolute; top: -30%; right: -8%;
  width: 700px; height: 700px;
  background: radial-gradient(circle, rgba(16,185,129,.22), transparent 65%);
  filter: blur(50px); pointer-events: none;
}
.ot-brand-head { max-width: 700px; margin-bottom: 52px; position: relative; z-index: 2; }
.ot-brand-tagline {
  display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: 0.07em;
  text-transform: uppercase; color: #6EE7B7;
  background: rgba(255,255,255,.08); padding: 6px 14px; border-radius: 999px; margin-bottom: 20px;
}
.ot-brand-head h1 {
  font-size: clamp(36px, 5vw, 60px); font-weight: 800;
  letter-spacing: -0.04em; line-height: 1.06; text-wrap: balance;
}
.ot-brand-head p {
  font-size: 17px; color: rgba(255,255,255,.68); line-height: 1.7; margin-top: 18px;
}

/* 그룹 레이블 */
.ot-group-label {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 24px; position: relative; z-index: 2;
}
.ot-group-tag {
  font-size: 11px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase;
  background: var(--ot); color: #FFF; padding: 5px 14px; border-radius: 999px;
}
.ot-group-tag-others {
  background: rgba(255,255,255,.15); color: rgba(255,255,255,.85);
}
.ot-group-desc { font-size: 13px; color: rgba(255,255,255,.55); font-weight: 500; }

/* 제품 카드 그리드 */
.ot-brand-grid { display: grid; gap: 16px; position: relative; z-index: 2; }
.ot-render-grid { grid-template-columns: repeat(5, 1fr); }
.ot-others-grid { grid-template-columns: repeat(3, 1fr); }

.ot-brand-card {
  background: #FFF; border: 1px solid rgba(255,255,255,0);
  border-radius: 20px; padding: 24px 22px;
  display: flex; flex-direction: column; gap: 0;
  text-align: left; cursor: pointer; color: #1d1d1f;
  box-shadow: 0 4px 20px rgba(0,0,0,.18);
  transition: transform .3s, box-shadow .3s, border-color .3s;
}
.ot-brand-card:hover {
  transform: translateY(-5px); box-shadow: 0 24px 50px rgba(0,0,0,.25);
  border-color: rgba(5,150,105,.3);
}
.ot-brand-card-others {
  box-shadow: 0 4px 20px rgba(0,0,0,.14);
}
.ot-brand-card-others:hover { border-color: rgba(255,255,255,.4); }

.ot-brand-card-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.ot-product-badge {
  font-size: 11px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;
  background: #ECFDF5; color: #059669; padding: 4px 11px; border-radius: 999px;
}
.ot-badge-others { background: #F5F5F7; color: #515154; }
.ot-card-arrow { font-size: 16px; color: #BFBFBF; transition: transform .2s; }
.ot-card-arrow-others { color: #BFBFBF; }
.ot-brand-card:hover .ot-card-arrow { transform: translateX(4px); color: var(--ot); }
.ot-brand-card:hover .ot-card-arrow-others { color: #515154; }
.ot-brand-card-name { font-size: 17px; font-weight: 700; letter-spacing: -0.02em; margin-bottom: 8px; }
.ot-brand-card-desc { font-size: 13px; color: #515154; line-height: 1.55; flex-grow: 1; }
.ot-brand-card-footer {
  margin-top: auto; padding-top: 18px; font-size: 13px; font-weight: 600; color: var(--ot);
}
.ot-brand-card-footer-others { color: #515154; }

/* 신뢰 지표 (재활용) */
.ot-trust-row { border-top-color: rgba(255,255,255,.12) !important; margin-top: 52px !important; }

@media (max-width: 1200px) { .ot-render-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 860px)  { .ot-render-grid { grid-template-columns: repeat(2, 1fr); } .ot-others-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .ot-render-grid { grid-template-columns: 1fr; } .ot-others-grid { grid-template-columns: 1fr; } }

/* ── 제품 히어로 (공통) ───────────────────────────────── */
.ot-hero {
  background: linear-gradient(160deg, #022C22 0%, #065F46 60%, #0F172A 100%) !important;
}
.ot-others-hero {
  background: linear-gradient(160deg, #0F172A 0%, #1E293B 60%, #0F2920 100%) !important;
}
.ot-hero::before {
  background: radial-gradient(circle, rgba(16,185,129,.2), transparent 65%) !important;
}

.ot-brand-mark-sm {
  width: 28px; height: 28px; border-radius: 7px;
  background: var(--ot); color: #FFF;
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 900; font-size: 14px;
}
.ot-mark-others { background: #334155; }

/* 렌더 비주얼 박스 */
.ot-render-visual {
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.13);
  border-radius: 24px; padding: 40px 32px;
  display: flex; flex-direction: column; align-items: center; gap: 14px;
  width: 100%;
}
.ot-render-visual-others { background: rgba(255,255,255,.05); }
.ot-render-visual-icon {
  width: 72px; height: 72px; border-radius: 20px;
  background: linear-gradient(135deg, #10B981, #059669);
  color: #FFF; display: flex; align-items: center; justify-content: center;
  font-weight: 900; font-size: 36px;
  box-shadow: 0 16px 40px rgba(5,150,105,.45);
}
.ot-icon-others {
  background: linear-gradient(135deg, #334155, #1E293B) !important;
  box-shadow: 0 16px 40px rgba(0,0,0,.35) !important;
}
.ot-render-visual-name { font-size: 22px; font-weight: 800; color: #FFF; letter-spacing: -0.03em; }
.ot-render-visual-sub  { font-size: 13px; color: rgba(255,255,255,.5); }
.ot-render-compat-preview { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-top: 4px; }
.ot-compat-mini {
  font-size: 11px; font-weight: 600; padding: 4px 10px; border-radius: 999px;
  background: rgba(16,185,129,.2); color: #6EE7B7; border: 1px solid rgba(16,185,129,.3);
}

/* ── 호환 소프트웨어 섹션 ─────────────────────────────── */
.ot-compat-section { background: #F5F5F7; }
.ot-compat-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.ot-compat-chip {
  font-size: 13px; font-weight: 600; padding: 10px 18px; border-radius: 12px;
  background: #FFF; border: 1px solid rgba(0,0,0,.08); color: #1d1d1f;
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
  transition: border-color .2s, transform .2s, box-shadow .2s;
}
.ot-compat-chip:hover {
  border-color: rgba(5,150,105,.35); transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(5,150,105,.12);
}

/* ── 비교표 ───────────────────────────────────────────── */
.ot-compare-section { background: #0A0A0A; }
.ot-compare-section .ad-eyebrow { color: #6EE7B7 !important; }
.ot-compare-section .ad-eyebrow::before { background: #6EE7B7 !important; }
.ot-compare-section .ad-title { color: #FFF; }
.ot-compare-table { border-radius: 18px; overflow: hidden; border: 1px solid rgba(255,255,255,.1); }
.ot-compare-head, .ot-compare-row {
  display: grid; grid-template-columns: 180px 1fr 1fr;
}
.ot-compare-head {
  background: rgba(255,255,255,.05);
  font-size: 11px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;
  color: rgba(255,255,255,.45);
}
.ot-compare-row { border-top: 1px solid rgba(255,255,255,.07); }
.ot-ct-item, .ot-ct-col { padding: 16px 22px; font-size: 14px; }
.ot-ct-item  { font-weight: 700; color: rgba(255,255,255,.65); font-size: 13px; }
.ot-ct-label { color: #FFF; }
.ot-ct-col1  { background: rgba(5,150,105,.12); border-left: 2px solid var(--ot); font-weight: 600; color: #6EE7B7; }
.ot-ct-col2  { color: rgba(255,255,255,.55); }
@media (max-width: 700px) {
  .ot-compare-head { display: none; }
  .ot-compare-row  { grid-template-columns: 1fr; }
  .ot-ct-item { background: rgba(255,255,255,.04); font-size: 11px; padding: 10px 18px; }
  .ot-ct-col1 { border-left: none; border-top: 2px solid var(--ot); }
}

/* ── Rhino 제품 정보 테이블 ───────────────────────────── */
.ot-pit-table { border-radius: 16px; overflow: hidden; border: 1px solid rgba(0,0,0,.08); }
.ot-pit-head, .ot-pit-row {
  display: grid; grid-template-columns: 140px 1fr; align-items: center;
}
.ot-pit-head { background: #065F46; }
.ot-pit-row  { background: #FFF; border-top: 1px solid rgba(0,0,0,.06); }
.ot-pit-row:hover { background: var(--ot-tint); }
.ot-pit-key, .ot-pit-val { padding: 14px 20px; font-size: 14px; }
.ot-pit-key { font-weight: 700; color: rgba(255,255,255,.85); font-size: 12px; letter-spacing: 0.04em; }
.ot-pit-row .ot-pit-key { color: #515154; font-size: 13px; font-weight: 600; background: #F9F9FB; }
.ot-pit-val { color: #1d1d1f; font-weight: 500; }
.ot-pit-head .ot-pit-val { color: #FFF; font-weight: 700; font-size: 16px; }

/* ── Unity 산업별 섹션 ────────────────────────────────── */
.ot-industries-section { background: #F5F5F7; }
.ot-industries-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ot-industry-card {
  background: #FFF; border: 1px solid rgba(0,0,0,.07); border-radius: 18px; padding: 26px 22px;
  transition: transform .3s, box-shadow .3s, border-color .3s;
}
.ot-industry-card:hover {
  transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,0,0,.08);
  border-color: rgba(5,150,105,.25);
}
.ot-industry-num { font-size: 12px; font-weight: 800; color: var(--ot); letter-spacing: 0.06em; margin-bottom: 10px; }
.ot-industry-name { font-size: 17px; font-weight: 700; letter-spacing: -0.02em; margin-bottom: 8px; }
.ot-industry-desc { font-size: 13.5px; color: #515154; line-height: 1.6; }
@media (max-width: 860px) { .ot-industries-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .ot-industries-grid { grid-template-columns: 1fr; } }

/* ── JetBrains IDE 그리드 ─────────────────────────────── */
.ot-jb-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
}
.ot-jb-card {
  background: #FFF; border: 1px solid rgba(0,0,0,.07); border-radius: 18px; padding: 24px 20px;
  display: flex; flex-direction: column; gap: 10px;
  transition: transform .3s, box-shadow .3s, border-color .3s;
}
.ot-jb-card:hover {
  transform: translateY(-3px); box-shadow: 0 14px 36px rgba(0,0,0,.08);
  border-color: rgba(5,150,105,.25);
}
.ot-jb-initial {
  width: 40px; height: 40px; border-radius: 12px;
  background: linear-gradient(135deg, #065F46, #059669);
  color: #FFF; display: flex; align-items: center; justify-content: center;
  font-weight: 900; font-size: 18px;
}
.ot-jb-name { font-size: 17px; font-weight: 700; letter-spacing: -0.02em; }
.ot-jb-desc { font-size: 13px; color: #515154; line-height: 1.5; }

.ot-jb-team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.ot-jb-team-card {
  background: #F5F5F7; border: 1px solid rgba(0,0,0,.06); border-radius: 16px; padding: 20px 18px;
  transition: background .2s, border-color .2s;
}
.ot-jb-team-card:hover { background: var(--ot-tint); border-color: rgba(5,150,105,.2); }
.ot-jb-team-name { font-size: 15px; font-weight: 700; margin-bottom: 6px; }
.ot-jb-team-desc { font-size: 12.5px; color: #515154; line-height: 1.5; }

@media (max-width: 1080px) { .ot-jb-grid { grid-template-columns: repeat(2, 1fr); } .ot-jb-team-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .ot-jb-grid { grid-template-columns: 1fr; } .ot-jb-team-grid { grid-template-columns: 1fr; } }

/* ── CTA 섹션 ─────────────────────────────────────────── */
.ot-final-cta {
  background: linear-gradient(135deg, #022C22 0%, #065F46 50%, #059669 100%);
  padding: 110px 0;
}
.ot-cta-block { text-align: center; max-width: 640px; margin: 0 auto; color: #FFF; }
.ot-cta-block h2 {
  font-size: clamp(28px, 4vw, 46px); font-weight: 800; letter-spacing: -0.03em; line-height: 1.12;
}
.ot-cta-block p { font-size: 17px; color: rgba(255,255,255,.72); line-height: 1.7; margin-top: 16px; }
.ot-cta-pri {
  background: #FFF !important; color: var(--ot) !important;
  box-shadow: 0 12px 36px rgba(0,0,0,.2) !important;
}
.ot-cta-pri:hover { background: rgba(255,255,255,.92) !important; }
.ot-page .ad-cta-sec { color: rgba(255,255,255,.85); border-color: rgba(255,255,255,.3); }
.ot-page .ad-cta-sec:hover { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.5); }

/* ── Mood Color 변형 ──────────────────────────────────── */
.ad-mood-color .ot-brand-card { background: rgba(255,255,255,.9); }
.ad-mood-color .ot-compat-section { background: linear-gradient(180deg, #F0FDF4 0%, #ECFDF5 100%); }
.ad-mood-color .ot-industries-section { background: linear-gradient(180deg, #F0FDF4 0%, #ECFDF5 100%); }
.ad-mood-color .ot-jb-card { background: rgba(255,255,255,.88); }
.ad-mood-color .ot-jb-team-card { background: rgba(255,255,255,.7); }
.ad-mood-color .ot-pit-row { background: rgba(255,255,255,.85); }
.ad-mood-color .ad-overview { background: linear-gradient(180deg, #F0FDF4 0%, #ECFDF5 100%) !important; }

/* ============================================================
   Adobe PAGES
   ============================================================ */
.ab-page {
  --ab: #FF4D2E;
  --ab-deep: #E03010;
  --ab-soft: #FFF3F0;
  --ab-tint: #FFF8F6;
  --ad: var(--ab);
  --ad-deep: var(--ab-deep);
}
.ab-page .ad-eyebrow { color: var(--ab-deep); }
.ab-page .ad-eyebrow::before { background: var(--ab); }
.ab-crumb-cur { color: var(--ab-deep) !important; }
.ab-cta-btn-header { background: var(--ab) !important; color: #FFF !important; }
.ab-cta-btn-header:hover { opacity: .88; }
.ab-accent {
  background: linear-gradient(135deg, #FF6B4A, #E03010);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.ab-eyebrow { color: var(--ab-deep) !important; }
.ab-eyebrow::before { background: var(--ab) !important; }
.ab-effect-card:hover { border-color: rgba(255,77,46,.25) !important; }
.ab-effect-num { color: var(--ab) !important; }
.ab-target-card { border-top: 3px solid var(--ab) !important; }
.ab-target-label { color: var(--ab-deep) !important; }
.ab-fitem { border-left-color: var(--ab) !important; }
.ab-tag-num { color: var(--ab) !important; }

/* 칩바 */
.ab-chipbar .ab-chip {
  background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.18); color: rgba(255,255,255,.85);
}
.ab-chipbar .ab-chip-ready:hover {
  background: rgba(255,107,74,.2); border-color: rgba(255,107,74,.55); color: #FFF;
  transform: translateY(-2px);
}
.ab-chipbar .ab-chip-active {
  background: var(--ab); border-color: var(--ab); color: #FFF; cursor: default;
  box-shadow: 0 8px 20px rgba(255,77,46,.4);
}

/* ── 브랜드 히어로 ─────────────────────────────────── */
.ab-brand-hero {
  background: linear-gradient(160deg, #1A0A00 0%, #3D1200 55%, #7A1E00 100%);
  color: #FFF; padding: 140px 0 90px; position: relative; overflow: hidden;
}
.ab-brand-hero::before {
  content: ""; position: absolute; top: -30%; right: -8%;
  width: 700px; height: 700px;
  background: radial-gradient(circle, rgba(255,77,46,.28), transparent 65%);
  filter: blur(50px); pointer-events: none;
}
.ab-brand-head { max-width: 700px; margin-bottom: 56px; position: relative; z-index: 2; }
.ab-brand-logo-row {
  display: inline-flex; align-items: center; gap: 12px;
  font-size: 17px; font-weight: 700; margin-bottom: 22px; color: rgba(255,255,255,.9);
}
.ab-brand-mark-lg {
  width: 36px; height: 36px; border-radius: 10px;
  background: var(--ab); color: #FFF;
  display: flex; align-items: center; justify-content: center;
  font-weight: 900; font-size: 13px; letter-spacing: -0.02em;
  box-shadow: 0 8px 24px rgba(255,77,46,.5);
}
.ab-brand-name { letter-spacing: -0.01em; }
.ab-brand-head h1 {
  font-size: clamp(36px, 5vw, 62px); font-weight: 800;
  letter-spacing: -0.04em; line-height: 1.06; text-wrap: balance;
}
.ab-brand-head p { font-size: 17px; color: rgba(255,255,255,.68); line-height: 1.7; margin-top: 18px; }

/* 제품 카드 그리드 */
.ab-brand-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; position: relative; z-index: 2; }
.ab-brand-card {
  background: #FFF; border: 1px solid rgba(255,255,255,0);
  border-radius: 22px; padding: 28px 26px;
  display: flex; flex-direction: column;
  text-align: left; cursor: pointer; color: #1d1d1f;
  box-shadow: 0 4px 20px rgba(0,0,0,.2);
  transition: transform .3s, box-shadow .3s, border-color .3s;
}
.ab-brand-card:hover {
  transform: translateY(-5px); box-shadow: 0 24px 50px rgba(0,0,0,.28);
  border-color: rgba(255,77,46,.3);
}
.ab-brand-card-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.ab-product-badge {
  font-size: 11px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;
  background: #FFF3F0; color: #E03010; padding: 5px 12px; border-radius: 999px;
}
.ab-card-arrow { font-size: 18px; color: #BFBFBF; transition: transform .2s; }
.ab-brand-card:hover .ab-card-arrow { transform: translateX(4px); color: var(--ab); }
.ab-brand-card-name { font-size: 20px; font-weight: 700; letter-spacing: -0.02em; margin-bottom: 10px; }
.ab-brand-card-desc { font-size: 13.5px; color: #515154; line-height: 1.55; flex-grow: 1; }
.ab-brand-card-footer { margin-top: auto; padding-top: 22px; font-size: 13px; font-weight: 600; color: var(--ab); }

.ab-trust-row { border-top-color: rgba(255,255,255,.12) !important; margin-top: 52px !important; }

@media (max-width: 860px) { .ab-brand-grid { grid-template-columns: 1fr; } }

/* ── 제품 히어로 ─────────────────────────────────── */
.ab-hero {
  background: linear-gradient(160deg, #1A0A00 0%, #3D1200 60%, #0F0F0F 100%) !important;
}
.ab-acrobat-hero {
  background: linear-gradient(160deg, #120020 0%, #2D0060 60%, #0F0F0F 100%) !important;
}
.ab-substance-hero {
  background: linear-gradient(160deg, #001020 0%, #001A40 60%, #3D1200 100%) !important;
}
.ab-hero::before {
  background: radial-gradient(circle, rgba(255,77,46,.2), transparent 65%) !important;
}
.ab-brand-mark-sm {
  width: 28px; height: 28px; border-radius: 7px;
  background: var(--ab); color: #FFF;
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 900; font-size: 11px; letter-spacing: -0.02em;
}

/* CCT 비주얼 */
.ab-cct-visual {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.13);
  border-radius: 24px; padding: 32px; width: 100%; display: flex; flex-direction: column; gap: 20px;
}
.ab-cct-visual-label {
  font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  color: rgba(255,255,255,.45);
}
.ab-cct-apps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.ab-cct-app-card {
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1);
  border-radius: 14px; padding: 14px 10px;
  display: flex; flex-direction: column; align-items: center; gap: 7px;
  transition: background .2s;
}
.ab-cct-app-card:hover { background: rgba(255,77,46,.15); border-color: rgba(255,107,74,.35); }
.ab-app-dot {
  width: 34px; height: 34px; border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
  font-weight: 900; font-size: 12px; color: #FFF; letter-spacing: -0.03em;
}
.ab-app-name { font-size: 11px; font-weight: 600; color: rgba(255,255,255,.75); text-align: center; }
.ab-cct-visual-more { font-size: 12px; color: rgba(255,255,255,.4); text-align: center; }

/* CCT 앱 라인업 */
.ab-apps-section { background: #F5F5F7; }
.ab-lineup-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ab-lineup-group {
  background: #FFF; border: 1px solid rgba(0,0,0,.07); border-radius: 20px; padding: 24px 20px;
  transition: transform .3s, box-shadow .3s;
}
.ab-lineup-group:hover { transform: translateY(-3px); box-shadow: 0 14px 36px rgba(0,0,0,.07); }
.ab-lineup-group-title {
  font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--ab); margin-bottom: 16px;
}
.ab-lineup-item { display: flex; align-items: flex-start; gap: 10px; padding: 10px 0; border-top: 1px solid rgba(0,0,0,.06); }
.ab-lineup-dot {
  width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; margin-top: 5px;
}
.ab-lineup-name { font-size: 14px; font-weight: 700; }
.ab-lineup-desc { font-size: 12px; color: #515154; margin-top: 2px; line-height: 1.4; }
@media (max-width: 1080px) { .ab-lineup-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .ab-lineup-grid { grid-template-columns: 1fr; } }

/* Acrobat 비주얼 */
.ab-acrobat-visual {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.13);
  border-radius: 24px; padding: 32px; width: 100%; display: flex; flex-direction: column; gap: 18px;
}
.ab-acrobat-visual-head {
  font-size: 18px; font-weight: 800; color: #FFF; letter-spacing: -0.02em;
}
.ab-acrobat-includes { display: flex; flex-direction: column; gap: 14px; }
.ab-acrobat-inc-row { display: flex; align-items: flex-start; gap: 12px; }
.ab-inc-check {
  width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0;
  background: rgba(255,77,46,.2); color: #FF8A6E;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 800;
}
.ab-inc-name { font-size: 15px; font-weight: 700; color: #FFF; }
.ab-inc-sub  { font-size: 12px; color: rgba(255,255,255,.5); margin-top: 2px; }

/* Acrobat 컴포넌트 카드 */
.ab-acrobat-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.ab-acrobat-comp-card {
  background: #FFF; border: 1px solid rgba(0,0,0,.07); border-radius: 20px; padding: 28px 24px;
  display: flex; flex-direction: column; gap: 12px;
  transition: transform .3s, box-shadow .3s, border-color .3s;
}
.ab-acrobat-comp-card:hover { transform: translateY(-4px); box-shadow: 0 18px 44px rgba(0,0,0,.08); border-color: rgba(255,77,46,.2); }
.ab-comp-icon {
  width: 44px; height: 44px; border-radius: 12px; color: #FFF;
  display: flex; align-items: center; justify-content: center;
  font-weight: 900; font-size: 14px; letter-spacing: -0.03em;
}
.ab-comp-name { font-size: 18px; font-weight: 800; letter-spacing: -0.02em; }
.ab-comp-desc { font-size: 13.5px; color: #515154; line-height: 1.6; }
.ab-comp-features { display: flex; flex-direction: column; gap: 8px; margin-top: 4px; }
.ab-comp-feature-row { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; color: #515154; line-height: 1.4; }
.ab-comp-feature-row .ab-inc-check { background: #FFF3F0; color: var(--ab); width: 18px; height: 18px; font-size: 10px; }
@media (max-width: 900px) { .ab-acrobat-cards { grid-template-columns: 1fr; } }

/* Substance 비주얼 */
.ab-substance-visual {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.13);
  border-radius: 24px; padding: 32px; width: 100%; display: flex; flex-direction: column; gap: 18px;
}
.ab-substance-visual-title { font-size: 18px; font-weight: 800; color: #FFF; letter-spacing: -0.02em; }
.ab-substance-apps { display: flex; flex-direction: column; gap: 10px; }
.ab-substance-app { display: flex; align-items: center; gap: 12px; }
.ab-substance-app-dot {
  width: 32px; height: 32px; border-radius: 8px; flex-shrink: 0;
  background: rgba(255,77,46,.25); color: #FF8A6E;
  display: flex; align-items: center; justify-content: center;
  font-size: 10px; font-weight: 800; letter-spacing: -0.02em;
}
.ab-substance-app-name { font-size: 13px; font-weight: 600; color: rgba(255,255,255,.85); }

/* Substance 제품 구성 그리드 */
.ab-substance-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ab-substance-card {
  background: #FFF; border: 1px solid rgba(0,0,0,.07); border-radius: 18px; padding: 24px 20px;
  display: flex; flex-direction: column; gap: 12px;
  transition: transform .3s, box-shadow .3s, border-color .3s;
}
.ab-substance-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,0,0,.08); border-color: rgba(255,77,46,.2); }
.ab-substance-card-top { display: flex; align-items: center; gap: 12px; }
.ab-substance-card-dot {
  width: 36px; height: 36px; border-radius: 10px; flex-shrink: 0;
  background: linear-gradient(135deg, #FF6B4A, #E03010);
  color: #FFF; display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 800; letter-spacing: -0.02em;
  box-shadow: 0 6px 16px rgba(255,77,46,.35);
}
.ab-substance-card-name { font-size: 15px; font-weight: 700; letter-spacing: -0.02em; }
.ab-substance-card-desc { font-size: 13px; color: #515154; line-height: 1.6; }
.ab-substance-new-section { background: #F5F5F7; }
@media (max-width: 1080px) { .ab-substance-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .ab-substance-grid { grid-template-columns: 1fr; } }

/* ── CTA ────────────────────────────────────────────── */
.ab-final-cta {
  background: linear-gradient(135deg, #1A0A00 0%, #3D1200 50%, #FF4D2E 100%);
  padding: 110px 0;
}
.ab-cta-block { text-align: center; max-width: 640px; margin: 0 auto; color: #FFF; }
.ab-cta-block h2 { font-size: clamp(28px, 4vw, 46px); font-weight: 800; letter-spacing: -0.03em; line-height: 1.12; }
.ab-cta-block p { font-size: 17px; color: rgba(255,255,255,.72); line-height: 1.7; margin-top: 16px; }
.ab-cta-pri { background: #FFF !important; color: var(--ab) !important; box-shadow: 0 12px 36px rgba(0,0,0,.2) !important; }
.ab-cta-pri:hover { background: rgba(255,255,255,.92) !important; }
.ab-page .ad-cta-sec { color: rgba(255,255,255,.85); border-color: rgba(255,255,255,.3); }
.ab-page .ad-cta-sec:hover { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.5); }

/* ── Mood Color ────────────────────────────────────── */
.ad-mood-color .ab-brand-card { background: rgba(255,255,255,.92); }
.ad-mood-color .ab-apps-section { background: linear-gradient(180deg, #FFF8F6 0%, #FFF3F0 100%); }
.ad-mood-color .ab-substance-new-section { background: linear-gradient(180deg, #FFF8F6 0%, #FFF3F0 100%); }
.ad-mood-color .ab-lineup-group { background: rgba(255,255,255,.85); }
.ad-mood-color .ab-acrobat-comp-card { background: rgba(255,255,255,.88); }
.ad-mood-color .ab-substance-card { background: rgba(255,255,255,.88); }
.ad-mood-color .ab-page .ad-overview { background: linear-gradient(180deg, #FFF8F6 0%, #FFF3F0 100%) !important; }

/* ══════════════════════════════════════════════════════════
   Autodesk Fusion — 분야별 기능 그리드
══════════════════════════════════════════════════════════ */
.fusion-feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 16px;
  margin-top: 40px;
}
.fusion-fgroup {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 16px;
  padding: 24px 20px;
  transition: border-color .2s;
}
.fusion-fgroup:hover { border-color: rgba(255,107,0,.4); }
.fusion-fgroup-title {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #FF6B00;
  margin-bottom: 14px;
}
.fusion-fgroup-items { list-style: none; display: flex; flex-direction: column; gap: 8px; }
.fusion-fitem {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: 13px;
  color: rgba(255,255,255,.78);
  line-height: 1.5;
}
.fusion-fitem .ad-wf-dot { flex-shrink: 0; margin-top: 5px; }

/* Fusion 라인업 비교표 */
.fusion-lineup-table {
  margin-top: 40px;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.1);
}
.fusion-lineup-head {
  display: grid;
  grid-template-columns: 160px repeat(3, 1fr);
  background: rgba(255,107,0,.15);
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.fusion-lineup-rowlabel {
  padding: 16px 20px;
  font-size: 12px;
  font-weight: 700;
  color: rgba(255,255,255,.5);
  letter-spacing: .05em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  border-right: 1px solid rgba(255,255,255,.08);
}
.fusion-lineup-col-head {
  padding: 18px 16px;
  border-right: 1px solid rgba(255,255,255,.08);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}
.fusion-lineup-col-head:last-child { border-right: none; }
.fusion-lineup-col-name {
  font-size: 13px;
  font-weight: 700;
  color: #FFF;
  letter-spacing: -.01em;
}
.fusion-lineup-col-target {
  font-size: 11px;
  color: rgba(255,255,255,.5);
  line-height: 1.4;
}
.fusion-lineup-row {
  display: grid;
  grid-template-columns: 160px repeat(3, 1fr);
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.fusion-lineup-row.even { background: rgba(255,255,255,.03); }
.fusion-lineup-row:last-child { border-bottom: none; }
.fusion-lineup-cell {
  padding: 14px 16px;
  font-size: 13px;
  color: rgba(255,255,255,.75);
  line-height: 1.5;
  border-right: 1px solid rgba(255,255,255,.06);
  display: flex;
  align-items: center;
}
.fusion-lineup-cell:last-child { border-right: none; }
@media (max-width: 860px) {
  .fusion-lineup-head,
  .fusion-lineup-row { grid-template-columns: 120px repeat(3, 1fr); }
  .fusion-lineup-rowlabel { font-size: 11px; padding: 12px; }
  .fusion-lineup-cell { font-size: 12px; padding: 12px; }
}
@media (max-width: 600px) {
  .fusion-feature-grid { grid-template-columns: 1fr; }
  .fusion-lineup-table { overflow-x: auto; }
  .fusion-lineup-head,
  .fusion-lineup-row { min-width: 560px; }
}

/* ══════════════════════════════════════════════════════════
   Autodesk Moldflow — 기능 그리드
══════════════════════════════════════════════════════════ */
.mf-features-grid {
  margin-top: 40px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
}
.mf-fitem {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-left: 3px solid #FF6B00;
  border-radius: 14px;
  padding: 18px 20px;
  transition: background .2s, border-color .2s;
}
.mf-fitem:hover { background: rgba(255,107,0,.1); border-left-color: #FF6B00; }
.mf-fitem-name { font-size: 15px; font-weight: 700; color: #FFF; letter-spacing: -.01em; }
.mf-fitem-desc { font-size: 13px; color: rgba(255,255,255,.62); line-height: 1.55; margin-top: 6px; }

/* mood-light */
.ad-mood-light .mf-fitem {
  background: #F5F5F7;
  border-color: rgba(0,0,0,.06);
  border-left-color: #FF6B00;
}
.ad-mood-light .mf-fitem:hover { background: rgba(255,107,0,.07); }
.ad-mood-light .mf-fitem-name { color: #111; }
.ad-mood-light .mf-fitem-desc { color: #515154; }

/* mood-color */
.ad-mood-color .mf-fitem {
  background: #EEF3FC;
  border-color: rgba(0,0,0,.06);
  border-left-color: #2D6BE0;
}
.ad-mood-color .mf-fitem:hover { background: rgba(45,107,224,.1); }
.ad-mood-color .mf-fitem-name { color: #111; }
.ad-mood-color .mf-fitem-desc { color: #444; }

@media (max-width: 600px) { .mf-features-grid { grid-template-columns: 1fr; } }

/* ══════════════════════════════════════════════════════════
   AEC Collection — 제품 카드 / 가격표 / Revit 탭 / Navisworks 비교표
══════════════════════════════════════════════════════════ */

/* AEC / MEC 제품 카드 — 다크 카드 스타일 */
.aec-product-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 0;
  align-items: stretch;
}
.aec-product-card {
  position: relative;
  background: #1C1814;
  border: 1.5px solid rgba(255,255,255,.1);
  border-radius: 18px;
  padding: 34px 32px 28px;
  cursor: pointer;
  transition: border-color .22s, background .22s, transform .22s, box-shadow .22s;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.aec-product-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, #FF6B00, #FF9D00);
  opacity: 0;
  transition: opacity .22s;
}
.aec-product-card:hover {
  border-color: #FF6B00;
  background: #231a10;
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(255,107,0,.14);
}
.aec-product-card:hover::before { opacity: 1; }
.aec-pc-icon-wrap { margin-bottom: 22px; }
.aec-pc-icon {
  width: 52px; height: 52px;
  border-radius: 13px;
  object-fit: contain;
  display: block;
}
.aec-pc-body { flex: 1; }
.aec-pc-name {
  font-size: 21px;
  font-weight: 800;
  color: #FFF;
  letter-spacing: -.03em;
  line-height: 1.2;
  margin-bottom: 10px;
}
.aec-pc-desc {
  font-size: 13.5px;
  color: rgba(255,255,255,.55);
  line-height: 1.7;
  word-break: keep-all;
}
.aec-pc-cta {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 26px;
  padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,.1);
}
.aec-pc-cta-text { font-size: 13px; font-weight: 700; color: #FF6B00; }
.aec-pc-cta-arrow { font-size: 16px; color: #FF6B00; display: inline-block; transition: transform .2s; }
.aec-product-card:hover .aec-pc-cta-arrow { transform: translateX(5px); }

/* AEC 가격표 */
.aec-pricing-grid {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 24px;
  margin-top: 40px;
  align-items: stretch;
}
.aec-pricing-collection {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.aec-pricing-indiv {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 18px;
  padding: 28px 28px;
}
.aec-pricing-group-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
  margin-bottom: 18px;
}
.aec-pricing-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 0;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.aec-pricing-row:last-child { border-bottom: none; }
.aec-pricing-name { font-size: 14px; color: rgba(255,255,255,.8); }
.aec-pricing-price { font-size: 15px; font-weight: 700; color: #FFF; display: flex; align-items: baseline; gap: 4px; }
.aec-pricing-unit { font-size: 11px; font-weight: 400; color: rgba(255,255,255,.5); margin-left: 2px; }
.aec-price-orig { font-size: 12px; font-weight: 400; color: rgba(255,255,255,.35); text-decoration: line-through; margin-right: 4px; }
.aec-pricing-collection {
  background: linear-gradient(135deg, #FF6B00 0%, #E25400 100%);
  border-radius: 18px;
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.aec-pricing-collection-badge {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(255,255,255,.75);
}
.aec-pricing-collection-price {
  font-size: 36px;
  font-weight: 800;
  color: #FFF;
  letter-spacing: -.03em;
  line-height: 1.1;
}
.aec-pricing-collection-price span { font-size: 16px; font-weight: 400; margin-left: 4px; }
.aec-pricing-collection-term { font-size: 13px; color: rgba(255,255,255,.7); }
.aec-pricing-collection-includes { font-size: 12px; color: rgba(255,255,255,.6); margin-top: 4px; line-height: 1.5; }

/* mood-light/color 가격표 */
.ad-mood-light .aec-pricing-indiv,
.ad-mood-color .aec-pricing-indiv { background: #F5F5F7; border-color: rgba(0,0,0,.07); }
.ad-mood-light .aec-pricing-group-label,
.ad-mood-color .aec-pricing-group-label { color: #888; }
.ad-mood-light .aec-pricing-row,
.ad-mood-color .aec-pricing-row { border-bottom-color: rgba(0,0,0,.07); }
.ad-mood-light .aec-pricing-name,
.ad-mood-color .aec-pricing-name { color: #333; }
.ad-mood-light .aec-pricing-price,
.ad-mood-color .aec-pricing-price { color: #111; }
.ad-mood-light .aec-pricing-unit,
.ad-mood-color .aec-pricing-unit { color: #888; }
.ad-mood-light .aec-price-orig,
.ad-mood-color .aec-price-orig { color: #bbb; }

/* Revit 탭 */
.revit-tabs-section { background: transparent; }
.revit-tab-bar {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 32px;
  margin-bottom: 0;
}
.revit-tab-btn {
  padding: 9px 18px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.7);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background .18s, border-color .18s, color .18s;
  font-family: inherit;
}
.revit-tab-btn:hover { background: rgba(255,107,0,.15); border-color: rgba(255,107,0,.4); color: #FFF; }
.revit-tab-btn.active { background: #FF6B00; border-color: #FF6B00; color: #FFF; }
.revit-tab-content { margin-top: 20px; }
.revit-feature-table { border-radius: 16px; overflow: hidden; border: 1px solid rgba(255,255,255,.1); }
.revit-feat-row {
  display: grid;
  grid-template-columns: 220px 1fr;
  border-bottom: 1px solid rgba(255,255,255,.07);
  transition: background .15s;
}
.revit-feat-row:last-child { border-bottom: none; }
.revit-feat-row:hover { background: rgba(255,107,0,.06); }
.revit-feat-name {
  padding: 14px 20px;
  font-size: 13px;
  font-weight: 700;
  color: #FFF;
  border-right: 1px solid rgba(255,255,255,.07);
  display: flex;
  align-items: center;
}
.revit-feat-desc {
  padding: 14px 20px;
  font-size: 13px;
  color: rgba(255,255,255,.7);
  line-height: 1.55;
  display: flex;
  align-items: center;
}

/* mood-light/color Revit 탭 */
.ad-mood-light .revit-tab-btn,
.ad-mood-color .revit-tab-btn { border-color: rgba(0,0,0,.12); background: rgba(0,0,0,.04); color: #444; }
.ad-mood-light .revit-tab-btn:hover,
.ad-mood-color .revit-tab-btn:hover { background: rgba(255,107,0,.1); border-color: rgba(255,107,0,.4); color: #111; }
.ad-mood-light .revit-tab-btn.active,
.ad-mood-color .revit-tab-btn.active { background: #FF6B00; border-color: #FF6B00; color: #FFF; }
.ad-mood-light .revit-feature-table,
.ad-mood-color .revit-feature-table { border-color: rgba(0,0,0,.08); }
.ad-mood-light .revit-feat-row,
.ad-mood-color .revit-feat-row { border-bottom-color: rgba(0,0,0,.06); }
.ad-mood-light .revit-feat-name,
.ad-mood-color .revit-feat-name { color: #111; border-right-color: rgba(0,0,0,.07); }
.ad-mood-light .revit-feat-desc,
.ad-mood-color .revit-feat-desc { color: #444; }

.navis-compare-table {
  margin-top: 40px;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.1);
}
.navis-compare-head {
  display: grid;
  grid-template-columns: 220px 1fr 1fr;
  background: rgba(255,107,0,.18);
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.navis-compare-feat {
  padding: 16px 20px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
  border-right: 1px solid rgba(255,255,255,.08);
  display: flex;
  align-items: center;
  gap: 8px;
}
.navis-compare-col {
  padding: 16px 20px;
  font-size: 13px;
  font-weight: 700;
  color: #FFF;
  border-right: 1px solid rgba(255,255,255,.08);
  display: flex;
  align-items: center;
  gap: 8px;
}
.navis-compare-col:last-child { border-right: none; }
.navis-compare-row {
  display: grid;
  grid-template-columns: 220px 1fr 1fr;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.navis-compare-row:last-child { border-bottom: none; }
.navis-compare-row.even { background: rgba(255,255,255,.03); }
.navis-compare-row .navis-compare-feat {
  font-size: 13px; font-weight: 600; letter-spacing: 0;
  text-transform: none; color: #FFF !important;
  line-height: 1.5;
}
.navis-compare-row .navis-compare-col {
  font-size: 13px; font-weight: 400;
  color: #FFF !important;
  line-height: 1.5;
}
.navis-compare-row.even { background: rgba(255,255,255,.06) !important; }
.navis-compare-row:hover { background: rgba(255,255,255,.1) !important; }
.navis-compare-row .navis-compare-col.check { font-size: 18px; font-weight: 700; color: #FF6B00 !important; }
.navis-compare-row .navis-compare-col.dash { font-size: 18px; color: rgba(255,255,255,.35) !important; }

/* mood-light/color Navisworks 비교표 — 항상 다크 섹션 안에 있으므로 흰색 강제 */
.ad-mood-light .navis-compare-table,
.ad-mood-color .navis-compare-table { border-color: rgba(255,255,255,.12); }
.ad-mood-light .navis-compare-head,
.ad-mood-color .navis-compare-head { background: rgba(255,107,0,.2); border-bottom-color: rgba(255,255,255,.1); }
.ad-mood-light .navis-compare-feat,
.ad-mood-color .navis-compare-feat { color: rgba(255,255,255,.6) !important; border-right-color: rgba(255,255,255,.08) !important; }
.ad-mood-light .navis-compare-col,
.ad-mood-color .navis-compare-col { color: #FFF !important; border-right-color: rgba(255,255,255,.08) !important; }
.ad-mood-light .navis-compare-row,
.ad-mood-color .navis-compare-row { border-bottom-color: rgba(255,255,255,.06); }
.ad-mood-light .navis-compare-row.even,
.ad-mood-color .navis-compare-row.even { background: rgba(255,255,255,.03); }
.ad-mood-light .navis-compare-row .navis-compare-feat,
.ad-mood-color .navis-compare-row .navis-compare-feat { color: rgba(255,255,255,.85) !important; }
.ad-mood-light .navis-compare-row .navis-compare-col,
.ad-mood-color .navis-compare-row .navis-compare-col { color: rgba(255,255,255,.82) !important; }
.ad-mood-light .navis-compare-row .navis-compare-col.check,
.ad-mood-color .navis-compare-row .navis-compare-col.check { color: #FF6B00 !important; }
.ad-mood-light .navis-compare-row .navis-compare-col.dash,
.ad-mood-color .navis-compare-row .navis-compare-col.dash { color: rgba(255,255,255,.2) !important; }

@media (max-width: 860px) {
  .aec-product-cards { grid-template-columns: 1fr; }
  .aec-pricing-grid { grid-template-columns: 1fr; }
  .revit-feat-row { grid-template-columns: 1fr; }
  .revit-feat-name { border-right: none; border-bottom: 1px solid rgba(255,255,255,.07); }
  .navis-compare-table { overflow-x: auto; }
  .navis-compare-head, .navis-compare-row { min-width: 560px; }
}

/* mood-color / mood-light 대응 */
.ad-mood-color .fusion-fgroup,
.ad-mood-light .fusion-fgroup { background: rgba(255,255,255,.88); border-color: rgba(0,0,0,.08); }
.ad-mood-color .fusion-fgroup:hover,
.ad-mood-light .fusion-fgroup:hover { border-color: rgba(255,107,0,.5); }
.ad-mood-color .fusion-fgroup-title,
.ad-mood-light .fusion-fgroup-title { color: #D45500; }
.ad-mood-color .fusion-fitem,
.ad-mood-light .fusion-fitem { color: #2a2a2a !important; }
.ad-mood-color .fusion-lineup-table,
.ad-mood-light .fusion-lineup-table { border-color: rgba(0,0,0,.1); }
.ad-mood-color .fusion-lineup-head,
.ad-mood-light .fusion-lineup-head { background: rgba(255,107,0,.10); border-bottom-color: rgba(0,0,0,.08); }
.ad-mood-color .fusion-lineup-rowlabel,
.ad-mood-light .fusion-lineup-rowlabel { color: #555; border-right-color: rgba(0,0,0,.08); }
.ad-mood-color .fusion-lineup-col-head,
.ad-mood-light .fusion-lineup-col-head { border-right-color: rgba(0,0,0,.08); }
.ad-mood-color .fusion-lineup-col-name,
.ad-mood-light .fusion-lineup-col-name { color: #111; }
.ad-mood-color .fusion-lineup-col-target,
.ad-mood-light .fusion-lineup-col-target { color: #666; }
.ad-mood-color .fusion-lineup-row,
.ad-mood-light .fusion-lineup-row { border-bottom-color: rgba(0,0,0,.06); }
.ad-mood-color .fusion-lineup-row.even,
.ad-mood-light .fusion-lineup-row.even { background: rgba(0,0,0,.025); }
.ad-mood-color .fusion-lineup-cell,
.ad-mood-light .fusion-lineup-cell { color: #222; border-right-color: rgba(0,0,0,.06); }
.ad-mood-color .fusion-lineup-cell span[style*="rgba(255,255,255,.25)"],
.ad-mood-light .fusion-lineup-cell span[style*="rgba(255,255,255,.25)"] { color: #bbb !important; }

/* Maya vs 3ds Max 비교 요약 */
.maya-compare-summary {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 24px;
}
.maya-compare-sum-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 14px;
  padding: 18px 20px;
}
.maya-sum-label { font-size: 14px; font-weight: 700; color: #FFF; margin-bottom: 4px; }
.maya-sum-desc { font-size: 13px; color: rgba(255,255,255,.65); line-height: 1.55; word-break: keep-all; }
.ad-mood-light .maya-compare-sum-item,
.ad-mood-color .maya-compare-sum-item { background: #F5F5F7; border-color: rgba(0,0,0,.07); }
.ad-mood-light .maya-sum-label,
.ad-mood-color .maya-sum-label { color: #111; }
.ad-mood-light .maya-sum-desc,
.ad-mood-color .maya-sum-desc { color: #555; }
@media (max-width: 680px) { .maya-compare-summary { grid-template-columns: 1fr; } }

/* AEC SW 목록 전용 테이블 */
.aec-sw-table {
  margin-top: 40px;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.08);
}
.aec-sw-row {
  display: grid;
  grid-template-columns: 240px 1fr;
  align-items: center;
  gap: 16px;
  padding: 14px 24px;
  background: #FFF;
  border-top: 1px solid rgba(0,0,0,.06);
  transition: background .16s;
}
.aec-sw-row:first-child { border-top: none; }
.aec-sw-row:hover { background: #FAFAFC; }
.aec-sw-name {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: -.01em;
  color: #111;
  min-width: 0;
}
.aec-sw-dot { width: 24px; height: 24px; border-radius: 6px; background: #E5E5EA; flex-shrink: 0; }
.aec-sw-badge {
  width: 24px; height: 24px;
  border-radius: 6px;
  background: linear-gradient(135deg, #FF8A3D, #FF6B00);
  color: #FFF;
  font-size: 12px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  letter-spacing: -.02em;
}
.aec-sw-desc { font-size: 13px; color: #515154; line-height: 1.55; }
.ad-mood-dark .aec-sw-table { border-color: rgba(255,255,255,.1); }
.ad-mood-dark .aec-sw-row { background: rgba(255,255,255,.04); border-top-color: rgba(255,255,255,.07); }
.ad-mood-dark .aec-sw-row:hover { background: rgba(255,255,255,.08); }
.ad-mood-dark .aec-sw-name { color: #FFF; }
.ad-mood-dark .aec-sw-desc { color: rgba(255,255,255,.6); }
@media (max-width: 680px) { .aec-sw-row { grid-template-columns: 1fr; gap: 4px; } }

/* AutoCAD Plus 툴셋 그리드 */
.acad-toolset-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
  margin-top: 24px;
}
.acad-toolset-card {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-left: 3px solid #FF6B00;
  border-radius: 14px;
  padding: 20px 22px;
  transition: background .2s, border-color .2s;
}
.acad-toolset-card:hover { background: rgba(255,107,0,.08); border-color: #FF6B00; }
.acad-ts-name { font-size: 16px; font-weight: 800; color: #FFF; letter-spacing: -.02em; margin-bottom: 4px; }
.acad-ts-target { font-size: 12px; font-weight: 600; color: #FF6B00; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 8px; }
.acad-ts-desc { font-size: 13px; color: rgba(255,255,255,.6); line-height: 1.6; word-break: keep-all; }

.ad-mood-light .acad-toolset-card,
.ad-mood-color .acad-toolset-card { background: #F5F5F7; border-color: rgba(0,0,0,.07); border-left-color: #FF6B00; }
.ad-mood-light .acad-toolset-card:hover,
.ad-mood-color .acad-toolset-card:hover { background: rgba(255,107,0,.06); }
.ad-mood-light .acad-ts-name,
.ad-mood-color .acad-ts-name { color: #111; }
.ad-mood-light .acad-ts-desc,
.ad-mood-color .acad-ts-desc { color: #444; }
@media (max-width: 600px) { .acad-toolset-grid { grid-template-columns: 1fr; } }

/* AutoCAD 툴셋 설명 문단 — mood 자동 대응 */
.ad-sec-desc { color: rgba(255,255,255,.62); }
.ad-mood-light .ad-sec-desc,
.ad-mood-color .ad-sec-desc { color: #555; }

/* 밝은 배경(투명/연회색) 섹션의 흰색 제목 가독성 수정 */
.ad-mood-light .revit-tabs-section .ad-title,
.ad-mood-color .revit-tabs-section .ad-title,
.ad-mood-light .ad-expansion .ad-title,
.ad-mood-color .ad-expansion .ad-title { color: #111 !important; }

/* ═══════════════════════════════════════════════
   LEO / SPIDER2 공통 추가 스타일
═══════════════════════════════════════════════ */

.leo-awards {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 20px;
}
.leo-award-badge {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 4px 10px;
  border-radius: 100px;
  background: rgba(249, 115, 22, 0.12);
  color: #F97316;
  border: 1px solid rgba(249, 115, 22, 0.25);
}

.leo-hero-visual,
.spider2-hero-visual {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(249,115,22,0.08) 0%, rgba(30,30,40,0.6) 100%);
  min-height: 260px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.spider2-hero-visual {
  background: linear-gradient(135deg, rgba(14,165,233,0.08) 0%, rgba(30,30,40,0.6) 100%);
}
.leo-hero-visual img,
.spider2-hero-visual img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 24px;
}

.leo-apps { background: inherit; }
.leo-app-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 48px;
}
@media (max-width: 1024px) {
  .leo-app-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .leo-app-grid { grid-template-columns: 1fr; }
}
.leo-app-card {
  padding: 24px 20px;
  border-radius: 12px;
  border: 1px solid var(--bdr, rgba(0,0,0,0.08));
  background: var(--card-bg, rgba(255,255,255,0.6));
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: transform 0.2s, box-shadow 0.2s;
}
.leo-app-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
.leo-app-tag {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 4px 12px;
  border-radius: 100px;
  width: fit-content;
}
.leo-app-desc {
  font-size: 13px;
  line-height: 1.65;
  color: var(--t-500, #555);
  margin: 0;
}
.ray-mood-dark .leo-app-card {
  background: rgba(255,255,255,0.04);
  border-color: rgba(255,255,255,0.08);
}
.ray-mood-dark .leo-app-desc {
  color: rgba(255,255,255,0.6);
}

/* ── 스크롤 탑 버튼 ─────────────────────────────────────────── */
.scroll-top-btn {
  position: fixed;
  bottom: 36px;
  right: 36px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #FF6B00;
  color: #FFF;
  font-size: 20px;
  font-weight: 700;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 20px rgba(255,107,0,.4);
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .25s, transform .25s;
  z-index: 9000;
  pointer-events: none;
}
.scroll-top-btn.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.scroll-top-btn:hover {
  background: #E25400;
  box-shadow: 0 6px 28px rgba(255,107,0,.5);
  transform: translateY(-2px);
}
.scroll-top-btn:active {
  transform: translateY(0);
}
@media (max-width: 600px) {
  .scroll-top-btn { bottom: 24px; right: 20px; width: 44px; height: 44px; }
}


/* ============================================================
   Microsoft 365 & 보안/백신 — 공통 스타일
   ============================================================ */

/* 수상 배지 */
.ms-awards-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.ms-award-chip {
  font-size: 11px; font-weight: 600; padding: 5px 12px; border-radius: 999px;
  background: #E3EAFF; color: #1A4FB8; border: 1px solid rgba(26,79,184,.15);
  white-space: nowrap;
}

/* Microsoft 로고 비주얼 */
.ms-logo-visual {
  background: #F3F3F3; border-radius: 24px; padding: 40px 32px 32px;
  display: flex; flex-direction: column; align-items: center; gap: 0;
  box-shadow: 0 8px 40px rgba(0,0,0,.1);
}
.ms-logo-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 6px; width: 96px; height: 96px; margin-bottom: 20px;
}
.ms-logo-sq { border-radius: 4px; }
.ms-logo-name { font-size: 26px; font-weight: 700; letter-spacing: -0.02em; color: #0A0A0A; }
.ms-logo-sub  { font-size: 14px; color: #86868B; margin-top: 4px; }

/* 플랜 카드 그리드 */
.ms-plans-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 8px;
}
.ms-plan-card {
  background: #FFF; border: 1px solid rgba(0,0,0,.08); border-radius: 18px;
  padding: 28px 24px; display: flex; flex-direction: column; gap: 0;
  position: relative; transition: transform .3s, box-shadow .3s;
}
.ms-plan-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,0,0,.1); }
.ms-plan-highlight {
  border-color: #0078D4; box-shadow: 0 0 0 2px rgba(0,120,212,.2);
}
.ms-plan-rec {
  position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
  background: #0078D4; color: #FFF; font-size: 11px; font-weight: 700;
  padding: 4px 14px; border-radius: 999px; white-space: nowrap;
}
.ms-plan-name   { font-size: 15px; font-weight: 700; color: #0A0A0A; }
.ms-plan-target { font-size: 12px; color: #86868B; margin-top: 4px; }
.ms-plan-divider { height: 1px; background: rgba(0,0,0,.07); margin: 16px 0; }
.ms-plan-desc   { font-size: 13.5px; color: #3C3C3E; line-height: 1.6; flex: 1; }
.ms-plan-apps   { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.ms-app-chip {
  font-size: 11px; font-weight: 600; padding: 4px 10px; border-radius: 6px;
  background: #F2F2F7; color: #515154;
}
.ms-plan-btn {
  margin-top: 20px; width: 100%; padding: 11px; border-radius: 10px;
  font-size: 14px; font-weight: 600; border: none; cursor: pointer; transition: opacity .2s;
}
.ms-plan-btn:hover { opacity: .85; }
.ms-plan-btn-pri { background: #0078D4; color: #FFF; }
.ms-plan-btn-sec { background: transparent; border: 1.5px solid currentColor; color: #0078D4; }

/* 핵심 제품 그리드 */
.ms-products-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
}
.ms-product-card {
  background: #FFF; border: 1px solid rgba(0,0,0,.07); border-radius: 16px;
  padding: 24px 22px; display: flex; flex-direction: column; gap: 10px;
  transition: transform .3s, box-shadow .3s;
}
.ms-product-card:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(0,0,0,.09); }
.ms-product-icon {
  width: 44px; height: 44px; border-radius: 10px; display: flex;
  align-items: center; justify-content: center;
  font-size: 20px; font-weight: 800; color: #FFF;
}
.ms-product-name { font-size: 15px; font-weight: 700; color: #0A0A0A; }
.ms-product-desc { font-size: 13px; color: #515154; line-height: 1.6; }

/* OfficeKeeper 7-in-1 기능 그리드 */
.ok-features-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
}
.ok-feature-card {
  background: #FFF; border: 1px solid rgba(0,0,0,.08); border-radius: 16px;
  padding: 24px; display: flex; flex-direction: column; gap: 8px;
  transition: transform .3s, box-shadow .3s;
}
.ok-feature-card:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(0,0,0,.09); }
.ok-feature-num  { font-size: 13px; font-weight: 700; opacity: .5; }
.ok-feature-cat  { font-size: 16px; font-weight: 700; color: #0A0A0A; }
.ok-feature-desc { font-size: 13px; color: #515154; line-height: 1.6; flex: 1; }
.ok-feature-effect {
  display: flex; flex-direction: column; gap: 3px; padding-top: 12px;
  border-top: 1px solid rgba(0,0,0,.06);
}
.ok-effect-label { font-size: 10px; font-weight: 700; letter-spacing: .05em; color: #86868B; text-transform: uppercase; }
.ok-feature-effect span:last-child { font-size: 12.5px; color: #3C3C3E; }

/* 반응형 */
@media (max-width: 980px) {
  .ms-plans-grid    { grid-template-columns: repeat(2, 1fr); }
  .ms-products-grid { grid-template-columns: repeat(2, 1fr); }
  .ok-features-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .ms-plans-grid    { grid-template-columns: 1fr; }
  .ms-products-grid { grid-template-columns: 1fr; }
  .ok-features-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   역설계 / Inspection — 전용 스타일
   ============================================================ */

/* 히어로 — 밝은 배경 + 우측 다이어그램 */
.ree-hero { background: #F8FAFF; border-bottom: 1px solid rgba(29,78,216,.08); padding-top: 100px; padding-bottom: 80px; }
.ree-hero h1 { color: #0F172A; }
.ree-hero .sc-hero-body { color: #475569; }
.ree-hero .sc-stat { border-color: rgba(29,78,216,.15); }

/* 히어로 우측 비주얼 */
/* 역설계 히어로 비주얼 — sc-hero-visual 다크 배경/비율 무효화 */
.ree-hero .sc-hero-visual {
  aspect-ratio: unset;
  background: none;
  box-shadow: none;
  border-radius: 0;
  overflow: visible;
  display: flex;
  align-items: center;
}
.ree-hero-visual-wrap {
  width: 100%;
  background: #F1F5FF;
  border: 1px solid rgba(29,78,216,.12);
  border-radius: 20px;
  padding: 28px 24px;
  box-shadow: 0 8px 32px rgba(29,78,216,.08);
  overflow: hidden;
}
.ree-hero-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 10px;
}
.ree-flow-diagram {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.ree-flow-item {
  display: flex;
  align-items: center;
  gap: 6px;
}
.ree-flow-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}
.ree-flow-label {
  font-size: 12px;
  font-weight: 600;
  color: #1E293B;
  white-space: nowrap;
}
.ree-flow-arrow { font-size: 14px; opacity: .4; }

/* Color Map 시각화 */
.ree-colormap {
  border-top: 1px solid rgba(29,78,216,.1);
  padding-top: 20px;
}
.ree-cm-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #64748B;
  margin-bottom: 10px;
  text-transform: uppercase;
}
.ree-cm-bar {
  display: flex;
  height: 18px;
  border-radius: 8px;
  overflow: hidden;
}
.ree-cm-seg { flex: 1; }
.ree-cm-labels {
  display: flex;
  justify-content: space-between;
  font-size: 10px;
  color: #94A3B8;
  margin-top: 5px;
  font-family: ui-monospace, monospace;
}

/* 5단계 프로세스 */
.ree-process-sec { background: var(--color-surface-secondary, #F5F5F7); }
.ree-proc-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
}
.ree-proc-card {
  background: var(--color-surface, #fff);
  border: 1px solid rgba(0,0,0,.07);
  border-radius: 16px;
  padding: 24px 18px 20px;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: transform .3s, box-shadow .3s;
}
.ree-proc-card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(29,78,216,.1); }
.ree-proc-top { display: flex; align-items: center; justify-content: space-between; }
.ree-proc-no { font-size: 12px; font-weight: 800; letter-spacing: 0.08em; font-family: ui-monospace, monospace; }
.ree-proc-icon { opacity: .7; }
.ree-proc-card h3 { font-size: 14px; font-weight: 700; margin: 0; }
.ree-proc-card p  { font-size: 12px; line-height: 1.6; color: var(--color-text-secondary, #6B7280); margin: 0; }
.ree-proc-arrow { position: absolute; right: -10px; top: 50%; transform: translateY(-50%); font-size: 16px; z-index: 1; opacity: .5; }
.ray-mood-dark .ree-proc-card { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
.ray-mood-dark .ree-proc-card h3 { color: #FFF; }
@media (max-width: 1100px) { .ree-proc-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px)  { .ree-proc-grid { grid-template-columns: 1fr; } }

/* 활용 분야 — 카테고리별 */
.ree-app-sections { display: flex; flex-direction: column; gap: 32px; }
.ree-app-section {}
.ree-app-category {
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.03em;
  padding: 6px 16px;
  border-radius: 999px;
  border: 1px solid;
  margin-bottom: 16px;
}
.ree-app-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
.ree-app-card {
  background: var(--color-surface, #fff);
  border: 1px solid rgba(0,0,0,.07);
  border-radius: 14px;
  padding: 20px 18px 18px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: transform .25s;
}
.ree-app-card:hover { transform: translateY(-2px); }
.ree-app-icon { font-size: 24px; line-height: 1; }
.ree-app-card h4 { font-size: 14px; font-weight: 700; margin: 0; }
.ree-app-card p  { font-size: 12px; line-height: 1.6; color: var(--color-text-secondary, #6B7280); margin: 0; }
.ray-mood-dark .ree-app-card { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
.ray-mood-dark .ree-app-card h4 { color: #FFF; }
@media (max-width: 900px) { .ree-app-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .ree-app-grid { grid-template-columns: 1fr; } }

/* 사례 */
.ree-cases { background: var(--color-surface-secondary, #F5F5F7); }
.ree-cases-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 0; }
.ree-case-card { background: var(--color-surface, #fff); border: 1px solid rgba(0,0,0,.07); border-radius: 16px; padding: 24px 22px 20px; display: flex; flex-direction: column; gap: 6px; transition: transform .3s; }
.ree-case-card:hover { transform: translateY(-3px); }
.ree-case-client { font-size: 12px; font-weight: 600; color: #86868B; letter-spacing: 0.03em; }
.ree-case-subject { font-size: 16px; font-weight: 700; color: #1D1D1F; letter-spacing: -0.01em; }
.ree-case-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.ree-case-tag { font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: 999px; }
.ray-mood-dark .ree-case-card { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
.ray-mood-dark .ree-case-client { color: rgba(255,255,255,.45); }
.ray-mood-dark .ree-case-subject { color: #FFF; }
@media (max-width: 700px) { .ree-cases-grid { grid-template-columns: 1fr; } }

/* ============================================================
   문화재 보존/복원 — 전용 스타일
   ============================================================ */

/* 히어로 — 풀블리드 이미지 */
.heritage-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.heritage-hero-bg { position: absolute; inset: 0; z-index: 0; }
.heritage-hero-img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.heritage-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, rgba(10,6,2,.88) 40%, rgba(10,6,2,.45) 100%);
}
.heritage-hero-inner {
  position: relative;
  z-index: 1;
  padding-top: 120px;
  padding-bottom: 80px;
}
.heritage-hero .sc-hero-text h1 { color: #FFF; word-break: keep-all; overflow-wrap: break-word; }
.heritage-hero .sc-hero-body { color: rgba(255,255,255,.75); }
.heritage-hero .sc-stat-lbl { color: rgba(255,255,255,.5); }
.heritage-hero .sc-stat { border-color: rgba(255,255,255,.15); }

/* 스캔 유형 3카드 */
.heritage-services { background: var(--color-surface-secondary, #F5F5F7); }
.heritage-svc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.heritage-svc-card {
  background: var(--color-surface, #fff);
  border: 1px solid rgba(0,0,0,.07);
  border-radius: 20px;
  padding: 32px 28px 28px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: transform .3s, box-shadow .3s;
}
.heritage-svc-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(146,64,14,.1); }
.heritage-svc-icon { font-size: 32px; line-height: 1; }
.heritage-svc-no { font-size: 12px; font-weight: 800; letter-spacing: 0.08em; font-family: ui-monospace, monospace; }
.heritage-svc-card h3 { font-size: 18px; font-weight: 700; margin: 0; letter-spacing: -0.02em; }
.heritage-svc-card p  { font-size: 14px; line-height: 1.7; color: var(--color-text-secondary, #6B7280); margin: 0; }
.heritage-svc-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.heritage-svc-tag  { font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 999px; }
.ray-mood-dark .heritage-svc-card { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
.ray-mood-dark .heritage-svc-card h3 { color: #FFF; }
@media (max-width: 900px) { .heritage-svc-grid { grid-template-columns: 1fr; } }

/* 활용 분야 */
.heritage-uc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.heritage-uc-card {
  background: var(--color-surface, #fff);
  border: 1px solid rgba(0,0,0,.07);
  border-radius: 16px;
  padding: 28px 24px 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: transform .3s, box-shadow .3s;
}
.heritage-uc-card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(146,64,14,.1); }
.heritage-uc-icon { font-size: 28px; line-height: 1; }
.heritage-uc-card h3 { font-size: 15px; font-weight: 700; margin: 0; }
.heritage-uc-card p  { font-size: 13px; line-height: 1.65; color: var(--color-text-secondary, #6B7280); margin: 0; }
.ray-mood-dark .heritage-uc-card { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
.ray-mood-dark .heritage-uc-card h3 { color: #FFF; }
@media (max-width: 900px) { .heritage-uc-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .heritage-uc-grid { grid-template-columns: 1fr; } }

/* 사례 */
.heritage-cases { background: var(--color-surface-secondary, #F5F5F7); }
.heritage-cases-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.heritage-case-card {
  background: var(--color-surface, #fff);
  border: 1px solid rgba(0,0,0,.07);
  border-radius: 16px;
  padding: 24px 22px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: transform .3s;
}
.heritage-case-card:hover { transform: translateY(-3px); }
.heritage-case-client { font-size: 12px; font-weight: 600; color: #86868B; letter-spacing: 0.03em; }
.heritage-case-subject { font-size: 16px; font-weight: 700; color: #1D1D1F; letter-spacing: -0.01em; }
.heritage-case-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.heritage-case-tag { font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: 999px; }
.ray-mood-dark .heritage-case-card { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
.ray-mood-dark .heritage-case-client { color: rgba(255,255,255,.45); }
.ray-mood-dark .heritage-case-subject { color: #FFF; }
@media (max-width: 700px) { .heritage-cases-grid { grid-template-columns: 1fr; } }

/* ============================================================
   VFX / 엔터테인먼트 — 전용 스타일
   ============================================================ */

/* 히어로 — 풀블리드 이미지 */
.vfx-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding: 0;
}
.vfx-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.vfx-hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.vfx-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, rgba(10,10,16,.85) 40%, rgba(10,10,16,.4) 100%);
}
.vfx-hero-inner {
  position: relative;
  z-index: 1;
  padding-top: 120px;
  padding-bottom: 80px;
}
.vfx-hero .sc-hero-text h1 { color: #FFF; word-break: keep-all; overflow-wrap: break-word; }
.vfx-hero .sc-hero-body { color: rgba(255,255,255,.75); }
.vfx-hero .sc-stat-lbl { color: rgba(255,255,255,.55); }
.vfx-hero .sc-stat { border-color: rgba(255,255,255,.12); }

/* 서비스 카드 */
.vfx-services { background: var(--color-surface-secondary, #F5F5F7); }
.vfx-svc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 0;
}
.vfx-svc-card {
  background: var(--color-surface, #fff);
  border: 1px solid rgba(0,0,0,.07);
  border-radius: 20px;
  padding: 32px 28px 28px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: transform .3s, box-shadow .3s;
}
.vfx-svc-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(217,119,6,.12); }
.vfx-svc-num {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.06em;
  font-family: ui-monospace, monospace;
}
.vfx-svc-card h3 { font-size: 18px; font-weight: 700; margin: 0; letter-spacing: -0.02em; }
.vfx-svc-card p  { font-size: 14px; line-height: 1.7; color: var(--color-text-secondary, #6B7280); margin: 0; }
.vfx-svc-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.vfx-svc-tag  { font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 999px; }
.ray-mood-dark .vfx-svc-card { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
.ray-mood-dark .vfx-svc-card h3 { color: #FFF; }
@media (max-width: 900px) { .vfx-svc-grid { grid-template-columns: 1fr; } }

/* 참여 작품 — 포스터 카드형 */
.vfx-poster-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
  margin-top: 0;
}
.vfx-poster-card {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 2/3;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 18px 16px 16px;
  cursor: default;
  transition: transform .35s, box-shadow .35s;
  border: 1px solid rgba(255,255,255,.08);
}
.vfx-poster-card:hover {
  transform: translateY(-6px) scale(1.02);
  box-shadow: 0 20px 48px rgba(0,0,0,.5);
}
.vfx-poster-glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
.vfx-poster-platform {
  position: relative;
  z-index: 1;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border: 1px solid;
  border-radius: 999px;
  padding: 3px 10px;
  width: fit-content;
  backdrop-filter: blur(4px);
  background: rgba(0,0,0,.3);
}
.vfx-poster-body {
  position: relative;
  z-index: 1;
  margin-top: auto;
}
.vfx-poster-type {
  font-size: 11px;
  color: rgba(255,255,255,.45);
  letter-spacing: 0.04em;
  margin-bottom: 6px;
}
.vfx-poster-title {
  font-size: 22px;
  font-weight: 800;
  color: #FFF;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin: 0 0 4px;
  text-shadow: 0 2px 12px rgba(0,0,0,.6);
}
.vfx-poster-sub {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
}
.vfx-poster-footer {
  position: relative;
  z-index: 1;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,.1);
}
.vfx-poster-desc {
  font-size: 11px;
  line-height: 1.6;
  color: rgba(255,255,255,.5);
  margin: 0 0 8px;
}
.vfx-poster-badge {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding: 3px 10px;
  border-radius: 999px;
  width: fit-content;
}
@media (max-width: 1100px) { .vfx-poster-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px)  { .vfx-poster-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px)  { .vfx-poster-grid { grid-template-columns: 1fr; } }

/* 구 카드형 (하위 호환) */
.vfx-works-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 20px;
  margin-top: 0;
}
.vfx-work-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: transform .3s;
}
.vfx-work-card:hover { transform: translateY(-4px); }
.vfx-poster-wrap {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0,0,0,.15);
  background: #1a1a2e;
}
.vfx-poster-overlay {
  position: absolute;
  top: 10px;
  left: 10px;
  pointer-events: none;
}
.vfx-poster-badge {
  font-size: 10px;
  font-weight: 700;
  color: #fff;
  padding: 3px 8px;
  border-radius: 999px;
  letter-spacing: 0.04em;
}
.vfx-work-info { padding: 0 2px; }
.vfx-work-title {
  font-size: 14px;
  font-weight: 700;
  color: #1D1D1F;
  letter-spacing: -0.01em;
  margin-bottom: 3px;
}
.vfx-work-meta {
  font-size: 12px;
  color: #86868B;
  margin-bottom: 6px;
}
.vfx-work-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.vfx-work-tag  { font-size: 10px; font-weight: 600; padding: 2px 8px; border-radius: 999px; }
.vfx-poster-hint {
  text-align: center;
  font-size: 12px;
  color: #86868B;
  margin-top: 24px;
  font-style: italic;
}
.ray-mood-dark .vfx-work-title { color: #FFF; }
.ray-mood-dark .vfx-work-meta  { color: rgba(255,255,255,.4); }
@media (max-width: 1080px) { .vfx-works-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px)  { .vfx-works-grid { grid-template-columns: repeat(2, 1fr); } }

/* ============================================================
   정밀형 3DScan — 전용 스타일
   ============================================================ */

/* 히어로 포인트 비주얼 (광대역과 공유, 색상만 다름) */
.prec-hero .prec-points { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; opacity: .35; }

/* 3단계 프로세스 그리드 */
.prec-proc-grid { grid-template-columns: repeat(3, 1fr) !important; }
.prec-proc-sub {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #86868B;
  margin-top: 8px;
  padding: 5px 10px;
  background: rgba(0,0,0,.04);
  border-radius: 6px;
  font-family: "SF Mono", ui-monospace, monospace;
}
.ray-mood-dark .prec-proc-sub { background: rgba(255,255,255,.07); color: rgba(255,255,255,.45); }

/* 활용 분야 그리드 — 아이콘 카드형 */
.prec-app-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 40px;
}
.prec-app-card {
  background: var(--color-surface, #fff);
  border: 1px solid rgba(0,0,0,.07);
  border-radius: 16px;
  padding: 24px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: transform .3s, box-shadow .3s;
}
.prec-app-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(124,58,237,.1); }
.prec-app-icon { font-size: 28px; line-height: 1; }
.prec-app-tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 3px 10px;
  border-radius: 999px;
  width: fit-content;
}
.prec-app-card h3 { font-size: 14px; font-weight: 700; margin: 0; }
.prec-app-card p { font-size: 13px; line-height: 1.65; color: var(--color-text-secondary, #6B7280); margin: 0; }
.ray-mood-dark .prec-app-card { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
.ray-mood-dark .prec-app-card h3 { color: #FFF; }
@media (max-width: 1080px) { .prec-app-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 720px)  { .prec-app-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .prec-app-grid { grid-template-columns: 1fr; } }

/* 사례 섹션 */
.prec-cases { background: var(--color-surface-secondary, #F5F5F7); }
.prec-cases-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 40px;
}
.prec-case-card {
  background: var(--color-surface, #fff);
  border: 1px solid rgba(0,0,0,.07);
  border-radius: 16px;
  padding: 24px 22px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: transform .3s, box-shadow .3s;
}
.prec-case-card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(124,58,237,.1); }
.prec-case-client {
  font-size: 12px;
  font-weight: 600;
  color: #86868B;
  letter-spacing: 0.03em;
}
.prec-case-subject {
  font-size: 16px;
  font-weight: 700;
  color: #1D1D1F;
  letter-spacing: -0.01em;
}
.prec-case-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.prec-case-tag {
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 999px;
}
.ray-mood-dark .prec-case-card { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
.ray-mood-dark .prec-case-client { color: rgba(255,255,255,.45); }
.ray-mood-dark .prec-case-subject { color: #FFF; }
@media (max-width: 900px) { .prec-cases-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .prec-cases-grid { grid-template-columns: 1fr; } .prec-proc-grid { grid-template-columns: 1fr !important; } }

/* ============================================================
   Artec Jet — 전용 스타일
   ============================================================ */

/* 배포 모드 배지 (Hero) */
.jet-mode-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 20px;
}
.jet-mode-badge {
  font-size: 12px;
  font-weight: 600;
  padding: 4px 12px;
  border-radius: 999px;
  letter-spacing: 0.01em;
}

/* 배포 모드 그리드 */
.jet-deploy {
  background: #0A0A0A;
  color: #FFF;
}
.jet-deploy-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin-top: 0;
}
.jet-deploy-card {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 18px;
  padding: 28px 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: transform .3s, background .3s, border-color .3s;
}
.jet-deploy-card:hover {
  transform: translateY(-4px);
  background: rgba(6,182,212,.1);
  border-color: rgba(6,182,212,.4);
}
.jet-deploy-ico {
  font-size: 28px;
  line-height: 1;
}
.jet-deploy-name {
  font-size: 15px;
  font-weight: 700;
  color: #FFF;
}
.jet-deploy-desc {
  font-size: 13px;
  line-height: 1.6;
  color: rgba(255,255,255,.6);
  margin: 0;
}
@media (max-width: 1080px) { .jet-deploy-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .jet-deploy-grid { grid-template-columns: 1fr; } }

/* 에코시스템 섹션 */
.jet-ecosystem {
  background: var(--color-surface-secondary, #F5F5F7);
}
.jet-eco-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin-top: 0;
}
.jet-eco-card {
  background: #FFF;
  border: 1px solid rgba(0,0,0,.07);
  border-radius: 18px;
  padding: 28px 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  position: relative;
  overflow: hidden;
  transition: transform .3s, box-shadow .3s;
}
.jet-eco-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 36px rgba(6,182,212,.12);
}
.jet-eco-step {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  color: #FFF;
  font-size: 13px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 4px;
}
.jet-eco-scanner {
  font-size: 16px;
  font-weight: 800;
  color: #0A0A0A;
  letter-spacing: -0.01em;
}
.jet-eco-role {
  font-size: 12px;
  font-weight: 600;
  color: #86868B;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.jet-eco-desc {
  font-size: 13px;
  line-height: 1.65;
  color: #515154;
  margin: 0;
}
.ray-mood-dark .jet-eco-card {
  background: rgba(255,255,255,.05);
  border-color: rgba(255,255,255,.1);
}
.ray-mood-dark .jet-eco-scanner { color: #FFF; }
.ray-mood-dark .jet-eco-desc { color: rgba(255,255,255,.6); }
@media (max-width: 1080px) { .jet-eco-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .jet-eco-grid { grid-template-columns: 1fr; } }

/* ============================================================
   BIM Scan-to-BIM — 전용 스타일
   ============================================================ */

.bim-hero { background: #F0FDF4; border-bottom: 1px solid rgba(5,150,105,.08); padding-top: 100px; padding-bottom: 80px; }
.bim-hero h1 { color: #0F172A; }
.bim-hero .sc-hero-body { color: #475569; }
.bim-hero .sc-stat { border-color: rgba(5,150,105,.15); }

/* 5단계 프로세스 */
.bim-process-sec { background: var(--color-surface-secondary, #F5F5F7); }
.bim-proc-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
}
.bim-proc-card {
  background: var(--color-surface, #fff);
  border: 1px solid rgba(0,0,0,.07);
  border-radius: 16px;
  padding: 24px 18px 20px;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: transform .3s, box-shadow .3s;
}
.bim-proc-card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(5,150,105,.1); }
.bim-proc-top { display: flex; align-items: center; justify-content: space-between; }
.bim-proc-no { font-size: 12px; font-weight: 800; letter-spacing: 0.08em; font-family: ui-monospace, monospace; }
.bim-proc-icon { opacity: .7; }
.bim-proc-card h3 { font-size: 14px; font-weight: 700; margin: 0; }
.bim-proc-card p  { font-size: 12px; line-height: 1.6; color: var(--color-text-secondary, #6B7280); margin: 0; }
.bim-proc-arrow { position: absolute; right: -10px; top: 50%; transform: translateY(-50%); font-size: 16px; z-index: 1; opacity: .5; }
.ray-mood-dark .bim-proc-card { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
.ray-mood-dark .bim-proc-card h3 { color: #FFF; }
@media (max-width: 1100px) { .bim-proc-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px)  { .bim-proc-grid { grid-template-columns: 1fr; } }

/* 활용 분야 — 카테고리별 */
.bim-app-sections { display: flex; flex-direction: column; gap: 32px; }
.bim-app-category {
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.03em;
  padding: 6px 16px;
  border-radius: 999px;
  border: 1px solid;
  margin-bottom: 16px;
}
.bim-app-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
.bim-app-card {
  background: var(--color-surface, #fff);
  border: 1px solid rgba(0,0,0,.07);
  border-radius: 14px;
  padding: 20px 18px 18px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: transform .25s;
}
.bim-app-card:hover { transform: translateY(-2px); }
.bim-app-icon { font-size: 24px; line-height: 1; }
.bim-app-card h4 { font-size: 14px; font-weight: 700; margin: 0; }
.bim-app-card p  { font-size: 12px; line-height: 1.6; color: var(--color-text-secondary, #6B7280); margin: 0; }
.ray-mood-dark .bim-app-card { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
.ray-mood-dark .bim-app-card h4 { color: #FFF; }
@media (max-width: 900px) { .bim-app-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .bim-app-grid { grid-template-columns: 1fr; } }

/* 사례 */
.bim-cases { background: var(--color-surface-secondary, #F5F5F7); }
.bim-cases-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 0; }
.bim-case-card { background: var(--color-surface, #fff); border: 1px solid rgba(0,0,0,.07); border-radius: 16px; padding: 24px 22px 20px; display: flex; flex-direction: column; gap: 6px; transition: transform .3s; }
.bim-case-card:hover { transform: translateY(-3px); }
.bim-case-client { font-size: 12px; font-weight: 600; color: #86868B; letter-spacing: 0.03em; }
.bim-case-subject { font-size: 16px; font-weight: 700; color: #1D1D1F; letter-spacing: -0.01em; }
.bim-case-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.bim-case-tag { font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: 999px; }
.ray-mood-dark .bim-case-card { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
.ray-mood-dark .bim-case-client { color: rgba(255,255,255,.45); }
.ray-mood-dark .bim-case-subject { color: #FFF; }
@media (max-width: 700px) { .bim-cases-grid { grid-template-columns: 1fr; } }
