From 23bd0c120733a9c54c0248b8741a13d903ea2746 Mon Sep 17 00:00:00 2001 From: hong Date: Tue, 14 Jul 2026 10:35:14 +0900 Subject: [PATCH] =?UTF-8?q?fix=20:=20=EB=A9=94=EC=9D=B8=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EB=B0=98=EC=9D=91=ED=98=95=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/static/sass/pages/_index.scss | 1232 ++++++++++------- .../templates/views/apps/main/index.html | 673 ++++----- 2 files changed, 971 insertions(+), 934 deletions(-) diff --git a/src/main/resources/static/sass/pages/_index.scss b/src/main/resources/static/sass/pages/_index.scss index 83bc879..191dac9 100644 --- a/src/main/resources/static/sass/pages/_index.scss +++ b/src/main/resources/static/sass/pages/_index.scss @@ -15,18 +15,18 @@ .hero-carousel-container { position: relative; width: 100%; - height: 448px; + height: 431px; overflow: hidden; background-color: #E9F9FF; - margin-top: 80px; + margin-top: 72px; @include respond-to('md') { - height: 800px; + height: 720px; } @include respond-to('sm') { - height: 480px; // Figma: 모바일 히어로 영역 높이 조정 - margin-top: 60px; + height: 432px; // Figma: 모바일 히어로 영역 높이 조정 + margin-top: 54px; } } @@ -47,7 +47,7 @@ top: 0; left: 0; width: 100%; - height: 440px; + height: 396px; display: flex; align-items: center; justify-content: center; @@ -83,25 +83,27 @@ justify-content: space-between; position: relative; margin: 0 auto; // 가운데 정렬 보장 + margin-top: 45px; @include respond-to('lg') { - padding: 0 26px; // 1280px 이상에서 중간 패딩 + padding: 0 20px; // 1152px 이상에서 중간 패딩 } @include respond-to('md') { flex-direction: column; - padding: 80px 40px; + padding: 72px 36px; justify-content: center; - gap: 40px; + gap: 36px; + margin-top: 296px; } @include respond-to('sm') { - // Figma 모바일: 이미지 먼저, 텍스트 나중에 (역순) - flex-direction: column-reverse; - padding: 60px 20px 80px; - gap: 70px; - justify-content: flex-end; // 컨텐츠를 아래쪽으로 배치 + flex-direction: column; + padding: 30px 20px 20px; + gap: 20px; + justify-content: flex-start; align-items: center; + margin-top: 80px; } } @@ -109,9 +111,9 @@ flex: 0 0 auto; display: flex; flex-direction: column; - gap: 46px; + gap: 41px; z-index: 2; - width: 593px; + width: 534px; @include respond-to('md') { align-items: center; @@ -119,53 +121,51 @@ } @include respond-to('sm') { - // Figma 모바일: 텍스트 영역 스타일 - 왼쪽 정렬 - gap: 24px; - align-items: flex-start; - text-align: left; + gap: 16px; + align-items: center; + text-align: center; width: 100%; - padding: 0 $spacing-3xl; + padding: 0 10px; } } .hero-text { .hero-subtitle { font-family: "Spoqa Han Sans Neo", "SpoqaHanSans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; - font-size: 20px; + font-size: 18px; font-weight: 500; color: var(--secondary-color); letter-spacing: 2px; text-transform: uppercase; - margin-bottom: 12px; + margin-bottom: 11px; @include respond-to('md') { - font-size: 28px; + font-size: 25px; } @include respond-to('sm') { - font-size: 16px; + font-size: 14px; font-weight: 500; - line-height: 34px; - letter-spacing: -0.32px; - margin: 0; + line-height: 1.4; + margin-bottom: 0; } } .hero-title { - font-size: 42px; + font-size: 38px; font-weight: 700; line-height: 1.25; color: var(--text-dark); letter-spacing: -1.5px; @include respond-to('md') { - font-size: 40px; + font-size: 36px; } @include respond-to('sm') { font-size: 24px; font-weight: 700; - line-height: 34px; + line-height: 1.3; letter-spacing: -0.48px; } } @@ -175,21 +175,21 @@ display: inline-flex; align-items: center; justify-content: center; - gap: 8px; - width: 180px; - height: 56px; + gap: 7px; + width: 162px; + height: 50px; background-color: var(--primary-color); color: #FFFFFF; - font-size: 16px; + font-size: 14px; font-weight: 700; - border-radius: 12px; - box-shadow: 0 8px 24px rgba(0, 73, 180, 0.2); + border-radius: 11px; + box-shadow: 0 7px 22px rgba(0, 73, 180, 0.2); transition: var(--transition-smooth); &:hover { background-color: var(--secondary-color); transform: translateY(-3px); - box-shadow: 0 12px 30px rgba(0, 73, 180, 0.35); + box-shadow: 0 11px 27px rgba(0, 73, 180, 0.35); color: white; } @@ -198,42 +198,42 @@ } @include respond-to('md') { - width: 200px; + width: 180px; } @include respond-to('sm') { - // Figma 모바일: 144x40px, 14px - width: 144px; - height: 40px; - padding: 8px 10px; - font-size: 14px; - border-radius: 8px; + // Figma 모바일: 144x40px, 13px + width: 130px; + height: 36px; + padding: 7px 9px; + font-size: 13px; + border-radius: 7px; } } .hero-image-content { flex: 0 0 auto; - width: 556px; - height: 455px; + width: 500px; + height: 410px; display: flex; align-items: center; justify-content: center; z-index: 1; @include respond-to('lg') { - width: 410px; - height: 300px; + width: 369px; + height: 270px; } @include respond-to('md') { - width: 410px; - height: 300px; + width: 369px; + height: 270px; } @include respond-to('sm') { // Figma 모바일: 218x180px 이미지 - width: 218px; - height: 180px; + width: 196px; + height: 162px; max-width: none; flex-shrink: 0; } @@ -250,11 +250,11 @@ position: absolute; top: 50%; transform: translateY(-50%); - width: 60px; - height: 60px; + width: 54px; + height: 54px; background: rgba(255, 255, 255, 0.5); border: none; - border-radius: 50px; + border-radius: 45px; cursor: pointer; display: none; // 기본값: 숨김 align-items: center; @@ -272,83 +272,83 @@ } svg { - width: 22px; - height: 22px; + width: 20px; + height: 20px; } - // 1280px 이상에서만 표시 + // 1152px 이상에서만 표시 @include respond-to('lg') { display: flex; } } .hero-nav-prev { - left: 210px; + left: 189px; svg { transform: rotate(180deg); } @include respond-to('sm') { - left: 20px; + left: 18px; } @include respond-to('md') { - left: 40px; + left: 36px; } - // 1280px 이상에서는 화면 가운데 기준으로 위치 계산 - // calc(50vw - 640px + offset) = 화면 중앙에서 컨텐츠 왼쪽 끝 + offset + // 1152px 이상에서는 화면 가운데 기준으로 위치 계산 + // calc(50vw - 576px + offset) = 화면 중앙에서 컨텐츠 왼쪽 끝 + offset @include respond-to('lg') { - left: calc(50vw - 640px - 80px); + left: calc(50vw - 576px - 140px); } } .hero-nav-next { - right: 210px; + right: 189px; @include respond-to('sm') { - right: 20px; + right: 18px; } @include respond-to('md') { - right: 40px; + right: 36px; } - // 1280px 이상에서는 화면 가운데 기준으로 위치 계산 - // calc(50vw - 640px + offset) = 화면 중앙에서 컨텐츠 오른쪽 끝 + offset + // 1152px 이상에서는 화면 가운데 기준으로 위치 계산 + // calc(50vw - 576px + offset) = 화면 중앙에서 컨텐츠 오른쪽 끝 + offset @include respond-to('lg') { - right: calc(50vw - 640px - 80px); + right: calc(50vw - 576px - 140px); } } // Carousel indicators .hero-carousel-indicators { position: absolute; - bottom: 40px; + bottom: 5px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; - gap: 12px; + gap: 11px; z-index: 10; @include respond-to('sm') { // 모바일: 우측 상단에 가로 배치 - top: 60px; - right: 28px; + top: 54px; + right: 25px; bottom: auto; left: auto; transform: none; flex-direction: row; - gap: 6px; + gap: 5px; align-items: center; } } .hero-indicator { - width: 10px; - height: 10px; + width: 9px; + height: 9px; border-radius: 50%; background: transparent; border: 2px solid var(--text-light); @@ -369,16 +369,16 @@ @include respond-to('sm') { // 모바일: 가로 배치, 6x6px 원형 (active도 동일 크기) // Figma: inactive는 테두리만 있는 빈 원 - width: 6px; - height: 6px; + width: 5px; + height: 5px; border-radius: 50%; background: transparent; border: 1px solid #8C959F; // Figma: rgba(140, 149, 159, 1) &.active { // active 시 동일 크기, 배경 채움 - width: 6px; - height: 6px; + width: 5px; + height: 5px; border-radius: 50%; background: #0049B4; border: none; @@ -391,7 +391,7 @@ display: flex; align-items: center; justify-content: center; - margin-left: 8px; + margin-left: 7px; cursor: pointer; padding: 0; transition: all 0.3s ease; @@ -410,7 +410,7 @@ &:hover { background: rgba(255, 255, 255, 1); border-color: #0049B4; - box-shadow: 0 2px 8px rgba(0, 73, 180, 0.2); + box-shadow: 0 2px 7px rgba(0, 73, 180, 0.2); } @include respond-to('sm') { @@ -427,10 +427,10 @@ .api-search-section { position: relative; padding: 0; - //margin-top: -80px; + //margin-top: -72px; overflow: hidden; background: #e9f9ff; - height: 314px; + height: 283px; .search-background { position: absolute; @@ -447,28 +447,28 @@ display: flex; align-items: center; justify-content: center; - gap: 40px; + gap: 36px; z-index: 1; @include respond-to('md') { flex-direction: column; - gap: 24px; - padding-top: 40px; + gap: 22px; + padding-top: 36px; } @include respond-to('sm') { // Figma 모바일: 캐릭터와 텍스트 가로 배치 flex-direction: row; flex-wrap: wrap; - gap: 8px; - padding-top: 20px; + gap: 7px; + padding-top: 18px; justify-content: center; } } .search-character { - width: 154px; - height: 148px; + width: 139px; + height: 133px; flex-shrink: 0; img { @@ -478,14 +478,14 @@ } @include respond-to('md') { - width: 120px; - height: 115px; + width: 108px; + height: 104px; } @include respond-to('sm') { // Figma 모바일: 68x65px - width: 68px; - height: 65px; + width: 61px; + height: 59px; } } @@ -503,18 +503,18 @@ } .search-title { - font-size: 36px; + font-size: 32px; line-height: 1.3; color: #000000; margin: 0; @include respond-to('md') { - font-size: 28px; + font-size: 25px; } @include respond-to('sm') { - // Figma 모바일: 16px, Bold - font-size: 16px; + // Figma 모바일: 14px, Bold + font-size: 14px; line-height: 1.4; color: #212529; } @@ -524,17 +524,17 @@ position: relative; display: flex; justify-content: center; - padding: 0px 0 30px; + padding: 0px 0 27px; z-index: 1; @include respond-to('md') { - padding: 30px 20px 20px; + padding: 27px 18px 18px; } @include respond-to('sm') { - // Figma 모바일: 좌측 27px, 우측 28px 패딩으로 좌측 정렬 + // Figma 모바일: 좌측 24px, 우측 25px 패딩으로 좌측 정렬 justify-content: flex-start; - padding: 0px 28px 12px 27px; + padding: 0px 25px 11px 24px; } } @@ -543,8 +543,8 @@ max-width: 816px; @include respond-to('sm') { - // Figma 모바일: 320px 고정 너비 - //width: 320px; + // Figma 모바일: 288px 고정 너비 + //width: 288px; //max-width: 320px; } } @@ -552,26 +552,26 @@ .search-box { position: relative; width: 100%; - height: 80px; + height: 72px; background: #FFFFFF; - border: 6px solid #0049B4; - border-radius: 50px; + border: 5px solid #0049B4; + border-radius: 45px; display: flex; align-items: center; - padding: 0 24px; + padding: 0 22px; @include respond-to('md') { - height: 60px; + height: 54px; border: 4px solid #0049B4; - padding: 0 16px; + padding: 0 14px; } @include respond-to('sm') { // Figma 모바일: 320x36px, 1px 파란색 테두리 - height: 36px; + height: 32px; border: 3px solid #0049B4; - border-radius: 18px; - padding: 0 12px; + border-radius: 16px; + padding: 0 11px; } } @@ -583,10 +583,10 @@ outline: none; background: transparent; font-family: $font-family-primary; - font-size: 17px; + font-size: 15px; font-weight: 500; color: #000000; - padding: 0 20px; + padding: 0 18px; &::placeholder { color: #B3B3B3; @@ -594,15 +594,15 @@ } @include respond-to('md') { - font-size: 15px; - padding: 0 12px; + font-size: 14px; + padding: 0 11px; } @include respond-to('sm') { - // Figma 모바일: 11px, Medium, placeholder 색상 #8C959F - font-size: 11px; + // Figma 모바일: 10px, Medium, placeholder 색상 #8C959F + font-size: 10px; font-weight: 500; - padding: 0 8px; + padding: 0 7px; &::placeholder { color: #8C959F; @@ -619,8 +619,8 @@ display: flex; align-items: center; justify-content: center; - width: 40px; - height: 40px; + width: 36px; + height: 36px; flex-shrink: 0; transition: transform 0.3s ease; @@ -633,24 +633,24 @@ } svg { - width: 33px; - height: 34px; + width: 30px; + height: 31px; @include respond-to('md') { - width: 28px; - height: 29px; + width: 25px; + height: 26px; } @include respond-to('sm') { // Figma 모바일: 16x16px 아이콘 - width: 16px; - height: 16px; + width: 14px; + height: 14px; } } @include respond-to('sm') { - width: 20px; - height: 20px; + width: 18px; + height: 18px; } } @@ -659,38 +659,38 @@ display: flex; align-items: center; justify-content: center; - gap: 12px; - padding: 0 20px 0px; + gap: 11px; + padding: 0 18px 0px; z-index: 1; @include respond-to('md') { flex-direction: column; align-items: center; justify-content: center; - gap: 8px; - padding: 0 20px 30px; + gap: 7px; + padding: 0 18px 27px; } @include respond-to('sm') { // Figma 모바일: 가로 배치, 작은 간격 flex-direction: row; flex-wrap: wrap; - gap: 12px; - padding: 0 20px 20px; + gap: 11px; + padding: 0 18px 18px; justify-content: center; } } .hashtag-label { font-family: $font-family-primary; - font-size: 16px; + font-size: 14px; font-weight: 700; color: #000000; white-space: nowrap; @include respond-to('sm') { - // Figma 모바일: 12px, Bold - font-size: 12px; + // Figma 모바일: 11px, Bold + font-size: 11px; color: #212529; } } @@ -698,24 +698,24 @@ .hashtag-list { display: flex; align-items: center; - gap: 14px; + gap: 13px; flex-wrap: wrap; @include respond-to('md') { justify-content: center; - gap: 10px; + gap: 9px; } @include respond-to('sm') { - // Figma 모바일: 8px 간격, wrap - gap: 8px; + // Figma 모바일: 7px 간격, wrap + gap: 7px; justify-content: left; } } .hashtag-link { font-family: $font-family-primary; - font-size: 16px; + font-size: 14px; font-weight: 400; color: #000000; text-decoration: none; @@ -728,33 +728,33 @@ } @include respond-to('md') { - font-size: 14px; + font-size: 13px; } @include respond-to('sm') { - // Figma 모바일: 12px - font-size: 12px; + // Figma 모바일: 11px + font-size: 11px; color: #212529; } } .hashtag-separator { font-family: $font-family-primary; - font-size: 16px; + font-size: 14px; color: #000000; user-select: none; @include respond-to('md') { - font-size: 14px; + font-size: 13px; } @include respond-to('sm') { // Figma 모바일: 세로 구분선 (|) - font-size: 10px; + font-size: 9px; color: #212529; display: flex; align-items: center; - height: 10px; + height: 9px; } } } @@ -764,17 +764,32 @@ .search-container { max-width: 1280px; margin: 0 auto; - padding: 0 26px; + padding: 0 20px; z-index: 9; position: relative; + margin-top: 0px; + + @include respond-to('sm') { + margin-top: 0px; + padding: 0 16px; + } } .api-search-section { position: relative; padding: 0; - overflow: hidden; + padding-top: 63px; + padding-bottom: 40px; + overflow: visible; background: #e9f9ff; - height: 314px; + + @include respond-to('sm') { + padding-top: 30px; + } + + @include respond-to('md') { + padding-bottom: 30px; + } .search-background { position: absolute; @@ -792,50 +807,70 @@ align-items: center; justify-content: space-between; background: linear-gradient(153deg, rgb(255 255 255 / 53%) 0%, rgb(255 255 255 / 53%) 50%, rgb(255 255 255 / 53%) 100%); - backdrop-filter: blur(8px); + backdrop-filter: blur(7px); border: 3px solid #FFFFFF; - border-radius: 30px; - height: 236px; - padding: 0 60px; + border-radius: 27px; + height: 212px; + padding: 0 54px; box-shadow: - 0 12px 35px rgba(82, 127, 255, .12), + 0 11px 32px rgba(82, 127, 255, .12), inset 0 1px 1px rgba(255, 255, 255, .95), - inset 0 -2px 8px rgba(255, 255, 255, .15), - inset 0 0 40px rgba(255, 255, 255, .28); - gap: 40px; + inset 0 -2px 7px rgba(255, 255, 255, .15), + inset 0 0 36px rgba(255, 255, 255, .28); + gap: 36px; - @media (max-width: 1200px) { + @include respond-to('md') { height: auto; - padding: 40px 30px; + padding: 36px 27px; flex-direction: column; - gap: 24px; + gap: 22px; + } + + @include respond-to('sm') { + padding: 24px 18px; + gap: 18px; + border-radius: 18px; + } +} + +.search-character-box { + width: 80px; + + @include respond-to('sm') { + width: 60px; + margin: 0 auto; } } .search-card-left { flex: 0 0 35%; - @media (max-width: 1200px) { + @include respond-to('md') { text-align: center; width: 100%; } } .search-card-title { - font-size: 36px; + font-size: 32px; font-weight: 700; line-height: 1.35; color: #000000; letter-spacing: -1px; + margin-bottom: 0px; + + @include respond-to('sm') { + font-size: 22px; + } } .search-card-right { flex: 1; display: flex; flex-direction: column; - gap: 22px; + gap: 20px; - @media (max-width: 1200px) { + @include respond-to('md') { width: 100%; } } @@ -843,13 +878,18 @@ .search-tags-row { display: flex; align-items: center; - gap: 14px; - font-size: 16px; + gap: 13px; + font-size: 14px; - @media (max-width: 1200px) { + @include respond-to('md') { justify-content: center; flex-wrap: wrap; } + + @include respond-to('sm') { + gap: 8px; + font-size: 12px; + } } .search-tag-label { @@ -860,28 +900,28 @@ .search-tag-divider { color: rgba(0, 0, 0, 0.15); - font-size: 14px; + font-size: 13px; user-select: none; } .search-tag-list { display: flex; align-items: center; - gap: 8px; + gap: 7px; flex-wrap: wrap; - @media (max-width: 1200px) { + @include respond-to('md') { justify-content: center; } } .search-tag-link { - font-size: 13px; + font-size: 12px; font-weight: 700; color: #FFFFFF; background-color: #4546CE; - padding: 6px 14px; - border-radius: 20px; + padding: 5px 13px; + border-radius: 18px; transition: var(--transition-smooth); display: inline-block; text-decoration: none; @@ -904,20 +944,26 @@ .search-card-box { position: relative; width: 100%; - height: 80px; + height: 72px; background: #FFFFFF; - border: 6px solid #0049B4; - border-radius: 50px; + border: 5px solid #0049B4; + border-radius: 45px; display: flex; align-items: center; - padding: 0 32px; + padding: 0 29px; transition: var(--transition-smooth); &:focus-within { - box-shadow: 0 20px 45px rgba(0, 73, 180, 0.18); + box-shadow: 0 18px 41px rgba(0, 73, 180, 0.18); transform: translateY(-2px); border-color: var(--secondary-color); } + + @include respond-to('sm') { + height: 52px; + border-width: 3px; + padding: 0 15px; + } } .search-card-input { @@ -927,7 +973,7 @@ border: none; outline: none; background: transparent; - font-size: 17px; + font-size: 15px; font-weight: 700; color: var(--text-dark); text-align: center; @@ -936,6 +982,10 @@ color: #B3B3B3; font-weight: 500; } + + @include respond-to('sm') { + font-size: 13px; + } } .search-card-btn { @@ -946,9 +996,9 @@ align-items: center; justify-content: center; position: absolute; - right: 32px; - width: 33px; - height: 34px; + right: 29px; + width: 30px; + height: 31px; padding: 0; transition: var(--transition-smooth); @@ -974,15 +1024,20 @@ position: relative; display: flex; align-items: center; // 수직 중앙 정렬 - padding: 75px 0 100px; + padding: 68px 0 90px; background: $white; overflow: hidden; - height: 800px; + height: 720px; + + @include respond-to('md') { + height: auto; + padding: 50px 0 60px; + } @include respond-to('sm') { height: auto; // Figma 모바일: 패딩 조정 - padding: 40px 0 60px; + padding: 36px 0 54px; } .showcase-background { @@ -998,12 +1053,18 @@ } .showcase-wrapper { - max-width: 1228px; + max-width: 1280px; margin: 0 auto; - //padding: 0 20px; + padding: 0 20px; + //padding: 0 18px; position: relative; width: 100%; z-index: 1; + + @include respond-to('sm') { + + padding: 0 20px; + } } .header-title-box .section-header { @@ -1015,7 +1076,7 @@ display: flex; align-items: flex-end; justify-content: space-between; - margin-bottom: 48px; + margin-bottom: 43px; @include respond-to('md') { padding-right: 0; @@ -1027,26 +1088,26 @@ align-items: center; justify-content: center; padding-right: 0; - margin-bottom: 18px; + margin-bottom: 16px; position: relative; } } .section-title { - font-size: 38px; + font-size: 34px; font-weight: 700; color: var(--text-dark); - margin-bottom: 12px; + margin-bottom: 11px; letter-spacing: -0.5px; text-align: left; @include respond-to('md') { - font-size: 36px; + font-size: 32px; } @include respond-to('sm') { - // Figma 모바일: 20px, Bold, #212529 - font-size: 20px; + // Figma 모바일: 18px, Bold, #212529 -> 좀 더 크게 조정 + font-size: 24px; color: #212529; letter-spacing: -0.4px; } @@ -1054,11 +1115,11 @@ .section-subtitle { font-family: $font-family-primary; - font-size: 18px; + font-size: 16px; color: var(--text-gray); @include respond-to('md') { - font-size: 20px; + font-size: 18px; } @@ -1072,42 +1133,42 @@ display: inline-flex; align-items: center; justify-content: center; - gap: 8px; - width: 120px; - height: 44px; + gap: 7px; + width: 108px; + height: 40px; background: var(--secondary-color); color: #FFFFFF; - font-size: 14px; + font-size: 13px; font-weight: 700; - border-radius: 8px; - box-shadow: 0 4px 12px rgba(0, 138, 226, 0.15); + border-radius: 7px; + box-shadow: 0 4px 11px rgba(0, 138, 226, 0.15); transition: var(--transition-smooth); @include respond-to('md') { position: static; transform: none; - margin: 24px auto 0; } @include respond-to('sm') { - // Figma 모바일: 72x24px, 10px Bold, border-radius 4px, 오른쪽 정렬 + // 버튼이 찌그러지지 않도록 auto width 및 padding 조정 position: absolute; top: 50%; right: 0; transform: translateY(-50%); margin: 0; - width: 72px; - height: 24px; - padding: 10px; - font-size: 10px; + width: auto; + height: 28px; + padding: 0 12px; + font-size: 11px; font-weight: 700; border-radius: 4px; - gap: 10px; + gap: 4px; + white-space: nowrap; } svg { - width: 11px; - height: 17px; + width: 10px; + height: 15px; transition: transform 0.3s ease; path { @@ -1117,14 +1178,14 @@ @include respond-to('sm') { // Figma 모바일: 5x8px 아이콘 width: 5px; - height: 8px; + height: 7px; } } &:hover { background: var(--primary-color); transform: translateY(-2px); - box-shadow: 0 6px 18px rgba(0, 73, 180, 0.25); + box-shadow: 0 5px 16px rgba(0, 73, 180, 0.25); svg { transform: translateX(4px); @@ -1134,33 +1195,33 @@ .api-cards-container { display: flex; - gap: 32px; + gap: 29px; justify-content: center; //@include respond-to('lg') { - // gap: 24px; + // gap: 22px; //} @include respond-to('md') { flex-wrap: wrap; - gap: 20px; + gap: 18px; justify-content: center; } @include respond-to('sm') { - // Figma 모바일: 2x2 그리드, gap 17px (가로) / 12px (세로) - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 12px 17px; + // 1-column layout for mobile to prevent squished cards + display: flex; + flex-direction: column; + gap: 15px; } } .api-card { - height: 320px; + height: 288px; background: #FFFFFF; border: 1px solid var(--border-color); - border-radius: 24px; - padding: 32px; + border-radius: 22px; + padding: 29px; display: flex; flex-direction: column; justify-content: space-between; @@ -1171,7 +1232,7 @@ &:hover { background: linear-gradient(135deg, #50caff 0%, #2088ff 100%); - transform: translateY(-10px); + transform: translateY(-9px); box-shadow: var(--shadow-hover); color: white; @@ -1179,25 +1240,26 @@ .card-title, .card-description { color: white; + } } @include respond-to('md') { - width: calc(50% - 10px); + width: calc(50% - 9px); min-width: 250px; } @include respond-to('sm') { - // Figma 모바일: 160px width, auto height, padding 20px 19px + // Figma 모바일: 144px width, auto height, padding 18px 17px width: 100%; height: auto; min-width: unset; - min-height: 200px; - padding: 20px 19px; - border-radius: 12px; + min-height: 180px; + padding: 18px 17px; + border-radius: 11px; border: 1px solid #DADADA; box-shadow: 2px 2px 5px 0px rgba(185, 204, 222, 0.3); - gap: 20px; + gap: 18px; } @@ -1207,42 +1269,44 @@ } .card-title { - font-size: 22px; + font-size: 20px; font-weight: 700; color: var(--text-dark); - margin-bottom: 12px; + margin-bottom: 11px; text-align: left; + font-family: "Spoqa Han Sans Neo", "SpoqaHanSans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; @include respond-to('sm') { - // Figma 모바일: 15px Bold, 색상 #000000 - font-size: 15px; + // Figma 모바일: 14px Bold, 색상 #000000 + font-size: 17px; line-height: 1; color: #000000; - margin: 0 0 12px 0; + margin-bottom: 0; } } .card-description { font-family: $font-family-primary; - font-size: 14px; + font-size: 13px; color: var(--text-gray); line-height: 1.5; text-align: left; @include respond-to('sm') { - // Figma 모바일: 12px Medium, 색상 #515151 - font-size: 12px; + // Figma 모바일: 11px Medium, 색상 #515151 + font-size: 13px; font-weight: 500; line-height: 1; + } } .card-illustration { - width: 90px; - height: 90px; + width: 81px; + height: 81px; display: flex; align-items: center; justify-content: center; @@ -1256,9 +1320,9 @@ } @include respond-to('sm') { - // Figma 모바일: 48x48px 아이콘 - width: 48px; - height: 48px; + // 1열 배치에 맞게 아이콘 크기 확대 + width: 70px; + height: 70px; } } } @@ -1273,14 +1337,14 @@ // ----------------------------------------------------------------------------- .info-section { position: relative; - padding: 120px 0; + padding: 108px 0; background-color: #0E1B3E; color: #FFFFFF; overflow: hidden; @include respond-to('sm') { - min-height: 392px; - padding: 75px 20px 20px; + min-height: 353px; + padding: 68px 18px 18px; } .info-background { @@ -1306,18 +1370,20 @@ display: flex; align-items: center; justify-content: space-between; - gap: 60px; + gap: 54px; @include respond-to('md') { flex-direction: column; - gap: 64px; + gap: 36px; + text-align: center; } @include respond-to('sm') { - display: block; + display: flex; flex-direction: column; - gap: 20px; + gap: 18px; position: relative; + text-align: center; } } @@ -1326,49 +1392,78 @@ max-width: 600px; @include respond-to('md') { - text-align: center; - max-width: 100%; + display: contents; } @include respond-to('sm') { - text-align: left; - max-width: 100%; - order: 1; + display: contents; } } .info-title { display: flex; flex-direction: column; - gap: 8px; - margin-bottom: 24px; + gap: 7px; + margin-bottom: 22px; @include respond-to('md') { - font-size: 36px; + font-size: 32px; + order: 1; + margin-bottom: 0; + } + + @include respond-to('sm') { + order: 1; + margin-bottom: 0; } } .title-sub { - font-size: 18px; + font-size: 16px; font-weight: 500; color: var(--secondary-color); letter-spacing: 1px; + + @include respond-to('sm') { + font-size: 13px; + } } .title-highlight { - font-size: 46px; + font-size: 41px; font-weight: 700; line-height: 1.25; background: linear-gradient(90deg, #FFFFFF 0%, #81d5ff 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; + + @include respond-to('md') { + font-size: 36px; + } + + @include respond-to('sm') { + font-size: 26px; + } } .info-description { - font-size: 16px; + font-size: 14px; line-height: 1.7; color: rgba(255, 255, 255, 0.75); - margin-bottom: 40px; + margin-bottom: 36px; + + @include respond-to('md') { + order: 3; + margin-bottom: 24px; + } + + @include respond-to('sm') { + order: 3; + font-size: 13px; + line-height: 1.6; + margin-bottom: 24px; + word-break: keep-all; + } } .action-buttons { @@ -1376,13 +1471,14 @@ gap: $spacing-lg; @include respond-to('md') { + order: 4; justify-content: center; } @include respond-to('sm') { - flex-direction: row; - align-items: stretch; - gap: 15px; + order: 4; + flex-direction: column; + gap: 12px; width: 100%; } @@ -1399,7 +1495,7 @@ .btn-primary { background-color: var(--secondary-color); color: rgb(255, 255, 255); - box-shadow: rgba(0, 138, 226, 0.3) 0px 4px 15px; + box-shadow: rgba(0, 138, 226, 0.3) 0px 4px 14px; } .btn-secondary { @@ -1415,7 +1511,7 @@ &:hover { background-color: #00A3FF; transform: translateY(-2px); - box-shadow: 0 8px 25px rgba(0, 138, 226, 0.45); + box-shadow: 0 7px 23px rgba(0, 138, 226, 0.45); } } @@ -1427,35 +1523,32 @@ display: inline-flex; align-items: center; justify-content: center; - gap: 8px; - height: 56px; - padding: 0 28px; - font-size: 15px; + gap: 7px; + height: 50px; + padding: 0 25px; + font-size: 14px; font-weight: 700; - border-radius: 12px; + border-radius: 11px; transition: var(--transition-smooth); @include respond-to('sm') { font-size: 14px; font-weight: 700; - line-height: 1.4; - padding: 8px 10px; + padding: 0 15px; min-width: unset; - width: calc(50% - 7.5px); - height: 72px; - border-radius: 8px; - white-space: normal; - word-break: keep-all; - text-align: center !important; + width: 100%; + height: 52px; + border-radius: 9px; + white-space: nowrap; display: flex !important; align-items: center !important; justify-content: center !important; - flex-direction: column; + flex-direction: row; } &:hover { transform: translateY(-3px); - box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15); + box-shadow: 0 7px 22px rgba(0, 0, 0, 0.15); } } @@ -1496,28 +1589,44 @@ } @include respond-to('md') { + order: 2; max-width: 100%; + width: 100%; + margin: 10px 0; } @include respond-to('sm') { - // Figma 모바일: 128x128px, 오른쪽 상단 위치 - position: absolute; - top: -90px; + // 절대 위치를 풀고 모바일 화면에서 제목과 설명 사이에 배치 + order: 2; + position: relative; + top: 0; right: 0; - width: 128px; - height: 128px; - max-width: 128px; + width: 100%; + height: auto; + max-width: 100%; + margin: 10px 0; flex: none; + .info-vector-art { + width: 100%; + max-width: 200px; + height: auto; + } + img { - width: 128px; - height: 128px; + width: 100%; + max-width: 200px; + height: auto; } } } } +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// End of Custom Checkbox Styles + // ----------------------------------------------------------------------------- // Support Center section styles // ----------------------------------------------------------------------------- @@ -1532,16 +1641,22 @@ .support-center { position: relative; padding: 0; - padding-top: 102px; - padding-bottom: 126px; + padding-top: 92px; + padding-bottom: 113px; background: #eef7fd; overflow: hidden; - height: 720px; + height: 648px; + + @include respond-to('md') { + height: auto; + padding-bottom: 60px; + } @include respond-to('sm') { - // Figma 모바일: 392px 높이, 패딩 60px 20px - min-height: 392px; - padding: 60px 20px; + // Figma 모바일: 353px 높이, 패딩 54px 18px + min-height: unset; + height: auto; + padding: 54px 18px; } .support-background { @@ -1557,10 +1672,10 @@ &::before { content: ''; position: absolute; - top: 17px; // Figma: top-[3234px] relative to page, section starts at ~3217px + top: 15px; // Figma: top-[2911px] relative to page, section starts at ~2895px left: 46%; // Approximate positioning - width: 693px; - height: 597px; + width: 624px; + height: 537px; background-image: url('/img/bg_support_center.png'); // Assuming this image exists or use placeholder background-size: cover; background-repeat: no-repeat; @@ -1574,8 +1689,8 @@ top: 0; left: auto; right: 0; - width: 187px; - height: 177px; + width: 168px; + height: 159px; opacity: 1; } } @@ -1586,41 +1701,46 @@ z-index: 1; max-width: 1280px; margin: 0 auto; - padding: 0 26px; - height: 492px; + padding: 0 23px; + height: 443px; + + @include respond-to('md') { + height: auto; + } @include respond-to('sm') { padding: 0; max-width: 100%; width: 100%; + height: auto; } } .section-header { - margin-bottom: 40px; + margin-bottom: 36px; text-align: center; @include respond-to('sm') { // Figma 모바일: 타이틀 영역 - margin-bottom: 24px; + margin-bottom: 22px; text-align: left; } .section-title { - font-size: 28px; + font-size: 25px; line-height: 1.4; color: #000000; margin: 0 0 $spacing-lg 0; text-align: left; @include respond-to('md') { - font-size: 36px; + font-size: 32px; line-height: 1.4; } @include respond-to('sm') { // Figma 모바일: 타이틀 스타일 - font-size: 16px; + font-size: 14px; line-height: 1; letter-spacing: -0.32px; } @@ -1633,12 +1753,12 @@ } .title-bold { - font-size: 38px; + font-size: 34px; font-weight: 700; @include respond-to('sm') { - // Figma 모바일: 20px Bold - font-size: 20px; + // Figma 모바일: 18px Bold + font-size: 18px; letter-spacing: -0.4px; } } @@ -1647,66 +1767,69 @@ .support-grid { display: flex; - gap: 32px; + gap: 29px; justify-content: center; align-items: stretch; max-width: 1228px; // 598 + 283 + 283 + (32 * 2) = 1228px - height: 320px; + height: auto; + min-height: 288px; margin: 0 auto; + flex-wrap: wrap; - @include respond-to('md') { + @include respond-to('mobile') { flex-direction: column; align-items: center; - gap: 20px; + gap: 18px; + height: auto; } @include respond-to('sm') { - // Figma 모바일: 가로 배치, gap 12px - flex-direction: row; - justify-content: space-between; + // 가로 배치는 카드가 너무 좁아지므로 1열 세로 배치로 변경 + flex-direction: column; align-items: stretch; - gap: 12px; + gap: 14px; max-width: 100%; + height: auto; } } // 통합 Support Card .support-card { background: #FFFFFF; - border-radius: 20px; + border-radius: 18px; text-decoration: none; transition: all 0.3s ease; display: flex; box-sizing: border-box; position: relative; overflow: hidden; - height: 320px; // 모든 카드 동일 높이 + height: 288px; // 모든 카드 동일 높이 - @include respond-to('md') { + @include respond-to('mobile') { width: 100%; max-width: 598px; height: auto; - min-height: 260px; + min-height: 234px; } @include respond-to('sm') { // Figma 모바일: 101x168px 카드 - width: calc(33.333% - 8px); + width: calc(33.333% - 7px); min-width: 0; - height: 168px; - min-height: 168px; + height: 151px; + min-height: 151px; max-width: none; - border-radius: 12px; - padding: 26px 0 25px; + border-radius: 11px; + padding: 23px 0 23px; flex-direction: column; align-items: center; justify-content: flex-start; - gap: 16px; + gap: 14px; } &:hover { transform: translateY(-5px); - box-shadow: 0 10px 30px rgba(0, 73, 180, 0.15); + box-shadow: 0 9px 27px rgba(0, 73, 180, 0.15); @include respond-to('sm') { transform: translateY(-2px); @@ -1725,9 +1848,9 @@ } @include respond-to('sm') { - // Figma 모바일: 48px 아이콘 - width: 48px !important; - height: 48px !important; + // Figma 모바일: 43px 아이콘 + width: 43px !important; + height: 43px !important; margin-bottom: 0 !important; } } @@ -1745,19 +1868,19 @@ h3 { font-family: $font-family-primary; - font-size: 32px; + font-size: 29px; font-weight: 700; color: #212529; - margin: 0 0 10px 0; + margin: 0 0 9px 0; line-height: 1.3; @include respond-to('md') { - font-size: 28px; + font-size: 25px; } @include respond-to('sm') { - // Figma 모바일: 15-16px Bold - font-size: 15px; + // Figma 모바일: 15-14px Bold + font-size: 14px; margin: 0; line-height: 1; } @@ -1765,50 +1888,51 @@ p { font-family: $font-family-primary; - font-size: 18px; + font-size: 16px; font-weight: 400; color: #515961; margin: 0; line-height: 1.4; @include respond-to('md') { - font-size: 16px; + font-size: 14px; } @include respond-to('sm') { - // Figma 모바일: 10px Regular - font-size: 10px; + // Figma 모바일: 9px Regular + font-size: 9px; line-height: 1; } } } // 공지사항 카드 - &--notice { - width: 388px; + &-notice { + width: 349px; flex-shrink: 0; flex-direction: column; align-items: center; - padding: 50px 40px; + padding: 45px 36px; background: #0049B4; - @include respond-to('md') { + @include respond-to('mobile') { width: 100%; max-width: 598px; - padding: 50px 40px; + padding: 45px 36px; } @include respond-to('sm') { // Figma 모바일: 공지사항 카드 스타일 - width: calc(33.333% - 8px); - padding: 26px 0 25px; - gap: 19px; + width: 100%; + padding: 23px 20px 23px; + gap: 17px; + height: auto; } .card-icon { - width: 120px; - height: 120px; - margin-bottom: 36px; + width: 108px; + height: 108px; + margin-bottom: 32px; } .card-content { @@ -1817,28 +1941,28 @@ h3 { color: #FFFFFF; - font-size: 30px; + font-size: 27px; @include respond-to('md') { - font-size: 32px; + font-size: 29px; } @include respond-to('sm') { - font-size: 15px; + font-size: 14px; color: #FFFFFF; } } p { color: rgba(255, 255, 255, 0.9); - font-size: 22px; + font-size: 20px; @include respond-to('md') { - font-size: 18px; + font-size: 16px; } @include respond-to('sm') { - font-size: 10px; + font-size: 9px; color: rgba(255, 255, 255, 0.9); } } @@ -1850,30 +1974,31 @@ } // FAQ & Q&A Cards - &--faq, - &--qna { - width: 388px; + &-faq, + &-qna { + width: 349px; flex-shrink: 0; flex-direction: column; align-items: center; - padding: 50px 40px; + padding: 45px 36px; - @include respond-to('md') { + @include respond-to('mobile') { width: 100%; max-width: 598px; - padding: 40px; + padding: 36px; } @include respond-to('sm') { // Figma 모바일: FAQ/Q&A 카드 스타일 - width: calc(33.333% - 8px); - padding: 26px 0 25px; + width: 100%; + padding: 23px 20px 23px; + height: auto; } .card-icon { - width: 120px; - height: 120px; - margin-bottom: 36px; + width: 108px; + height: 108px; + margin-bottom: 32px; } @@ -1883,28 +2008,28 @@ flex: none; h3 { - font-size: 30px; + font-size: 27px; @include respond-to('md') { - font-size: 32px; + font-size: 29px; } @include respond-to('sm') { - // Figma 모바일: 16px Bold - font-size: 16px; + // Figma 모바일: 14px Bold + font-size: 14px; } } p { - font-size: 22px; + font-size: 20px; @include respond-to('md') { - font-size: 18px; + font-size: 16px; } @include respond-to('sm') { - // Figma 모바일: 10px Regular - font-size: 10px; + // Figma 모바일: 9px Regular + font-size: 9px; } } } @@ -1933,27 +2058,27 @@ /* 피그마 시안 적용 Support Center 그리드 레이아웃 스타일 */ .support-center { - padding: 100px 0; + padding: 90px 0; background-color: #F8FAFC; @include respond-to('sm') { - padding: 60px 20px; + padding: 54px 18px; } .support-header { text-align: center; - margin-bottom: 56px; + margin-bottom: 50px; } .support-title { .title-regular { - font-size: 24px; + font-size: 22px; font-weight: 400; color: var(--text-gray); } .title-bold { - font-size: 38px; + font-size: 25px; font-weight: 700; color: var(--text-dark); font-family: "Spoqa Han Sans Neo", "SpoqaHanSans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; @@ -1962,8 +2087,9 @@ .support-grid { display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 24px; + // grid-template-columns: repeat(3, 1fr); + grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); + gap: 22px; } /* Large card for Notice */ @@ -1974,8 +2100,8 @@ .support-card { background-color: #FFFFFF; border: 1px solid var(--border-color); - border-radius: 20px; - padding: 40px; + border-radius: 18px; + padding: 36px; display: flex; flex-direction: column; position: relative; @@ -1986,41 +2112,41 @@ &:hover { - transform: translateY(-6px); + transform: translateY(-5px); box-shadow: var(--shadow-premium); } .card-icon { - font-size: 36px; - margin-bottom: 24px; + font-size: 32px; + margin-bottom: 22px; color: var(--primary-color); } h3 { - font-size: 22px; + font-size: 20px; font-weight: 700; color: var(--text-dark); - margin-bottom: 12px; + margin-bottom: 11px; } p { - font-size: 14px; + font-size: 13px; color: var(--text-gray); line-height: 1.5; } .card-arrow { position: absolute; - bottom: 40px; - right: 40px; - font-size: 24px; + bottom: 36px; + right: 36px; + font-size: 22px; color: var(--text-light); transition: var(--transition-smooth); } &:hover .card-arrow { color: var(--primary-color); - transform: translateX(6px); + transform: translateX(5px); } } @@ -2038,7 +2164,7 @@ } &:hover { - box-shadow: 0 15px 35px rgba(0, 73, 180, 0.3); + box-shadow: 0 14px 32px rgba(0, 73, 180, 0.3); } } @@ -2069,24 +2195,24 @@ /* 원래 있던 api-stats-section 스타일 (주석 처리) .api-stats-section { position: relative; - height: 630px; + height: 567px; padding: 0; - padding-top: 132px; - padding-bottom: 134px; + padding-top: 119px; + padding-bottom: 121px; overflow: hidden; display: flex; align-items: center; justify-content: center; @include respond-to('md') { - min-height: 600px; + min-height: 540px; padding: $spacing-4xl 0; } @include respond-to('sm') { - // Figma 모바일: 320px 높이, 패딩 60px 20px - min-height: 320px; - padding: 60px 20px; + // Figma 모바일: 288px 높이, 패딩 54px 18px + min-height: 288px; + padding: 54px 18px; align-items: flex-start; } } @@ -2110,7 +2236,7 @@ @include respond-to('sm') { display: flex; flex-direction: column; - gap: 24px; + gap: 22px; width: 100%; max-width: 100%; padding: 0; @@ -2119,7 +2245,7 @@ .section-header { text-align: center; - height: 100px; + height: 90px; @include respond-to('sm') { // Figma 모바일: 타이틀 왼쪽 정렬 @@ -2134,17 +2260,17 @@ .title-top { display: block; - font-size: 28px; + font-size: 25px; font-weight: 400; color: #E8E8E8; @include respond-to('md') { - font-size: 28px; + font-size: 25px; } @include respond-to('sm') { - // Figma 모바일: 16px Medium - font-size: 16px; + // Figma 모바일: 14px Medium + font-size: 14px; font-weight: 500; letter-spacing: -0.32px; margin-bottom: 0; @@ -2152,32 +2278,32 @@ } .title-highlight { - font-size: 38px; + font-size: 34px; font-weight: 700; color: #81D5FF; @include respond-to('md') { - font-size: 36px; + font-size: 32px; } @include respond-to('sm') { - // Figma 모바일: 20px Bold #81d5ff - font-size: 20px; + // Figma 모바일: 18px Bold #81d5ff + font-size: 18px; } } // Rest of the title text - font-size: 38px; + font-size: 34px; font-weight: 700; color: #E8E8E8; @include respond-to('md') { - font-size: 36px; + font-size: 32px; } @include respond-to('sm') { - // Figma 모바일: 20px Bold - font-size: 20px; + // Figma 모바일: 18px Bold + font-size: 18px; font-weight: 700; line-height: 1; letter-spacing: -0.4px; @@ -2195,7 +2321,7 @@ @include respond-to('md') { flex-direction: column; - gap: 40px; + gap: 36px; } @include respond-to('sm') { @@ -2205,7 +2331,7 @@ align-items: center; gap: 0 !important; padding: 0; - height: 132px; + height: 119px; max-width: 100%; margin: 0; } @@ -2216,34 +2342,34 @@ display: flex; flex-direction: column; align-items: center; - gap: 10px; - width: 145px; + gap: 9px; + width: 131px; @include respond-to('md') { width: auto; } @include respond-to('sm') { - // Figma 모바일: 72px 너비, padding 14px 10px - gap: 11px; - padding: 10px 14px; - height: 132px; + // Figma 모바일: 65px 너비, padding 13px 9px + gap: 10px; + padding: 9px 13px; + height: 119px; justify-content: center; - width: 120px; + width: 108px; } .stat-label { font-family: $font-family-primary; - font-size: 20px; + font-size: 18px; font-weight: 500; color: #FFFFFF; - line-height: 40px; + line-height: 36px; margin: 0; white-space: nowrap; @include respond-to('sm') { - // Figma 모바일: 10px Medium - font-size: 10px; + // Figma 모바일: 9px Medium + font-size: 9px; font-weight: 500; line-height: 1; order: -1; // 라벨이 위에 오도록 @@ -2251,8 +2377,8 @@ } .stat-icon { - width: 70px; - height: 70px; + width: 63px; + height: 63px; display: flex; align-items: center; justify-content: center; @@ -2261,7 +2387,7 @@ svg { width: 100%; height: 100%; - filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2)); + filter: drop-shadow(0 4px 7px rgba(0, 0, 0, 0.2)); } img { @@ -2272,28 +2398,28 @@ @include respond-to('sm') { // Figma 모바일: 40x40px 아이콘 - width: 40px; - height: 40px; + width: 36px; + height: 36px; } } .stat-number { font-family: $font-family-primary; - font-size: 44px; + font-size: 40px; font-weight: 700; color: #EFDCB2; - line-height: 61px; + line-height: 55px; margin: 0; text-align: center; white-space: nowrap; @include respond-to('md') { - font-size: 40px; + font-size: 36px; } @include respond-to('sm') { - // Figma 모바일: 16px Bold #efdcb2 - font-size: 16px; + // Figma 모바일: 14px Bold #efdcb2 + font-size: 14px; line-height: 1; } } @@ -2309,8 +2435,8 @@ // Vertical divider between cards .stats-divider { width: 1px; - height: 200px; - margin: 0 60px; + height: 180px; + margin: 0 54px; flex-shrink: 0; background-color: #ffffff; @@ -2318,16 +2444,16 @@ display: none; } - // 1280px 이상: stat-card(145px) <- 120px -> divider <- 120px -> stat-card + // 1152px 이상: stat-card(131px) <- 108px -> divider <- 108px -> stat-card @include respond-to('lg') { - margin: 0 120px; + margin: 0 108px; } @include respond-to('sm') { // Figma 모바일: 세로 구분선 표시 display: block !important; width: 1px; - height: 108px; + height: 97px; margin: 0; background-color: rgba(250, 250, 250, 1); } @@ -2337,12 +2463,16 @@ /* 피그마 시안 적용 API Stats 스타일 */ .api-stats-section { - padding: 100px 0; + padding: 90px 0; background-color: #122144; color: #FFFFFF; position: relative; overflow: hidden; + @include respond-to('sm') { + padding: 54px 0; + } + .stats-background { position: absolute; inset: 0; @@ -2352,25 +2482,44 @@ .stats-header { text-align: center; - margin-bottom: 64px; + margin-bottom: 58px; position: relative; z-index: 1; + + @include respond-to('sm') { + margin-bottom: 30px; + } } .stats-title { + + @include respond-to('sm') { + font-size: 27px; + } + + .title-top { - font-size: 22px; + font-size: 20px; font-weight: 500; color: #81d5ff; + + @include respond-to('sm') { + font-size: 15px; + } } .title-highlight { - font-size: 38px; + font-size: 34px; font-weight: 700; color: #FFFFFF; - line-height: 1.25; + line-height: 1.35; -webkit-text-fill-color: transparent; background: linear-gradient(90deg, rgb(255, 255, 255) 0%, rgb(129, 213, 255) 100%) text; + + @include respond-to('sm') { + font-size: 27px; + word-break: keep-all; + } } } @@ -2382,6 +2531,11 @@ margin: 0 auto; position: relative; z-index: 1; + + @include respond-to('sm') { + flex-direction: column; + gap: 20px; + } } .stat-card { @@ -2390,32 +2544,42 @@ display: flex; flex-direction: column; align-items: center; - gap: 16px; + gap: 14px; &:hover .stat-icon-wrapper { background-color: #FFFFFF; color: var(--primary-color); transform: translateY(-4px) scale(1.05); } + + @include respond-to('sm') { + gap: 8px; + } } .stat-icon-wrapper { - width: 72px; - height: 72px; + width: 65px; + height: 65px; background-color: rgba(255, 255, 255, 0.08); border-radius: 50%; display: flex; align-items: center; justify-content: center; - font-size: 32px; + font-size: 29px; color: #81d5ff; border: 1px solid rgba(255, 255, 255, 0.15); - box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15); + box-shadow: 0 7px 22px rgba(0, 0, 0, 0.15); transition: var(--transition-smooth); + + @include respond-to('sm') { + width: 50px; + height: 50px; + font-size: 22px; + } } .stat-label { - font-size: 16px; + font-size: 14px; font-weight: 500; color: #BAC7DE; } @@ -2428,14 +2592,18 @@ .stat-number { font-family: 'Outfit', sans-serif; - font-size: 46px; + font-size: 41px; font-weight: 700; color: var(--accent-color); line-height: 1; + + @include respond-to('sm') { + font-size: 32px; + } } .stat-unit { - font-size: 18px; + font-size: 16px; font-weight: 700; color: #FFFFFF; margin-left: 4px; @@ -2443,8 +2611,14 @@ .stats-divider { width: 1px; - height: 120px; + height: 108px; background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0) 100%); + + @include respond-to('sm') { + width: 100%; + height: 1px; + background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0) 100%); + } } } @@ -2456,7 +2630,7 @@ @keyframes countUp { from { opacity: 0; - transform: translateY(20px); + transform: translateY(18px); } to { @@ -2471,16 +2645,16 @@ /* 원래 있던 signup-cta-section 스타일 (주석 처리) .signup-cta-section { position: relative; - min-height: 329px; + min-height: 296px; display: flex; align-items: center; justify-content: center; overflow: hidden; @include respond-to('sm') { - // Figma 모바일: 160px 높이, 패딩 44px - min-height: 160px; - padding: 44px 0; + // Figma 모바일: 144px 높이, 패딩 40px + min-height: 144px; + padding: 40px 0; } .cta-background { @@ -2502,28 +2676,28 @@ display: flex; flex-direction: column; align-items: center; - gap: 40px; + gap: 36px; text-align: center; @include respond-to('sm') { - // Figma 모바일: gap 12px - gap: 12px; + // Figma 모바일: gap 11px + gap: 11px; } } .cta-title { - font-size: 40px; + font-size: 36px; color: #000000; line-height: normal; margin: 0; @include respond-to('md') { - font-size: 32px; + font-size: 29px; } @include respond-to('sm') { - // Figma 모바일: 16px Bold, #212529, tracking -0.32px - font-size: 16px; + // Figma 모바일: 14px Bold, #212529, tracking -0.32px + font-size: 14px; font-weight: 700; color: #212529; letter-spacing: -0.32px; @@ -2535,22 +2709,22 @@ display: inline-flex; align-items: center; justify-content: center; - padding: 10px; - min-height: 60px; - width: 178px; + padding: 9px; + min-height: 54px; + width: 160px; background: #008ae2; color: #FFFFFF; font-family: $font-family-primary; - font-size: 20px; + font-size: 18px; font-weight: 700; - border-radius: 10px; + border-radius: 9px; text-decoration: none; transition: all 0.3s ease; &:hover { background: darken(#008ae2, 10%); transform: translateY(-2px); - box-shadow: 0 4px 12px rgba(0, 138, 226, 0.3); + box-shadow: 0 4px 11px rgba(0, 138, 226, 0.3); } &:active { @@ -2558,14 +2732,14 @@ } @include respond-to('sm') { - // Figma 모바일: 152px × 40px, border-radius 4px, 12px Bold - width: 152px; - min-height: 40px; - padding: 12px 34px; - font-size: 12px; + // Figma 모바일: 137px × 36px, border-radius 4px, 11px Bold + width: 137px; + min-height: 36px; + padding: 11px 31px; + font-size: 11px; font-weight: 700; border-radius: 4px; - line-height: 16px; + line-height: 14px; } } @@ -2583,16 +2757,16 @@ /* 피그마 시안 적용 CTA 스타일 */ .signup-cta-section { position: relative; - min-height: 329px; + min-height: 296px; display: flex; align-items: center; justify-content: center; overflow: hidden; @include respond-to('sm') { - // Figma 모바일: 160px 높이, 패딩 44px - min-height: 160px; - padding: 44px 0; + // Figma 모바일: 144px 높이, 패딩 40px + min-height: 144px; + padding: 40px 0; } .cta-background { @@ -2612,11 +2786,19 @@ margin: 0; width: 100%; max-width: 100%; - padding: 25px 0; + padding: 23px 0; .ctaImg { position: absolute; - width: 325px; + width: 293px; + + @include respond-to('md') { + width: 180px; + } + + @include respond-to('sm') { + display: none; + } &.left { top: 0; @@ -2624,8 +2806,12 @@ } &.right { - top: -25px; + top: -23px; right: 0; + + @include respond-to('sm') { + top: -10px; + } } } } @@ -2634,17 +2820,17 @@ display: flex; flex-direction: column; align-items: center; - gap: 20px; + gap: 18px; text-align: center; @include respond-to('sm') { - // Figma 모바일: gap 12px - gap: 12px; + // Figma 모바일: gap 11px + gap: 11px; } } .cta-title { - font-size: 30px; + font-size: 27px; color: #000000; line-height: normal; font-weight: 600; @@ -2652,12 +2838,12 @@ font-family: "Spoqa Han Sans Neo", "SpoqaHanSans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; @include respond-to('md') { - font-size: 32px; + font-size: 29px; } @include respond-to('sm') { - // Figma 모바일: 16px Bold, #212529, tracking -0.32px - font-size: 16px; + // Figma 모바일: 14px Bold, #212529, tracking -0.32px + font-size: 14px; font-weight: 700; color: #212529; letter-spacing: -0.32px; @@ -2669,21 +2855,21 @@ display: inline-flex; align-items: center; justify-content: center; - height: 60px; + height: 54px; background-color: var(--primary-color); color: rgb(255, 255, 255); - font-size: 18px; + font-size: 16px; font-weight: 700; - box-shadow: rgba(0, 73, 180, 0.25) 0px 10px 25px; - gap: 10px; - padding: 0 40px; - border-radius: 14px; + box-shadow: rgba(0, 73, 180, 0.25) 0px 9px 23px; + gap: 9px; + padding: 0 36px; + border-radius: 13px; transition: var(--transition-smooth); &:hover { background: var(--secondary-color); transform: translateY(-2px); - box-shadow: 0 4px 12px rgba(0, 138, 226, 0.3); + box-shadow: 0 4px 11px rgba(0, 138, 226, 0.3); } &:active { @@ -2691,14 +2877,14 @@ } @include respond-to('sm') { - // Figma 모바일: 152px × 40px, border-radius 4px, 12px Bold - width: 152px; - min-height: 40px; - padding: 12px 34px; - font-size: 12px; + width: auto; + min-width: 160px; + height: 44px; + padding: 0 24px; + font-size: 14px; font-weight: 700; - border-radius: 4px; - line-height: 16px; + border-radius: 8px; + line-height: normal; } } @@ -2710,4 +2896,8 @@ height: 1px; background: #DDDDDD; } +} + +body.index-page-body { + zoom: 0.9; } \ No newline at end of file diff --git a/src/main/resources/templates/views/apps/main/index.html b/src/main/resources/templates/views/apps/main/index.html index e571332..b60d603 100644 --- a/src/main/resources/templates/views/apps/main/index.html +++ b/src/main/resources/templates/views/apps/main/index.html @@ -5,125 +5,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -743,274 +588,276 @@ -
- - - + + + + + }); + - + + // ======================================== + // 숫자 카운트업 애니메이션 + // ======================================== + const observerOptions = { + threshold: 0.5, + rootMargin: '0px 0px -100px 0px' + }; + + const animateNumbers = (entries, observer) => { + entries.forEach(entry => { + if (entry.isIntersecting) { + const numbers = entry.target.querySelectorAll('.stat-number'); + + numbers.forEach(number => { + const target = parseInt(number.getAttribute('data-target')); + const duration = 2000; // 2초 + const increment = target / (duration / 16); + let current = 0; + + const updateNumber = () => { + current += increment; + if (current < target) { + number.textContent = Math.floor(current).toLocaleString('ko-KR'); + requestAnimationFrame(updateNumber); + } else { + number.textContent = target.toLocaleString('ko-KR'); + } + }; + + updateNumber(); + }); + + observer.unobserve(entry.target); + } + }); + }; + + const observer = new IntersectionObserver(animateNumbers, observerOptions); + const statsSection = document.querySelector('.api-stats-section'); + + if (statsSection) { + observer.observe(statsSection); + } + }); + \ No newline at end of file