/* Full-page scroll sections */
html {
  scroll-snap-type: y mandatory;
  -webkit-scroll-snap-type: y mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}

body {
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}

section {
  min-height: 100vh;
  width: 100%;
  scroll-snap-align: start;
  -webkit-scroll-snap-align: start;
  scroll-snap-stop: always;
  -webkit-scroll-snap-stop: always;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 225px 60px 60px;
}

.horizontal-scroll-container {
  width: 100%;
  height: 100%;
  display: flex;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
  -webkit-scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  touch-action: pan-x;
}

.horizontal-scroll-container::-webkit-scrollbar {
  display: none;
}

.horizontal-page {
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  scroll-snap-align: start;
  -webkit-scroll-snap-align: start;
  scroll-snap-stop: always;
  -webkit-scroll-snap-stop: always;
  display: flex;
  align-items: center;
  justify-content: center;
}

.section-content {
}

.section-title {
  font-size: 72px;
  font-weight: 700;
  margin-bottom: 30px;
  color: var(--color-text-primary);
}

.section-description {
  font-size: 24px;
  color: var(--color-text-secondary);
  line-height: 1.6;
}

/* Section specific styles */
.section-first {
  background: var(--color-white);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
}

.section-first .section-content {
  width: 100%;
  max-width: none;
  box-sizing: content-box;
}
.section-first .first-top {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: space-between;
}

.section-first .first-top .section-title img {
  width: 100%;
  max-width: 450px;
  object-fit: contain;
}

.section-first .first-top .first-top-title {
  font-size: 25px;
  text-align: left;
  color: var(--color-text-secondary);
}

.section-first .first-top .first-top-description {
  font-size: 25px;
  text-align: left;
  color: var(--color-text-primary);
}

.section-first .first-content .section-title,
.section-first .first-content .section-description {
  width: 100%;
  color: var(--color-primary);
}

.section-first .first-content .section-title img {
  width: 100%;
  object-fit: contain;
}

.section-first .first-content .section-description {
  font-size: 40px;
  text-align: left;
}

.section-about {
  padding: 0;
  height: 100vh;
}

.section-about .horizontal-page {
  padding: 225px 60px 60px;
}

.section-about .horizontal-page.about-page {
  width: 100%;
  height: 100%;
  background: url('/images/about_us_bg.png') no-repeat center center;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: fixed;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
}

.section-about .horizontal-page.about-page .about-page-top {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  align-self: flex-end;
}

.section-about .horizontal-page.about-page .about-page-top .first-top-title {
  font-size: 40px;
  text-align: left;
  color: rgba(255, 255, 255, 0.65);
}

.section-about .horizontal-page.about-page .about-page-top .first-top-description {
  font-size: 40px;
  text-align: left;
  color: var(--color-white);
}

.section-about .horizontal-page.about-page .about-page-bottom .section-title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  font-weight: 900;
  font-size: 95px;
  color: var(--color-white);
}

.section-about .horizontal-page.about-page .about-page-bottom .section-title img {
  width: 100%;
  max-width: 76px;
  object-fit: contain;
}

.section-about .horizontal-page.our-story-page {
  width: 100%;
  height: 100%;
  background: url('/images/our_story_bg.png') no-repeat center center;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: fixed; 
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
}

.section-about .horizontal-page.our-story-page .our-story-page-top {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  align-self: flex-start;
}

.section-about .horizontal-page.our-story-page .our-story-page-top .section-title {
  font-size: 95px;
  font-weight: 700;
  color: var(--color-white);
}

.section-about .horizontal-page.our-story-page .our-story-page-top .section-description {
  font-size: 70px;
  color: var(--color-white);
  line-height: 1.6;
  letter-spacing: -0.05;
}

.section-about .horizontal-page.our-story-page .our-story-page-bottom {
  align-self: flex-end;
}

.section-about .horizontal-page.our-story-page .our-story-page-bottom .section-description {
  font-size: 28px;
  color: var(--color-white);
  line-height: 1.6;
}

.section-who-we-are {
  height: 100vh;
  padding: 0;
}

.section-who-we-are .horizontal-page {
  width: 100%;
  height: 100%;
  padding: 225px 60px 60px;
}

.section-who-we-are .section-title,
.section-who-we-are .section-description {
  color: var(--color-primary);
}

.section-who-we-are .horizontal-page.who-we-are-page {
  display: flex;
  align-items: center;
  justify-content: space-around;
}

.section-who-we-are .horizontal-page.who-we-are-page img {
  width: 100%;
  max-width: 518px;
  object-fit: contain;
}

.section-who-we-are .horizontal-page.who-we-are-page .section-content .section-title {
  font-size: 95px;
  font-weight: 700;
  color: var(--color-primary);
}

.section-who-we-are .horizontal-page.who-we-are-page .section-content .section-description {
  font-size: 28px;
  font-weight: 400;
  color: var(--color-primary);
  line-height: 1.6;
  letter-spacing: -0.05;
}

.section-who-we-are .horizontal-page.we-move-page {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
}

.section-who-we-are .horizontal-page.we-move-page .section-content {
  width: 100%;
}

.section-who-we-are .horizontal-page.we-move-page .section-content .section-title {
  font-size: 95px;
  font-weight: 700;
  color: var(--color-primary);
}

.section-who-we-are .horizontal-page.we-move-page .section-content .section-description {
  font-size: 70px;
  font-weight: 400;
  color: var(--color-primary);
  line-height: 1.4;
  letter-spacing: -0.05;
}

.section-who-we-are .horizontal-page.we-move-page .we-move-list {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-around;
}

.section-who-we-are .horizontal-page.we-move-page .we-move-list li {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}

.section-who-we-are .horizontal-page.we-move-page .we-move-list li img {
  height: 100%;
  max-height: 105px;
  object-fit: contain;
}

.section-who-we-are .horizontal-page.we-move-page .we-move-list li h3 {
  font-size: 38px;
  font-weight: 700;
  color: var(--color-primary);
}

.section-who-we-are .horizontal-page.we-move-page .we-move-list li p {
  font-size: 24px;
  font-weight: 400;
  color: #484848;
  line-height: 1.4;
  letter-spacing: -0.05;
}

.section-who-we-are .horizontal-page.contents-page {
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
}

.section-who-we-are .horizontal-page.contents-page .section-title {
  padding: 225px 60px 0;
  font-size: 95px;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 0;
}

.section-who-we-are .horizontal-page.contents-page .section-description {
  padding: 0 60px 60px;
  font-size: 28px;
  font-weight: 400;
  color: var(--color-text-primary);
  line-height: 1.6;
  letter-spacing: -0.05;
}

.section-client {
  height: 100vh;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
}

.section-client .section-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  width: 100%;
}

.section-client .section-content .section-title {
  font-size: 95px;
  font-weight: 700;
  color: var(--color-primary);
}

.section-client .section-content .section-description {
  font-size: 70px;
  font-weight: 400;
  color: var(--color-primary);
  line-height: 1.6;
  letter-spacing: -0.05;
}

.section-client .client-image {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.section-client .client-image img {
  width: 100%;
  object-fit: contain;
}

.section-portfolio {
  background-color: #e9ecef;
}

.section-contact {
  height: 100vh;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  padding: 0;
}

.section-contact .horizontal-page {
  padding: 225px 60px 60px;
}

.section-contact .horizontal-page.contact-page {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex: 1;
}

.section-contact .horizontal-page.contact-page .section-content {
  width: 100%;
}

.section-contact .horizontal-page.contact-page .section-content .section-title {
  font-size: 95px;
  font-weight: 700;
  color: var(--color-primary);
}

.section-contact .horizontal-page.contact-page .section-content .section-description {
  font-size: 70px;
  font-weight: 400;
  color: var(--color-primary);
  line-height: 1.4;
  letter-spacing: -0.05;
}

.section-contact .horizontal-page.contact-page .map {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  align-self: center;
  flex: 0 0 40%;
  gap: 20px;
}

.section-contact .horizontal-page.contact-page .map img {
  width: 100%;
}

.section-contact .horizontal-page.contact-page .map .map-content {
  font-size: 40px;
  color: var(--color-primary);
}

.section-contact .horizontal-page.contact-page .map button {
  font-size: 30px;
  font-weight: 700;
  color: var(--color-primary);
  background-color: var(--color-white);
  border: 1px solid var(--color-primary);
  padding: 10px 20px;
  border-radius: 99em;
}

.section-contact .horizontal-page.location-page {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex: 1;
}

.section-contact .horizontal-page.location-page .section-content {
  width: 100%;
}

.section-contact .horizontal-page.location-page .section-content .section-title {
  font-size: 95px;
  font-weight: 700;
  color: var(--color-primary);
}

.section-contact .horizontal-page.location-page .section-content .section-description {
  font-size: 70px;
  font-weight: 400;
  color: var(--color-primary);
  line-height: 1.4;
  letter-spacing: -0.05;
}

.section-contact .horizontal-page.location-page .map-image {
  flex: 0 0 50%;
  align-self: center;
}

.section-contact .horizontal-page.location-page .map-image img {
  width: 100%;
  object-fit: contain;
}

/* 반응형 미디어 쿼리 */
@media (max-width: 1024px) {
  section {
    padding: 180px 40px 40px;
  }
  
  .section-title {
    font-size: 56px;
    margin-bottom: 24px;
  }
  
  .section-description {
    font-size: 20px;
  }
  
  .section-first .first-top .section-title img {
    max-width: 350px;
  }
  
  .section-first .first-top .first-top-title,
  .section-first .first-top .first-top-description {
    font-size: 20px;
  }
  
  .section-first .first-content .section-description {
    font-size: 32px;
  }
  
  .section-about .horizontal-page {
    padding: 180px 40px 40px;
  }
  
  .section-about .horizontal-page.about-page .about-page-top .first-top-title,
  .section-about .horizontal-page.about-page .about-page-top .first-top-description {
    font-size: 32px;
  }
  
  .section-about .horizontal-page.about-page .about-page-bottom .section-title {
    font-size: 72px;
  }
  
  .section-about .horizontal-page.our-story-page .our-story-page-top .section-title {
    font-size: 72px;
  }
  
  .section-about .horizontal-page.our-story-page .our-story-page-top .section-description {
    font-size: 56px;
  }
  
  .section-about .horizontal-page.our-story-page .our-story-page-bottom .section-description {
    font-size: 24px;
  }
  
  .section-who-we-are .horizontal-page {
    padding: 180px 40px 40px;
  }
  
  .section-who-we-are .horizontal-page.who-we-are-page img {
    max-width: 400px;
  }
  
  .section-who-we-are .horizontal-page.who-we-are-page .section-content .section-title {
    font-size: 72px;
  }
  
  .section-who-we-are .horizontal-page.who-we-are-page .section-content .section-description {
    font-size: 24px;
  }
  
  .section-who-we-are .horizontal-page.we-move-page .section-content .section-title {
    font-size: 72px;
  }
  
  .section-who-we-are .horizontal-page.we-move-page .section-content .section-description {
    font-size: 56px;
  }
  
  .section-who-we-are .horizontal-page.we-move-page .we-move-list li h3 {
    font-size: 30px;
  }
  
  .section-who-we-are .horizontal-page.we-move-page .we-move-list li p {
    font-size: 20px;
  }
  
  .section-who-we-are .horizontal-page.contents-page .section-title {
    padding: 180px 40px 0;
    font-size: 72px;
  }
  
  .section-who-we-are .horizontal-page.contents-page .section-description {
    padding: 0 40px 40px;
    font-size: 24px;
  }
  
  .section-client .section-content .section-title {
    font-size: 72px;
  }
  
  .section-client .section-content .section-description {
    font-size: 56px;
  }
  
  .section-contact .horizontal-page {
    padding: 180px 40px 40px;
  }
  
  .section-contact .horizontal-page.contact-page .section-content .section-title {
    font-size: 72px;
  }
  
  .section-contact .horizontal-page.contact-page .section-content .section-description {
    font-size: 56px;
  }
  
  .section-contact .horizontal-page.contact-page .map .map-content {
    font-size: 32px;
  }
  
  .section-contact .horizontal-page.contact-page .map button {
    font-size: 24px;
  }
  
  .section-contact .horizontal-page.location-page .section-content .section-title {
    font-size: 72px;
  }
  
  .section-contact .horizontal-page.location-page .section-content .section-description {
    font-size: 56px;
  }
}

@media (max-width: 768px) {
  section {
    padding: 100px 15px 20px;
  }
  
  .section-title {
    font-size: 36px;
    margin-bottom: 15px;
  }
  
  .section-description {
    font-size: 16px;
  }
  
  .section-first .first-top .section-title img {
    max-width: 240px;
    transform: scale(0.9);
  }
  
  .section-first .first-content .section-title img {
    transform: scale(0.9);
  }
  
  .section-first .first-top .first-top-title,
  .section-first .first-top .first-top-description {
    font-size: 16px;
  }
  
  .section-first .first-content .section-description {
    font-size: 20px;
  }
  
  .section-about .horizontal-page {
    padding: 100px 15px 20px;
  }
  
  .section-about .horizontal-page.about-page .about-page-top .first-top-title,
  .section-about .horizontal-page.about-page .about-page-top .first-top-description {
    font-size: 20px;
  }
  
  .section-about .horizontal-page.about-page .about-page-bottom .section-title {
    font-size: 48px;
  }
  
  .section-about .horizontal-page.our-story-page .our-story-page-top .section-title {
    font-size: 48px;
  }
  
  .section-about .horizontal-page.our-story-page .our-story-page-top .section-description {
    font-size: 36px;
  }
  
  .section-about .horizontal-page.our-story-page .our-story-page-bottom .section-description {
    font-size: 18px;
  }
  
  .section-who-we-are .horizontal-page {
    padding: 100px 15px 20px;
  }
  
  .section-who-we-are .horizontal-page.who-we-are-page {
    flex-direction: column;
    gap: 20px;
  }
  
  .section-who-we-are .horizontal-page.who-we-are-page img {
    max-width: 100%;
    transform: scale(0.85);
  }
  
  .section-who-we-are .horizontal-page.who-we-are-page .section-content .section-title {
    font-size: 48px;
  }
  
  .section-who-we-are .horizontal-page.who-we-are-page .section-content .section-description {
    font-size: 18px;
  }
  
  .section-who-we-are .horizontal-page.we-move-page .section-content .section-title {
    font-size: 48px;
  }
  
  .section-who-we-are .horizontal-page.we-move-page .section-content .section-description {
    font-size: 36px;
  }
  
  .section-who-we-are .horizontal-page.we-move-page .we-move-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
  
  .section-who-we-are .horizontal-page.we-move-page .we-move-list li {
    width: 100%;
  }
  
  .section-who-we-are .horizontal-page.we-move-page .we-move-list li img {
    transform: scale(0.8);
  }
  
  .section-who-we-are .horizontal-page.we-move-page .we-move-list li h3 {
    font-size: 20px;
  }
  
  .section-who-we-are .horizontal-page.we-move-page .we-move-list li p {
    font-size: 16px;
  }
  
  .section-who-we-are .horizontal-page.contents-page .section-title {
    padding: 100px 15px 0;
    font-size: 48px;
  }
  
  .section-who-we-are .horizontal-page.contents-page .section-description {
    padding: 0 15px 20px;
    font-size: 18px;
  }
  
  .section-who-we-are .horizontal-page.contents-page img {
  }
  
  .section-client .section-content .section-title {
    font-size: 48px;
  }
  
  .section-client .section-content .section-description {
    font-size: 36px;
  }
  
  .section-client .client-image img {
    transform: scale(1);
  }
  
  .section-contact .horizontal-page {
    padding: 100px 15px 20px;
  }
  
  .section-contact .horizontal-page.contact-page {
    flex-direction: column;
    gap: 20px;
  }
  
  .section-contact .horizontal-page.contact-page .section-content .section-title {
    font-size: 48px;
  }
  
  .section-contact .horizontal-page.contact-page .section-content .section-description {
    font-size: 36px;
  }
  
  .section-contact .horizontal-page.contact-page .map {
    flex: 1;
    width: 100%;
  }
  
  .section-contact .horizontal-page.contact-page .map img {
    transform: scale(0.85);
  }
  
  .section-contact .horizontal-page.contact-page .map .map-content {
    font-size: 20px;
  }
  
  .section-contact .horizontal-page.contact-page .map button {
    font-size: 18px;
    padding: 6px 12px;
  }
  
  .section-contact .horizontal-page.location-page {
    flex-direction: column;
    gap: 20px;
  }
  
  .section-contact .horizontal-page.location-page .section-content .section-title {
    font-size: 48px;
  }
  
  .section-contact .horizontal-page.location-page .section-content .section-description {
    font-size: 36px;
  }
  
  .section-contact .horizontal-page.location-page .map-image {
    flex: 1;
    width: 100%;
  }
  
  .section-contact .horizontal-page.location-page .map-image img {
    transform: scale(0.85);
  }
}

@media (max-width: 480px) {
  section {
    padding: 80px 12px 15px;
  }
  
  .section-title {
    font-size: 28px;
    margin-bottom: 12px;
  }
  
  .section-description {
    font-size: 14px;
  }
  
  .section-first .first-top .section-title img {
    max-width: 180px;
    transform: scale(0.85);
  }
  
  .section-first .first-content .section-title img {
    transform: scale(0.85);
  }
  
  .section-first .first-top .first-top-title,
  .section-first .first-top .first-top-description {
    font-size: 14px;
  }
  
  .section-first .first-content .section-description {
    font-size: 18px;
  }
  
  .section-about .horizontal-page {
    padding: 80px 12px 15px;
  }
  
  .section-about .horizontal-page.about-page .about-page-top .first-top-title,
  .section-about .horizontal-page.about-page .about-page-top .first-top-description {
    font-size: 18px;
  }
  
  .section-about .horizontal-page.about-page .about-page-bottom .section-title {
    font-size: 36px;
  }
  
  .section-about .horizontal-page.our-story-page .our-story-page-top .section-title {
    font-size: 36px;
  }
  
  .section-about .horizontal-page.our-story-page .our-story-page-top .section-description {
    font-size: 28px;
  }
  
  .section-about .horizontal-page.our-story-page .our-story-page-bottom .section-description {
    font-size: 16px;
  }
  
  .section-who-we-are .horizontal-page {
    padding: 80px 12px 15px;
  }
  
  .section-who-we-are .horizontal-page.who-we-are-page {
    gap: 15px;
  }
  
  .section-who-we-are .horizontal-page.we-move-page .we-move-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
  }
  
  .section-who-we-are .horizontal-page.who-we-are-page img {
    transform: scale(0.75);
  }
  
  .section-who-we-are .horizontal-page.who-we-are-page .section-content .section-title {
    font-size: 36px;
  }
  
  .section-who-we-are .horizontal-page.who-we-are-page .section-content .section-description {
    font-size: 16px;
  }
  
  .section-who-we-are .horizontal-page.we-move-page .section-content .section-title {
    font-size: 36px;
  }
  
  .section-who-we-are .horizontal-page.we-move-page .section-content .section-description {
    font-size: 28px;
  }
  
  .section-who-we-are .horizontal-page.we-move-page .we-move-list li img {
    transform: scale(0.7);
  }
  
  .section-who-we-are .horizontal-page.we-move-page .we-move-list li h3 {
    font-size: 18px;
  }
  
  .section-who-we-are .horizontal-page.we-move-page .we-move-list li p {
    font-size: 14px;
  }
  
  .section-who-we-are .horizontal-page.contents-page .section-title {
    padding: 80px 12px 0;
    font-size: 36px;
  }
  
  .section-who-we-are .horizontal-page.contents-page .section-description {
    padding: 0 12px 15px;
    font-size: 16px;
  }
  
  .section-who-we-are .horizontal-page.contents-page img {
  }
  
  .section-client .section-content .section-title {
    font-size: 36px;
  }
  
  .section-client .section-content .section-description {
    font-size: 28px;
  }
  
  .section-client .client-image img {
    transform: scale(1);
  }
  
  .section-contact .horizontal-page {
    padding: 80px 12px 15px;
  }
  
  .section-contact .horizontal-page.contact-page {
    gap: 15px;
  }
  
  .section-contact .horizontal-page.location-page {
    gap: 15px;
  }
  
  .section-contact .horizontal-page.contact-page .section-content .section-title {
    font-size: 36px;
  }
  
  .section-contact .horizontal-page.contact-page .section-content .section-description {
    font-size: 28px;
  }
  
  .section-contact .horizontal-page.contact-page .map img {
    transform: scale(0.75);
  }
  
  .section-contact .horizontal-page.contact-page .map .map-content {
    font-size: 18px;
  }
  
  .section-contact .horizontal-page.contact-page .map button {
    font-size: 16px;
    padding: 6px 12px;
  }
  
  .section-contact .horizontal-page.location-page .section-content .section-title {
    font-size: 36px;
  }
  
  .section-contact .horizontal-page.location-page .section-content .section-description {
    font-size: 28px;
  }
  
  .section-contact .horizontal-page.location-page .map-image img {
    transform: scale(0.75);
  }
}