@charset "UTF-8"; @use "sass:math"; @font-face { font-family: 'AudiType'; src: url('/fonts/AudiTypeVF.woff2') format('woff2-variations'); font-display: swap; font-style: normal; font-stretch: 130%; } // Utility classes for padding and margin (1-100) @for $i from 1 through 200 { // Padding .pt--#{$i} { padding-top: #{$i}px !important; } .pr--#{$i} { padding-right: #{$i}px !important; } .pb--#{$i} { padding-bottom: #{$i}px !important; } .pl--#{$i} { padding-left: #{$i}px !important; } .p--#{$i} { padding: #{$i}px !important; } // Margin .mt--#{$i} { margin-top: #{$i}px !important; } .mr--#{$i} { margin-right: #{$i}px !important; } .mb--#{$i} { margin-bottom: #{$i}px !important; } .ml--#{$i} { margin-left: #{$i}px !important; } .m--#{$i} { margin: #{$i}px !important; } @media (max-width: 720px) { .pt--#{$i} { padding-top: #{math.div($i, 2)}px !important; } .pr--#{$i} { padding-right: #{math.div($i, 2)}px !important; } .pb--#{$i} { padding-bottom: #{math.div($i, 2)}px !important; } .pl--#{$i} { padding-left: #{math.div($i, 2)}px !important; } .p--#{$i} { padding: #{math.div($i, 2)}px !important; } .mt--#{$i} { margin-top: #{math.div($i, 2)}px !important; } .mr--#{$i} { margin-right: #{math.div($i, 2)}px !important; } .mb--#{$i} { margin-bottom: #{math.div($i, 2)}px !important; } .ml--#{$i} { margin-left: #{math.div($i, 2)}px !important; } .m--#{$i} { margin: #{math.div($i, 2)}px !important; } } } @for $i from 14 through 40 { .ft--#{$i} {font-size : #{$i}px !important;} } html { scroll-behavior: smooth; } :root { --max-content-width: 1920px; --page-margin: 16px; @media (min-width: 375px) { --page-margin: 28px; } @media (min-width: 768px) { --page-margin: 40px; } @media (min-width: 1024px) { --page-margin: 60px; } @media (min-width: 1440px) { --page-margin: 96px; } @media (min-width: 1920px) { --page-margin: 96px; } @property --gradient-start { syntax: ''; initial-value: transparent; inherits: false; } @property --gradient-end { syntax: ''; initial-value: transparent; inherits: false; } --spacing-relative-2xs: 4px; --spacing-relative-xs: 8px; --spacing-relative-sm: 12px; --spacing-relative-md: 16px; --spacing-relative-lg: 24px; --spacing-relative-xl: 28px; --spacing-relative-2xl: 36px; --spacing-relative-3xl: 40px; --spacing-relative-4xl: 48px; --spacing-relative-5xl: 64px; --spacing-relative-6xl: 80px; --spacing-relative-7xl: 96px; --spacing-relative-8xl: 120px; @media (min-width: 768px) { --spacing-relative-3xl: 48px; --spacing-relative-4xl: 64px; --spacing-relative-5xl: 72px; --spacing-relative-6xl: 88px; --spacing-relative-7xl: 104px; --spacing-relative-8xl: 136px; } @media (min-width: 1024px) { --spacing-relative-2xl: 40px; --spacing-relative-3xl: 56px; --spacing-relative-4xl: 72px; --spacing-relative-5xl: 88px; --spacing-relative-6xl: 104px; --spacing-relative-7xl: 128px; --spacing-relative-8xl: 168px; } @media (min-width: 1440px) { --spacing-relative-xl: 32px; --spacing-relative-2xl: 56px; --spacing-relative-3xl: 72px; --spacing-relative-4xl: 88px; --spacing-relative-5xl: 104px; --spacing-relative-6xl: 120px; --spacing-relative-7xl: 160px; --spacing-relative-8xl: 216px; } @media (min-width: 1920px) { --spacing-relative-xl: 40px; --spacing-relative-2xl: 72px; --spacing-relative-3xl: 88px; --spacing-relative-4xl: 104px; --spacing-relative-5xl: 120px; --spacing-relative-6xl: 136px; --spacing-relative-7xl: 176px; --spacing-relative-8xl: 248px; } } //풀사이즈 레이아웃 구성 .detail--container--full{ max-width:1920px; margin:0 auto; .thumb--solo{ overflow: hidden; border-radius: 20px; img{ width:100%; max-width:100%; } } .inner--wrapper{ padding:0 var(--spacing-relative-3xl); .service--detail{ padding:45px 0px; h1{ margin: 0 0 var(--spacing-relative-md) 0; color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 28px; line-height: 40px; font-stretch: 130%; @media (min-width: 1024px) { font-size: 36px; line-height: 52px; } @media (min-width: 1440px) { font-size: 40px; line-height: 60px; } @media (min-width: 1920px) { font-size: 44px; line-height: 64px; } } h2{ margin: 0 0 var(--spacing-relative-md) 0; color: rgb(252, 252, 253); font-family: AudiType, sans-serif; letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 24px; line-height: 36px; font-stretch: 130%; &.middle{ font-size:26px; } @media (min-width: 1024px) { font-size: 28px; line-height: 40px; } @media (min-width: 1440px) { font-size: 32px; line-height: 44px; } @media (min-width: 1920px) { font-size: 36px; line-height: 52px; } } h3{ margin: 20px 0 var(--spacing-relative-md) 0; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; } >h4{ margin: 0 0 var(--spacing-relative-md) 0; color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 130%; @media (min-width: 1440px) { font-size: 18px; line-height: 28px; } @media (min-width: 1920px) { font-size: 20px; line-height: 32px; } } >p{ margin: 0px; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; } .service--process--list{ padding-top:80px; >li{ position: relative; padding-left:20px; margin-bottom:80px; &.not--before{ padding-left:0px; &::before{ display: none; } } &::before{ content: ">"; display: block; width: 100%; height: 100%; background-size: contain; position: absolute; top: 0; left: 0; } >p{ margin: 0 0 var(--spacing-relative-md) 0; color: rgba(252, 252, 253, 0.7); font-family: AudiType, sans-serif; letter-spacing: 0px; font-weight: 400; } } } .data--table--wrap{ @media (min-width: 768px) { table tbody tr:first-child th, table tbody tr:first-child td { border-top: 1px solid rgb(255, 255, 255) !important; border-right-color: rgb(255, 255, 255) !important; border-bottom-color: rgb(255, 255, 255) !important; border-left-color: rgb(255, 255, 255) !important; } } table{ display: block; width: 100%; border-spacing: 8px 0px; border-collapse: separate; @media (min-width: 768px) { width: 100%; } @media (min-width: 768px) { display: table; } tbody{ @media (min-width: 768px) { display: table-row-group; thead{ display: table-header-group; } } td{ letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; color: rgba(252, 252, 253, 0.7); padding: 16px 4px 8px; vertical-align: top; display: table-cell; border-bottom: 1px solid rgb(252, 252, 253); @media (min-width: 768px) { padding: 12px 4px 24px; } &:not(:last-child) { margin-bottom: 4px; } } } } } .desc--caution--text{ margin: 0px; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; } } } } /*================================================= |컴포넌트 별 css |START =================================================*/ //풀사이즈 배너 텍스트1 형 .img--section--full{ width:100%; position: relative; &.video{ } &.mask--hidden{ &:before{ display: none; } } &[data-type="cover"] { >div { position: relative; overflow: hidden; &:nth-of-type(1){ height:100vh; } } img{ object-fit: cover; height:100%; position: absolute; top:50%; transform: translateY(-50%); } } &:before{ content:''; display: block; width:100%; height:100%; position: absolute; z-index: 2; pointer-events: none; inset: 0px; z-index: 1; background: linear-gradient(rgba(0, 0, 0, 0) 46.66%, rgb(0, 0, 0) 100%); } img{ width:100%; max-width:100%; height:100vh; object-fit: cover; } &[data-text-location="topright"]{ &:before{ background: linear-gradient(rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 50%); } .alt--text{ bottom:auto; left:auto; right:0px; top:40px; } .sub--title{ bottom:auto; left:auto; right:0px; top:90px; } .btn--wrapper{ bottom:auto; left:auto; right:0px; top:150px; } } &[data-text-location="top"]{ &:before{ background: linear-gradient(rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 50%); } .alt--text{ bottom:auto; top:40px; } .sub--title{ bottom:auto; top:90px; } .btn--wrapper{ bottom:auto; top:150px; } } &[data-text-location="topleft"]{ } &[data-text-location="bottomleft"]{ &:before{ background: linear-gradient(rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 50%); } .alt--text{ bottom:auto; top:40px; } .sub--title{ bottom:auto; top:90px; } .btn--wrapper{ bottom:auto; top:150px; } } .caution--text--small{ margin: 0px; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 12px; line-height: 20px; font-stretch: 105%; padding: 0 var(--page-margin) var(--spacing-relative-xl) var(--page-margin); @media (min-width: 768px) { background: transparent; pointer-events: auto; padding: var(--spacing-relative-lg) var(--page-margin) var(--spacing-relative-xl) var(--page-margin); } } .alt--text{ color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 28px; line-height: 40px; position: absolute; bottom:40px; left:0px; overflow: hidden; padding: 0 96px; white-space: pre-wrap; z-index: 2; } .sub--title{ position: absolute; bottom:40px; left:0px; margin: 0px; color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 130%; padding: 0 96px; z-index: 2; @media (min-width: 1440px) { font-size: 18px; line-height: 28px; } @media (min-width: 1920px) { font-size: 20px; line-height: 32px; } } .btn--wrapper{ position: absolute; bottom:150px; left:0px; padding: 0 96px; z-index: 2; display: flex; gap:10px; } &.video{ &[data-text-location="bottomleft"]{ &:before{ background: linear-gradient(rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 50%); } .alt--text{ top:auto; bottom:330px; } .sub--title{ top:auto; bottom:90px; } .btn--wrapper{ top:auto; bottom:250px; .default--round--btn{ background: rgb(101, 112, 129); color: rgb(252, 252, 253); box-shadow: rgba(101, 112, 129, 0) 0px 0px 0px 1px inset; transition-property: color, background, box-shadow; &:hover{ background: rgb(44, 52, 63); color: rgb(252, 252, 253); box-shadow: rgba(219, 223, 230, 0.2) 0px 0px 0px 1px inset; } &.reverse{ background-color: rgb(24, 29, 37); color: rgb(252, 252, 253); box-shadow: rgb(44, 52, 63) 0px 0px 0px 1px inset; transition-property: color, box-shadow, background-color; &:hover{ background-color: rgb(44, 52, 63); color: rgb(252, 252, 253); box-shadow: rgba(219, 223, 230, 0.2) 0px 0px 0px 1px inset; } } } } } } } //풀사이즈 패럴렉스 1형 .prallax--banner--wrappers{ width:100%; .prallax--banner--wrapper{ position: relative; overflow: hidden; width:100%; height:1000px; .prallax--banner{ width: 100%; height: 120%; transform: translate3d(0, 0, 0); // 초기값 GPU 레이어 생성 -webkit-transform: translate3d(0, 0, 0); backface-visibility: hidden; -webkit-backface-visibility: hidden; //perspective: 1000px; //-webkit-perspective: 1000px; position: absolute; top: -17%; left: 50%; will-change: transform; backface-visibility: hidden; picture { width: 100%; height: 100%; display: block; } img { width: 100%; height: 100%; object-fit: cover; object-position: center; transform: translateZ(0); // GPU 가속 -webkit-transform: translateZ(0); } } .text--box--wrapper{ position: absolute; backface-visibility: hidden; -webkit-backface-visibility: hidden; width: 100%; top:147px; left: 0px; z-index: 1; will-change: transform, opacity; transform: translate3d(0, 0, 0); // 초기값 GPU 레이어 생성 -webkit-transform: translate3d(0, 0, 0); display: flex; -webkit-box-pack: center; justify-content: center; transition: opacity 0.1s ease-out; perspective: 1000px; -webkit-perspective: 1000px; .text--container{ max-width:50%; position: relative; box-sizing: border-box; background: linear-gradient(134deg, rgb(44, 52, 63) 0%, rgb(35, 42, 52) 100%); backdrop-filter: blur(60px); display: flex; flex-direction: column; gap: 24px; flex-shrink: 0; flex-basis: 86%; margin: 88px auto 0 auto; padding: 40px; border-radius: 20px; left: 4%; flex-basis: 44%; h2{ margin: 0px; color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 24px; line-height: 36px; font-stretch: 130%; } p{ margin: 0px; color: rgba(252, 252, 253, 0.7); font-family: AudiType, sans-serif; letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; } a{ transition-timing-function: cubic-bezier(0.75, 0.02, 0.5, 1); transition-duration: 250ms; transition-property: color, text-decoration-color; display: inline-flex ; -webkit-box-align: center; align-items: center; font-family: AudiType, sans-serif; letter-spacing: 0px; font-weight: 400; text-decoration: underline 1px rgb(252, 252, 253); font-size: 16px; line-height: 24px; font-stretch: 105%; color: rgb(252, 252, 253); box-sizing: border-box; text-underline-offset: 7px; padding-bottom: 2px; min-height: 24px; } } } } .caution--text{ padding:0 var(--spacing-relative-3xl); margin: 0px; margin: var(--spacing-relative-md) 0 var(--spacing-relative-xl) 0; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 14px; line-height: 24px; font-stretch: 105%; } } //Swiper 배너 컴포넌트 (30% + 70% 레이아웃) .swiper--banner--wrapper { width: 100%; padding: 40px 96px; &[data-fit="contain"]{ .swiper--banner--container{ .swiper--banner--section{ .swiper--container{ .swiper-slide{ .slide--image{ img{ object-fit: contain; } } } } } } } &[data-type="vertical"]{ padding:0px; .swiper--banner--container{ flex-direction: column-reverse; height:auto; .swiper--controls--section{ flex-direction: row-reverse; @media(min-width:768px){ padding: 0px 96px; } @media(min-width:1024px){ padding: 0px 96px; } @media(min-width:1440px){ padding: 0px 96px; } @media(min-width:1920px){ padding:24px 96px; } .text--content{ width:100%; .main--title{ margin: 0px; color: rgb(252, 252, 253); font-family: AudiType, sans-serif; letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 20px; line-height: 32px; font-stretch: 130%; @media(min-width:1440px){ font-size: 24px; line-height: 36px; } } .sub--title{ margin: 0px; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; } } } > div{ width:100%; max-height:100vh; .swiper--container { .swiper-slide { .slide--image { border-radius: 0px; } } } } } } .swiper--banner--container { max-width: 1920px; height: 70vh; margin: 0 auto; display: flex; min-height: 600px; // 30% 영역: 컨트롤 및 텍스트 .swiper--controls--section { width: 30%; padding: 40px; display: flex; flex-direction: column; justify-content: flex-end; .controls--top { margin-bottom: 40px; .pagination--nav--wrapper { display: flex; align-items: flex-start; justify-content: flex-start; flex-direction: column; gap: 20px; .swiper-pagination { position: relative; width: auto; display: flex; justify-content: center; align-items: center; gap: 12px; .swiper-pagination-bullet { width: 24px; height: 24px; background: transparent; border-radius: 50%; color: rgba(255, 255, 255, 0.6); font-size: 14px; font-weight: 400; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.3s ease; opacity: 1; margin:0px; &:hover { background:rgba(252,252,253,.3)!important; color: rgba(255, 255, 255, 0.8); } &.swiper-pagination-bullet-active { background: transparent; color: #fff; font-weight: 600; } } } .navigation--buttons { display: flex; align-items: center; justify-content: center; gap: 16px; .swiper-pagination{ top:0px; bottom:0px; } .swiper-button-prev{ background: url(/img/ico--back--s.svg) no-repeat center; } .swiper-button-next{ background: url(/img/ico--forward--s.svg) no-repeat center; } .swiper-button-prev, .swiper-button-next { position: relative; width: 24px; height: 24px; border-radius: 50%; color: white; margin: 0; transition: all 0.3s ease; cursor: pointer; &:hover{ background:rgba(252,252,253,.3) ; } &.swiper-button-disabled { opacity: 0.3; cursor: not-allowed; &:hover { transform: none; } } } } } } .text--content { text-align: center; height:60%; .text--slider { position: relative; overflow: hidden; height:100%; .text--slide { position: absolute; top: 0; left: 0; width: 100%; opacity: 0; transform: translateX(-100%); transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); text-align: left; visibility: hidden; &.active { opacity: 1; transform: translateX(0); visibility: visible; position: relative; // 활성 슬라이드는 relative로 높이 확보 } // 이전 슬라이드는 오른쪽으로 사라짐 &:not(.active) { transform: translateX(-100%); position: absolute; // 비활성 슬라이드는 absolute로 겹침 } } } .main--title { margin:0px; color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 20px; line-height: 32px; font-stretch: 130%; padding-bottom:12px; } .sub--title { margin: 0px; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; } .desc--title{ margin-top:25px; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 15px; line-height: 24px; font-stretch: 105%; } .caution--title{ margin-top:25px; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 12px; line-height: 24px; font-stretch: 105%; } .notice--text { margin-top: 40px; padding-top: 20px; // border-top: 1px solid rgba(255, 255, 255, 0.1); text-align: left; p { margin: 0; color: rgba(252, 252, 253, 0.5); font-size: 14px; line-height: 20px; font-style: italic; } } } } // 70% 영역: 단일 배너 .swiper--banner--section { width: 70%; position: relative; overflow: hidden; .swiper--container { width: 100%; height: 100%; .swiper-slide { .slide--image { width: 100%; height: 100%; border-radius: 20px; overflow: hidden; img { width: 100%; height: 100%; max-height:100vh; object-fit: cover; object-position: center; transition: transform 0.8s ease; } } &.swiper-slide-active { .slide--image img { //transform: scale(1.02); } } } } } } // 반응형 처리 @media (max-width: 1024px) { .swiper--banner--container { flex-direction: column; .swiper--controls--section { width: 100%; order: 2; padding: 30px 20px; } .swiper--banner--section { width: 100%; height: 400px; order: 1; } } } @media (max-width: 768px) { padding: 40px 0; .swiper--banner--container { .swiper--controls--section { padding: 20px; .text--content { .text--slider { height: 100px; // 모바일에서는 높이 조정 } .main--title { font-size: 24px; line-height: 32px; } .sub--title { font-size: 16px; line-height: 22px; } } } .swiper--banner--section { height: 300px; } } } } .title--visual { position: relative; width: 100%; overflow: hidden; padding:40px 0px; &[data-type="small"] { .title--visual--wrapper{ max-width:100%; padding:0px 96px; .title--visual--content{ h2{ color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 24px; line-height: 36px; font-stretch: 130%; @media (max-width: 1024px) { font-size: 20px; line-height: 40px; } } } } } &[data-type="middle"] { .title--visual--wrapper{ max-width:100%; padding:0px 96px; .title--visual--content{ h2{ color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 24px; line-height: 36px; font-stretch: 130%; @media (min-width: 1024px) { font-size: 28px; line-height: 40px; } @media (min-width: 1440px) { font-size: 32px; line-height: 44px; } @media (min-width: 1920px) { font-size: 36px; line-height: 52px; } } } } } &[data-type="middle2"] { .title--visual--wrapper{ padding:0px 96px; .title--visual--content{ h2{ color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 24px; line-height: 36px; font-stretch: 130%; @media (min-width: 1024px) { font-size: 28px; line-height: 40px; } @media (min-width: 1440px) { font-size: 32px; line-height: 44px; } @media (min-width: 1920px) { font-size: 36px; line-height: 52px; } } } } } // 테마별 스타일 &[data-theme="dark"] { color: rgb(252, 252, 253); .title--description { color: rgba(252, 252, 253, 0.8); } } &[data-theme="light"] { background: rgb(252, 252, 253); color: #000; .title--description { color: rgba(0, 0, 0, 0.7); } } .title--visual--wrapper { margin: 0 auto; padding: 0 60px; align-content: center; box-sizing: content-box; display: grid; grid-template-columns: 100%; padding-bottom: 0px; padding-top: 0px; @media (min-width:1920px){ margin: 0 auto; max-width:1248px; } @media (max-width: 1024px) { padding: 0 40px; } @media (max-width: 768px) { padding: 0 20px; } } .title--visual--content { margin: 0 auto; &[data-align="left"] { margin-left: 0; text-align: left; .title--main{ text-align: left; } } &[data-align="center"] { text-align: center; } &[data-align="right"] { margin-right: 0; margin-left: auto; text-align: right; .title--main{ text-align: right; } } // 애니메이션 상태 &[data-animated="true"] { opacity: 0; transform: translateY(40px); transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); &.visible { opacity: 1; transform: translateY(0); } } } .title--main { margin: 0 0 24px 0; color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 36px; line-height: 52px; font-stretch: 130%; overflow-wrap: break-word; text-align: center; @media (max-width: 1920px) { font-size: 72px; line-height: 100px; } @media (max-width: 1440px) { font-size: 60px; line-height: 84px; } @media (max-width: 1024px) { font-size: 52px; line-height: 76px; } @media (max-width: 768px) { font-size: 44px; line-height: 60px; } } .sub--title{ margin: 0 0 var(--spacing-relative-md) 0; color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 130%; display: flex; padding-bottom:20px; @media (min-width: 1440px) { font-size: 18px; line-height: 28px; } @media (min-width: 1920px) { font-size: 20px; line-height: 32px; } } .title--description { margin: 0; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; } .title--additional { margin-top: 40px; @media (max-width: 768px) { margin-top: 32px; } } } .caution--text--wrapper{ padding:120px 96px; p{ margin: 0 0 26px 0; color: rgba(252, 252, 253, 0.7); font-family: AudiType, sans-serif; letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; } } //좌우 2배열 배너 .grid--banner--type2{ width: 100%; padding:0 var(--spacing-relative-3xl); @media(min-width:1024px){ padding:0 var(--spacing-relative-xl); } @media(min-width:1440px){ padding:0 var(--spacing-relative-2xl); } @media(min-width:1920px){ padding:0 var(--spacing-relative-3xl); } >ul{ width:100%; display: flex; flex-wrap: wrap; gap:16px; >li{ width:calc( (100% - 16px)/2); padding-bottom:40px; @media(max-width:720px){ width:100%; } .thumb{ border-radius: 20px; overflow: hidden; img{ width: 100%;; object-fit: cover; } } .desc--wrapper{ @media screen and (min-width: 768px) { padding-block-start: var(--spacing-relative-lg); padding-inline-end: var(--spacing-relative-xl); } @media screen and (min-width: 1920px) { padding-block-start: var(--spacing-relative-lg); padding-inline-end: var(--spacing-relative-xl); } h2{ margin: 0px; color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 20px; line-height: 32px; font-stretch: 130%; @media(min-width:1440px){ font-size: 24px; line-height: 36px; } } h3{ margin: var(--spacing-relative-xs) 0 0 0; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; } } } } } .row--block--wrapper{ &[data-type-row="3"]{ >div{ >ul{ > li{ width:calc( (100% - 40px) / 3); .thumb{ img{ width:100%; object-fit: cover; } } } } } } > div{ padding:0 var(--spacing-relative-3xl); >ul { display: flex; flex-wrap: wrap; gap:20px; > li{ width:calc(50% - 10px); padding-bottom:40px; .thumb{ border-radius: 20px; position: relative; height:0px; overflow: hidden; padding-top:56.25%; img{ position: absolute; height:100%; inset: 0px; } } .desc--wrap{ @media screen and (min-width: 768px) { padding-block-start: var(--spacing-relative-lg); padding-inline-end: var(--spacing-relative-xl); } @media screen and (min-width: 1920px) { padding-block-start: var(--spacing-relative-lg); padding-inline-end: var(--spacing-relative-xl); } .title{ margin: 0px; color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 20px; line-height: 32px; font-stretch: 130%; @media (min-width: 1440px) { font-size: 24px; line-height: 36px; } } .captions{ margin: var(--spacing-relative-xs) 0 0 0; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; } .small--text{ color: rgba(252, 252, 253, 0.7); font-size:12px; white-space: pre-line; padding-top:20px; } .captions--text{ padding-top:30px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; color: rgba(252, 252, 253, 0.7); } } } } } } // FAQ Accordion Styles .faq--accordion--wrapper { max-width: 1920px; margin: 0 auto; padding: 40px 96px; @media (max-width: 1024px) { padding: 32px 60px; } @media (max-width: 768px) { padding: 24px 40px; } @media (max-width: 375px) { padding: 20px 28px; } } .faq--accordion--container { display: flex; flex-direction: column; border-top: 1px solid rgba(101, 112, 129, 0.3); } .faq--accordion--item { border-bottom: 1px solid rgba(101, 112, 129, 0.3); } .faq--accordion--header { width: 100%; display: flex; justify-content: space-between; align-items: center; padding: 12px 0; background: transparent; border: none; cursor: pointer; transition: all 0.3s ease; &:hover { .faq--question { color: rgba(252, 252, 253, 0.8); } } &.active { background-color: rgb(64, 74, 89); color: rgba(252, 252, 253, 0.7); .faq--question { color: rgb(252, 252, 253); font-weight: 500; } .faq--toggle--icon { color: rgb(252, 252, 253); } } } .faq--question { flex: 1; text-align: left; font-size: 18px; line-height: 1.5; color: rgba(252, 252, 253, 0.7); transition: all 0.3s ease; padding-right: 24px; padding-left:20px; @media (max-width: 768px) { font-size: 16px; } } .faq--toggle--icon { font-size: 28px; font-weight: 300; color: rgba(252, 252, 253, 0.5); transition: all 0.3s ease; min-width: 32px; text-align: center; margin-right:20px; } .faq--accordion--content { overflow: hidden; animation: slideDown 0.3s ease; } .faq--answer { padding: 20px 50px 32px 20px; font-size: 16px; line-height: 1.7; color: rgba(252, 252, 253, 0.8); @media (max-width: 768px) { font-size: 14px; padding: 0 0 24px 0; } } @keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } .etronms--thumb--wrap{ padding:0 var(--spacing-relative-3xl); .thumb{ overflow: hidden; border-radius: 20px; } .small--text{ margin: 0px; color: rgb(255, 255, 255); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 12px; line-height: 32px; font-stretch: 130%; } .caution--text{ margin: 0 0 var(--spacing-relative-md) 0; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; } .btn--wrapper{ display: flex; align-items: center; justify-content: center; } } .etron--card{ padding:0 var(--spacing-relative-3xl); > ul{ display: flex; flex-wrap:wrap; gap:20px; li{ width:calc( (100% - 40px) / 3); .thumb{ position: relative; height: 0px; overflow: hidden; border-radius: 20px; padding-top: 56.25%; img{ position: absolute; inset: 0px; height: 100%; } } .desc--wrap{ padding-top:30px; h2{ margin: 0px; color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 20px; line-height: 32px; font-stretch: 130%; @media (min-width: 1440px) { font-size: 24px; line-height: 36px; } } h3{ margin: var(--spacing-relative-xs) 0 0 0; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; } } } } } /*================================================= |컴포넌트 별 css |END =================================================*/ // 로그인 폼 기본 디폴트 디자인 .admin--login { min-height: 100vh; background: #000000; display: flex; align-items: center; justify-content: center; font-family: 'AudiType', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; .login--container { width: 100%; max-width: 480px; padding: 20px; } .login--box { background: #0a0a0a; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 12px; padding: 60px 40px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.8); } .login--logo { text-align: center; margin-bottom: 50px; h1 { font-size: 48px; font-weight: 700; color: #ffffff; letter-spacing: 8px; margin: 0; font-stretch: 130%; } .subtitle { color: rgba(255, 255, 255, 0.4); font-size: 14px; text-transform: uppercase; letter-spacing: 3px; margin-top: 10px; } } .login--form { .form--group { margin-bottom: 24px; } .form--input { width: 100%; height: 52px; background: #000000; border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 8px; padding: 0 20px; font-size: 15px; color: #ffffff; transition: all 0.3s ease; &::placeholder { color: rgba(255, 255, 255, 0.6); } &:focus { outline: none; border-color: rgba(255, 255, 255, 0.4); background: rgba(255, 255, 255, 0.02); } &:hover { border-color: rgba(255, 255, 255, 0.25); } } .form--options { display: flex; justify-content: space-between; align-items: center; margin-bottom: 32px; .checkbox--label { display: flex; align-items: center; cursor: pointer; color: rgba(255, 255, 255, 0.6); font-size: 14px; input[type="checkbox"] { width: 18px; height: 18px; margin-right: 10px; background: #000000; border: 1px solid rgba(255, 255, 255, 0.3); border-radius: 4px; cursor: pointer; accent-color: #ffffff; } &:hover { color: rgba(255, 255, 255, 0.8); } } .forgot--password { color: rgba(255, 255, 255, 0.6); font-size: 14px; text-decoration: none; transition: color 0.3s ease; &:hover { color: #ffffff; } } } .login--button { width: 100%; height: 52px; background: #ffffff; color: #000000; border: none; border-radius: 8px; font-size: 16px; font-weight: 600; letter-spacing: 1px; cursor: pointer; transition: all 0.3s ease; &:hover { background: rgba(255, 255, 255, 0.9); transform: translateY(-2px); box-shadow: 0 10px 30px rgba(255, 255, 255, 0.2); } &:active { transform: translateY(0); } } } .login--footer { text-align: center; margin-top: 40px; p { color: rgba(255, 255, 255, 0.3); font-size: 12px; letter-spacing: 0.5px; } } } //자세히 보기 .more--detail--href{ display: inline-flex; align-items: center; position: relative; letter-spacing: 0px; font-weight: 400; font-size: 14px; min-height:24px; &:after{ content:''; display: block; width:calc(100% - 24px); height:1px; background: rgb(252, 252, 253); position: absolute; bottom:0px; left:0px; } .ico{ width: 24px; height: 24px; background-image: url(/img/ico--arrow.svg); } } //탭 링크 .text--tab--layout{ display: flex; background: linear-gradient(134deg, rgb(44, 52, 63) 0%, rgb(35, 42, 52) 100%); position: sticky; top: 0; z-index: 100; @media(min-width:1440px){ display: grid; grid-auto-flow: column; grid-template-columns: max-content 1fr auto; gap: 28px; width: 100%; box-sizing: border-box; overflow: hidden; } @media(min-width:1025px){ padding-block:12px; } ul{ display: flex; position: relative; padding-inline:96px; -webkit-box-align: center; align-items: center; -webkit-box-pack: justify; justify-content: space-between; li { &.anch--location{ a{ margin-left:-12px; pointer-events: inherit!important; } } &:first-child{ &.link--force{ a{ pointer-events: inherit!important; } } a{ margin-left:-12px; pointer-events: none; } } a{ cursor: pointer; display: flex; -webkit-box-align: center; align-items: center; -webkit-box-pack: center; justify-content: center; text-decoration: none; border-radius: 10px; background: rgba(44, 52, 63, 0); box-shadow: rgba(219, 223, 230, 0) 0px 0px 0px 1px inset; outline-offset: -3px; box-sizing: border-box; transition-timing-function: cubic-bezier(0.75, 0.02, 0.5, 1); transition-duration: 250ms; transition-property: color, background, box-shadow; min-height: 48px; min-width: 64px; color: rgba(252, 252, 253, 0.7); padding: 0px 16px; text-align: center; letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 14px; line-height: 20px; font-stretch: 105%; &.actv, &:hover{ color:rgb(252,252,253)!important; background-color: rgb(44,52,63)!important; box-shadow: rgba(219, 223,230, .2) 0px 0px 0px 1px inset!important; } } } } } .inner--link--contents { width: 100%; padding: 40px 0; ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 24px; width: 100%; padding:0 96px; li { width:calc( (100% - 48px) / 3); --gradient-start: hsla(216, 20%, 17%, 1); --gradient-end: hsla(216, 21%, 12%, 1); transition-timing-function: cubic-bezier(0.75, 0.02, 0.5, 1); transition-duration: 250ms; transition-property: --gradient-start, --gradient-end, box-shadow; padding:28px 16px; overflow: hidden; border-radius: 20px; border: none; cursor: pointer; box-shadow: rgb(44, 52, 63) 0px 0px 0px 1px inset; backdrop-filter: blur(40px); background: linear-gradient(180deg, var(--gradient-start) 0%, var(--gradient-end) 100%); display: flex; text-decoration: none; &:hover{ --gradient-start: hsla(216, 18%, 21%, 1); --gradient-end: hsla(216, 18%, 21%, 1); box-shadow: rgb(42,57,64) 0px 0px 0px 1px inset; } a { display: inline-flex; align-items: center; color: rgba(252, 252, 253, 0.7);; letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 12px; line-height: 24px; font-stretch: 105%; padding-left:40px; position: relative; width:100%; >span{ position: absolute; top:50%; left:0px; transform: translateY(-50%); } > svg{ position: absolute; top:50%; transform: translateY(-50%); right:0px; } } } } } .product--card--wrapper{ margin: auto; max-width: var(--max-content-width); padding: var(--spacing-relative-xl) var(--spacing-relative-md); padding-inline: var(--page-margin); padding-block-end: var(--spacing-relative-2xl); @media (min-width: 375px) { padding-inline: var(--page-margin); } @media (min-width: 768px) { padding-inline: var(--page-margin); } @media (min-width: 1024px) { padding-inline: var(--spacing-relative-3xl); padding-block-end: var(--spacing-relative-2xl); } @media (min-width: 1440px) { padding-inline: var(--page-margin); padding-block-end: var(--spacing-relative-2xl); } &[data-type="square"] { max-height:100%!important; .product--card{ max-height:100%!important; .product--card--thumb{ max-height: 100%!important; padding-top:50%; .product--card--thumb--inner{ position: absolute; inset: 0px; height: 100%; img{ position: relative; } } } } } .product--card { display: flex; overflow: hidden; max-height: 50vh; // 가로 레이아웃 &[data-layout="horizontal"] { flex-direction: row; align-items: center; .product--card--thumb { flex: 0 0 40%; max-width: 600px; } .product--card--content { flex: 1; } // 이미지 오른쪽 배치 &[data-image-position="right"] { flex-direction: row-reverse; } @media (max-width: 1024px) { flex-direction: column; .product--card--thumb { flex: 1; max-width: 100%; } .product--card--content { padding-left: 0; padding-right: 0; padding-top: 20px; } // 모바일에서는 이미지 위치 상관없이 세로 배치 &[data-image-position="right"] { flex-direction: column; .product--card--content { padding-right: 0; padding-top: 20px; } } } } // 세로 레이아웃 &[data-layout="vertical"] { flex-direction: column; max-width: 600px; .product--card--thumb { width: 100%; } .product--card--content { padding-top: 24px; } } .product--card--thumb { background: rgba(255, 255, 255, 0.05); min-width:50%; position: relative; max-height: 50vh; border-radius: 20px; position: relative; overflow: hidden; .product--card--thumb--inner{ height:100%; min-height:50vh; img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s ease; position: absolute; height: 100%; } &:hover img { transform: scale(1.05); } } } .product--card--content { display: flex; flex-direction: column; gap: 16px; @media screen and (min-width: 320px) { padding-block-start: var(--spacing-relative-lg); } @media screen and (min-width: 1024px) { -webkit-box-pack: center; justify-content: center; align-items: flex-start; padding-inline-start: var(--spacing-relative-2xl); padding-inline-end: var(--spacing-relative-2xl); padding-block-start: 0px; } } .product--card--title { margin: 0px; color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 24px; line-height: 36px; font-stretch: 130%; @media (min-width: 1024px) { font-size: 28px; line-height: 40px; } @media (min-width: 1440px) { font-size: 32px; line-height: 44px; } @media (min-width: 1920px) { font-size: 36px; line-height: 52px; } } .product--card--smalltitle { margin: 0px; color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 20px; line-height: 32px; font-stretch: 130%; @media (min-width: 1440px) { font-size: 24px; line-height: 36px; } } .product--card--subtitle { margin: 0; color: rgba(252, 252, 253, 0.8); font-size: 16px; line-height: 24px; } .product--card--description { margin-top: 8px; p { margin: 0px; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; } } .product--card--small--description{ margin-top:20px; p { margin: 0px; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 12px; line-height: 20px; font-stretch: 105%; } } .product--card--actions { margin-top: 24px; display: flex; gap: 16px; flex-wrap: wrap; } @media (max-width: 768px) { padding: 24px; gap: 24px; } } } .radius--img--wrap{ overflow: hidden; border-radius: 20px; } // 딜러 검색 드롭다운 스타일 .dealer--search--section { width: 100%; max-width: 1920px; margin: 0 auto; padding: 80px 96px; background-color: hsla(216, 23%, 8%, 1); } .dealer--search--container { display: flex; flex-direction: column; gap: 48px; border-top: 1px solid rgba(252, 252, 253, 0.15); } .dealer--category--wrap { display: flex; flex-direction: column; } .dealer--category--title { font-size: 28px; font-weight: 600; margin: 0 0 24px 0; color: rgb(252, 252, 253); padding-bottom: 16px; border-bottom: 2px solid rgba(252, 252, 253, 0.3); } .dealer--region--item { border-bottom: 1px solid rgba(252, 252, 253, 0.15); } .dealer--region--header { width: 100%; display: flex; justify-content: space-between; align-items: center; padding: 20px 24px; background-color: transparent; border: none; color: rgb(252, 252, 253); cursor: pointer; transition: all 0.3s ease; &:hover { background-color: rgba(252, 252, 253, 0.05); } &.active { background-color: rgba(252, 252, 253, 0.08); } } .dealer--region--name { font-size: 18px; font-weight: 500; } .dealer--toggle--icon { font-size: 28px; line-height: 1; transition: transform 0.3s ease; } .dealer--list--content { padding: 0 24px 24px; animation: slideDown 0.3s ease; } @keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } .dealer--list { list-style: none; padding: 0; padding-left:10px; margin: 0; display: flex; flex-direction: column; gap: 0px; li { margin: 0; position: relative; &:before{ content:'>'; font-size:12px; margin-right:10px; } a{ text-decoration: underline; } } } .dealer--link { display: inline-block; color: rgba(252, 252, 253, 0.7); text-decoration: none; font-size: 16px; transition: all 0.2s ease; padding: 8px 0; &:hover { color: rgb(252, 252, 253); text-decoration: underline; } } // 반응형 처리 @media (max-width: 1024px) { .dealer--search--section { padding: 60px 48px; } .dealer--search--container { gap: 40px; } .dealer--category--title { font-size: 24px; margin-bottom: 20px; padding-bottom: 12px; } .dealer--region--header { padding: 16px 20px; } .dealer--region--name { font-size: 16px; } .dealer--list--content { padding: 0 20px 20px; } .dealer--list { gap: 6px; } } @media (max-width: 768px) { .dealer--search--section { padding: 40px 24px; } .dealer--search--container { gap: 32px; } .dealer--category--title { font-size: 20px; margin-bottom: 16px; padding-bottom: 10px; } .dealer--region--header { padding: 14px 16px; } .dealer--region--name { font-size: 15px; } .dealer--toggle--icon { font-size: 24px; } .dealer--list--content { padding: 0 16px 16px; } .dealer--list { gap: 6px; } .dealer--link { font-size: 14px; padding: 6px 0; } } // 딜러 검색 페이지 스타일 .dealer--search--section{ padding: 64px 96px; .dealer--search--container{ margin: 0 auto; } .dealer--category--wrap{ display: flex; flex-direction: column; //gap: 16px; } .dealer--region--item{ border-bottom: 1px solid rgba(252, 252, 253, 0.1); } .dealer--region--header{ width: 100%; display: flex; justify-content: space-between; align-items: center; padding: 24px 0; background: transparent; border: none; color: #fcfcfd; font-size: 24px; font-family: 'AudiType'; font-weight: 400; transition: all 0.3s; &:hover{ color: rgba(252, 252, 253, 0.7); } &.active{ color: #fcfcfd; } } .dealer--region--name{ font-size: 24px; } .dealer--toggle--icon{ font-size: 32px; line-height: 1; font-weight: 300; } .dealer--list--content{ padding-bottom: 24px; } .dealer--list{ display: flex; flex-direction: column; gap: 16px; >li{ list-style: none; } } .dealer--link{ display: inline-block; color: rgba(252, 252, 253, 0.7); font-size: 16px; text-decoration: underline; text-underline-offset: 4px; transition: all 0.3s; background: transparent; border: none; font-family: 'AudiType'; font-weight: 400; padding: 0; cursor: pointer; &:hover{ color: #fcfcfd; } } } // 딜러 팝업 스타일 .dealer--popup--overlay{ position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(2, 2, 3, 0.85); display: flex; justify-content: center; align-items: center; z-index: 9999; padding: 20px; } .dealer--popup--container{ position: relative; background-color: #1a1d23; border-radius: 20px; max-width: 1024px; width: 100%; max-height: 90vh; overflow-y: auto; box-shadow: 0 24px 48px rgba(0, 0, 0, 0.4); &::-webkit-scrollbar{ width: 8px; } &::-webkit-scrollbar-track{ background: transparent; } &::-webkit-scrollbar-thumb{ background: rgba(252, 252, 253, 0.2); border-radius: 4px; &:hover{ background: rgba(252, 252, 253, 0.3); } } @media (min-width: 320px) { padding: 16px; } @media (min-width: 375px) { padding: 28px; } @media (min-width: 768px) { padding: 48px; } @media (min-width: 1024px) { padding: 56px; } @media (min-width: 1440px) { padding: 64px; } } .dealer--popup--close{ position: absolute; top: 24px; right: 24px; width: 40px; height: 40px; background: transparent; border: none; cursor: pointer; z-index: 1; display: flex; justify-content: center; align-items: center; border-radius: 50%; transition: all 0.3s; &:hover{ background-color: rgba(252, 252, 253, 0.1); } .close--icon{ width: 24px; height: 24px; position: relative; &::before, &::after{ content: ''; position: absolute; top: 50%; left: 50%; width: 20px; height: 2px; background-color: #fcfcfd; } &::before{ transform: translate(-50%, -50%) rotate(45deg); } &::after{ transform: translate(-50%, -50%) rotate(-45deg); } } } .dealer--popup--content{ margin: auto; max-width: var(--max-content-width); display: grid; grid-template-columns: 1fr; grid-template-rows: 1fr; grid-template-areas:"media" "textarea"; padding: var(--spacing-relative-xl) var(--spacing-relative-md); @media (min-width: 1024px) { grid-template-columns: 1fr 1fr; grid-template-areas: "media textarea"; } @media (min-width: 1440px) { grid-template-columns: 1fr 1fr; grid-template-areas: "media textarea"; } .dealer--thumb--wrap{ border-radius: 20px; overflow: hidden; } .dealer--infos--wrap{ grid-area: textarea; align-self: center; @media screen and (min-width: 320px) { padding-block-start: var(--spacing-relative-lg); } @media screen and (min-width: 1024px) { display: flex; flex-direction: column; -webkit-box-pack: center; justify-content: center; align-items: flex-start; padding-inline-start: var(--spacing-relative-2xl); padding-inline-end: var(--spacing-relative-2xl); padding-block-start: 0px; } } } .dealer--popup--header{ .dealer--name{ margin: 0px; color: rgb(252, 252, 253); font-family: AudiType, sans-serif; letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 24px; line-height: 36px; font-stretch: 130%; @media (min-width: 1024px) { font-size: 28px; line-height: 40px; } @media (min-width: 1440px) { font-size: 32px; line-height: 44px; } @media (min-width: 1920px) { font-size: 36px; line-height: 52px; } } .dealer--type{ display: inline-block; font-size: 14px; color: rgba(252, 252, 253, 0.7); padding: 4px 12px; background-color: rgba(252, 252, 253, 0.1); border-radius: 100px; } } .dealer--popup--body{ display: flex; flex-direction: column; gap: 8px; padding-top:8px; } .dealer--info--section{ display: flex; flex-direction: column; gap: 8px; .info--label{ margin: 0px; color: rgba(252, 252, 253, 0.7); font-family: AudiType, sans-serif; letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; a{ word-break: break-all; } } .phone--link, .email--link, .website--link{ color: #fcfcfd; text-decoration: underline; text-underline-offset: 4px; transition: all 0.3s; &:hover{ color: rgba(252, 252, 253, 0.7); } } .business--hours--item{ line-height: 1.8; } } .dealer--popup--footer{ margin-top: 40px; padding-top: 24px; border-top: 1px solid rgba(252, 252, 253, 0.1); display: flex; justify-content: center; } .dealer--popup--empty{ padding: 80px 48px; text-align: center; >p{ font-size: 16px; color: rgba(252, 252, 253, 0.7); } } // 팝업 페이드 애니메이션 .dealer--popup--fade-enter-active, .dealer--popup--fade-leave-active{ transition: opacity 0.3s ease; .dealer--popup--container{ transition: transform 0.3s ease, opacity 0.3s ease; } } .dealer--popup--fade-enter-from, .dealer--popup--fade-leave-to{ opacity: 0; .dealer--popup--container{ transform: scale(0.95); opacity: 0; } } .dealer--popup--fade-enter-to, .dealer--popup--fade-leave-from{ opacity: 1; .dealer--popup--container{ transform: scale(1); opacity: 1; } } /*================================================= |버튼 리스트 css |START =================================================*/ .light--gray--btn{ border: 0px; flex-direction: column; -webkit-box-align: center; align-items: center; -webkit-box-pack: center; justify-content: center; transition-timing-function:cubic-bezier(0.75, 0.02, 0.5, 1); transition-duration: 250ms; border-radius: 999px; cursor: pointer; display: inline-flex; box-sizing: border-box; text-align: center; letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 12px; line-height: 16px; font-stretch: 105%; padding: 8px 16px; min-height: 36px; background: rgb(101, 112, 129); color: rgb(252, 252, 253); box-shadow: rgba(101, 112, 129, 0) 0px 0px 0px 1px inset; &:hover{ color:rgb(252,252,253); background-color: rgb(44,52,63); box-shadow: rgba(219, 223,230, .2) 0px 0px 0px 1px inset; } } .default--round--btn { flex-direction: column; -webkit-box-align: center; align-items: center; -webkit-box-pack: center; justify-content: center; transition-timing-function: cubic-bezier(0.75, 0.02, 0.5, 1); transition-duration: 250ms; border-radius: 999px; cursor: pointer; display: inline-flex; border: 0px; letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 14px; line-height: 20px; font-stretch: 105%; padding: 12px 24px; min-height: 48px; background-color: rgb(24, 29, 37); color: rgb(252, 252, 253); box-shadow: rgb(44, 52, 63) 0px 0px 0px 1px inset; transition-property: color, box-shadow, background-color; &.reverse{ background: rgba(44,52,63); box-shadow: rgba(219,223,230, .2) 0px 0px 0px 1px inset; &:hover { background-color: rgb(24, 29, 37); color: rgb(252, 252, 253); box-shadow: rgb(44, 52, 63) 0px 0px 0px 1px inset; } } &:hover { background: rgba(44,52,63); box-shadow: rgba(219,223,230, .2) 0px 0px 0px 1px inset; } &:active { transform: translateY(0); } } /*================================================= |버튼 리스트 css |end =================================================*/ /*================================================= |모델 리스트 css |start =================================================*/ .models--page{ .type--carousel{ padding:40px 0px; .models--filter--section{ box-sizing: border-box; padding: 0 var(--page-margin); position: sticky; top: 0px; z-index: 85; .filter--group{ .filter--dropdown--list{ >h2{ margin: 0 0 var(--spacing-relative-2xs) 0; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 12px; line-height: 20px; font-stretch: 105%; padding-bottom:12px; } .filter--dropdown{ display: flex; gap:10px; flex-wrap:wrap; margin-bottom:30px; button{ border-radius: 10px; box-sizing: border-box; display: inline-flex; -webkit-box-pack: justify; justify-content: space-between; -webkit-box-align: center; align-items: center; gap: 8px; letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 14px; line-height: 20px; font-stretch: 105%; padding: 4px 12px; transition-timing-function: cubic-bezier(0.75, 0.02, 0.5, 1); transition-duration: 250ms; transition-property: background-color, box-shadow, color; min-height: 36px; cursor: pointer; background-color: rgb(24, 29, 37); color: rgb(252, 252, 253); box-shadow: rgb(44, 52, 63) 0px 0px 0px 1px inset; &.active{ background-color: rgb(64, 74, 89); color: rgb(252, 252, 253); box-shadow: rgba(219, 223, 230, 0.2) 0px 0px 0px 1px inset; } } } } } } .models--list--wrap{ .all--models--wrap{ padding: 0px var(--page-margin); display: flex; align-items: center; justify-content: space-between; margin: 0 0 var(--spacing-relative-2xs) 0; .all--models{ color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 12px; line-height: 20px; font-stretch: 105%; padding-bottom:12px; } .nav--btn--wrap{ display: flex; align-items: center; gap:20px; button{ &.nav--prev--btn{ transform: rotate(180deg); } &.swiper-button-disabled{ opacity: .2; cursor: not-allowed; } } } } .models--list{ width:100%; display: flex; flex-wrap:wrap; gap:10px; > .swiper{ width:100%; padding: 0 0 0 var(--page-margin); } .model--item{ --gradient-start: hsla(216, 20%, 17%, 1); --gradient-end: hsla(216, 21%, 12%, 1); transition-timing-function: cubic-bezier(0.75, 0.02, 0.5, 1); transition-duration: 250ms; transition-property: --gradient-start, --gradient-end, box-shadow; padding: 16px; overflow: hidden; border-radius: 20px; border: none; cursor: pointer; box-shadow: rgb(44, 52, 63) 0px 0px 0px 1px inset; backdrop-filter: blur(40px); background: linear-gradient(180deg, var(--gradient-start) 0%, var(--gradient-end) 100%); text-align: left; max-width:220px; &.active{ --gradient-start: hsla(216, 16%, 30%, 1); --gradient-end: hsla(216, 16%, 30%, 1); transition-timing-function: cubic-bezier(0.75, 0.02, 0.5, 1); transition-duration: 250ms; transition-property: --gradient-start, --gradient-end, box-shadow; padding: 16px; overflow: hidden; border-radius: 20px; border: none; cursor: pointer; box-shadow: rgba(219, 223, 230, 0.2) 0px 0px 0px 1px inset; backdrop-filter: blur(40px); background: linear-gradient(180deg, var(--gradient-start) 0%, var(--gradient-end) 100%); text-align: left; .model--info--wrap{ .ico{ transform: rotate(-90deg); } } } .model--name{ position: relative; margin: 0px; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; letter-spacing: -1px; display: flex; align-items: center; justify-content: space-between; .etron--wrap{ min-height:28px; .etron{ margin: 0px; border-radius: 10px; box-sizing: border-box; display: inline-flex; -webkit-box-pack: justify; justify-content: space-between; -webkit-box-align: center; align-items: center; gap: 8px; letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 12px; line-height: 16px; font-stretch: 105%; padding: 4px 12px; transition-timing-function:cubic-bezier(0.75, 0.02, 0.5, 1); transition-duration: 250ms; transition-property: background-color, box-shadow, color; min-height: 28px; background-color: rgba(154, 163, 177, 0.1); color: rgb(252, 252, 253); box-shadow: rgba(128, 128, 128, 0) 0px 0px 0px 1px inset; } } } .model--image--wrap{ display: block; aspect-ratio: 7 / 3; overflow: hidden; padding: 0px; margin-bottom:20px; img{ width: 100%; height: 100%; object-fit: cover; } } .model--info--wrap{ margin: 0px; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 12px; line-height: 20px; font-stretch: 105%; display: flex; align-items: center; justify-content: space-between; .ico{ width: 24px; height: 24px; background-image: url(/img/ico--arrow.svg); transform: rotate(90deg); } } } } .models--list--car{ height: 0px; overflow: hidden; padding: 0px; z-index: 1; &.active{ height: 488px; overflow: hidden; padding: 28px var(--page-margin); z-index: 1; } @media (min-width: 768px) { transition-property: height; transition-duration: 0.2s; transition-timing-function: ease-in-out; } .car--list{ .car--item{ max-width: 332px; min-width: 285px; } } } } } .models--container{ position: relative; background-color: rgb(16, 19, 25); @media (min-width: 1024px) { display: grid; grid-template-columns: 1fr 3fr; } .models--filter--section{ box-sizing: border-box; padding: 0 var(--page-margin); position: sticky; top: 0px; z-index: 85; background-color: rgb(44, 52, 63); @media (min-width: 1024px) { background-color: transparent; height: calc(100vh); min-width: 320px; padding: var(--spacing-relative-2xl) 0 var(--spacing-relative-2xl) var(--page-margin); overflow-y: auto; z-index: auto; } @media (min-width: 1280px) { min-width: 388px; } @media (min-width: 1440px) { min-width: auto; } .filter--group{ .filter--dropdown--list{ >h2{ margin: 0 0 var(--spacing-relative-2xs) 0; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 12px; line-height: 20px; font-stretch: 105%; padding-bottom:12px; } .filter--dropdown{ display: flex; gap:10px; flex-wrap:wrap; margin-bottom:30px; button{ border-radius: 10px; box-sizing: border-box; display: inline-flex; -webkit-box-pack: justify; justify-content: space-between; -webkit-box-align: center; align-items: center; gap: 8px; letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 14px; line-height: 20px; font-stretch: 105%; padding: 4px 12px; transition-timing-function: cubic-bezier(0.75, 0.02, 0.5, 1); transition-duration: 250ms; transition-property: background-color, box-shadow, color; min-height: 36px; cursor: pointer; background-color: rgb(24, 29, 37); color: rgb(252, 252, 253); box-shadow: rgb(44, 52, 63) 0px 0px 0px 1px inset; &.active{ background-color: rgb(64, 74, 89); color: rgb(252, 252, 253); box-shadow: rgba(219, 223, 230, 0.2) 0px 0px 0px 1px inset; } } } } } } .models--list--wrap{ @media (min-width: 1024px) { padding: var(--spacing-relative-2xl) var(--page-margin) var(--spacing-relative-2xl) 0; } .all--models{ margin: 0 0 var(--spacing-relative-2xs) 0; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 12px; line-height: 20px; font-stretch: 105%; padding-bottom:12px; } .models--list{ width:100%; display: flex; flex-wrap:wrap; gap:20px; .model--item{ --gradient-start: hsla(216, 20%, 17%, 1); --gradient-end: hsla(216, 21%, 12%, 1); transition-timing-function: cubic-bezier(0.75, 0.02, 0.5, 1); transition-duration: 250ms; transition-property: --gradient-start, --gradient-end, box-shadow; padding: 16px; overflow: hidden; border-radius: 20px; border: none; cursor: pointer; box-shadow: rgb(44, 52, 63) 0px 0px 0px 1px inset; backdrop-filter: blur(40px); background: linear-gradient(180deg, var(--gradient-start) 0%, var(--gradient-end) 100%); text-align: left; max-width:calc( (100% - 60px) / 4); .model--name{ position: relative; margin: 0px; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 105%; display: flex; align-items: center; justify-content: space-between; .etron--wrap{ min-height:28px; .etron{ margin: 0px; border-radius: 10px; box-sizing: border-box; display: inline-flex; -webkit-box-pack: justify; justify-content: space-between; -webkit-box-align: center; align-items: center; gap: 8px; letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 12px; line-height: 16px; font-stretch: 105%; padding: 4px 12px; transition-timing-function:cubic-bezier(0.75, 0.02, 0.5, 1); transition-duration: 250ms; transition-property: background-color, box-shadow, color; min-height: 28px; background-color: rgba(154, 163, 177, 0.1); color: rgb(252, 252, 253); box-shadow: rgba(128, 128, 128, 0) 0px 0px 0px 1px inset; } } } .model--image--wrap{ display: block; aspect-ratio: 7 / 3; overflow: hidden; padding: 0px; margin-bottom:20px; img{ width: 100%; height: 100%; object-fit: cover; } } .model--info--wrap{ margin: 0px; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 12px; line-height: 20px; font-stretch: 105%; display: flex; align-items: center; justify-content: space-between; .ico{ width: 24px; height: 24px; background-image: url(/img/ico--arrow.svg); } } } } } } .models--list--car{ .all--car--title{ margin: 0px; color: rgba(252, 252, 253, 0.7); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 12px; line-height: 20px; font-stretch: 105%; padding-bottom:12px; margin: 0 0 var(--spacing-relative-2xs) 0; } .car--list{ display: flex; flex-wrap: wrap; gap:20px; .car--item{ width:calc( (100% - 40px) / 3 ); overflow: hidden; height: calc(100% - var(--spacing-relative-lg)); background-color: rgba(154, 163, 177, 0.1); border-radius: 20px; padding-top:24px; padding-bottom:24px; .car--image{ img{ width:100%; } } .car--info{ padding-top:24px; padding-left: 24px; padding-right: 24px; .car--link{ margin: 0px 0px 12px; margin-top:24px; border: 0px; flex-direction: column; -webkit-box-align: center; align-items: center; -webkit-box-pack: center; justify-content: center; transition-timing-function: cubic-bezier(0.75, 0.02, 0.5, 1); transition-duration: 250ms; border-radius: 999px; cursor: pointer; display: inline-flex; box-sizing: border-box; text-align: center; font-family: AudiType, sans-serif; letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 14px; line-height: 20px; font-stretch: 105%; padding: 12px 24px; min-height: 48px; width: 100%; background: rgb(101, 112, 129); color: rgb(252, 252, 253); box-shadow: rgba(101, 112, 129, 0) 0px 0px 0px 1px inset; transition-property: color, background, box-shadow; } .car--name{ margin: 0px; color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 700; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 130%; min-height:64px; @media (min-width: 1440px) { font-size: 18px; line-height: 28px; } @media (min-width: 1920px) { font-size: 20px; line-height: 32px; } } } .bedge--wrap{ display: flex; padding-left: 24px; padding-right: 24px; gap: var(--spacing-relative-2xs); min-height:28px; .etron{ margin: 0px; border-radius: 10px; box-sizing: border-box; display: inline-flex; -webkit-box-pack: justify; justify-content: space-between; -webkit-box-align: center; align-items: center; gap: 8px; letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 12px; line-height: 16px; font-stretch: 105%; padding: 4px 12px; transition-timing-function: cubic-bezier(0.75, 0.02, 0.5, 1); transition-duration: 250ms; transition-property: background-color, box-shadow, color; min-height: 28px; background-color: rgba(154, 163, 177, 0.1); color: rgb(252, 252, 253); box-shadow: rgba(128, 128, 128, 0) 0px 0px 0px 1px inset; letter-spacing: -1px; } } } } } } header{ width: 100%; .header--wrap{ background-color: #020203; max-width: 1920px; width: 100%; margin: 0 auto; height: 72px; padding: 0 96px; display: flex; align-items: center; .header--logo--wrap{ margin-right: 40px; a{ strong{ clip: rect(1px, 1px, 1px, 1px); height: 1px; overflow: hidden; position: absolute; width: 1px; } } } } .header--menu--wrap{ display: flex; gap: 24px; >a{ color: #fcfcfdb2; &:hover{ color: hsla(216, 33%, 99%, 1); } } } .header--search--wrap{ margin-left: auto; display: flex; .search--btn{ border-radius: 50%; padding: 0; background-image: url(/img/ico--search.svg); background-repeat: no-repeat; background-position: center; background-color: transparent; width: 48px; height: 48px; } } } footer{ width: 100%; //--one-footer-color-black: hsla(216, 26%, 1%, 1); --one-footer-color-white: hsla(216, 33%, 99%, 1); --one-footer-neutral-5: hsla(216, 26%, 1%, 0.6); --one-footer-neutral-10: hsla(216, 17%, 26%, 1); --one-footer-neutral-20: hsla(216, 14%, 35%, 1); --one-footer-neutral-70: hsla(216, 33%, 99%, 0.6); --one-footer-side-spacing: 16px; --one-footer-space-xs: var(--spacing-relative-xs); --one-footer-space-s: var(--spacing-relative-sm); --one-footer-space-m: var(--spacing-relative-md); --one-footer-space-l: var(--spacing-relative-lg); --one-footer-space-xl: var(--spacing-relative-xl); --one-footer-space-xxl: var(--spacing-relative-2xl); --one-footer-space-xxxl: var(--spacing-relative-3xl); background: var(--one-footer-color-black); box-sizing: border-box; color: var(--one-footer-color-white); @media (min-width: 375px) { --one-footer-side-spacing: 28px; } @media (min-width: 768px) { --one-footer-side-spacing: 40px; } @media (min-width: 1024px) { --one-footer-side-spacing: 60px; } .footer--wrap{ background-color: #020203; max-width: 1920px; width: 100%; margin: 0 auto; padding: 40px 96px; display: flex; flex-direction: column; .footer--site--map{ width:100%; >ul{ display: block; list-style: none; padding: 0px; width: 100%; @media (min-width: 768px) { display: flex; flex-flow: wrap; margin: 28px auto; width: 100%; } >li{ margin-bottom: -1px; >ul{ >li{ &:first-child{ padding-top: 12px; } padding: 0 20px var(--one-footer-space-s); } } @media (min-width: 768px) { //margin: 0px 24px 40px 0px; width: calc(33.333%); &:first-of-type { margin-top: 0px; } >h2{ border: none!important; } >ul{ >li{ padding-left: 0; padding-right: 0; } } } @media (min-width: 1440px) { padding: 0px 24px 0px 0px; width: 20%; } >h2{ color: var(--one-footer-color-white); display: flex; flex-flow: row; -webkit-box-pack: justify; justify-content: space-between; padding: var(--one-footer-space-m) 20px; width: 100%; margin: 0px; color: rgb(252, 252, 253); letter-spacing: 0px; font-weight: 400; text-decoration: none; font-size: 16px; line-height: 24px; font-stretch: 130%; border-top: 1px solid hsla(216, 17%, 26%, 1); border-bottom: 1px solid hsla(216, 17%, 26%, 1); @media (min-width: 768px) { padding: 0px; width: auto; margin-bottom: 24px; } @media (min-width: 1440px) { font-size: 18px; line-height: 28px; } @media (min-width: 1920px) { font-size: 20px; line-height: 32px; } } } } } } } // ============================================ // Admin Panel Dark Theme Styles // ============================================ // Dark Theme Color Variables :root { --admin-bg-primary: #0f0f0f; --admin-bg-secondary: #1a1a1a; --admin-bg-tertiary: #252525; --admin-text-primary: #ffffff; --admin-text-secondary: #b3b3b3; --admin-text-muted: #666666; --admin-border-color: #333333; --admin-accent-primary: #bb0a30; --admin-accent-hover: #990825; --admin-success: #10b981; --admin-warning: #f59e0b; --admin-error: #ef4444; --admin-shadow: rgba(0, 0, 0, 0.5); } // Admin Login Page .admin--login { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--admin-bg-primary) 0%, var(--admin-bg-secondary) 100%); font-family: 'AudiType', sans-serif; .login--container { width: 100%; max-width: 460px; padding: 20px; } .login--box { background: var(--admin-bg-secondary); border-radius: 12px; padding: 48px 40px; box-shadow: 0 8px 32px var(--admin-shadow); border: 1px solid var(--admin-border-color); } .login--logo { text-align: center; margin-bottom: 40px; h1 { font-size: 48px; font-weight: 700; color: var(--admin-text-primary); margin: 0 0 8px 0; letter-spacing: 4px; } .subtitle { font-size: 14px; color: var(--admin-text-secondary); margin: 0; } } .login--error { background: rgba(239, 68, 68, 0.1); border: 1px solid var(--admin-error); color: var(--admin-error); padding: 12px 16px; border-radius: 6px; margin-bottom: 20px; font-size: 14px; } .login--form { .form--group { margin-bottom: 20px; } .form--input { width: 100%; padding: 14px 16px; background: var(--admin-bg-tertiary); border: 1px solid var(--admin-border-color); border-radius: 6px; color: var(--admin-text-primary); font-size: 14px; transition: all 0.3s ease; font-family: 'AudiType', sans-serif; &:focus { outline: none; border-color: var(--admin-accent-primary); box-shadow: 0 0 0 3px rgba(187, 10, 48, 0.1); } &::placeholder { color: var(--admin-text-muted); } &:disabled { opacity: 0.5; cursor: not-allowed; } } .form--options { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; .checkbox--label { display: flex; align-items: center; cursor: pointer; font-size: 14px; color: var(--admin-text-secondary); input[type="checkbox"] { margin-right: 8px; cursor: pointer; } } .forgot--password { font-size: 14px; color: var(--admin-accent-primary); text-decoration: none; transition: color 0.3s ease; &:hover { color: var(--admin-accent-hover); } } } .login--button { width: 100%; padding: 14px 16px; background: var(--admin-accent-primary); color: var(--admin-text-primary); border: none; border-radius: 6px; font-size: 16px; font-weight: 600; cursor: pointer; transition: all 0.3s ease; font-family: 'AudiType', sans-serif; &:hover:not(:disabled) { background: var(--admin-accent-hover); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(187, 10, 48, 0.3); } &:active:not(:disabled) { transform: translateY(0); } &:disabled { opacity: 0.6; cursor: not-allowed; } } } .login--footer { margin-top: 32px; text-align: center; p { font-size: 12px; color: var(--admin-text-muted); margin: 0; } } } // Admin Layout .admin--layout { min-height: 100vh; background: var(--admin-bg-primary); font-family: 'AudiType', sans-serif; } // Admin Header .admin--header { position: fixed; top: 0; left: 0; right: 0; height: 64px; background: var(--admin-bg-secondary); border-bottom: 1px solid var(--admin-border-color); display: flex; justify-content: space-between; align-items: center; padding: 0 32px; z-index: 1000; .admin--header-left { display: flex; align-items: center; } .admin--logo { display: flex; align-items: baseline; gap: 12px; h1 { font-size: 28px; font-weight: 700; color: var(--admin-text-primary); margin: 0; letter-spacing: 2px; } .admin--logo-sub { font-size: 16px; color: var(--admin-text-secondary); font-weight: 400; } } .admin--header-right { display: flex; gap: 12px; } .admin--header-btn { padding: 8px 20px; background: var(--admin-bg-tertiary); color: var(--admin-text-primary); border: 1px solid var(--admin-border-color); border-radius: 6px; font-size: 14px; font-weight: 500; cursor: pointer; transition: all 0.3s ease; font-family: 'AudiType', sans-serif; &:hover { background: var(--admin-bg-primary); border-color: var(--admin-accent-primary); } &.admin--header-btn-logout { background: var(--admin-accent-primary); border-color: var(--admin-accent-primary); &:hover { background: var(--admin-accent-hover); border-color: var(--admin-accent-hover); } } } } // Admin Content Wrapper .admin--content-wrapper { display: flex; margin-top: 64px; min-height: calc(100vh - 64px); } // Admin Sidebar .admin--sidebar { width: 260px; background: var(--admin-bg-secondary); border-right: 1px solid var(--admin-border-color); padding: 24px 0; position: fixed; left: 0; top: 64px; bottom: 0; overflow-y: auto; &::-webkit-scrollbar { width: 6px; } &::-webkit-scrollbar-track { background: var(--admin-bg-primary); } &::-webkit-scrollbar-thumb { background: var(--admin-border-color); border-radius: 3px; &:hover { background: var(--admin-text-muted); } } } // Admin GNB .admin--gnb { .admin--gnb-group { margin-bottom: 8px; } .admin--gnb-title { padding: 12px 24px; font-size: 14px; font-weight: 600; color: var(--admin-text-secondary); cursor: pointer; display: flex; justify-content: space-between; align-items: center; transition: all 0.3s ease; user-select: none; &:hover { color: var(--admin-text-primary); background: var(--admin-bg-primary); } .admin--gnb-arrow { font-size: 10px; transition: transform 0.3s ease; &.is-open { transform: rotate(-180deg); } } } .admin--gnb-submenu { list-style: none; padding: 0; margin: 0; } .admin--gnb-item { &.is-active { .admin--gnb-link { color: var(--admin-accent-primary); background: rgba(187, 10, 48, 0.1); border-left: 3px solid var(--admin-accent-primary); } } } .admin--gnb-link { display: block; padding: 10px 24px 10px 40px; font-size: 14px; color: var(--admin-text-secondary); text-decoration: none; transition: all 0.3s ease; border-left: 3px solid transparent; &:hover { color: var(--admin-text-primary); background: var(--admin-bg-primary); } } } // Submenu Animation .admin--submenu-enter-active, .admin--submenu-leave-active { transition: all 0.3s ease; overflow: hidden; } .admin--submenu-enter-from, .admin--submenu-leave-to { opacity: 0; max-height: 0; } .admin--submenu-enter-to, .admin--submenu-leave-from { opacity: 1; max-height: 500px; } // Admin Main Content .admin--main { flex: 1; margin-left: 260px; padding: 32px; background: var(--admin-bg-primary); } // Admin Page Header .admin--page-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 32px; padding-bottom: 16px; border-bottom: 1px solid var(--admin-border-color); } .admin--page-title { font-size: 28px; font-weight: 700; color: var(--admin-text-primary); margin: 0; } // Admin Breadcrumb .admin--breadcrumb { display: flex; align-items: center; gap: 8px; font-size: 14px; .admin--breadcrumb-link { color: var(--admin-text-secondary); text-decoration: none; transition: color 0.3s ease; &:hover { color: var(--admin-accent-primary); } } .admin--breadcrumb-current { color: var(--admin-text-primary); font-weight: 500; } .admin--breadcrumb-separator { color: var(--admin-text-muted); } } // Admin Page Content .admin--page-content { background: var(--admin-bg-secondary); border-radius: 8px; padding: 24px; border: 1px solid var(--admin-border-color); } // Admin Dashboard .admin--dashboard { .admin--dashboard-welcome { margin-bottom: 32px; h3 { font-size: 24px; color: var(--admin-text-primary); margin: 0 0 8px 0; } p { font-size: 14px; color: var(--admin-text-secondary); margin: 0; } } .admin--dashboard-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; margin-bottom: 32px; } .admin--stat-card { background: var(--admin-bg-tertiary); border: 1px solid var(--admin-border-color); border-radius: 8px; padding: 24px; display: flex; align-items: center; gap: 16px; transition: all 0.3s ease; &:hover { border-color: var(--admin-accent-primary); transform: translateY(-2px); box-shadow: 0 4px 12px var(--admin-shadow); } .admin--stat-icon { font-size: 36px; } .admin--stat-content { flex: 1; h4 { font-size: 14px; color: var(--admin-text-secondary); margin: 0 0 8px 0; font-weight: 500; } .admin--stat-number { font-size: 28px; color: var(--admin-text-primary); margin: 0; font-weight: 700; } } } .admin--dashboard-recent { h4 { font-size: 18px; color: var(--admin-text-primary); margin: 0 0 16px 0; } .admin--recent-list { background: var(--admin-bg-tertiary); border: 1px solid var(--admin-border-color); border-radius: 8px; padding: 24px; .admin--no-data { text-align: center; color: var(--admin-text-muted); margin: 0; } } } } // Admin Form Styles .admin--form { max-width: 800px; .admin--form-group { margin-bottom: 24px; } .admin--form-label { display: block; font-size: 14px; font-weight: 500; color: var(--admin-text-primary); margin-bottom: 8px; .admin--required { color: var(--admin-error); margin-left: 4px; } } .admin--form-input, .admin--form-textarea, .admin--form-select { width: 100%; padding: 12px 16px; background: var(--admin-bg-tertiary); border: 1px solid var(--admin-border-color); border-radius: 6px; color: var(--admin-text-primary); font-size: 14px; font-family: 'AudiType', sans-serif; transition: all 0.3s ease; &:focus { outline: none; border-color: var(--admin-accent-primary); box-shadow: 0 0 0 3px rgba(187, 10, 48, 0.1); } &::placeholder { color: var(--admin-text-muted); } &:disabled { opacity: 0.5; cursor: not-allowed; } } .admin--form-textarea { min-height: 120px; resize: vertical; } .admin--form-select { cursor: pointer; } // 다중 입력 필드 .admin--multi-input-wrapper { .admin--multi-input-item { display: flex; gap: 12px; margin-bottom: 12px; align-items: flex-start; .admin--sender-row { display: flex; gap: 10px; flex: 1; } .admin--form-input { flex: 1; } .admin--btn-remove { padding: 12px 20px; background: var(--admin-error); color: var(--admin-text-primary); border: none; border-radius: 6px; font-size: 14px; font-weight: 500; cursor: pointer; transition: all 0.3s ease; white-space: nowrap; font-family: 'AudiType', sans-serif; &:hover { background: #dc2626; } } } .admin--btn-add { padding: 10px 20px; background: var(--admin-bg-tertiary); color: var(--admin-text-secondary); border: 1px dashed var(--admin-border-color); border-radius: 6px; font-size: 14px; font-weight: 500; cursor: pointer; transition: all 0.3s ease; font-family: 'AudiType', sans-serif; &:hover { background: var(--admin-bg-primary); border-color: var(--admin-accent-primary); color: var(--admin-text-primary); } } } // 폼 액션 버튼 .admin--form-actions { display: flex; gap: 12px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--admin-border-color); } .admin--btn { padding: 12px 32px; border: none; border-radius: 6px; font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.3s ease; font-family: 'AudiType', sans-serif; &:disabled { opacity: 0.5; cursor: not-allowed; } } .admin--btn-primary { background: var(--admin-accent-primary); color: var(--admin-text-primary); &:hover:not(:disabled) { background: var(--admin-accent-hover); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(187, 10, 48, 0.3); } } .admin--btn-secondary { background: var(--admin-bg-tertiary); color: var(--admin-text-primary); border: 1px solid var(--admin-border-color); &:hover:not(:disabled) { background: var(--admin-bg-primary); border-color: var(--admin-accent-primary); } } // 알림 메시지 .admin--alert { padding: 12px 16px; border-radius: 6px; margin-top: 20px; font-size: 14px; } .admin--alert-success { background: rgba(16, 185, 129, 0.1); border: 1px solid var(--admin-success); color: var(--admin-success); } .admin--alert-error { background: rgba(239, 68, 68, 0.1); border: 1px solid var(--admin-error); color: var(--admin-error); } .admin--alert-warning { background: rgba(245, 158, 11, 0.1); border: 1px solid var(--admin-warning); color: var(--admin-warning); } } // 로딩 .admin--loading { display: flex; align-items: center; justify-content: center; padding: 60px 20px; color: var(--admin-text-secondary); font-size: 16px; } // 전역 로딩 오버레이 .admin--loading-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; z-index: 99999; } // 스피너 .admin--spinner { width: 50px; height: 50px; border: 4px solid rgba(255, 255, 255, 0.3); border-top-color: #fff; border-radius: 50%; animation: admin-spin 0.8s linear infinite; } @keyframes admin-spin { to { transform: rotate(360deg); } } // 검색 박스 .admin--search-box { background: var(--admin-bg-secondary); border: 1px solid var(--admin-border-color); border-radius: 8px; padding: 20px; margin-bottom: 20px; display: flex; justify-content: space-between; align-items: center; gap: 20px; .admin--search-form { display: flex; gap: 12px; flex: 1; } // 검색 박스 내 모든 select, input 통일된 스타일 .admin--search-select, .admin--form-select, .admin--form-input, .admin--search-input { border: 1px solid var(--admin-border-color) !important; border-radius: 4px; height: 33px !important; padding: 6px 14px !important; font-size: 13px !important; background: var(--admin-bg-tertiary) !important; line-height: normal; } .admin--search-select, .admin--form-select { width: 140px; } .admin--form-input, .admin--search-input { flex: 1; max-width: 400px; } } // 날짜 입력 필드 .admin--date-input { cursor: pointer; &::-webkit-calendar-picker-indicator { cursor: pointer; opacity: 0.7; transition: opacity 0.2s; &:hover { opacity: 1; } } } // 날짜 범위 .admin--date-range { display: flex; align-items: center; gap: 12px; .admin--date-separator { color: var(--admin-text-secondary); font-size: 14px; } .admin--form-input { flex: 1; max-width: 200px; } } // 검색 input 강제 스타일 (두 클래스 함께 사용될 때) .admin--form-input.admin--search-input { border: 1px solid var(--admin-border-color) !important; background: var(--admin-bg-tertiary) !important; } // 테이블 .admin--table-wrapper { background: var(--admin-bg-secondary); border: 1px solid var(--admin-border-color); border-radius: 8px; overflow-x: auto; } .admin--table { width: 100%; border-collapse: collapse; thead { background: var(--admin-bg-tertiary); border-bottom: 1px solid var(--admin-border-color); th { padding: 14px 16px; text-align: left; font-size: 14px; font-weight: 600; color: var(--admin-text-primary); white-space: nowrap; } } tbody { tr { border-bottom: 1px solid var(--admin-border-color); transition: background 0.3s ease; &:hover { background: var(--admin-bg-tertiary); } &:last-child { border-bottom: none; } } td { padding: 14px 16px; font-size: 14px; color: var(--admin-text-secondary); vertical-align: middle; } .admin--table-title { color: var(--admin-text-primary); font-weight: 500; max-width: 300px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .admin--table-loading, .admin--table-empty { text-align: center; padding: 60px 20px; color: var(--admin-text-muted); } } .admin--table-actions { display: flex; gap: 8px; } } // 배지 .admin--badge { display: inline-block; padding: 4px 12px; border-radius: 12px; font-size: 12px; font-weight: 600; white-space: nowrap; &.admin--badge-html { background: rgba(59, 130, 246, 0.1); color: #3b82f6; } &.admin--badge-image { background: rgba(16, 185, 129, 0.1); color: #10b981; } &.admin--badge-active { background: rgba(16, 185, 129, 0.1); color: var(--admin-success); } &.admin--badge-scheduled { background: rgba(245, 158, 11, 0.1); color: var(--admin-warning); } &.admin--badge-ended { background: rgba(107, 114, 128, 0.1); color: #6b7280; } } // 작은 버튼 .admin--btn-small { padding: 6px 14px; border: none; border-radius: 4px; font-size: 13px; font-weight: 500; cursor: pointer; transition: all 0.3s ease; font-family: 'AudiType', sans-serif; white-space: nowrap; &.admin--btn-small-primary { background: var(--admin-accent-primary); color: var(--admin-text-primary); &:hover { background: var(--admin-accent-hover); } } &.admin--btn-small-danger { background: var(--admin-error); color: var(--admin-text-primary); &:hover { background: #dc2626; } } } // 페이지네이션 .admin--pagination { display: flex; justify-content: center; align-items: center; gap: 8px; margin-top: 24px; .admin--pagination-btn { min-width: 36px; height: 36px; padding: 0 12px; background: var(--admin-bg-secondary); border: 1px solid var(--admin-border-color); border-radius: 6px; color: var(--admin-text-secondary); font-size: 14px; font-weight: 500; cursor: pointer; transition: all 0.3s ease; font-family: 'AudiType', sans-serif; &:hover:not(:disabled) { background: var(--admin-bg-tertiary); border-color: var(--admin-accent-primary); color: var(--admin-text-primary); } &.is-active { background: var(--admin-accent-primary); border-color: var(--admin-accent-primary); color: var(--admin-text-primary); } &:disabled { opacity: 0.5; cursor: not-allowed; } } } // 라디오 그룹 .admin--radio-group { display: flex; gap: 20px; flex-wrap: wrap; } .admin--radio-label { display: flex; align-items: center; gap: 8px; cursor: pointer; font-size: 14px; color: var(--admin-text-secondary); transition: color 0.3s ease; input[type="radio"] { cursor: pointer; margin: 0; } &:hover { color: var(--admin-text-primary); } } // 날짜 범위 .admin--date-range { display: flex; align-items: center; gap: 12px; .admin--date-separator { color: var(--admin-text-secondary); font-weight: 500; } } // 사이즈 그룹 .admin--size-group { display: flex; gap: 20px; .admin--size-item { display: flex; align-items: center; gap: 8px; label { font-size: 14px; color: var(--admin-text-secondary); min-width: 40px; } .admin--form-input { max-width: 120px; } span { font-size: 14px; color: var(--admin-text-secondary); } } } // 파일 입력 .admin--form-file { width: 100%; padding: 12px 16px; background: var(--admin-bg-tertiary); border: 1px solid var(--admin-border-color); border-radius: 6px; color: var(--admin-text-primary); font-size: 14px; font-family: 'AudiType', sans-serif; cursor: pointer; &::-webkit-file-upload-button { padding: 8px 16px; background: var(--admin-accent-primary); color: var(--admin-text-primary); border: none; border-radius: 4px; font-size: 13px; font-weight: 500; cursor: pointer; margin-right: 12px; font-family: 'AudiType', sans-serif; } } // 이미지 미리보기 .admin--image-preview { margin-top: 16px; position: relative; display: inline-block; max-width: 400px; img { max-width: 100%; border-radius: 8px; border: 1px solid var(--admin-border-color); display: block; } .admin--btn-remove-image { position: absolute; top: 12px; right: 12px; padding: 8px 16px; background: var(--admin-error); color: var(--admin-text-primary); border: none; border-radius: 4px; font-size: 13px; font-weight: 500; cursor: pointer; transition: all 0.3s ease; font-family: 'AudiType', sans-serif; &:hover { background: #dc2626; } } } // 비밀번호 입력 래퍼 .admin--password-input-wrapper { position: relative; .admin--form-input { padding-right: 50px; } .admin--password-toggle { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); background: none; border: none; font-size: 20px; cursor: pointer; padding: 4px; line-height: 1; transition: opacity 0.3s ease; &:hover { opacity: 0.7; } } } // 폼 도움말 .admin--form-help { margin: 8px 0 0 0; font-size: 13px; color: var(--admin-text-muted); font-style: italic; } // 검색 박스 (큰 버전 - 여러 필터) .admin--search-box-large { .admin--search-filters { flex: 1; display: flex; flex-direction: column; gap: 12px; .admin--filter-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; .admin--filter-label { font-size: 14px; color: var(--admin-text-secondary); min-width: 60px; } .admin--form-select, .admin--form-input { flex: 1; min-width: 150px; } } } } // 테이블 사진 .admin--table-photo { width: 80px; height: 120px; border-radius: 4px; overflow: hidden; display: flex; align-items: center; justify-content: center; background: var(--admin-bg-tertiary); img { width: 100%; height: 100%; object-fit: cover; } .admin--table-photo-empty { font-size: 11px; color: var(--admin-text-muted); text-align: center; } } // 테이블 액션 (세로 배치) .admin--table-actions-col { flex-direction: column; gap: 6px; .admin--btn-small { width: 100%; } } // 작은 버튼 (secondary 추가) .admin--btn-small-secondary { background: var(--admin-bg-tertiary); color: var(--admin-text-secondary); border: 1px solid var(--admin-border-color); &:hover { background: var(--admin-bg-primary); border-color: var(--admin-accent-primary); color: var(--admin-text-primary); } } // 엑셀 버튼 (녹색 배경) .admin--btn-small-excel { background: #217346; color: #ffffff; border: 1px solid #1a5c37; &:hover { background: #185c37; border-color: #144d2d; } } // Responsive @media (max-width: 1024px) { .admin--sidebar { width: 220px; } .admin--main { margin-left: 220px; } } @media (max-width: 768px) { .admin--header { padding: 0 16px; } .admin--sidebar { transform: translateX(-100%); transition: transform 0.3s ease; &.is-open { transform: translateX(0); } } .admin--main { margin-left: 0; padding: 16px; } .admin--page-header { flex-direction: column; align-items: flex-start; gap: 12px; } .admin--form { .admin--form-actions { flex-direction: column; .admin--btn { width: 100%; } } .admin--multi-input-wrapper { .admin--multi-input-item { flex-direction: column; .admin--btn-remove { width: 100%; } } } } } // File Attachment Styles .admin--form-file-hidden { display: none; } .admin--file-list { margin-bottom: 12px; border: 1px solid var(--admin-border-color); border-radius: 4px; background-color: var(--admin-bg-secondary); } .admin--file-item { display: flex; align-items: center; padding: 12px 16px; border-bottom: 1px solid var(--admin-border-color); &:last-child { border-bottom: none; } &:hover { background-color: rgba(255, 255, 255, 0.03); } } .admin--file-name { flex: 1; color: var(--admin-text-primary); font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-right: 8px; &:hover { text-decoration: underline; } } .admin--file-size { color: var(--admin-text-secondary); font-size: 13px; margin-right: 12px; white-space: nowrap; } .admin--btn-remove-file { padding: 4px 12px; background-color: transparent; color: var(--admin-danger-color); border: 1px solid var(--admin-danger-color); border-radius: 4px; font-size: 13px; cursor: pointer; transition: all 0.2s ease; white-space: nowrap; &:hover { background-color: var(--admin-danger-color); color: white; } } // Checkbox Group Styles .admin--checkbox-group { display: flex; gap: 20px; } .admin--checkbox-label { display: flex; align-items: center; gap: 8px; color: var(--admin-text-primary); font-size: 14px; cursor: pointer; input[type="checkbox"] { width: 18px; height: 18px; cursor: pointer; accent-color: var(--admin-accent-primary); } span { user-select: none; } &:hover { opacity: 0.8; } } // Admin Footer .admin--footer { margin-top: 64px; padding: 24px 0; border-top: 1px solid var(--admin-border-color); text-align: center; p { color: var(--admin-text-muted); font-size: 14px; margin: 0; } } // IMPORTANT: Force display admin header and footer .admin--header { display: flex !important; min-height: 64px !important; background: #1a1a1a !important; visibility: visible !important; } .admin--footer { display: block !important; min-height: 60px !important; background: #1a1a1a !important; visibility: visible !important; } // Alert Modal Styles .admin--modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.7); z-index: 9999; display: flex; align-items: center; justify-content: center; } .admin--alert-modal { background: #2d2d2d; padding: 0; border-radius: 8px; min-width: 400px; max-width: 500px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4); } .admin--alert-modal .admin--modal-header { padding: 20px; border-bottom: 1px solid #404040; display: flex; justify-content: space-between; align-items: center; h4 { margin: 0; font-size: 18px; font-weight: 600; color: #ffffff; } } .admin--alert-modal .admin--modal-close { background: none; border: none; font-size: 24px; cursor: pointer; color: #999; line-height: 1; transition: color 0.2s; &:hover { color: #fff; } } .admin--alert-modal .admin--modal-body { padding: 30px 20px; .admin--alert-content p { margin: 0; font-size: 15px; line-height: 1.6; color: #e0e0e0; } } .admin--alert-modal .admin--modal-footer { padding: 15px 20px; border-top: 1px solid #404040; display: flex; gap: 10px; justify-content: flex-end; } .admin--alert-modal .admin--btn-secondary { padding: 8px 20px; border: 1px solid #404040; background: #252525; color: #e0e0e0; border-radius: 4px; cursor: pointer; font-size: 14px; transition: all 0.2s; &:hover { background: #2d2d2d; } } .admin--alert-modal .admin--btn-primary { padding: 8px 20px; border: none; background: var(--admin-accent-primary); color: white; border-radius: 4px; cursor: pointer; font-size: 14px; transition: all 0.2s; &:hover { background: var(--admin-accent-hover); } } // Modal Animation @keyframes slideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .modal-fade-enter-active { transition: opacity 0.3s ease; .admin--alert-modal { animation: slideUp 0.3s ease-out; } } .modal-fade-leave-active { transition: opacity 0.2s ease; } .modal-fade-enter-from, .modal-fade-leave-to { opacity: 0; }