diff --git a/TaxBaik.Admin/wwwroot/css/admin.css b/TaxBaik.Admin/wwwroot/css/admin.css index a6504d1..a9de117 100644 --- a/TaxBaik.Admin/wwwroot/css/admin.css +++ b/TaxBaik.Admin/wwwroot/css/admin.css @@ -1,29 +1,54 @@ -/* TaxBaik Admin - 기본 스타일 */ +/* TaxBaik Admin — 워밍-프로페셔널 디자인 */ :root { - --color-primary: #1B4F8A; - --color-primary-dark: #133970; - --color-accent: #C9A227; - --color-cta: #E05A2B; - --color-bg: #F7F9FC; - --color-text: #1A1A2E; - --color-text-muted: #5A6A7A; + --color-primary: #C89D6E; /* 따뜻한 골드/브론즈 */ + --color-primary-dark: #A67C52; /* 진한 브론즈 */ + --color-secondary: #2E5C4E; /* 따뜻한 초록 */ + --color-secondary-dark: #1F3A30; /* 어두운 초록 */ + --color-accent: #E8E4D8; /* 따뜻한 베이지 */ + --color-bg: #F9F7F3; /* 따뜻한 화이트 */ + --color-text: #3D2817; /* 따뜻한 갈색 */ + --color-text-light: #6B5D4F; /* 밝은 갈색 */ + --color-border: #D9D3C4; /* 경계선 */ } body { - font-family: 'Noto Sans KR', sans-serif; + font-family: 'Noto Sans KR', 'Apple SD Gothic Neo', sans-serif; color: var(--color-text); background-color: var(--color-bg); + -webkit-font-smoothing: antialiased; } h1, h2, h3, h4, h5, h6 { - font-family: 'Noto Sans KR', sans-serif; + font-family: 'Noto Sans KR', 'Apple SD Gothic Neo', sans-serif; color: var(--color-text); + font-weight: 700; } -/* MudBlazor 커스터마이징 */ +p { + color: var(--color-text-light); + line-height: 1.6; +} + +a { + color: var(--color-primary); + text-decoration: none; + transition: color 150ms cubic-bezier(0.4, 0, 0.2, 1); +} + +a:hover { + color: var(--color-secondary); +} + +/* ===== MudBlazor 커스터마이징 ===== */ + .mud-appbar { - background-color: var(--color-primary) !important; + background: linear-gradient(90deg, var(--color-secondary) 0%, #1F3A30 100%) !important; + box-shadow: 0 2px 8px rgba(61, 40, 23, 0.12) !important; +} + +.mud-appbar-content { + padding: 1rem; } .mud-appbar .mud-button-root { @@ -31,11 +56,13 @@ h1, h2, h3, h4, h5, h6 { } .mud-button-contained-primary { - background-color: var(--color-primary) !important; + background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%) !important; + box-shadow: 0 2px 8px rgba(61, 40, 23, 0.12) !important; } .mud-button-contained-primary:hover { - background-color: var(--color-primary-dark) !important; + background: linear-gradient(135deg, var(--color-primary-dark) 0%, #8B5E3C 100%) !important; + box-shadow: 0 4px 12px rgba(61, 40, 23, 0.2) !important; } .mud-button-outlined-primary { @@ -43,23 +70,194 @@ h1, h2, h3, h4, h5, h6 { border-color: var(--color-primary) !important; } +.mud-button-outlined-primary:hover { + background-color: rgba(200, 157, 110, 0.1) !important; +} + +.mud-button-text-primary { + color: var(--color-primary) !important; +} + +.mud-button-text-primary:hover { + background-color: rgba(200, 157, 110, 0.1) !important; +} + .mud-card { - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); + background-color: white !important; + box-shadow: 0 2px 8px rgba(61, 40, 23, 0.08) !important; + border: 1px solid var(--color-border) !important; + border-radius: 12px !important; } -/* 테이블 스타일 */ +.mud-card:hover { + box-shadow: 0 6px 16px rgba(61, 40, 23, 0.12) !important; +} + +.mud-card-header { + background-color: var(--color-accent) !important; + border-bottom: 1px solid var(--color-border) !important; + padding: 1.5rem !important; +} + +.mud-card-content { + padding: 1.5rem !important; +} + +/* ===== 테이블 스타일 ===== */ + .mud-table { - font-family: 'Noto Sans KR', sans-serif; + font-family: 'Noto Sans KR', 'Apple SD Gothic Neo', sans-serif; } -/* 폼 요소 */ -.mud-input-control .mud-input-slot { - font-family: 'Noto Sans KR', sans-serif; +.mud-table-cell { + border-color: var(--color-border) !important; } -/* 반응형 */ +.mud-table-head { + background-color: var(--color-accent) !important; +} + +.mud-table-head .mud-table-cell { + color: var(--color-text) !important; + font-weight: 600; +} + +.mud-table-body .mud-table-row:hover { + background-color: rgba(200, 157, 110, 0.05) !important; +} + +/* ===== 폼 요소 ===== */ + +.mud-input-slot { + font-family: 'Noto Sans KR', 'Apple SD Gothic Neo', sans-serif; +} + +.mud-input-outlined { + border-color: var(--color-border) !important; +} + +.mud-input-outlined:hover { + border-color: var(--color-primary) !important; +} + +.mud-input-outlined .mud-input-slot { + color: var(--color-text) !important; +} + +.mud-input-outlined .mud-input-slot input, +.mud-input-outlined .mud-input-slot textarea { + color: var(--color-text) !important; +} + +.mud-input-outlined .mud-input-slot input::placeholder { + color: var(--color-text-light) !important; + opacity: 0.7; +} + +.mud-input-outlined.mud-focused { + border-color: var(--color-primary) !important; +} + +/* ===== 토글 & 체크박스 ===== */ + +.mud-switch-base { + color: var(--color-primary) !important; +} + +.mud-checkbox-base { + color: var(--color-primary) !important; +} + +/* ===== 드롭다운 & 셀렉트 ===== */ + +.mud-select-input { + border-color: var(--color-border) !important; + color: var(--color-text) !important; +} + +.mud-select-popper-content { + background-color: white !important; + box-shadow: 0 4px 12px rgba(61, 40, 23, 0.15) !important; + border-radius: 8px !important; +} + +.mud-list-item:hover { + background-color: rgba(200, 157, 110, 0.1) !important; +} + +/* ===== 다이얼로그 ===== */ + +.mud-dialog { + border-radius: 12px !important; +} + +.mud-dialog-container { + box-shadow: 0 10px 40px rgba(61, 40, 23, 0.2) !important; +} + +.mud-dialog-title { + color: var(--color-text) !important; + font-weight: 700; +} + +/* ===== 배지 & 칩 ===== */ + +.mud-chip-set { + gap: 0.5rem; +} + +.mud-chip { + background-color: rgba(200, 157, 110, 0.1) !important; + color: var(--color-primary) !important; + font-weight: 500; +} + +.mud-chip-click:hover { + background-color: rgba(200, 157, 110, 0.2) !important; +} + +/* ===== 페이지네이션 & 프로그레스 ===== */ + +.mud-pagination-item.selected { + background-color: var(--color-primary) !important; + color: white !important; +} + +.mud-pagination-item:hover:not(.selected) { + background-color: var(--color-accent) !important; +} + +.mud-progress-linear { + background-color: var(--color-accent) !important; +} + +.mud-progress-linear::before { + background: linear-gradient(90deg, var(--color-primary) 0%, var(--color-secondary) 100%) !important; +} + +/* ===== 텍스트 필드 라벨 ===== */ + +.mud-field-label { + color: var(--color-text) !important; + font-weight: 500; +} + +/* ===== 반응형 ===== */ + @media (max-width: 768px) { body { font-size: 14px; } + + .mud-appbar-content { + padding: 0.75rem; + } + + .mud-card-content { + padding: 1rem !important; + } + + .mud-table { + font-size: 0.9rem; + } } diff --git a/TaxBaik.Web/Pages/_Layout.cshtml b/TaxBaik.Web/Pages/_Layout.cshtml index adb7e61..51ef16a 100644 --- a/TaxBaik.Web/Pages/_Layout.cshtml +++ b/TaxBaik.Web/Pages/_Layout.cshtml @@ -10,7 +10,7 @@ - + diff --git a/TaxBaik.Web/wwwroot/css/site.css b/TaxBaik.Web/wwwroot/css/site.css index 67cc90d..300b4a2 100644 --- a/TaxBaik.Web/wwwroot/css/site.css +++ b/TaxBaik.Web/wwwroot/css/site.css @@ -1,14 +1,18 @@ +/* TaxBaik — 워밍-프로페셔널 디자인 시스템 */ + :root { - --color-primary: #1B4F8A; - --color-primary-dark: #133970; - --color-primary-light: #2E5FA3; - --color-accent: #C9A227; - --color-cta: #E05A2B; - --color-cta-dark: #D45A1F; - --color-bg: #F7F9FC; - --color-text: #1A1A2E; - --color-text-muted: #5A6A7A; - --color-border: #D8E2EE; + /* 워밍-프로페셔널 팔레트 */ + --color-primary: #C89D6E; /* 따뜻한 골드/브론즈 */ + --color-primary-dark: #A67C52; /* 진한 브론즈 */ + --color-secondary: #2E5C4E; /* 따뜻한 초록 */ + --color-secondary-dark: #1F3A30; /* 어두운 초록 */ + --color-accent: #E8E4D8; /* 따뜻한 베이지 */ + --color-accent-dark: #D9D3C4; /* 더 진한 베이지 */ + --color-bg: #F9F7F3; /* 따뜻한 화이트 */ + --color-bg-alt: #EFE9DD; /* 대체 배경 */ + --color-text: #3D2817; /* 따뜻한 갈색 */ + --color-text-light: #6B5D4F; /* 밝은 갈색 */ + --color-border: #D9D3C4; /* 경계선 */ --color-success: #2E7D32; --color-warning: #F57C00; --color-danger: #C62828; @@ -19,10 +23,17 @@ --spacing-lg: 1.5rem; --spacing-xl: 2rem; --spacing-2xl: 3rem; + --spacing-3xl: 4rem; --radius-sm: 4px; --radius-md: 8px; --radius-lg: 12px; + --radius-xl: 16px; + + --shadow-sm: 0 1px 3px rgba(61, 40, 23, 0.08); + --shadow-md: 0 4px 12px rgba(61, 40, 23, 0.12); + --shadow-lg: 0 8px 24px rgba(61, 40, 23, 0.15); + --shadow-xl: 0 12px 48px rgba(61, 40, 23, 0.18); --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1); --transition-normal: 300ms cubic-bezier(0.4, 0, 0.2, 1); @@ -30,6 +41,8 @@ * { font-family: 'Noto Sans KR', 'Apple SD Gothic Neo', sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } html { @@ -39,20 +52,58 @@ html { body { color: var(--color-text); - background-color: #fff; - line-height: 1.75; - font-size: clamp(0.875rem, 2.5vw, 1rem); + background-color: var(--color-bg); + line-height: 1.8; + font-size: clamp(0.9rem, 2.5vw, 1rem); + letter-spacing: 0.3px; } -/* 버튼 스타일 */ +/* ===== 타이포그래피 ===== */ +h1, h2, h3, h4, h5, h6 { + font-weight: 700; + line-height: 1.3; + color: var(--color-text); + margin-bottom: var(--spacing-lg); + letter-spacing: -0.5px; +} + +h1 { font-size: clamp(2rem, 6vw, 3.5rem); font-weight: 800; } +h2 { font-size: clamp(1.5rem, 5vw, 2.5rem); } +h3 { font-size: clamp(1.25rem, 4vw, 2rem); } +h4 { font-size: 1.35rem; } +h5 { font-size: 1.15rem; } +h6 { font-size: 1rem; } + +p { + margin-bottom: var(--spacing-md); + color: var(--color-text-light); + line-height: 1.85; +} + +a { + color: var(--color-primary); + text-decoration: none; + transition: all var(--transition-fast); +} + +a:hover { + color: var(--color-secondary); + text-decoration: none; +} + +/* ===== 버튼 ===== */ .btn { border-radius: var(--radius-md); - font-weight: 500; - transition: all var(--transition-fast); + font-weight: 600; + transition: all var(--transition-normal); cursor: pointer; border: none; - padding: 0.625rem 1.5rem; + padding: 0.75rem 2rem; font-size: 1rem; + letter-spacing: 0.3px; + display: inline-block; + text-align: center; + text-decoration: none; } .btn:active { @@ -60,32 +111,32 @@ body { } .btn-primary { - background-color: var(--color-primary); - border-color: var(--color-primary); + background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%); color: white; + box-shadow: var(--shadow-md); } .btn-primary:hover { - background-color: var(--color-primary-dark); - border-color: var(--color-primary-dark); - box-shadow: 0 4px 12px rgba(27, 79, 138, 0.25); + background: linear-gradient(135deg, var(--color-primary-dark) 0%, #8B5E3C 100%); + box-shadow: var(--shadow-lg); + transform: translateY(-2px); } .btn-warning { - background-color: var(--color-cta); - border-color: var(--color-cta); + background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-secondary-dark) 100%); color: white; + box-shadow: var(--shadow-md); } .btn-warning:hover { - background-color: var(--color-cta-dark); - border-color: var(--color-cta-dark); - box-shadow: 0 4px 12px rgba(224, 90, 43, 0.25); + background: linear-gradient(135deg, var(--color-secondary-dark) 0%, #0D1E1A 100%); + box-shadow: var(--shadow-lg); + transform: translateY(-2px); } .btn-outline-primary { color: var(--color-primary); - border-color: var(--color-primary); + border: 2px solid var(--color-primary); background: transparent; } @@ -94,63 +145,30 @@ body { color: white; } -/* 배경 및 텍스트 */ -.bg-primary { - background-color: var(--color-primary) !important; +.btn-lg { + padding: 1rem 2.5rem; + font-size: 1.1rem; } -.bg-primary-light { - background-color: #E8F1F8 !important; +.btn-sm { + padding: 0.5rem 1.25rem; + font-size: 0.95rem; } -.text-primary { - color: var(--color-primary) !important; -} - -.text-muted { - color: var(--color-text-muted) !important; -} - -/* 히어로 섹션 */ -.hero-section { - padding: clamp(2rem, 15vh, 5rem) 0; - background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%); - color: white; - position: relative; +/* ===== 카드 ===== */ +.card { + border: 1px solid var(--color-border); + border-radius: var(--radius-xl); + transition: all var(--transition-normal); + box-shadow: var(--shadow-sm); + background: white; overflow: hidden; } -.hero-section::before { - content: ''; - position: absolute; - top: 0; - right: 0; - width: 500px; - height: 500px; - background: rgba(255, 255, 255, 0.05); - border-radius: 50%; - transform: translate(30%, -30%); -} - -.hero-section h1 { - font-size: clamp(1.5rem, 5vw, 3rem); - font-weight: 700; - margin-bottom: var(--spacing-lg); - position: relative; - z-index: 1; -} - -/* 카드 스타일 */ -.card { - border: 1px solid var(--color-border); - border-radius: var(--radius-lg); - transition: all var(--transition-normal); - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); -} - .card:hover { - transform: translateY(-4px); - box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); + transform: translateY(-6px); + box-shadow: var(--shadow-lg); + border-color: var(--color-primary); } .card-body { @@ -158,294 +176,293 @@ body { } .card-title { - font-weight: 600; - color: var(--color-primary); - margin-bottom: var(--spacing-md); -} - -/* 네비게이션 */ -.navbar-brand { - font-size: 1.25rem; font-weight: 700; - color: var(--color-primary) !important; + color: var(--color-text); + margin-bottom: var(--spacing-md); + font-size: 1.25rem; } -.navbar { - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); +.card-text { + color: var(--color-text-light); + line-height: 1.8; +} + +/* ===== 히어로 섹션 ===== */ +.hero-section { + padding: clamp(3rem, 20vh, 6rem) 0; + background: linear-gradient(135deg, var(--color-secondary) 0%, #1F3A30 100%); + color: white; + position: relative; + overflow: hidden; + border-bottom: 4px solid var(--color-primary); +} + +.hero-section::before { + content: ''; + position: absolute; + top: -50%; + right: -10%; + width: 600px; + height: 600px; + background: rgba(200, 157, 110, 0.1); + border-radius: 50%; +} + +.hero-section::after { + content: ''; + position: absolute; + bottom: -30%; + left: -10%; + width: 500px; + height: 500px; + background: rgba(232, 228, 216, 0.05); + border-radius: 50%; +} + +.hero-section h1 { + font-size: clamp(2rem, 8vw, 3.5rem); + font-weight: 800; + margin-bottom: var(--spacing-lg); + position: relative; + z-index: 1; + color: white; +} + +.hero-section p { + font-size: 1.2rem; + margin-bottom: var(--spacing-xl); + position: relative; + z-index: 1; + color: rgba(255, 255, 255, 0.95); + line-height: 1.8; +} + +/* ===== 섹션 ===== */ +.bg-light { + background-color: var(--color-accent) !important; +} + +.bg-primary { + background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%); +} + +.section-title { + font-size: clamp(1.75rem, 5vw, 2.75rem); + font-weight: 800; + color: var(--color-text); + margin-bottom: var(--spacing-xl); + text-align: center; + position: relative; + display: inline-block; + left: 50%; + transform: translateX(-50%); + width: 100%; +} + +.section-title::after { + content: ''; + display: block; + width: 60px; + height: 4px; + background: linear-gradient(90deg, var(--color-primary) 0%, var(--color-secondary) 100%); + margin: var(--spacing-md) auto 0; + border-radius: 2px; +} + +/* ===== 휴스 스트립 (신뢰도) ===== */ +.trust-strip { + background: linear-gradient(135deg, var(--color-bg-alt) 0%, var(--color-accent) 100%); + padding: var(--spacing-3xl) 0; + border-top: 1px solid var(--color-border); + border-bottom: 1px solid var(--color-border); +} + +.trust-item { + text-align: center; +} + +.trust-icon { + font-size: 3.5rem; + margin-bottom: var(--spacing-md); + display: block; +} + +.trust-item h3 { + color: var(--color-text); + margin-bottom: var(--spacing-sm); + font-size: 1.35rem; +} + +.trust-item p { + color: var(--color-text-light); + font-size: 0.95rem; +} + +/* ===== 배지 ===== */ +.badge { + border-radius: var(--radius-md); + padding: 0.35rem 0.75rem; + font-size: 0.85rem; + font-weight: 600; + display: inline-block; + letter-spacing: 0.2px; +} + +.bg-primary-badge { + background-color: rgba(200, 157, 110, 0.15); + color: var(--color-primary); +} + +/* ===== 폼 ===== */ +.form-control, .form-select { + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + padding: 0.75rem 1rem; + font-size: 1rem; + transition: all var(--transition-fast); background-color: white; - padding: var(--spacing-md) 0; + color: var(--color-text); } -.navbar.sticky { - position: sticky; - top: 0; - z-index: 999; +.form-control:focus, .form-select:focus { + border-color: var(--color-primary); + box-shadow: 0 0 0 3px rgba(200, 157, 110, 0.1); + outline: none; } -.nav-link { - color: var(--color-text) !important; - font-weight: 500; - transition: color var(--transition-fast); - margin: 0 var(--spacing-sm); -} - -.nav-link:hover { - color: var(--color-primary) !important; -} - -.nav-link.active { - color: var(--color-cta) !important; -} - -/* 모바일 CTA 바 */ +/* ===== 모바일 CTA 바 ===== */ .mobile-cta-bar { position: fixed; bottom: 0; left: 0; right: 0; background: white; - border-top: 2px solid var(--color-border); + border-top: 2px solid var(--color-primary); padding: var(--spacing-md); z-index: 1000; - box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.05); + box-shadow: 0 -4px 12px rgba(61, 40, 23, 0.1); } .btn-kakao-mobile { display: block; width: 100%; - padding: var(--spacing-md); - background: #FFE812; + padding: 0.85rem; + background: linear-gradient(135deg, #FFE812 0%, #FDD835 100%); color: #000; text-decoration: none; border-radius: var(--radius-md); - font-weight: 600; + font-weight: 700; text-align: center; border: none; cursor: pointer; font-size: 0.95rem; - transition: background var(--transition-fast); + transition: all var(--transition-fast); + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); + letter-spacing: 0.3px; } .btn-kakao-mobile:hover { - background: #FDD835; + background: linear-gradient(135deg, #FDD835 0%, #FBC02D 100%); text-decoration: none; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); } -.btn-kakao-mobile:active { - transform: scale(0.98); -} - -/* 페이지 스페이싱 */ body.with-mobile-cta { padding-bottom: 70px; } -/* 섹션 */ -.section { - padding: var(--spacing-2xl) 0; +/* ===== 네비게이션 ===== */ +.navbar { + background-color: white; + box-shadow: var(--shadow-sm); + padding: 1rem 0; } -.section-title { - font-size: clamp(1.5rem, 4vw, 2.5rem); - font-weight: 700; - color: var(--color-primary); - margin-bottom: var(--spacing-xl); - text-align: center; +.navbar-brand { + font-weight: 800; + color: var(--color-primary) !important; + font-size: 1.35rem; + letter-spacing: -0.5px; } -/* 배지 */ -.badge { - border-radius: var(--radius-sm); - padding: var(--spacing-xs) var(--spacing-sm); - font-size: 0.875rem; - font-weight: 500; +.nav-link { + color: var(--color-text) !important; + font-weight: 600; + transition: all var(--transition-fast); + margin: 0 var(--spacing-sm); + letter-spacing: 0.2px; } -.badge-success { - background-color: #E8F5E9; - color: var(--color-success); +.nav-link:hover { + color: var(--color-primary) !important; } -/* 폼 요소 */ -.form-control, .form-select { - border: 1px solid var(--color-border); - border-radius: var(--radius-md); - padding: 0.625rem 1rem; - font-size: 1rem; - transition: border-color var(--transition-fast); -} - -.form-control:focus, .form-select:focus { - border-color: var(--color-primary); - box-shadow: 0 0 0 3px rgba(27, 79, 138, 0.1); -} - -/* 이미지 최적화 */ -img { - max-width: 100%; - height: auto; - display: block; -} - -img[loading="lazy"] { - background-color: #f0f0f0; -} - -/* 타이포그래피 */ -h1, h2, h3, h4, h5, h6 { - font-weight: 700; - line-height: 1.25; - color: var(--color-text); -} - -h1 { font-size: clamp(1.75rem, 5vw, 3rem); } -h2 { font-size: clamp(1.5rem, 4vw, 2.25rem); } -h3 { font-size: clamp(1.25rem, 3vw, 1.75rem); } -h4 { font-size: 1.25rem; } -h5 { font-size: 1.1rem; } -h6 { font-size: 1rem; } - -p { - margin-bottom: var(--spacing-md); -} - -a { - color: var(--color-primary); - text-decoration: none; - transition: color var(--transition-fast); -} - -a:hover { - color: var(--color-cta); - text-decoration: underline; -} - -/* 리스트 */ -.list-group-item { - border-color: var(--color-border); - padding: var(--spacing-md) var(--spacing-lg); -} - -/* 모달 */ -.modal-content { - border: 1px solid var(--color-border); - border-radius: var(--radius-lg); - box-shadow: 0 10px 40px rgba(0, 0, 0, 0.16); -} - -.modal-header { - border-bottom: 1px solid var(--color-border); - padding: var(--spacing-xl); -} - -.modal-footer { - border-top: 1px solid var(--color-border); - padding: var(--spacing-xl); -} - -/* 탭 */ -.nav-tabs .nav-link { - color: var(--color-text-muted); - border-bottom: 3px solid transparent; - margin-bottom: -3px; - padding: var(--spacing-md) var(--spacing-lg); -} - -.nav-tabs .nav-link:hover { - color: var(--color-primary); - border-color: transparent; -} - -.nav-tabs .nav-link.active { - color: var(--color-primary); - border-bottom-color: var(--color-primary); - background-color: transparent; -} - -/* 페이지네이션 */ -.pagination .page-link { - border-color: var(--color-border); - color: var(--color-primary); -} - -.pagination .page-link:hover { - background-color: var(--color-bg); - border-color: var(--color-border); -} - -.pagination .page-item.active .page-link { - background-color: var(--color-primary); - border-color: var(--color-primary); -} - -/* 반응형 — 태블릿 이상 */ -@media (min-width: 768px) { - .container { - max-width: 960px; - } -} - -/* 반응형 — 모바일 (375px ~) */ +/* ===== 반응형 ===== */ @media (max-width: 767.98px) { + h1 { font-size: 1.75rem; } + h2 { font-size: 1.35rem; } + .hero-section { - padding-top: 2rem; - padding-bottom: 2rem; - } - - .section { - padding: 1.5rem 0; - } - - .card-body { - padding: 1rem; - } - - .modal { - padding: 0 !important; - } - - .modal-dialog { - margin: 0.5rem; - } - - .btn { - padding: 0.5rem 1rem; - font-size: 0.95rem; - } - - .nav-link { - padding: 0.5rem 0.75rem !important; - margin: 0 !important; + padding: 2rem 0; } .section-title { font-size: 1.5rem; } -} - -/* 초소형 화면 (max 375px) */ -@media (max-width: 375px) { - html { - font-size: 14px; - } - - .hero-section h1 { - font-size: 1.25rem; - } .card { margin-bottom: 1rem; } - .container-fluid { - padding-left: 0.75rem; - padding-right: 0.75rem; + .btn { + padding: 0.65rem 1.5rem; + font-size: 0.95rem; + } + + .trust-icon { + font-size: 2.5rem; + } + + .container { + padding: 0 var(--spacing-md); } } -/* 도움말 텍스트 */ -.form-text { - color: var(--color-text-muted); - font-size: 0.875rem; - margin-top: 0.25rem; +@media (max-width: 375px) { + html { font-size: 15px; } + + h1 { font-size: 1.5rem; } + + .hero-section h1 { + font-size: 1.5rem; + margin-bottom: var(--spacing-md); + } + + .hero-section p { + font-size: 1rem; + } + + .card-body { + padding: 1rem; + } +} + +/* ===== 일반 유틸리티 ===== */ +.text-muted { + color: var(--color-text-light) !important; +} + +.border-light { + border-color: var(--color-border) !important; +} + +img { + max-width: 100%; + height: auto; + display: block; + border-radius: var(--radius-lg); +} + +.container { + max-width: 1200px; } diff --git a/Tmp/aa.jpg b/Tmp/aa.jpg new file mode 100644 index 0000000..ce45e38 Binary files /dev/null and b/Tmp/aa.jpg differ