body {
  background: #7e7e7e;
}

#header {
  position: relative;
  margin: 0 auto;
  max-width: 1920px;
  height: 1644px;
}

#header .back {
  display: flex;
  position: relative;
}
#header .back .memo {
  position: absolute;
  right: 100px;
  top: 80px;
  width: 1000px;
  z-index: 0;
}

#header .back .go-memo {
  position: absolute;
  right: 400px;
  top: 560px;
  z-index: 15;
}

#header .back .go-memo a {
  text-decoration: none;
}

#header .back .go-memo h3 {
  font-family: ShadowsIntoLight;
  font-size: 48px;
  color: #212121;
  display: inline-block;
  line-height: 1;
  text-align: left;
}

#header .back .go-memo a:hover h3 {
  color: var(--point-color1);
}

#header .back h1 {
  padding-left: 26px;
  padding-top: 36px;
}
#header .back h1 img {
  max-width: none;
  width: 1328px;
}
#header .inner {
  position: absolute;
  left: calc(50%);
  transform: translateX(-50%);
  top: 0;
  width: 1400px;
  z-index: 12;
}
#header .title .gnb a {
  position: relative;
  left: 1382px;
  color: #fff;
  font-weight: 500;
}

#header .title .gnb a:hover {
  color: #000;
}

#header .title .gnb {
  position: absolute;
  top: 172px;
  left: -1382px;
  width: 1920px;
  height: 50px;
  background: var(--point-color1);
  opacity: 70%;
  display: flex;
  align-items: center;
  gap: 50px;
}

#header .title h2 {
  margin-top: 280px;
  font-family: MaterialSymbolsSharp;
  font-weight: 700;
  font-size: 48px;
  color: var(--gray-600);
  letter-spacing: 0.1em;
}
#header .title h3 {
  font-family: Roboto;
  font-weight: 500;
  font-size: 20px;
  color: var(--gray-600);
  letter-spacing: 0.1em;
  line-height: 1.5;
}

#header .title .fox {
  position: absolute;
  top: 360px;
  left: 20px;
  width: 100px;
}

#header .sub-title {
  padding-top: 100px;
}
#header .sub-title strong {
  color: #212121;
  font-weight: 700;
  font-size: 24px;
}
#header .sub-title img {
  margin-bottom: 30px;
  width: 200px;
  z-index: 1;
}

/* ----------------------------- */

#container {
  position: relative;
  margin: -700px auto 0;
  width: 1400px;
  height: 1790px;
  background: #fff;
  box-shadow: 0 16px 30px 7px rgba(0, 0, 0, 0.2);
}

#container .inner {
  min-width: 1400px;
  padding: 0 110px;
  font-family: Roboto;
  letter-spacing: 0.1em;
  color: #212121;
  position: relative;
}

#container .web h2 {
  position: relative;
  left: 30px;
  top: 10px;
  margin-bottom: 100px;
  font-size: 45px;
  font-family: ShadowsintoLight;
  z-index: 0;
}
#container .web h2::before {
  content: '';
  display: block;
  position: absolute;
  left: -130px;
  top: -40px;
  background: url(/images/Rectangle.png) no-repeat center center;
  width: 454px;
  height: 168px;
  z-index: -1;
}

#container .cafe-gate {
  display: flex;
  padding-bottom: 100px;
  align-items: center;
  position: relative;
}
#container .cafe-gate img {
  padding-right: 81px;
}
#container .cafe-gate .cafegate-wrap::after {
  content: '';
  position: absolute;
  left: 425px;
  top: 121px;
  background: url(/images/iphon1.png) no-repeat center;
  width: 145px;
  height: 284px;
}
#container .cafe-gate h3 {
  color: var(--point-color2);
  font-size: 16px;
  font-weight: 400;
  margin-bottom: 20px;
}
#container .cafe-gate h2 {
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 12px;
}
#container .cafe-gate p {
  font-size: 16px;
  font-weight: 400;
  margin-bottom: 84px;
}

/* ============================= */

#container .tool {
  display: flex;
  gap: 10px;
}
#container .tool {
  gap: 20px;
}
#container .tool h4 {
  display: flex;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 10px;
  text-decoration-thickness: 1px;
}
#container .sub-page {
  display: flex;
  margin-top: 20px;
  gap: 17px;
}
#container .sub-page a {
  color: #212121;
  padding: 10px 10px;
  margin-top: 30px;
  border: 1px solid #212121;
  position: relative;
  z-index: 99;
}
#container .sub-page a:hover {
  border: 1px solid var(--point-color1);
  color: var(--point-color1);
}

/* ================================ */

#container .high1 {
  display: flex;
  padding-bottom: 100px;
  align-items: center;
  position: relative;
}
#container .high1 .project2 {
  padding-right: 113px;
}
#container .high1 h3 {
  color: var(--point-color2);
  font-size: 16px;
  font-weight: 400;
  margin-bottom: 20px;
}
#container .high1 h2 {
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 12px;
}
#container .high1 p {
  font-size: 16px;
  font-weight: 400;
  margin-bottom: 84px;
}
#container .high1 .high1-wrap::after {
  content: '';
  position: absolute;
  right: -20px;
  top: 121px;
  background: url(/images/iphon2.png) no-repeat center;
  width: 145px;
  height: 284px;
}

#container .ai {
  display: flex;
  padding-bottom: 100px;
  align-items: center;
  justify-content: space-between;
}
#container .ai .ai-txt {
  position: relative;
  font-family: ShadowsIntoLight;
  font-size: 45px;
  z-index: 1;
}

#container .ai .ai-txt::before {
  content: '';
  display: block;
  position: absolute;
  left: -210px;
  top: -5px;
  background: url(/images/Rectangle3.png) no-repeat center center;
  width: 455px;
  height: 88px;
  z-index: -1;
}

#container .ai .ai-img {
  display: flex;
  gap: 30px;
}

#container .ai .ai-img a {
  position: relative;
  display: block;
}

#container .ai .ai-img a img {
  display: block;
  width: 100%;
  transition: opacity 0.3s ease;
}

#container .ai .ai-img a:hover img {
  opacity: 0.3;
}

#container .ai .ai-img a::after {
  content: '';
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.3s ease;
}

#container .ai .ai-img a:hover::after {
  opacity: 1;
}

#container .ai .ai-img .ai1::after {
  background: url(/images/Group1.png) no-repeat center center;
}
#container .ai .ai-img .ai2::after {
  background: url(/images/Group2.png) no-repeat center center;
}
#container .ai .ai-img .ai3::after {
  background: url(/images/Group3.png) no-repeat center center;
}

/* ================================== */

#footer {
  position: relative;
  height: 3200px;
  margin: -2036px auto 0;
  pointer-events: none;
  max-width: 1920px;
}

#footer .wrap {
  position: sticky;
  top: 700px;
  height: 1433px;
  z-index: 20;
}

#footer img {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 0;
  align-items: center;
  overflow: hidden;
  z-index: 10;
}

#footer .wrap .scr {
  position: relative;
}

#footer .wrap .scr p {
  font-family: ShadowsIntoLight;
  font-size: 24px;
  position: absolute;
  top: 160px;
  left: 260px;
  z-index: 11;
}

#footer .wrap .scr .abm {
  position: relative;
  z-index: 12;
  padding: 305px 0 0 180px;
  font-size: 45px;
  font-family: ShadowsIntoLight;
}

#footer .wrap .scr .abm::after {
  content: '';
  display: block;
  position: absolute;
  left: 20px;
  top: 280px;
  background: url(/images/Rectangle2.png) no-repeat center center;
  width: 455px;
  height: 145px;
  z-index: -1;
}

#footer .wrap .scr p::after {
  content: '';
  display: inline-block;
  background: url(/images/arrow-2.png) no-repeat bottom;
  width: 28px;
  height: 28px;
  vertical-align: -15px;
  margin: 0 5px;
}

/* ============================ */

#footer .inner {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 400px;
  z-index: 11;
  display: flex;
  justify-content: space-between;
  font-family: Roboto;
  color: #212121;
  letter-spacing: 0.1em;
  font-size: 16px;
  max-width: 1180px;
  width: 100%;
  height: 450px;
}

#footer .inner .tool-skill {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

#footer .tool-skill .tool-wrap {
  display: flex;
  justify-content: space-between;
}
#footer .tool-wrap .tool {
  display: flex;
  justify-content: space-between;
  width: 200px;
}
#footer .tool-wrap .tool li {
  margin-bottom: 10px;
}
#footer .tool-wrap h2 {
  font-family: MaterialSymbolsSharp;
  font-weight: 700;
  font-size: 20px;
  margin-right: 50px;
}

#footer .tool-skill .skill-wrap {
  display: flex;
  justify-content: space-between;
}
#footer .skill-wrap .skill {
  display: flex;
  justify-content: space-between;
  width: 200px;
}
#footer .skill-wrap .skill li {
  margin-bottom: 10px;
}
#footer .skill-wrap h2 {
  font-family: MaterialSymbolsSharp;
  font-weight: 700;
  font-size: 20px;
}

#footer .edu-self .self {
  position: relative;
  font-size: 20px;
  line-height: 1.5em;
  z-index: 1; /* 텍스트가 배경 이미지보다 위에 오도록 */
}

#footer .edu-self .self::after {
  content: '';
  display: block;
  position: absolute;
  top: -180px;
  left: -200px;
  width: 1000px;
  height: 700px;
  background: url(/images/clip.png) no-repeat center;
  background-size: contain;
  z-index: -1;
}

#footer .edu-self .self p {
  position: relative;
  z-index: 2;
}

#footer .edu-self .edu {
  position: relative;
  z-index: 2;
  top: 100px;
}

#footer .edu h2 {
  font-family: MaterialSymbolsSharp;
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 50px;
}
#footer .edu ul {
  display: flex;
  align-items: flex-start;
  font-size: 20px;
  gap: 20px;
}
#footer .edu ul li:first-child {
  padding-top: 3px;
}

/* =========================== */

#footer .contact {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  background: #2c2c2c;
  height: 500px;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}
#footer .contact h2 {
  color: var(--point-color1);
}
#footer .contact .txtwrap {
  position: relative;
  margin-bottom: 70px;
}

#footer .contact .ctm {
  position: absolute;
  top: 180px;
  left: 260px;
  font-family: ShadowsIntoLight;
  font-size: 45px;
}
#footer .contact .ctm h2 {
  color: #212121;
}
#footer .contact .ctm::after {
  content: '';
  display: block;
  position: absolute;
  left: -140px;
  top: -8px;
  background: url(/images/Rectangle3.png) no-repeat center center;
  width: 455px;
  height: 88px;
  z-index: -1;
}

#footer .contact p {
  padding: 5px;
}
#footer .contact strong {
  font-weight: 500;
  padding-right: 20px;
}
#footer .contact .inn {
  padding-left: 10px;
}
#footer .contact .inn2 {
  padding-left: 10px;
}
#footer .contact .copy {
  color: var(--gray-500);
  font-size: 14px;
  position: absolute;
  left: 0;
  bottom: -150px;
}

/* =================================== */

#top-btn {
  position: fixed;
  right: 40px;
  bottom: 40px;
  width: 100px;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  z-index: 999;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.3s ease,
    visibility 0.3s ease;
}

#top-btn.show {
  opacity: 1;
  visibility: visible;
}

#top-btn img {
  width: 100%;
  height: auto;
  display: block;
}

#top-btn:hover {
  opacity: 0.8;
}
