* {
  box-sizing: border-box;
}

.intro-wrap {
  border-radius: 10px;
  position: relative;
  overflow: hidden;
  margin: 0 0 40px;
}
.intro-wrap:before {
  content: '';
  position: absolute;
  background: #000000;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  opacity: 0.3;
}
.intro-wrap .img-intro img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.intro-wrap .tit-intro {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  padding: 0 20px;
  box-sizing: border-box;
  text-transform: uppercase;
}
.intro-wrap .tit-intro p {
  text-align: center;
  font-family: Prompt;
  font-weight: 800;
  font-size: 70px;
  line-height: 60px;
  letter-spacing: -0.1px;
  text-align: center;
  vertical-align: middle;
  color: #ffffff;
  opacity: 0.5;
  mix-blend-mode: overlay;
}

.address-wrap {
  background: #eef3fcb2;
  border-radius: 10px;
  padding: 30px;
}
.address-wrap ul {
  display: flex;
  gap: 40px;
  align-items: center;
}
.address-wrap ul li {
  display: flex;
  align-items: center;
  gap: 10px;
}
.address-wrap ul li .tit {
  font-weight: 800;
  font-size: 15px;
  line-height: 100%;
  letter-spacing: -0.2px;
  color: #222222;
  width: 90px;
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
}
.address-wrap ul li .tit:before {
  content: '';
  display: inline-block;
  width: 21px;
  height: 20px;
}
.address-wrap ul li.location .tit:before {
  background: url(/_res/unist/_share/img/temp/ico-location.png) no-repeat center
    center;
  background-size: cover;
}
.address-wrap ul li.tel .tit:before {
  background: url(/_res/unist/_share/img/temp/ico-tel.png) no-repeat center
    center;
  background-size: cover;
}
.address-wrap ul li.email .tit:before {
  background: url(/_res/unist/_share/img/temp/ico-email.png) no-repeat center
    center;
  background-size: cover;
}
.address-wrap ul li .txt {
  flex: 1;
  font-weight: 600;
  font-size: 15px;
  line-height: 24px;
  letter-spacing: -0.2px;
  color: #333333;
}

@media (max-width: 1024px) {
  .intro-wrap .tit-intro p {
    font-size: 45px;
    line-height: 100%;
  }
  .address-wrap {
    padding: 25px 20px;
  }
  .address-wrap ul {
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
  }
  .address-wrap ul li {
    width: 100%;
  }
}

@media (max-width: 768px) {
  .intro-wrap {
    margin: 0 0 20px;
  }
  .intro-wrap .img-intro {
    height: calc(300 / 768 * 100vw);
  }
  .intro-wrap .tit-intro p {
    font-size: calc(40 / 768 * 100vw);
  }

  .address-wrap ul li .tit:before {
    width: 17px;
    height: 16px;
  }
}

/* hst-diagram-wrap */
.hst-diagram-wrap {
  position: relative;
  padding: 80px 20px 90px;
  overflow: hidden;
}
.hst-diagram-wrap .bg-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}
.hst-diagram-wrap .bg-img .img-box {
  width: 100%;
  height: 100%;
}
.hst-diagram-wrap .bg-img .img-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* Container */
.diagram-inner {
  max-width: 1000px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
.diagram-inner .head-area {
  text-align: center;
  color: #fff;
  margin-bottom: 35px;
}
.diagram-inner .head-area .sub-tit {
  display: inline-block;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 1px;
  margin-bottom: 12px;
}
.diagram-inner .head-area .main-tit {
  font-size: 32px;
  font-weight: 800;
  line-height: 1.3;
}

.chart-area {
  position: relative;
}

.chart-area::after {
  content: '';
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: -60px;
  width: calc(100% + 120px);
  height: 282px;
  background: #fff;
  border-radius: 999px;
}

/* Chart Area */
.diagram-inner .chart-area {
  position: relative;
  max-width: 632px;
  margin: 0 auto;
  /* Drop shadow on the entire shape including side scallops */
  filter: drop-shadow(0 15px 35px rgba(0, 0, 0, 0.3));
}
.diagram-inner .chart-box {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Part Top / Bot */
.part-top,
.part-bot {
  height: 280px;
  border-radius: 280px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 20px;
}

.diagram-inner .part-top {
  background: #39b8b8; /* Exact teal */
  padding: 55px 20px 65px;
  text-align: center;
  position: relative;
  z-index: 2;
}
.diagram-inner .part-bot {
  background: #193e7a; /* Exact navy */
  padding-inline: 75px;
  text-align: center;
  margin-top: -4px; /* Slight overlap to merge the divider into an 8px line */
  position: relative;
  z-index: 1;
}
.diagram-inner .part-tit {
  color: #fff;
  font-size: 21px;
  font-weight: 700;
}

/* Inner Pills - Top */
.diagram-inner .circle-wrap {
  display: flex;
  justify-content: center;
  gap: 30px;
  position: relative;
}
.diagram-inner .circle-wrap:after {
  content: '';
  position: absolute;
  top: 10px;
  bottom: 10px;
  left: 50%;
  width: 1px;
  background: rgba(255, 255, 255, 0.6);
}
.diagram-inner .circle-item {
  background: #fff;
  width: 220px; /* match design pill */
  height: 160px;
  border-radius: 100px; /* Pill shape */
  padding: 30px 15px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08); /* inner subtle shadow */
}
.diagram-inner .circle-item .tit {
  font-size: 15px;
  font-weight: 800;
  color: #193e7a;
  text-align: center;
  margin-bottom: 15px;
  line-height: 1.3;
}
.diagram-inner .circle-item .tit:after {
  content: '';
  display: block;
  width: 24px;
  height: 2px;
  background: #39b8b8;
  margin: 8px auto 0;
}
.diagram-inner .circle-item .txt {
  font-size: 13px;
  font-weight: 700;
  color: #39b8b8;
  text-align: center;
}

/* Inner Box - Bottom */
.diagram-inner .white-box {
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #fff;
  border-radius: 100px; /* Pill shape */
  margin: 0 auto;
  max-height: 160px;
  padding: 30px 30px;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
}
.diagram-inner .white-box .tit {
  font-size: 16px;
  font-weight: 600;
  color: #193e7a;
  text-align: center;
  margin-bottom: 12px;
}
.diagram-inner .white-box .tit:after {
  content: '';
  display: block;
  width: 24px;
  height: 2px;
  background: #aaa;
  margin: 8px auto 0;
}
.diagram-inner .white-box .txt {
  font-size: 12px;
  color: #666;
  text-align: center;
  margin-bottom: 12px;
}
.diagram-inner .logo-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0;
}
.diagram-inner .logo-wrap > .img-box {
  padding: 0 24px;
}
.diagram-inner .logo-wrap > .img-box img {
  height: 100%;
  object-fit: contain;
}
.diagram-inner .logo-wrap > .img-box:first-child {
  border-right: 1px solid #ccc;
}

/* Side Pointers (Scallop Bites) */
.diagram-inner .side-ico {
  position: absolute;
  top: 50%;
  width: 198px;
  height: 198px;
  background: #fff;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 4;
}
.diagram-inner .side-ico.left {
  left: 0;
  transform: translate(-60%, -50%);
}
.diagram-inner .side-ico.right {
  right: 0;
  transform: translate(60%, -50%);
}

.diagram-inner .side-ico .img-box {
  width: 100%;
  height: 100%;
  box-sizing: border-box;
}

/* Footer Quote */
.diagram-inner .foot-area {
  text-align: center;
  margin-top: 50px;
}
.diagram-inner .foot-area p {
  color: #fff;
  font-size: 16px;
  font-style: italic;
  font-weight: 500;
}

/* === RESPONSIVE === */
@media screen and (max-width: 1024px) {
  .hst-diagram-wrap {
    padding: 60px 20px;
  }
  .diagram-inner .head-area {
    margin-bottom: 25px;
  }
  .diagram-inner .head-area .main-tit {
    font-size: 24px;
  }
  .diagram-inner .chart-area {
    max-width: 560px;
  }
  .chart-area::after {
    left: -50px;
    width: calc(100% + 100px);
    height: 230px;
  }
  .part-top,
  .part-bot {
    height: 220px;
    padding-inline: 30px; /* Give content room from curved edges */
    gap: 10px;
  }
  .diagram-inner .circle-item {
    width: 170px;
    padding: 20px 15px;
  }
  .diagram-inner .circle-item .tit {
    font-size: 13px;
  }
  .diagram-inner .white-box {
    max-width: 85%;
    padding: 20px 20px;
  }
  .diagram-inner .white-box .tit {
    font-size: 12px;
  }
  .diagram-inner .white-box .txt {
    font-size: 10px;
  }
  .diagram-inner .side-ico {
    width: 120px;
    height: 120px;
  }
  /* img-box inherits width:100%;height:100% from global — no override needed */
}

@media screen and (max-width: 768px) {
  .hst-diagram-wrap {
    padding: 40px 20px;
    overflow: visible;
    background-color: #2b3856;
  }
  .diagram-inner .head-area {
    margin-bottom: 20px;
  }
  .diagram-inner .head-area .main-tit {
    font-size: 20px;
  }

  /* Core layout adjustment */
  .diagram-inner .chart-area {
    padding: 0;
    max-width: 100%;
    filter: none;
    overflow: visible;
  }
  .chart-area::after {
    height: 100px;
    left: 0;
    width: 100%;
  }

  .diagram-inner .chart-box {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .part-top,
  .part-bot {
    height: auto;
    min-height: 130px;
    padding: 16px 15px;
  }
  .diagram-inner .part-top {
    border-radius: 60px;
    border: none;
  }
  .diagram-inner .part-bot {
    border-radius: 60px;
    border: none;
    margin-top: 0;
    padding: 16px 15px;
  }
  .diagram-inner .part-tit {
    font-size: 15px;
    margin-bottom: 14px;
  }

  /* Inner elements top */
  .diagram-inner .circle-wrap {
    flex-direction: row; /* KEEP side-by-side */
    justify-content: center;
    align-items: stretch;
    gap: 10px;
  }
  .diagram-inner .circle-wrap:after {
    display: block; /* The vertical separator line */
    top: 5px;
    bottom: 5px;
  }
  .diagram-inner .circle-item {
    width: 48%; /* Half width each */
    height: auto;
    min-height: 120px;
    padding: 20px 8px;
    border-radius: 25px;
  }
  .diagram-inner .circle-item .tit {
    font-size: 13px;
    margin-bottom: 5px;
    line-height: 1.2;
  }
  .diagram-inner .circle-item .txt {
    font-size: 11px;
  }

  /* Inner elements bot */
  .diagram-inner .white-box {
    border-radius: 25px;
    padding: 20px 15px;
    max-width: 95%;
    max-height: none;
  }
  .diagram-inner .white-box .tit {
    font-size: 14px;
    margin-bottom: 8px;
    line-height: 1.3;
  }
  .diagram-inner .white-box .txt {
    font-size: 11px;
    margin-bottom: 12px;
  }

  /* Reset logos to side-by-side */
  .diagram-inner .logo-wrap {
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 15px;
  }
  .diagram-inner .logo-wrap > .img-box {
    padding: 0 10px;
    height: auto;
  }
  .diagram-inner .logo-wrap > .img-box img {
    height: 16px;
  }
  .diagram-inner .logo-wrap > .img-box:first-child {
    border-bottom: none;
    border-right: 1px solid #ccc;
    padding-bottom: 0;
    padding-right: 15px;
  }

  /* Side icons perfectly hovering midway */
  .diagram-inner .side-ico {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 80px;
    height: 80px;
    margin: 0;
    box-shadow: none;
  }
  .diagram-inner .side-ico.left {
    left: 0;
    transform: translate(-20%, -50%);
  }
  .diagram-inner .side-ico.right {
    right: 0;
    transform: translate(20%, -50%);
  }
  .diagram-inner .side-ico:after {
    display: none;
  }
  .diagram-inner .side-ico .img-box {
    width: 50px;
    height: 50px;
  }
}