.section {
  letter-spacing: calc(0.01em + var(--lsb));
}

.story__title {
  margin-bottom: 48px;
}
.btn {
  position: relative;
  display: flex;
  align-items: center;
  width: 370px;
  height: 48px;
  padding: 0 8px 0 20px;
  border-radius: 30px;
  background: var(--gray-100);
  color: var(--red);
  cursor: pointer;
  overflow: hidden;
  isolation: isolate;
}
.btn--white {
  background: var(--white);
}
.btn--red {
  background: var(--red);
}
.btn--red .btn__label {
  color: var(--white);
}
.btn--red::before {
  background: var(--white);
}
.btn--red:hover .btn__label,
.btn--red:focus-visible .btn__label {
  color: var(--red);
}

.btn::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--red);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.btn:hover::before,
.btn:focus-visible::before {
  transform: scaleX(1);
}

.btn:hover .btn__label,
.btn:focus-visible .btn__label {
  color: var(--white);
}

.btn__label {
  width: 302px;
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
  color: var(--red);
  transition: color 0.45s ease;
}
.btn__icon {
  width: 36px;
  height: 36px;
  flex: none;
  margin-left: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  background: var(--white);
}
.btn__icon svg {
  display: block;
}

.nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 72px;
  z-index: 100;
  background: rgba(0, 0, 0, 0.4);
}
.nav__inner {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.nav__wordmark {
  width: 211px;
  height: 29px;
}
.nav__wordmark svg {
  width: 211px;
  height: 29px;
  display: block;
}
.nav__title {
  font-size: 20px;
  line-height: 36px;
  font-weight: 700;
  color: var(--white);
  text-align: center;
}
.nav__brand {
  display: contents;
}
.nav__symbol {
  display: none;
}
.nav__year {
  color: var(--red);
}
.nav__lang {
  position: relative;
}
.nav__lang-toggle {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  background: none;
  border: 0;
  cursor: pointer;
  color: var(--white);
  font-family: inherit;
}
.nav__lang-label {
  font-size: 16px;
  line-height: 24px;
  letter-spacing: calc(-0.01em + var(--lsb));
  color: var(--white);
}
.nav__lang-caret {
  transition: transform 0.2s ease;
}
.nav__lang.is-open .nav__lang-caret {
  transform: rotate(180deg);
}

.nav__lang-menu {
  position: absolute;
  top: calc(100% + 14px);
  right: 0;
  min-width: 150px;
  padding: 6px;
  background: var(--white);
  border-radius: 10px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.28);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition:
    opacity 0.2s ease,
    transform 0.2s ease,
    visibility 0.2s ease;
  z-index: 20;
}
.nav__lang.is-open .nav__lang-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.nav__lang-item {
  padding: 9px 12px;
  border-radius: 7px;
  font-size: 14px;
  line-height: 20px;
  color: var(--ink);
  cursor: pointer;
}
.nav__lang-item a {
  display: block;
  color: inherit;
}
.nav__lang-item.is-active {
  background: var(--circle-1-bg);
  color: var(--red);
  font-weight: 600;
}
.nav__lang-item:not(.is-active):hover {
  background: var(--gray-100);
}
.cards {
  display: flex;
  align-items: center;
  gap: 30px;
}
.card {
  position: relative;
  width: 250px;
  height: 220px;
  padding: 20px;
  border-radius: 15px;
  background: var(--grad-card);
  overflow: hidden;
}
.card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #ffffff;
  clip-path: path(
    "M270.284 53.2842C270.284 47.9801 268.177 42.8932 264.427 39.1426L231.142 5.85742C227.391 2.10699 222.304 0 217 0H270.284V53.2842Z"
  );
  z-index: 4;
}
.card__watermark {
  position: absolute;
  top: 44px;
  left: 20px;
  width: 189px;
  height: 126px;
  z-index: 0;
}
.card__watermark svg {
  width: 100%;
  height: 100%;
  display: block;
}

.card__header {
  position: relative;
  z-index: 1;
}
.card__label {
  text-align: left;
  height: 48px;
  font-size: 18px;
  line-height: 24px;
  font-weight: 500;
  text-transform: uppercase;
  color: var(--ink);
}
.card__content {
  position: relative;
  z-index: 1;
  margin-top: 16px;
}
.card__value {
  font-size: 48px;
  line-height: 48px;
  font-weight: 500;
  color: var(--navy);
}
.card__sub {
  margin-top: 4px;
  font-size: 16px;
  line-height: 24px;
  letter-spacing: calc(-0.01em + var(--lsb));
  color: var(--muted);
}
.card__sub b {
  color: var(--ink);
}

.qcard {
  position: relative;
  overflow: hidden;
  border-radius: 15px;
  background: var(--grad-card);
  clip-path: polygon(
     0 0,

    calc(100% - 53px) 0,
    calc(100% - 45px) 2px,
    calc(100% - 39px) 6px,
    calc(100% - 6px) 39px,
    calc(100% - 1px) 46px,
    100% 53px,

     100% 100%,
    0 100%
  );
}

.qcard__logo {
  position: absolute;
  top: 42px;
  left: 20px;
  width: 189px;
  height: 126px;
  z-index: -1;
  opacity: 0.7;
}
.qcard__logo img,
.qcard__logo svg {
  width: 100%;
  height: 100%;
  display: block;
}
.qcard__text {
  position: absolute;
  right: 40px;
  margin: 0;
  z-index: 1;
  font-size: 22px;
  line-height: 32px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: calc(-0.04em + var(--lsb));
}
.qcard__mark {
  position: absolute;
  left: 20px;
  z-index: 1;
}
.qcard__mark--text {
  font-size: 92px;
  line-height: 92px;
  font-weight: 600;
  color: var(--red);
}
.qcard__mark--icon {
  width: 42px;
  height: 25px;
}

.qcard--brand {
  width: 570px;
  height: 200px;
}
.qcard--brand .qcard__mark {
  top: 36px;
}
.qcard--brand .qcard__text {
  top: 36px;
  left: 102px;
  right: 20px;
}

.qcard--ir {
  width: 770px;
  height: 200px;
}
.qcard--ir .qcard__mark {
  top: 68px;
}
.qcard--ir .qcard__text {
  top: 68px;
  left: 94px;
}

.divider {
  position: relative;
  height: 1px;
  margin-top: 16px;
  background: var(--gray-300);
}
.divider::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 120px;
  height: 1px;
  background: var(--red);
}

.fbox {
  position: relative;
  margin-top: 24px;
  padding: 48px;
  background: var(--gray-300);
  border-radius: 0 0 0 15px;
  clip-path: polygon(
    0 0,
    calc(100% - 50px) 0,
    calc(100% - 43px) 3px,
    calc(100% - 3px) 43px,
    100% 50px,
    100% 100%,
    0 100%
  );
}
.fbox::before {
  content: "";
  position: absolute;
  inset: 1px;
  z-index: 0;
  background: var(--white);
  border-radius: 0 0 0 14px;
  clip-path: polygon(
    0 0,
    calc(100% - 50px) 0,
    calc(100% - 43px) 3px,
    calc(100% - 3px) 43px,
    100% 50px,
    100% 100%,
    0 100%
  );
}
.fbox > * {
  position: relative;
  z-index: 1;
}

.fbox__corner {
  position: absolute;
  z-index: 2;
  width: 30px;
  height: 30px;
  background: var(--white);
}
.fbox__corner--tl {
  top: 0;
  left: 0;
}
.fbox__corner--br {
  bottom: 0;
  right: 0;
}
.fbox__corner::before {
  content: "";
  position: absolute;
  width: 8.42px;
  height: 8.42px;
  background: var(--red);
  transform: rotate(45deg);
}
.fbox__corner--tl::before {
  top: 1.8px;
  left: 1.7px;
}
.fbox__corner--br::before {
  bottom: 1.8px;
  right: 1.7px;
}
.fbox__title {
  margin: 0 0 24px;
  font-size: 16px;
  line-height: 24px;
  font-weight: 700;
  color: var(--red);
}
.fbox__list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.fbox__list > * {
  font-size: 16px;
  line-height: 24px;
  letter-spacing: calc(0.16px + var(--lsb));
  color: var(--ink);
}
.fbox__list b {
  font-weight: 700;
}
.fbox__hl {
  color: var(--red);
}
.fbox__content {
  column-count: 2;
  text-align: justify;
}

.footer__body {
  background: var(--grad-section);
  padding: 47.5px 0;
}
.footer__grid {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
}
.footer .btn {
  width: 330px;
}

.footer .eng {
  width: 170px;
}
.fcard {
  width: 370px;
  min-height: 330px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.fcard__num {
  width: 60px;
  height: 60px;
  border-radius: 30px;
  background: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  line-height: 48px;
  font-weight: 600;
  color: var(--red);
}
.fcard__title {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.fcard__label {
  align-self: flex-start;
  font-size: 27px;
  line-height: 36px;
  letter-spacing: calc(-0.56px + var(--lsb));
  font-weight: 600;
  color: var(--ink);
  transition: color 0.2s ease;
}
.fcard__label:hover,
.fcard__label:focus-visible {
  color: var(--red);
}
body[data-chapter="1"] .fcard[data-chapter="1"] .fcard__label,
body[data-chapter="2"] .fcard[data-chapter="2"] .fcard__label,
body[data-chapter="3"] .fcard[data-chapter="3"] .fcard__label,
body[data-chapter="4"] .fcard[data-chapter="4"] .fcard__label,
body[data-chapter="5"] .fcard[data-chapter="5"] .fcard__label,
body[data-chapter="6"] .fcard[data-chapter="6"] .fcard__label {
  color: var(--red);
}
.fcard__list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}

.fcard__item {
  font-size: 16px;
  line-height: 24px;
  letter-spacing: calc(0.01em + var(--lsb));
  color: var(--ink);
  transition: color 0.2s ease;
}

.fcard__item:hover,
.fcard__item:focus-visible {
  color: var(--red);
}

.footer__sub {
  height: 72px;
  background: var(--gray-100);
}
.footer__sub-inner {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.copyright {
  font-size: 14px;
  line-height: 20px;
  color: var(--copyright);
}
.copyright b {
  font-weight: 700;
}

.nav__burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  padding: 9px 8px;
  background: none;
  border: 0;
  cursor: pointer;
}
.nav__burger span {
  display: block;
  width: 100%;
  height: 2px;
  background: #fff;
  border-radius: 2px;
}

.mmenu {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  background: #fff;
  transform: translateX(-100%);
  visibility: hidden;
  transition:
    transform 0.3s ease,
    visibility 0.3s ease;
  overflow-y: auto;
}
body.menu-open {
  overflow: hidden;
}
body.menu-open .mmenu {
  transform: translateX(0);
  visibility: visible;
}

.mmenu__bar {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 56px;
  padding: 0 16px;
  border-bottom: 1px solid #ececec;
}
.mmenu__brand {
  display: flex;
  align-items: center;
  gap: 8px;
}
.mmenu__logo {
  width: 43px;
  height: auto;
  display: block;
}
.mmenu__title {
  font-size: clamp(12px, calc(7vw - 8.5px), 18px);
  font-weight: 500;
  letter-spacing: calc(0.2px + var(--lsb));
  color: var(--ink);
}
.mmenu__title b {
  color: var(--red);
  font-weight: 700;
}
.mmenu__close {
  display: flex;
  padding: 6px;
  background: none;
  border: 0;
  cursor: pointer;
}

.mmenu__nav {
  flex: 1;
}
.macc {
  border-bottom: 1px solid #ececec;
}
.macc__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 16px;
  background: none;
  border: 0;
  cursor: pointer;
  font-family: inherit;
  font-size: 15px;
  color: var(--ink);
  text-align: left;
}
.macc__chev {
  flex: none;
  transition: transform 0.25s ease;
}
.macc.is-open .macc__chev {
  transform: rotate(180deg);
}
.macc__panel {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
}
.macc.is-open .macc__panel {
  max-height: 640px;
}
.macc__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
}
.macc__link span {
  flex: 1;
}
.macc__arrow {
  flex: none;
}

.mmenu__nav {
  display: flex;
  flex-direction: column;
}
.macc--lang {
  position: relative;
  margin-top: auto;
  border-top: 0;
  border-bottom: 0;
}
.macc__head--lang {
  justify-content: flex-start;
  gap: 8px;
}
.macc__head--lang .mlang__globe {
  flex: none;
  color: var(--ink);
}

.macc--lang .macc__panel {
  position: absolute;
  left: 16px;
  bottom: calc(100% - 8px);
  min-width: 150px;
  max-height: none;
  overflow: visible;
  padding: 6px;
  background: var(--white);
  border-radius: 10px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition:
    opacity 0.2s ease,
    transform 0.2s ease,
    visibility 0.2s ease;
}
.macc--lang.is-open .macc__panel {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.mlang__opt {
  display: block;
  padding: 9px 12px;
  border-radius: 7px;
  font-size: 14px;
  font-weight: 600;
  color: var(--muted);
}
.mlang__opt.is-active {
  color: var(--red);
}

.quote {
  display: flex;
  height: 672px;
}
.quote__left {
  position: relative;
  width: 585px;
  background: var(--white);
  padding: 48px 48px 48px 70px;
  display: flex;
  flex-direction: column;
  gap: 48px;
}
.quote__left::after {
  content: "";
  position: absolute;
  left: 0;
  top: 100%;
  width: 100%;
  height: 226px;
  background: var(--white);
  clip-path: polygon(0 0, 77.69% 0, 100% 100%, 22.3% 100%);
  pointer-events: none;
}
.quote__icon {
  display: flex;
}
.quote__body-wrap {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.quote__text {
  font-size: 22px;
  line-height: 32px;
  letter-spacing: calc(-0.03em + var(--lsb));
  font-weight: 600;
  color: var(--ink);
  text-align: justify;
}
.quote__name {
  font-size: 22px;
  line-height: 32px;
  font-weight: 700;
  color: var(--ink);
}
.quote__role {
  font-size: 18px;
  line-height: 24px;
  font-weight: 500;
  color: var(--ink);
  text-align: justify;
}
.quote__right {
  position: relative;
  width: 585px;
}
.quote__bg {
  position: absolute;
  inset: 0;
  background: var(--grad-chairman);
  clip-path: polygon(0 0, 473.79px 0, 585px 111.21px, 100% 100%, 0 100%);
}
.quote__logo {
  position: absolute;
  top: 82px;
  right: 46px;
  width: 124px;
  height: 83px;
  z-index: 1;
}
.quote__logo svg {
  width: 100%;
  height: 100%;
  display: block;
}
.quote__photo {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 585px;
  height: 804px;
  z-index: 2;
  background-image: url("../assets/images/chairman.png");
  background-repeat: no-repeat;
  background-size: 639px 958px;
  background-position: -18px 0;
}

.quote--msg .quote__left {
  background: linear-gradient(180deg, #dedede 0%, #f9f9f9 100%);
}
.quote--msg .quote__left::after {
  background: linear-gradient(180deg, #f9f9f9 0%, #fdfdfd 100%);
}

.dlist {
  list-style: none;
  margin: 0;
  padding: 0;
}

.dlist > * {
  position: relative;
  padding-left: 15px;
}
.dlist > *::before {
  content: "";
  position: absolute;
  left: 3.5px;
  top: 9.5px;
  width: 5px;
  height: 5px;
  background: var(--red);
  transform: rotate(45deg);
}

.letter {
  padding: 0 0 0px;
}
.letter__body {
  column-count: 2;
  column-gap: 30px;
}
.letter__body p {
  margin: 0;
  font-size: 16px;
  line-height: 24px;
  text-align: justify;
  color: var(--ink);
}
.letter__body.minimal p {
  letter-spacing: calc(0.01em + var(--lsb));
}
.letter__body p.zero {
  letter-spacing: calc(0em + var(--lsb));
}
.letter__body p.negative {
  letter-spacing: calc(-0.01em + var(--lsb));
}

.letter__body p + p {
  margin-top: 24px;
}

.letter__body .letter__first__col {
  margin-top: 0;
}

.letter__body .letter__last__col {
  letter-spacing: calc(-0.16px + var(--lsb));
}
.letter__body .letter__break {
  break-before: column;
  margin-top: 0;
}
.letter__closing {
  margin-top: 24px;
  text-align: right;
  break-inside: avoid-column;
}
.letter__regards {
  margin: 0;
  font-size: 16px;
  line-height: 24px;
  color: var(--ink);
}
.letter__sign {
  display: block;
  width: 232px;
  height: auto;
  margin: 12px 0 12px auto;
}
.letter__name {
  margin: 0;
  font-size: 22px;
  line-height: 32px;
  font-weight: 700;
  color: var(--ink);
}
.letter__role {
  margin: 4px 0 0;
  font-size: 18px;
  line-height: 24px;
  font-weight: 500;
  color: var(--ink);
}

.logo-grad {
  position: absolute !important;
  width: 200px;
  height: 133px;
  left: calc(50% - 200px / 2 - 1px);
  top: calc(50% - 133px / 2);
}

.logo-grad::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, #ffff 0%, #f9f9f9 50%, #e8e8e8 100%);
  clip-path: polygon(33.33% 0%, 50% 25%, 33.33% 50%, 50% 75%, 33.33% 100%, 0% 50%);
}

.logo-grad::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, #ffff 0%, #f9f9f9 50%, #e8e8e8 100%);
  clip-path: polygon(66.67% 0%, 100% 50%, 66.67% 100%, 50% 75%, 66.67% 50%, 50% 25%);
}

.bullet-red {
  font-size: 16px;
  line-height: 24px;
  letter-spacing: calc(0.01em + var(--lsb));
  color: var(--muted);
  text-align: justify;
  position: relative;
  padding-left: 15px;
  margin: 24px 0 12px;
}

.bullet-red::before {
  content: "";
  position: absolute;
  left: 3.5px;
  top: 9.5px;
  width: 5px;
  height: 5px;
  background: var(--red);
  transform: rotate(45deg);
}

.cdnh .description {
  color: var(--muted);
}
.cdnh .description p {
  margin: 0;
  font-size: 16px;
  line-height: 24px;
  letter-spacing: calc(0.01em + var(--lsb));
  text-align: justify;
  color: var(--muted);
}
.cdnh .description p + p {
  margin-top: 24px;
}
.cdnh .description p b {
  font-weight: 700;
  color: var(--ink);
}
.cdnh .block__main .description + .description {
  margin-top: 32px;
}

.description_label--section {
  font-size: 18px;
  line-height: 24px;
  font-weight: 500;
  color: var(--red);
  padding-bottom: 8px;
}

.c4-list {
  margin-top: 32px;
  margin-bottom: 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.c4-list > * {
  font-size: 16px;
  line-height: 24px;
  letter-spacing: calc(0.01em + var(--lsb));
  color: var(--muted);
  text-align: justify;
}
.c4-list b {
  font-weight: 700;
  color: var(--ink);
}
.description > .c4-list:first-child,
.description > .description_label + .c4-list {
  margin-top: 24px;
}

.cdnh__body {
  padding: 72px 0 0;
  display: flex;
  flex-direction: column;
  gap: 56px;
}
.cdnh__body > * {
  position: relative;
  z-index: 1;
}
.cdnh__hero {
  z-index: 0;
}

.block__label {
  margin: 0;
  font-size: 22px;
  line-height: 32px;
  font-weight: 600;
  letter-spacing: calc(-0.03em + var(--lsb));
  color: var(--red);
}

.fbox--cols {
  overflow: hidden;
}
.fbox .logo-grad {
  width: 343px;
  height: 228px;
  left: calc(50% - 343px / 2 - 1px);
  top: calc(50% - 228px / 2);
}
.fbox__cols {
  display: flex;
  gap: 30px;
}
.fbox__col {
  flex: 1;
}
.fbox__col > * {
  font-size: 16px;
  line-height: 24px;
  letter-spacing: calc(0.01em + var(--lsb));
  color: var(--muted);
  text-align: justify;
}
.fbox__col > * + * {
  margin-top: 30px;
}
.fbox__sub {
  margin-top: 8px;
  padding-left: 4px;
  list-style: none;
}
.fbox__sub > li {
  position: relative;
  padding-left: 14px;
}
.fbox__sub > li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: var(--muted);
}
