@charset "UTF-8";

/* Figma base: 800px wide email/landing frame */
.hero {
  position: relative;
  height: 924px;
  overflow: hidden;
  background: #02050e;
}
.hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: fill;
}
.hero__content { position: relative; z-index: 1; padding: 98px 72px 0; text-align: center; }
.hero h1 {
  color: #feff7d;
  font-size: 44px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: -.03em;
}
.hero__expo { width: min(100%, 656px); margin: 36px auto 0; }

.content-section { padding: 44px var(--content-gutter); background: #fff; }
.company { padding-top: 56px; padding-bottom: 52px; }
.section-head { min-height: 41px; display: flex; align-items: center; }
.section-head--split { justify-content: space-between; gap: 28px; }
.section-head h2,
.overview h2 {
  color: var(--navy);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: -.025em;
}
.section-head p { color: var(--ink); font-size: 20px; font-weight: 500; white-space: nowrap; }
.section-rule { width: 100%; height: 3px; margin: 16px 0; background: var(--blue); }
.dotted-rule { width: 100%; border-top: 3px dashed #c9dcff; }

.company > .figure--border { margin-bottom: 13px; }
.company-id { display: flex; align-items: center; gap: 40px; padding: 16px 0; }
.company-id img { width: 150px; height: 36px; }
.company-id div { display: flex; flex-direction: column; gap: 2px; }
.company-id strong { color: var(--navy); font-size: 22px; line-height: 1.45; }
.company-id span { color: var(--muted); font-size: 14px; }

.content-section p {
  color: var(--body);
  font-size: 17px;
  font-weight: 400;
  line-height: 1.42;
  letter-spacing: -.012em;
}
.company > p + p { margin-top: 14px; }
.company > p + .figure,
.company > .figure + p,
.company > p + h3 { margin-top: 20px; }
.company > .figure:not(.figure--border) { margin-top: 20px; }
.company h3 {
  color: var(--ink);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.45;
}

.official-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 184px;
  min-height: 40px;
  padding: 8px 20px;
  border: 1.5px solid var(--blue);
  border-radius: 999px;
  color: var(--blue);
  background: #fff;
  font-size: 14px;
  font-weight: 500;
}
.product--first { padding-top: 44px; }
.product-visual { aspect-ratio: 660 / 393; object-fit: contain; }
.product .section-rule { margin-bottom: 16px; }
.diamond-title {
  position: relative;
  margin-top: 16px;
  padding-left: 22px;
  color: var(--ink);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.45;
}
.diamond-title::before {
  content: "◆";
  position: absolute;
  left: 0;
  top: .08em;
  color: var(--blue);
  font-size: 14px;
}
.product .lead,
.mobile-bridge .lead {
  margin-top: 10px;
  color: var(--ink);
  font-weight: 700;
}
.product .lead + p { margin-top: 10px; }
.detail-visual { margin-top: 16px; }
.detail-visual + p { margin-top: 16px; }
.product--first::after,
.product--continuation::after { content: ""; display: block; height: 3px; margin-top: 16px; background: #e6e6e6; }
.product--continuation { padding-top: 0; }

.mobile-bridge .section-rule { margin-bottom: 16px; }
.mobile-bridge .figure + .lead { margin-top: 16px; }
.mobile-bridge p + p { margin-top: 14px; }

.registration { background: #fff; }
.registration a { display: block; }
.registration img { width: min(100%, 800px); height: auto; margin: 0 auto; }
.registration a:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: -3px;
}

.overview {
  position: relative;
  min-height: 950px;
  padding: 44px var(--content-gutter);
  overflow: hidden;
  background: #fff;
}
.overview__inner {
  position: relative;
  z-index: 1;
  min-height: 862px;
  padding: clamp(32px, 4vw, 48px) var(--overview-inner-x) clamp(44px, 5.5vw, 66px);
  overflow: hidden;
  background: #eef3fa url("../../../assets/image/page/swcc2026/overview-bg.png") center / cover no-repeat;
}
.overview__inner::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.1);
  pointer-events: none;
}
.overview__inner > * { position: relative; z-index: 1; }
.overview__head { display: flex; align-items: center; justify-content: space-between; min-height: 41px; gap: 24px; }
.overview__logos { display: flex; align-items: center; gap: 24px; }
.overview__furence { width: 119px; }
.overview__cross { width: 27px; height: 27px; }
.overview__swcc { width: 104px; height: auto; }
.overview .section-rule { margin: 16px 0 20px; }
.info-list { display: grid; gap: 16px; }
.info-list div { position: relative; display: flex; gap: 5px; padding-left: 22px; font-size: 18px; font-weight: 700; line-height: 1.45; }
.info-list div::before { content: "◆"; position: absolute; left: 0; top: .18em; color: var(--blue); font-size: 14px; }
.info-list dt { color: var(--blue); white-space: nowrap; }
.info-list dt::after { content: " :"; }
.info-list dd { color: var(--ink); }
.overview .dotted-rule { margin: 18px 0; }
.overview__subtitle { margin-bottom: 18px; }
.info-list--location { margin-bottom: 20px; }
.overview__map { width: 100%; }

/* 공식 홈페이지 플로팅 CTA */
.floating-actions {
  position: fixed;
  right: max(20px, calc((100vw - var(--page-max)) / 2 + 24px));
  bottom: max(24px, env(safe-area-inset-bottom));
  z-index: 100;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
}
.floating-home {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 44px;
  padding: 10px 22px;
  border: 1.5px solid var(--blue);
  border-radius: 24px;
  color: var(--blue);
  background: #fff;
  box-shadow: 0 10px 28px rgba(46, 111, 242, .18);
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}
.floating-top {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1.5px solid var(--blue);
  border-radius: 50%;
  color: var(--blue);
  background: #fff;
  box-shadow: 0 10px 28px rgba(46, 111, 242, .18);
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
}
.floating-home__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--blue);
  background: transparent;
  font-size: 14px;
  font-weight: 700;
}
.floating-home:focus-visible,
.floating-top:focus-visible {
  outline: 3px solid #feff7d;
  outline-offset: 4px;
}

@media (max-width: 700px) {
  .hero { width: 100%; height: auto; min-height: 0; aspect-ratio: 800 / 924; }
  .hero__content { padding: clamp(46px, 12vw, 98px) clamp(24px, 9vw, 72px) 0; }
  .hero h1 { font-size: clamp(27px, 5.5vw, 44px); }
  .hero__expo { margin-top: clamp(18px, 4.5vw, 36px); }

  .content-section {
    padding-left: clamp(24px, 8.75vw, 70px);
    padding-right: clamp(24px, 8.75vw, 70px);
  }
  .overview {
    min-height: auto;
    padding: clamp(24px, 5.5vw, 44px) clamp(16px, 8.75vw, 70px);
  }
  .overview__inner {
    min-height: auto;
    padding: clamp(24px, 4vw, 32px) clamp(20px, 5.375vw, 43px) clamp(28px, 5.5vw, 44px);
  }
  .section-head--split { align-items: flex-start; flex-direction: column; gap: 8px; }
  .section-head p { white-space: normal; }
  .company-id { gap: 22px; }
  .overview__head { align-items: flex-start; flex-direction: column; }
  .overview__logos { gap: 18px; }
  .floating-actions {
    right: 16px;
    bottom: max(16px, env(safe-area-inset-bottom));
  }
}

@media (max-width: 480px) {
  .content-section { padding-top: 34px; padding-bottom: 34px; }
  .company { padding-top: 38px; }
  .section-head h2,
  .overview h2 { font-size: 23px; }
  .section-head p { font-size: 15px; }
  .content-section p { font-size: 16px; line-height: 1.55; }
  .company-id { align-items: flex-start; flex-direction: column; gap: 10px; }
  .company-id img { width: 130px; height: auto; }
  .company h3 { font-size: 19px; }
  .official-link { min-width: 0; min-height: 36px; }
  .diamond-title { font-size: 16px; }
  .info-list div { align-items: flex-start; flex-wrap: wrap; font-size: 16px; }
  .overview__furence { width: 104px; }
  .overview__swcc { width: 90px; }
  .overview__cross { width: 22px; height: 22px; }
  .floating-home {
    min-height: 44px;
    padding: 10px 18px;
    gap: 4px;
    font-size: 14px;
  }
}

@media (max-width: 380px) {
  .hero { min-height: 430px; aspect-ratio: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
