/* ========================================= Voucher Mall Design System Theme: White base + Blue accent ========================================= */ :root { /* Colors */ --color-bg-base: #FFFFFF; --color-bg-section: #F7F8FA; /* Very light grey for separation */ --color-bg-tint: #EFF6FF; /* Blue tint for badges */ --color-text-primary: #111827; --color-text-secondary: #6B7280; --color-text-tertiary: #9CA3AF; --color-text-white: #FFFFFF; --color-border: #d5dff6; --color-accent-blue: #2563EB; --color-accent-blue-hover: #1D4ED8; --color-footer-bg: #0B1220; --color-footer-text: #E5E7EB; /* Semantic */ --color-danger: #EF4444; /* Spacing & Layout */ --container-width: 1280px; --header-height-desktop: 72px; --header-height-scroll: 56px; /* Radius */ --radius-card: 16px; --radius-pill: 9999px; --radius-sm: 8px; /* Shadows */ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* Transitions */ --transition-base: 200ms ease-out; } /* Base & Reset */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, Roboto, 'Helvetica Neue', 'Segoe UI', 'Apple SD Gothic Neo', 'Malgun Gothic', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', sans-serif; background-color: var(--color-bg-base); color: var(--color-text-primary); line-height: 1.5; -webkit-font-smoothing: antialiased; } a { text-decoration: none; color: inherit; transition: color var(--transition-base); } ul, li { list-style: none; } button { font-family: inherit; border: none; background: none; cursor: pointer; padding: 0; } img { max-width: 100%; display: block; } .logo{ display: flex; align-items: center; flex-shrink: 0; margin-right: 16px; } .logo-img{ height: 50px; width: auto; /* 비율 유지 */ display: block; } .thumb-badges{ position: absolute; left: 10px; top: 10px; display: flex; flex-wrap: wrap; gap: 6px; max-width: calc(100% - 20px); pointer-events: none; /* 이미지 클릭 방해 X */ } .pay-tag{ display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 8px; font-size: 11px; font-weight: 800; letter-spacing: .2px; backdrop-filter: blur(6px); border: 1px solid rgba(255,255,255,.7); box-shadow: 0 1px 2px rgba(0,0,0,.08); } .pay-tag--phone{ background: rgba(16,185,129,.18); /* green tint */ color: #047857; } .pay-tag--card{ background: rgba(37,99,235,.18); /* blue tint */ color: #1D4ED8; } .pay-tag--kbank{ background: rgba(139,92,246,.18); /* violet tint */ color: #6D28D9; } .pay-tag--sale{ background: rgba(245,158,11,.18); /* amber tint */ color: #B45309; } .product-img{ width: 250px; padding-top: 22px; object-fit: cover; display: block; } .product-img-s{ width: 220px; padding-top: 22px; object-fit: cover; display: block; } /* Header layout fix */ .site-header .container{ height: 100%; display: flex; align-items: center; /* 전체 세로 가운데 */ justify-content: space-between; gap: 16px; } .header-left{ display: flex; align-items: center; /* 로고+메뉴 세로 가운데 */ gap: 24px; min-width: 0; } .desktop-nav{ display: flex; align-items: center; /* 메뉴 텍스트 세로 가운데 */ gap: 22px; } .nav-link{ display: inline-flex; /* 텍스트도 박스로 잡아서 가운데 정렬 */ align-items: center; height: 40px; /* 메뉴 높이 통일 */ font-weight: 700; letter-spacing: 0.2px; } /* Exchange pill (더 자연스럽게) */ .nav-link--exchange{ height: 40px; padding: 0 14px; border-radius: 9999px; background: #EFF6FF; border: 1px solid #BFDBFE; color: #2563EB; } .nav-link--exchange:hover{ background: #2563EB; border-color: #2563EB; color: #fff; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0; } /* Typography */ h1, h2, h3, h4, h5, h6 { font-weight: 700; line-height: 1.2; } .text-h1 { font-size: 32px; line-height: 40px; } .text-h2 { margin: 0; font-size: 15px; /* 여기서 더 줄이고 싶으면 15px */ line-height: 22px; font-weight: 800; color: #111827; letter-spacing: -0.2px; } .text-h2::before{ content: none !important; } .text-body{ margin: 0; font-size: 14px; /* 원래 크기 */ line-height: 20px; color: #6B7280; white-space: normal; overflow: visible; text-overflow: clip; } .text-sm { font-size: 14px; } .text-xs { font-size: 12px; } /* Layout Utilities */ .container { max-width: var(--container-width); margin: 0 auto; padding: 0 24px; } .grid-cols-12 { display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px; } /* Flex Utilities */ .flex { display: flex; } .flex-col { flex-direction: column; } .items-center { align-items: center; } .justify-center { justify-content: center; } .justify-between { justify-content: space-between; } .gap-1 { gap: 4px; } .gap-2 { gap: 8px; } .gap-3 { gap: 12px; } .gap-4 { gap: 16px; } /* Components */ /* Buttons */ .btn { display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-pill); font-weight: 600; transition: all var(--transition-base); cursor: pointer; } .btn-primary { background-color: var(--color-accent-blue); color: white; padding: 12px 24px; } .btn-primary:hover { background-color: var(--color-accent-blue-hover); transform: translateY(-1px); box-shadow: var(--shadow-md); } .btn-ghost { color: var(--color-text-primary); padding: 8px 16px; } .btn-ghost:hover { color: var(--color-accent-blue); background-color: var(--color-bg-tint); } /* Header */ .site-header { position: sticky; top: 0; z-index: 50; background-color: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); border-bottom: 1px solid var(--color-border); height: var(--header-height-desktop); transition: height 0.3s ease; } .site-header.scrolled { height: var(--header-height-scroll); } .nav-link { font-size: 17px; font-weight: 600; color: var(--color-text-primary); } .nav-link:hover { color: var(--color-accent-blue); } .search-bar{ position: relative; flex: 0 1 300px; /* 기본 360, 필요하면 줄어듦 */ max-width: 300px; /* 상한 */ min-width: 220px; /* 너무 작아지지 않게 */ width: auto; } .search-input { width: 100%; height: 44px; padding: 0 48px 0 20px; border: 1px solid var(--color-border); border-radius: var(--radius-pill); background-color: #F3F4F6; font-size: 15px; transition: all 0.2s; } /*.search-input{ height: 40px; padding: 0 44px 0 16px; font-size: 14px; }*/ .search-input:focus { outline: none; border-color: var(--color-accent-blue); background-color: white; box-shadow: 0 0 0 2px var(--color-bg-tint); } .search-icon { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); color: var(--color-text-secondary); } /* Hero Carousel */ .hero-slider { position: relative; overflow: hidden; height: 400px; background-color: var(--color-bg-section); } .hero-track { display: flex; height: 100%; transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1); } .hero-slide { min-width: 100%; display: flex; align-items: center; justify-content: center; padding: 0 24px; } .hero-content { max-width: 1000px; width: 100%; text-align: left; } .hero-title { font-size: 40px; font-weight: 800; margin-bottom: 16px; color: var(--color-text-primary); } .hero-desc { font-size: 18px; color: var(--color-text-secondary); margin-bottom: 32px; } .dots-container { position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); display: flex; gap: 8px; } .dot { width: 10px; height: 10px; border-radius: 50%; background-color: rgba(0,0,0,0.2); cursor: pointer; transition: all 0.2s; } .dot.active { background-color: var(--color-accent-blue); transform: scale(1.2); } /* Quick Categories */ .category-chips { display: flex; gap: 12px; padding: 32px 0; overflow-x: auto; scrollbar-width: none; /* Firefox */ } .category-chips::-webkit-scrollbar { display: none; } .chip { display: flex; align-items: center; gap: 8px; padding: 8px 16px; border: 1px solid var(--color-border); border-radius: var(--radius-pill); white-space: nowrap; font-weight: 500; font-size: 15px; color: var(--color-text-primary); background-color: white; transition: all 0.2s; } .chip:hover { border-color: var(--color-accent-blue); background-color: var(--color-bg-tint); color: var(--color-accent-blue); } /* Product Card */ .product-card { border: 1px solid var(--color-border); border-radius: var(--radius-card); overflow: hidden; background: white; transition: all 0.2s ease-out; height: 100%; display: flex; flex-direction: column; position: relative; cursor: pointer; } .product-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: #BFDBFE; } .card-thumb { width: 100%; height: 190px; aspect-ratio: auto; background-color: #F3F4F6; display: flex; align-items: center; justify-content: center; overflow: hidden; } .card-thumb-s { width: 100%; height: 170px; aspect-ratio: auto; background-color: #F3F4F6; display: flex; align-items: center; justify-content: center; overflow: hidden; } .card-body { padding: 16px; flex: 1; display: flex; flex-direction: column; } .card-title { font-size: 16px; font-weight: 600; margin-bottom: 8px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: var(--color-text-primary); height: 20px; /* Fixed for 2 lines */ } .card-price-area { margin-top: auto; } .price-row{ display:flex; align-items: center; justify-content: space-between; /* 좌/우 분리 */ gap: 10px; } .discount{ display:inline-flex; align-items:center; height: 26px; padding: 0 10px; border-radius: 9999px; background: #EFF6FF; /* 연한 블루 */ border: 1px solid #BFDBFE; color: var(--color-accent-blue); font-weight: 800; font-size: 13px; letter-spacing: -0.2px; flex: 0 0 auto; } .price{ font-size: 18px; font-weight: 800; line-height: 1; color: #111827; white-space: nowrap; } .original-price{ margin-left: auto; /* ✅ 여기서 오른쪽으로 밀어줌 */ text-decoration: line-through; color: var(--color-text-tertiary); font-size: 13px; line-height: 1; white-space: nowrap; } .original-price + .price{ margin-left: 10px; } .payment-badge{ display: inline; padding: 0; border: 0; background: transparent; font-size: 11px; font-weight: 700; letter-spacing: .2px; color: #94A3B8; /* 아주 옅게 */ text-transform: uppercase; } .payment-badge + .payment-badge::before{ content: "·"; margin: 0 6px; color: #CBD5E1; font-weight: 900; } .payment-badge:last-child{ color: #2563EB; /* 블루 포인트 */ } .card-price-area .payment-badge:first-child{ display: inline-block; margin-top: 8px; /* 메타라인은 아래로 내려오게 */ } /* Sections */ .section{ padding: 25px 0; /* 더 타이트 */ } .section + .section{ padding-top: 16px; /* 섹션 사이 과한 간격 제거 */ } .section-header{ margin-bottom: 10px; } .section-title{ display: flex !important; align-items: center !important; gap: 12px !important; flex-wrap: nowrap !important; min-width: 0 !important; } .section-title .text-h2{ margin: 0 !important; font-size: 22px !important; line-height: 22px !important; font-weight: 800 !important; color: #111827 !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: clip !important; flex: 0 0 auto !important; } .section-title .text-h2::before{ content: none !important; } .section-title .text-body{ margin: 0 !important; font-size: 14px !important; line-height: 20px !important; color: #6B7280 !important; min-width: 0 !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: clip !important; flex: 1 1 auto !important; } .section-title p { color: var(--color-text-secondary); } /* Snap Carousel (Monthly Deals) */ .snap-carousel{ display:flex; gap:16px; overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling: touch; padding-bottom: 8px; padding-top: 8px; } .snap-carousel > *{ scroll-snap-align: start; /* 원치 않으면 삭제 */ flex: 0 0 auto; } .snap-carousel::-webkit-scrollbar{ height: 8px; } .snap-carousel::-webkit-scrollbar-thumb{ background: rgba(0,0,0,.15); border-radius: 999px; } .snap-item{ flex: 0 0 280px; } #popular .snap-item{ flex-basis: 200px; } .snap-carousel{ scrollbar-width: thin; /* Firefox */ } .snap-carousel::-webkit-scrollbar{ height: 8px; } .snap-carousel::-webkit-scrollbar-thumb{ background: rgba(0,0,0,.15); border-radius: 999px; } .snap-carousel::-webkit-scrollbar-track{ background: transparent; } /* Filter Tabs */ .filter-tabs { display: flex; gap: 8px; justify-content: center; margin-bottom: 32px; } .tab-btn { padding: 10px 20px; border: 1px solid var(--color-border); border-radius: var(--radius-pill); background: white; color: var(--color-text-secondary); font-weight: 500; transition: all 0.18s; } .tab-btn.active { background-color: var(--color-accent-blue); color: white; border-color: var(--color-accent-blue); box-shadow: 0 2px 4px rgba(37, 99, 235, 0.2); } .tab-btn:hover:not(.active) { background-color: #F9FAFB; border-color: #D1D5DB; } /* Footer */ .site-footer { background-color: var(--color-footer-bg); color: var(--color-footer-text); padding: 60px 0 40px; margin-top: 80px; } .footer-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; } .footer-link { display: block; margin-bottom: 12px; color: #9CA3AF; } .footer-link:hover { color: white; } .auth-buttons{ white-space: nowrap; flex: 0 0 auto; } .nav-link--exchange{ padding: 8px 12px; border-radius: 9999px; background: var(--color-bg-tint); border: 1px solid #BFDBFE; color: var(--color-accent-blue); font-weight: 700; } .nav-link--exchange:hover{ background: var(--color-accent-blue); border-color: var(--color-accent-blue); color: #fff; } /* Hashtag chips */ .tag-chips{ display:flex; flex-wrap:wrap; gap:10px; margin-top: 8px; margin-bottom: 12px; } .tag-chip{ display:inline-flex; align-items:center; height:36px; padding:0 14px; border-radius:9999px; border:1px solid #E5E7EB; background:#FFFFFF; color:#111827; font-weight:700; font-size:13px; letter-spacing:0.2px; text-decoration:none; transition: transform .18s ease, background-color .18s ease, border-color .18s ease, color .18s ease; } .tag-chip:hover{ transform: translateY(-1px); background:#EFF6FF; border-color:#93C5FD; color:#2563EB; } /* 선택적으로 상위 4개만 컬러 포인트 */ .tag-blue{ background:#EFF6FF; border-color:#93C5FD; color:#1D4ED8; } .tag-violet{ background:#F5F3FF; border-color:#DDD6FE; color:#6D28D9; } .tag-green{ background:#ECFDF5; border-color:#A7F3D0; color:#047857; } .tag-sky{ background:#F0F9FF; border-color:#BAE6FD; color:#0369A1; } @media (max-width: 480px) { .logo-img{ height: 34px; /* 모바일에선 낮춰서 공간 확보 */ } .logo{ margin-right: 8px; /* 여백 줄이기 */ } /* ✅ 검색폼 거의 풀폭 */ .search-bar{ margin: 0 !important; /* 양쪽 여백 제거 */ flex: 1 1 auto; max-width: none; min-width: 0; } .search-bar form{ width: 100%; } .search-input{ width: 100%; padding-left: 14px; padding-right: 44px; } .tag-chips{ gap:8px; margin-right: -12px; /* 컨테이너 패딩 보정 원하면 */ padding-right: 12px; } .tag-chip{ height:34px; padding:0 12px; font-size:12.5px; } .section-title .text-h2{ font-size: 15px !important; } .section-title .text-body{ font-size: 13px !important; } .text-body{ display: none; } } /* Mobile Breakpoint */ @media (max-width: 768px) { :root { --header-height-desktop: 60px; } .grid-cols-12 { grid-template-columns: repeat(4, 1fr); gap: 16px; } .hero-title { font-size: 28px; } /* .search-bar { display: none; !* Handle mobile search differently *! }*/ .footer-grid { grid-template-columns: 1fr; gap: 32px; } .category-chips, .snap-carousel { margin-right: -24px; padding-right: 24px; } } /* ===== Footer: modern & clean (light) ===== */ .site-footer{ background:#F8FAFC; border-top: 1px solid #E5E7EB; padding: 44px 0 28px; margin-top: 48px; color:#0F172A; } .footer-top{ display:grid; grid-template-columns: 1.2fr 0.8fr 1fr 1fr; gap: 28px; align-items:start; } .footer-title{ font-size: 13px; font-weight: 800; margin-bottom: 12px; color:#0F172A; } .footer-brand-logo{ display:inline-flex; align-items:center; } .footer-logo-img{ height: 50px; width:auto; display:block; } .footer-desc{ margin-top: 10px; font-size: 13px; line-height: 1.6; color:#64748B; } .footer-copy{ margin-top: 14px; font-size: 12px; color:#94A3B8; } .footer-link-list{ display:flex; flex-direction:column; gap: 10px; } .footer-link{ color:#475569; font-size: 13px; } .footer-link:hover{ color:#2563EB; } .footer-link-strong{ font-weight: 800; color:#111827; } /* contact KV */ .footer-kv{ display:flex; flex-direction:column; gap: 10px; } .footer-kv-row{ display:grid; grid-template-columns: 72px 1fr; gap: 10px; font-size: 13px; color:#475569; } .footer-k{ color:#94A3B8; } .footer-v{ color:#334155; } /* payment */ .footer-payment-col .footer-payment{ display:flex; flex-direction:column; gap: 8px; } .footer-payment--mt{ margin-top: 14px; } .footer-pay-img{ width:auto; max-width: 100%; height:auto; display:block; } .footer-pay-caption{ font-size: 12px; color:#64748B; } /* divider */ .footer-divider{ height:1px; background:#E5E7EB; margin: 24px 0 16px; } /* bottom details */ .footer-details{ background:#FFFFFF; border: 1px solid #E5E7EB; border-radius: 14px; padding: 12px 14px; } .footer-summary{ cursor:pointer; font-size: 13px; font-weight: 800; color:#111827; display:flex; align-items:center; justify-content:space-between; gap: 12px; list-style:none; } .footer-summary::-webkit-details-marker{ display:none; } .footer-summary-hint{ font-size: 12px; font-weight: 700; color:#2563EB; } .footer-details[open] .footer-summary-hint{ color:#64748B; } .footer-info{ margin-top: 12px; display:grid; gap: 8px; } .footer-info-row{ display:grid; grid-template-columns: 130px 1fr; gap: 12px; font-size: 12.5px; color:#475569; } .footer-info-row span{ color:#94A3B8; } .footer-info-row b{ color:#334155; font-weight:700; } /* responsive */ @media (max-width: 1024px){ .footer-top{ grid-template-columns: 1fr 1fr; } } @media (max-width: 560px){ .footer-top{ grid-template-columns: 1fr; gap: 20px; } .footer-info-row{ grid-template-columns: 1fr; gap: 4px; } } /* ===== Support strip (refined) ===== */ .section--support{ padding: 10px 0 8px; } .support-grid{ display:grid; grid-template-columns: 1.45fr 1fr; gap: 12px; align-items: stretch; } /* Notice panel */ .notice-panel{ background:#FFFFFF; border: 1px solid #E5E7EB; border-radius: 16px; padding: 12px 14px; /* ✅ 여백 축소 */ box-shadow: 0 1px 2px rgba(15,23,42,.04); } .notice-head{ display:flex; align-items:center; justify-content:space-between; gap: 10px; margin-bottom: 6px; /* ✅ 타이트 */ } .notice-title{ font-size: 13px; font-weight: 900; color:#0F172A; letter-spacing: -0.2px; margin:0; } .notice-more{ font-size: 12px; font-weight: 900; color:#2563EB; padding: 6px 8px; border-radius: 10px; } .notice-more:hover{ background:#EFF6FF; } .notice-list{ display:grid; } /* ✅ 공지 사이 얇은 줄 */ .notice-item + .notice-item{ border-top: 1px solid #EEF2F7; } .notice-link{ display:grid; grid-template-columns: 44px 1fr auto; align-items:center; gap: 10px; padding: 10px 2px; /* ✅ 줄간격/여백 축소 */ border-radius: 10px; transition: background-color .16s ease; } .notice-link:hover{ background:#F8FAFC; } .notice-badge{ display:inline-flex; align-items:center; justify-content:center; height: 20px; padding: 0 9px; border-radius: 9999px; font-size: 11px; font-weight: 900; color:#1D4ED8; background:#EFF6FF; border: 1px solid #BFDBFE; } .notice-badge--info{ color:#334155; background:#F1F5F9; border-color:#E2E8F0; } .notice-text{ font-size: 13px; font-weight: 700; color:#334155; white-space: nowrap; overflow:hidden; text-overflow: ellipsis; } .notice-date{ font-size: 12px; color:#94A3B8; white-space: nowrap; } /* Banners */ .support-banners{ display:grid; gap: 10px; } .support-banner{ position: relative; overflow: hidden; border-radius: 16px; border: 1px solid #E5E7EB; padding: 14px 14px; /* ✅ 타이트 */ background: #FFFFFF; box-shadow: 0 1px 2px rgba(15,23,42,.04); transition: transform .16s ease, border-color .16s ease; } .support-banner:hover{ transform: translateY(-1px); border-color: #BFDBFE; } /* ✅ “배경 이미지 느낌” (그라데이션 없이, 패턴/하이라이트) */ .support-banner::before{ content:""; position:absolute; inset: -40px -60px auto auto; width: 220px; height: 220px; border-radius: 9999px; background: rgba(37, 99, 235, 0.08); filter: blur(0); transform: rotate(15deg); } .support-banner::after{ content:""; position:absolute; inset:auto -40px -40px auto; width: 180px; height: 120px; border-radius: 9999px; background: rgba(2, 132, 199, 0.06); } .support-banner--qna::before{ background: rgba(37, 99, 235, 0.10); } .support-banner--guide::before{ background: rgba(15, 23, 42, 0.06); } .support-banner--guide::after{ background: rgba(37, 99, 235, 0.05); } .support-banner > *{ position: relative; z-index: 1; } .support-banner-title{ font-size: 14px; font-weight: 900; color:#0F172A; letter-spacing: -0.2px; } .support-banner-desc{ margin-top: 6px; font-size: 12.5px; line-height: 1.5; color:#64748B; } .support-banner-cta{ margin-top: 10px; font-size: 12px; font-weight: 900; color:#2563EB; } /* responsive */ @media (max-width: 1024px){ .support-grid{ grid-template-columns: 1fr; } .support-banners{ grid-template-columns: 1fr 1fr; } } @media (max-width: 560px){ .support-banners{ grid-template-columns: 1fr; } .notice-link{ grid-template-columns: 44px 1fr; } .notice-date{ display:none; } } /* ===== Subpage Skeleton ===== */ .subpage-wrap{ padding: 18px 0 26px; } .subpage-header{ display:flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 0px 0 16px; padding-left:8px; border-bottom: 1px solid rgba(0,0,0,.08); } .subpage-title{ font-size: 22px; font-weight: 900; letter-spacing: -0.3px; color:#0F172A; } .subpage-desc{ font-size: 13px; color:#64748B; white-space: nowrap; overflow:hidden; text-overflow: ellipsis; max-width: 55%; } .breadcrumb{ margin-top: 6px; } .breadcrumb-list{ display:flex; gap: 8px; flex-wrap: wrap; font-size: 12px; color:#94A3B8; } .breadcrumb-item::after{ content:"/"; margin-left: 8px; color:#CBD5E1; } .breadcrumb-item:last-child::after{ content:none; } .breadcrumb-link{ color:#64748B; } .breadcrumb-link:hover{ color:#2563EB; } .breadcrumb-current{ color:#475569; font-weight:700; } .subpage-grid{ display:grid; grid-template-columns: 260px 1fr; gap: 14px; align-items: start; } .subpage-tabs{ display:none; } .subpage-side{ position: sticky; top: 90px; } .content-card{ background:#FFFFFF; border: 1px solid #E5E7EB; border-radius: 16px; padding: 16px; box-shadow: 0 1px 2px rgba(15,23,42,.04); } /* side nav */ .subnav--side .subnav-list{ background:#FFFFFF; border: 1px solid #E5E7EB; border-radius: 16px; padding: 10px; display:grid; gap: 6px; } .subnav-link{ display:flex; align-items:center; height: 40px; padding: 0 12px; border-radius: 12px; font-size: 16px; font-weight: 900; color:#334155; } .subnav-link:hover{ background:#F8FAFC; } .subnav-link.is-active{ background:#EFF6FF; border: 1px solid #BFDBFE; color:#1D4ED8; } /* mobile tabs */ .subnav--tabs{ display:flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding-bottom: 6px; } .subnav--tabs::-webkit-scrollbar{ display:none; } .subnav-tab{ flex: 0 0 auto; height: 36px; padding: 0 14px; border-radius: 9999px; border: 1px solid #E5E7EB; background:#FFFFFF; font-size: 12.5px; font-weight: 900; color:#334155; } .subnav-tab:hover{ background:#F8FAFC; } .subnav-tab.is-active{ background:#EFF6FF; border-color:#BFDBFE; color:#1D4ED8; } /* notice sample page */ .list-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom: 10px; } .list-title{ font-size: 14px; font-weight: 900; color:#0F172A; margin:0; } .list-desc{ font-size: 12.5px; color:#64748B; margin-top: 4px; } .list-head{ display:flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 10px; } .list-title{ margin: 0; } .list-desc{ margin: 0; text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 60%; font-size: 12.5px; color:#64748B; } @media (max-width: 560px){ .list-desc{ display:none; } /* 모바일은 깔끔하게 */ } .notice-list2{ display:grid; } .notice-list2 li + li{ border-top: 1px solid #EEF2F7; } .notice-list2 a{ display:grid; grid-template-columns: 54px 1fr auto; gap: 10px; align-items:center; padding: 12px 6px; border-radius: 12px; } .notice-list2 a:hover{ background:#F8FAFC; } .n2-tag{ height: 20px; display:inline-flex; align-items:center; justify-content:center; padding: 0 10px; border-radius: 9999px; font-size: 11px; font-weight: 900; background:#EFF6FF; border:1px solid #BFDBFE; color:#1D4ED8; } .n2-tag--info{ background:#F1F5F9; border-color:#E2E8F0; color:#334155; } .n2-text{ font-size: 13px; font-weight: 800; color:#334155; white-space: nowrap; overflow:hidden; text-overflow: ellipsis; } .n2-date{ font-size: 12px; color:#94A3B8; white-space: nowrap; } .n2s-text{ font-size: 13px; font-weight: 600; color: #2a3647; white-space: nowrap; overflow:hidden; text-overflow: ellipsis; } @media (max-width: 1024px){ .subpage-grid{ grid-template-columns: 1fr; } .subpage-side{ display:none; } .subpage-tabs{ display:block; } .subpage-desc{ max-width: 100%; } } @media (max-width: 560px){ .notice-list2 a{ grid-template-columns: 54px 1fr; } .n2-date{ display:none; } } /* ===== Sub Hero (compact rolling banner) ===== */ .subhero{ margin: 8px 0 10px; } .subhero-inner{ position: relative; overflow: hidden; border-radius: 16px; border: 1px solid #E5E7EB; background: #F8FAFC; height: 160px; /* ✅ 메인보다 낮게 */ } .subhero-track{ display:flex; height: 100%; transition: transform .45s cubic-bezier(.25,1,.5,1); } .subhero-slide{ min-width: 100%; height: 100%; background-image: var(--bg); background-size: cover; background-position: center; position: relative; } .subhero-slide::after{ content:""; position:absolute; inset:0; background: rgba(255,255,255,.72); /* ✅ 과하지 않게 텍스트 가독 */ } .subhero-content{ position: relative; z-index: 1; height: 100%; padding: 18px 18px; display:flex; flex-direction: column; justify-content: center; max-width: 720px; } .subhero-kicker{ font-size: 11px; font-weight: 900; letter-spacing: .8px; color: #2563EB; } .subhero-title{ margin-top: 6px; font-size: 20px; font-weight: 900; color:#0F172A; letter-spacing: -0.3px; } .subhero-desc{ margin-top: 6px; font-size: 13px; color:#64748B; } .subhero-cta{ margin-top: 10px; display:inline-flex; align-items:center; height: 34px; padding: 0 12px; border-radius: 9999px; border: 1px solid #BFDBFE; background: #EFF6FF; color:#1D4ED8; font-size: 12.5px; font-weight: 900; width: fit-content; } .subhero-cta:hover{ background:#2563EB; border-color:#2563EB; color:#fff; } .subhero-arrow{ position:absolute; top:50%; transform: translateY(-50%); width: 34px; height: 34px; border-radius: 9999px; border: 1px solid #E5E7EB; background: rgba(255,255,255,.9); font-size: 20px; font-weight: 900; color:#0F172A; } .subhero-arrow.prev{ left: 10px; } .subhero-arrow.next{ right: 10px; } .subhero-dots{ position:absolute; bottom: 10px; left: 50%; transform: translateX(-50%); display:flex; gap: 6px; } .subhero-dot{ width: 7px; height: 7px; border-radius: 9999px; background: rgba(15,23,42,.18); } .subhero-dot.active{ background:#2563EB; transform: scale(1.2); } /* ===== Notice toolbar (no duplicate nav) ===== */ .notice-toolbar{ display:flex; align-items:flex-start; justify-content:space-between; gap: 12px; margin: 6px 0 14px; padding: 12px 12px; border: 1px solid #E5E7EB; border-radius: 16px; background: #FFFFFF; box-shadow: 0 1px 2px rgba(15,23,42,.04); } .nt-left{ min-width: 0; display:flex; flex-direction:column; gap: 8px; } .nt-pill{ width: fit-content; height: 22px; padding: 0 10px; border-radius: 9999px; background: #EFF6FF; border: 1px solid #BFDBFE; color: #1D4ED8; font-size: 11px; font-weight: 900; } .nt-meta{ font-size: 12.5px; color: #64748B; line-height: 1.45; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 520px; } .nt-right{ display:flex; flex-direction:column; gap: 10px; align-items:flex-end; } .nt-search{ display:flex; align-items:center; gap: 8px; } .nt-search input{ width: 280px; height: 38px; padding: 0 12px; border-radius: 9999px; border: 1px solid #E5E7EB; background: #F3F4F6; font-size: 13px; } .nt-search input:focus{ outline: none; border-color: #2563EB; background: #FFFFFF; box-shadow: 0 0 0 2px #EFF6FF; } .nt-search button{ height: 38px; padding: 0 12px; border-radius: 9999px; background: #2563EB; color:#fff; font-size: 13px; font-weight: 900; border: 1px solid #2563EB; } .nt-filters{ display:flex; gap: 8px; flex-wrap: wrap; justify-content:flex-end; } .nt-chip{ height: 32px; padding: 0 12px; border-radius: 9999px; border: 1px solid #E5E7EB; background: #FFFFFF; color: #334155; font-size: 12.5px; font-weight: 900; } .nt-chip:hover{ background:#F8FAFC; } .nt-chip.is-active{ background:#EFF6FF; border-color:#BFDBFE; color:#1D4ED8; } @media (max-width: 1024px){ .notice-toolbar{ flex-direction:column; align-items:stretch; } .nt-meta{ max-width: 100%; white-space: normal; overflow: visible; text-overflow: clip; } .nt-right{ align-items:stretch; } .nt-search input{ width: 100%; } .nt-filters{ justify-content:flex-start; } } /* ===== Hero variants ===== */ .hero-slider{ position: relative; overflow: hidden; background: var(--color-bg-section); } .hero-slider--main{ height: 400px; } .hero-slider--compact{ height: 170px; border-radius: 16px; border: 1px solid #E5E7EB; margin: 14px 0 18px; } /* track/slide 동일 */ .hero-track{ display:flex; height:100%; transition: transform 0.5s cubic-bezier(0.25,1,0.5,1); } .hero-slide{ min-width:100%; height:100%; display:flex; align-items:center; justify-content:center; padding: 0 24px; } .hero-content{ max-width: var(--container-width); width:100%; text-align:left; padding: 0 8px; } /* ✅ compact에서 타이포/여백만 줄이기 */ .hero-slider--compact .hero-slide{ padding: 0 18px; } .hero-slider--compact .hero-title{ font-size: 22px; margin-bottom: 6px; } .hero-slider--compact .hero-desc{ font-size: 13px; margin-bottom: 10px; } .hero-slider--compact .btn.hero-cta{ padding: 8px 14px; font-size: 13px; } /* ✅ 왼쪽/오른쪽 화살표 버튼이 컨텐츠를 가리지 않게 여백 확보 */ .slider-arrow{ position:absolute; top:50%; transform: translateY(-50%); width: 34px; height: 34px; border-radius: 9999px; border: 1px solid #E5E7EB; background: rgba(255,255,255,.9); font-size: 20px; font-weight: 900; display:flex; align-items:center; justify-content:center; z-index: 5; } .slider-arrow.prev{ left: 10px; } .slider-arrow.next{ right: 10px; } /* ✅ 컨텐츠 좌우 패딩(화살표 영역만큼) */ .hero-slider--compact .hero-content{ padding-left: 44px; padding-right: 44px; } /* dots */ .dots-container{ position:absolute; bottom: 12px; left:50%; transform: translateX(-50%); display:flex; gap: 8px; z-index:5; } .dot{ width: 8px; height: 8px; border-radius: 50%; background: rgba(0,0,0,0.18); } .dot.active{ background: var(--color-accent-blue); transform: scale(1.15); } @media (max-width: 768px){ .hero-slider--compact{ height: 150px; } .hero-slider--compact .hero-content{ padding-left: 14px; padding-right: 14px; } /* 모바일에선 화살표가 위에 떠도 괜찮게 */ .slider-arrow{ display:none; } /* 모바일은 스와이프/도트로만 */ } .subpage-wrap .hero-slider--compact{ margin-top: 14px; margin-bottom: 16px; } /* ===== List Head (section heading) ===== */ .list-head{ display:flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 6px 0 12px; /* 은은한 구획감: 라인 + 여백만 */ padding-bottom: 8px; border-bottom: 1px solid #EEF2F7; } .list-title{ margin: 0; font-size: 16px; /* 과하게 크지 않게 */ font-weight: 900; letter-spacing: -0.2px; color: #0F172A; line-height: 1.2; } .list-desc{ margin: 0; font-size: 13px; color: #64748B; line-height: 1.2; /* 우측 정렬 + 길면 깔끔하게 처리 */ text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 60%; } /* 모바일은 설명 숨기고 더 타이트하게 */ @media (max-width: 560px){ .list-head{ padding-bottom: 6px; margin: 4px 0 10px; } .list-title{ font-size: 15px; } .list-desc{ display:none; } } /* ===== CS Tabs ===== */ .cs-tabs{ display:flex; gap: 8px; flex-wrap: wrap; margin: 10px 0 14px; } .cs-tab{ height: 34px; padding: 0 14px; border-radius: 9999px; border: 1px solid #E5E7EB; background:#fff; font-size: 13px; font-weight: 800; color:#334155; } .cs-tab:hover{ background:#F8FAFC; } .cs-tab.is-active{ background:#EFF6FF; border-color:#BFDBFE; color:#1D4ED8; } /* Side menu header */ .subnav-head{ padding: 16px 16px 10px; } .subnav-title{ font-size: 19px; font-weight: 800; line-height: 1.2; color: #001280; } .subnav-subtitle{ margin-top: 6px; font-size: 12px; opacity: .7; } .subnav-divider{ height: 1px; margin: 0 16px 10px; background: rgba(0,0,0,.08); } /* ✅ 박스 자체 */ .subnav--side .subnav-box{ background: #fff; border: 1px solid rgba(0,0,0,.08); border-radius: 16px; padding: 0; /* 헤더/리스트에서 패딩 관리 */ overflow: hidden; /* 라운드 안쪽 정리 */ } /* 기존 ul이 박스 역할을 하고 있었다면: ul은 이제 투명하게 */ .subnav--side .subnav-list{ margin: 0; padding: 12px; /* 메뉴 영역 패딩 */ list-style: none; background: transparent; border: 0; } /* 헤더 */ .subnav--side .subnav-head{ padding: 16px 16px 10px; } .subnav--side .subnav-title{ font-size: 18px; font-weight: 800; line-height: 1.2; } .subnav--side .subnav-subtitle{ margin-top: 6px; font-size: 12px; opacity: .7; } .subnav--side .subnav-divider{ height: 1px; margin: 0 16px; background: rgba(0,0,0,.08); } /* subpage hero compact */ .hero--compact{ padding: 14px 0; } .hero--compact .hero-inner{ min-height: 160px; /* 데스크탑 */ } @media (max-width: 768px){ .hero--compact .hero-inner{ min-height: 120px; } } .hero--compact h2, .hero--compact .hero-title{ font-size: 18px; line-height: 1.25; } .hero--compact .hero-desc{ font-size: 12px; opacity: .85; } /* 서브에서는 CTA 과하면 지저분해져서 숨기거나 1개만 */ .hero--compact .hero-actions .btn-secondary, .hero--compact .hero-badges{ display:none; } .cs-quick__bar{ margin: 12px 0 14px; padding: 10px 12px; border-radius: 12px; background: rgba(0,0,0,.04); font-size: 12px; } .cs-quick__grid{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; } @media (max-width: 768px){ .cs-quick__grid{ grid-template-columns: 1fr; } } .cs-quick__card{ display:block; padding: 14px 14px; border:1px solid rgba(0,0,0,.08); border-radius: 14px; background:#fff; text-decoration:none; } .cs-quick__title{ font-weight: 800; } .cs-quick__desc{ margin-top:6px; font-size: 12px; opacity:.75; } /* ===== Footer: Coupang-like ===== */ .site-footer{ border-top:1px solid rgba(0,0,0,.08); background:#fff; } .footer-topbar{ border-bottom:1px solid rgba(0,0,0,.08); background:#fff; } .footer-topbar__inner{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:0px 23px 20px; } .footer-topbar__nav{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; font-size:12px; color:#111; } .footer-topbar__link{ text-decoration:none; color:inherit; opacity:.85; } .footer-topbar__link:hover{ opacity:1; text-decoration:underline; } .footer-topbar__link--strong{ font-weight:800; opacity:1; } .footer-topbar__sep{ opacity:.35; } .footer-site-select{ height:32px; padding:0 10px; border:1px solid rgba(0,0,0,.12); border-radius:8px; background:#fff; font-size:12px; } .footer-main{ padding:26px 0; } .footer-grid{ display:grid; grid-template-columns: 1.35fr 1fr 1fr; gap:24px; align-items:start; } @media (max-width: 980px){ .footer-grid{ grid-template-columns:1fr; } .footer-topbar__inner{ flex-direction:column; align-items:flex-start; } } .footer-logo-img{ height:55px; width:auto; display:block; } .footer-company{ margin-top:12px; font-size:12px; line-height:1.6; color:rgba(0,0,0,.78); } .footer-company__row{ display:flex; gap:10px; } .footer-company__k{ min-width:160px; opacity:.75; } .footer-company__v{ flex:1; } .footer-copy{ margin-top:12px; font-size:12px; color:rgba(0,0,0,.6); } .footer-h{ font-size:12px; font-weight:800; margin-bottom:10px; color:#111; } .footer-call__num{ font-size:26px; font-weight:900; letter-spacing:-.02em; line-height:1.1; } .footer-call__meta{ margin-top:6px; font-size:12px; color:rgba(0,0,0,.7); } .footer-kv{ margin-top:14px; font-size:12px; } .footer-kv__row{ display:flex; gap:10px; padding:4px 0; } .footer-kv__k{ min-width:80px; opacity:.75; } .footer-kv__v{ color:rgba(0,0,0,.85); } .footer-link{ color:rgba(0,0,0,.85); text-decoration:none; } .footer-link:hover{ text-decoration:underline; } .footer-link--strong{ font-weight:800; } .footer-mini-links{ display:flex; flex-wrap:wrap; gap:10px 14px; font-size:12px; margin-bottom:14px; } .footer-payments{ display:flex; flex-direction:column; gap:12px; } .footer-pay__img{ width:70px; height:auto; display:block; } .footer-pay__img--wide{ width:180px; } .footer-pay__cap{ margin-top:6px; font-size:12px; color:rgba(0,0,0,.65); } .footer-marks{ margin-top:14px; display:flex; gap:10px; align-items:center; flex-wrap:wrap; } .footer-marks img{ height:22px; width:auto; opacity:.9; } /* screen-reader only */ .sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; } /* Policy page */ .policy-page{ margin-top: 14px; } .policy-toc{ display:flex; flex-wrap:wrap; gap:10px 12px; padding:12px 14px; border:1px solid rgba(0,0,0,.08); border-radius:14px; background:rgba(0,0,0,.02); margin: 12px 0 18px; } .policy-toc a{ font-size:12px; text-decoration:none; color:rgba(0,0,0,.8); padding:6px 10px; border-radius:999px; border:1px solid rgba(0,0,0,.08); background:#fff; } .policy-toc a:hover{ text-decoration:underline; } .policy-sec{ padding: 14px 0 8px; scroll-margin-top: 90px; } .policy-h2{ font-size:16px; font-weight:900; letter-spacing:-.02em; margin: 8px 0 10px; } .policy-p{ font-size:13px; line-height:1.8; color:rgba(0,0,0,.78); margin: 0 0 10px; } .policy-card{ border:1px solid rgba(0,0,0,.08); border-radius:16px; padding:14px 14px; background:#fff; margin: 10px 0; } .policy-card__title{ font-weight:700; margin-bottom:8px; } .policy-ul{ margin: 0; padding-left: 18px; line-height: 1.8; color: rgba(0,0,0,.78); } .policy-ul li{ margin: 4px 0; } .policy-badge-list{ display:flex; flex-wrap:wrap; gap:8px; } .policy-badge{ display:inline-flex; align-items:center; height:26px; padding:0 10px; font-size:12px; border-radius:999px; border:1px solid rgba(0,0,0,.10); background:rgba(0,0,0,.02); } .policy-table-wrap{ overflow:auto; border:1px solid rgba(0,0,0,.08); border-radius:14px; background:#fff; } .policy-table{ width:100%; border-collapse:separate; border-spacing:0; min-width: 720px; font-size:12px; } .policy-table th, .policy-table td{ padding:10px 10px; border-bottom:1px solid rgba(0,0,0,.08); vertical-align:top; } .policy-table th{ background:rgba(0,0,0,.03); font-weight:800; text-align:left; } .policy-table tr:last-child td{ border-bottom:0; } .policy-note{ margin-top:10px; padding:10px 12px; border-radius:12px; background:rgba(0,0,0,.03); font-size:12px; line-height:1.7; color:rgba(0,0,0,.72); } .policy-kv{ display:flex; flex-direction:column; gap:8px; } .policy-kv__row{ display:flex; gap:10px; } .policy-kv__row span{ min-width:90px; opacity:.75; } .policy-bottom{ margin-top: 14px; display:flex; justify-content:flex-end; } .policy-top{ display:inline-flex; align-items:center; justify-content:center; height:34px; padding:0 12px; border-radius:10px; border:1px solid rgba(0,0,0,.10); text-decoration:none; font-size:12px; background:#fff; color:rgba(0,0,0,.8); } .policy-top:hover{ text-decoration:underline; } .policy-ol{ margin: 0; padding-left: 18px; line-height: 1.8; color: rgba(0,0,0,.78); } .policy-ol > li{ margin: 6px 0; } .policy-ol .policy-ul{ margin-top: 6px; } .policy-details{ border:0; } .policy-summary{ cursor:pointer; font-weight:800; list-style:none; } .policy-summary::-webkit-details-marker{ display:none; } .policy-law{ margin-top:10px; padding-top:10px; border-top:1px solid rgba(0,0,0,.08); } .policy-card--alert{ border-color: rgba(255, 102, 0, .25); background: rgba(255, 102, 0, .04); } /* Policy hub */ .policy-hub{ display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; } @media (max-width: 960px){ .policy-hub{ grid-template-columns: 1fr; } } .policy-hub__card{ display:block; text-decoration:none; color: inherit; border:1px solid rgba(0,0,0,.08); border-radius:16px; background:#fff; padding:14px; transition: transform .08s ease, box-shadow .08s ease; } .policy-hub__card:hover{ transform: translateY(-1px); box-shadow: 0 10px 24px rgba(0,0,0,.08); } .policy-hub__top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; } .policy-hub__badge{ display:inline-flex; height:24px; align-items:center; padding:0 10px; border-radius:999px; font-size:12px; border:1px solid rgba(0,0,0,.10); background: rgba(0,0,0,.02); font-weight:700; } .policy-hub__arrow{ opacity:.6; font-weight:900; } .policy-hub__title{ font-size:15px; font-weight:900; letter-spacing:-.02em; margin-bottom:6px; } .policy-hub__desc{ font-size:13px; line-height:1.75; color: rgba(0,0,0,.75); margin-bottom:10px; } .policy-hub__meta{ font-size:12px; color: rgba(0,0,0,.6); } /* ✅ Policy tables: mobile overflow fix */ .policy-table-wrap{ width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid rgba(0,0,0,.08); border-radius:12px; background:#fff; } .policy-table{ width:100%; border-collapse:collapse; min-width:720px; /* 컬럼이 4개라 모바일에서 최소폭 필요 */ } .policy-table th, .policy-table td{ padding:10px 12px; border-bottom:1px solid rgba(0,0,0,.08); vertical-align:top; line-height:1.6; } .policy-table th{ background:rgba(0,0,0,.02); font-weight:800; white-space:nowrap; } .policy-table td{ word-break:break-word; } /* 기본(PC/태블릿): 스크롤 테이블 */ .policy-table-wrap{ width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid rgba(0,0,0,.08); border-radius:12px; background:#fff; } .policy-table{ width:100%; border-collapse:collapse; /* ⚠️ min-width를 무조건 박아두면 모바일에서 “커 보이는” 느낌이 남음 */ /* min-width:720px; <-- 이게 들어가있다면 제거하거나 아래처럼 조건부로 */ } @media (min-width: 641px){ .policy-table{ min-width:720px; } /* 데스크톱에서만 최소폭 유지 */ } .policy-table th, .policy-table td{ padding:10px 12px; border-bottom:1px solid rgba(0,0,0,.08); vertical-align:top; line-height:1.6; } .policy-table th{ background:rgba(0,0,0,.02); font-weight:800; } /* ✅ 모바일: 행을 카드처럼 쌓아서 “넘침” 자체를 제거 */ @media (max-width: 640px){ /* 래퍼 스크롤 제거 + 카드 형태로 */ .policy-table-wrap{ overflow:visible; border:0; border-radius:0; background:transparent; } .policy-table{ min-width:0 !important; } .policy-table thead{ display:none; } .policy-table, .policy-table tbody, .policy-table tr, .policy-table td{ display:block; width:100%; } .policy-table tr{ border:1px solid rgba(0,0,0,.08); border-radius:14px; background:#fff; margin-bottom:10px; overflow:hidden; } .policy-table td{ border:0; border-top:1px solid rgba(0,0,0,.06); padding:10px 12px; display:flex; gap:10px; align-items:flex-start; } .policy-table td:first-child{ border-top:0; } .policy-table td::before{ content: attr(data-label); flex:0 0 92px; font-weight:900; color: rgba(0,0,0,.65); } .policy-table td{ overflow-wrap:anywhere; word-break:break-word; } } /* (안전장치) 카드 안에서 가로 넘침 방지 */ .content-card{ overflow-x:hidden; } /* ============================================================ MOBILE / RESPONSIVE OVERFLOW HOTFIX (do not remove) - Prevent horizontal overflow on small screens - Keep original design; only constrains width/overflow ============================================================ */ html, body { max-width: 100%; overflow-x: hidden; } img, video, svg, iframe, canvas { max-width: 100%; height: auto; } /* Grid/flex children can cause overflow if min-width is auto */ .subpage-grid, .subpage-main, .content-card, .policy-page { min-width: 0; } /* Policy table: keep scroll without widening the whole page */ .policy-table-wrap{ width: 100%; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; } .policy-table{ max-width: 100%; } .policy-table th, .policy-table td{ word-break: break-word; overflow-wrap: anywhere; } /* Small screens: don't "bleed" outside cards */ @media (max-width: 640px){ .policy-table-wrap{ margin: 0; border-left: 1px solid rgba(0,0,0,.08); border-right: 1px solid rgba(0,0,0,.08); border-radius: 14px; } /* Reduce minimum width a bit so it feels less huge on phones */ .policy-table{ min-width: 560px; } } /* If any component uses nowrap, allow scroll inside it */ .policy-toc{ max-width: 100%; } /* ========================= Mobile Tabs (subnav--tabs) - no horizontal overflow - centered text - menu-like segmented buttons ========================= */ /* 기본: 모바일에서 2열 그리드(안전하게 안 넘침) */ .subnav--tabs{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; width: 100%; max-width: 100%; margin: 0; } /* 화면 조금 넓으면 3열 */ @media (min-width: 420px){ .subnav--tabs{ grid-template-columns: repeat(3, minmax(0, 1fr)); } } /* 탭(메뉴) 버튼 */ .subnav-tab{ display: flex; align-items: center; /* ✅ 세로 중앙 */ justify-content: center; /* ✅ 가로 중앙 */ text-align: center; min-width: 0; /* ✅ grid item overflow 방지 */ min-height: 42px; padding: 10px 10px; border-radius: 14px; border: 1px solid rgba(0,0,0,.10); background: #fff; font-size: 13px; font-weight: 800; letter-spacing: -0.02em; color: rgba(0,0,0,.78); text-decoration: none; /* ✅ 한 줄 유지 + 길면 ... */ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; /* ✅ '메뉴'같은 클릭감 */ transition: background-color .12s ease, border-color .12s ease, color .12s ease, transform .06s ease; } .subnav-tab:hover{ background: rgba(0,0,0,.02); } .subnav-tab:active{ transform: translateY(1px); } /* 활성 탭 */ .subnav-tab.is-active{ background: rgba(11, 99, 255, .08); border-color: rgba(11, 99, 255, .35); color: #0b63ff; box-shadow: inset 0 0 0 1px rgba(11, 99, 255, .18); } /* 접근성: 키보드 포커스 */ .subnav-tab:focus-visible{ outline: 2px solid rgba(11, 99, 255, .55); outline-offset: 2px; } /* Subpage Header layout */ .subpage-header{ display:flex; align-items:baseline; /* 제목/설명 기준선 맞춤 */ gap:14px; padding: 10px 0 14px; } .subpage-title{ margin:0; padding-top:7px; font-weight:900; letter-spacing:-0.03em; } .subpage-desc{ margin:0; color: rgba(0,0,0,.65); line-height:1.6; /* ✅ 데스크톱에서는 한 줄에 잘리게(캡처처럼) */ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* ✅ 모바일: desc를 아래로 떨어뜨리기 */ @media (max-width: 640px){ .subpage-header{ flex-direction: column; align-items:flex-start; gap:6px; } .subpage-desc{ white-space: normal; /* 모바일에서는 줄바꿈 허용 */ overflow: visible; text-overflow: clip; } } /* ========================= Mobile Drawer ========================= */ /* 기본은 숨김(PC) */ .mobile-menu-btn { display:none; } /* 모바일에서만 노출 */ @media (max-width: 960px){ .mobile-menu-btn{ display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border:1px solid rgba(0,0,0,.10); background:#fff; border-radius:12px; cursor:pointer; } } /* Overlay */ .mobile-drawer-overlay{ position:fixed; inset:0; background: rgba(0,0,0,.35); z-index: 9998; } /* Drawer */ .mobile-drawer{ position:fixed; top:0; right:0; height:100dvh; width:min(86vw, 360px); background:#fff; z-index:9999; transform: translateX(102%); transition: transform .18s ease; box-shadow: -16px 0 40px rgba(0,0,0,.18); display:flex; flex-direction:column; } .mobile-drawer.is-open{ transform: translateX(0); } .mobile-drawer__head{ display:flex; align-items:center; justify-content:space-between; padding:14px 14px; border-bottom:1px solid rgba(0,0,0,.08); } .mobile-drawer__title{ font-weight:900; letter-spacing:-0.02em; } .mobile-drawer__close{ width:38px; height:38px; border-radius:10px; border:1px solid rgba(0,0,0,.10); background:#fff; cursor:pointer; } .mobile-drawer__nav{ padding:10px 10px; display:flex; flex-direction:column; gap:8px; } .mobile-drawer__link{ display:flex; align-items:center; height:44px; padding:0 12px; border-radius:12px; text-decoration:none; color: rgba(0,0,0,.86); border:1px solid rgba(0,0,0,.08); background: rgba(0,0,0,.02); font-weight:800; } .mobile-drawer__link:hover{ background: rgba(0,0,0,.04); } .mobile-drawer__foot{ margin-top:auto; padding:12px; border-top:1px solid rgba(0,0,0,.08); } .mobile-drawer__cta{ display:flex; align-items:center; justify-content:center; height:44px; border-radius:14px; background:#0b63ff; color:#fff; text-decoration:none; font-weight:900; } /* 스크롤 잠금 */ body.is-drawer-open{ overflow:hidden; touch-action:none; } /* ===== Mobile Drawer Modern UI ===== */ .mobile-drawer__body{ padding: 10px 12px 16px; overflow:auto; } .m-usercard{ margin: 12px; padding: 12px; border-radius: 18px; background: linear-gradient(135deg, rgba(11,99,255,.10), rgba(0,0,0,.02)); border: 1px solid rgba(0,0,0,.08); } .m-usercard__row{ display:flex; gap: 10px; align-items:center; } .m-avatar{ width: 44px; height: 44px; border-radius: 14px; display:flex; align-items:center; justify-content:center; background: #0b63ff; color:#fff; font-weight: 900; } .m-avatar--ghost{ background: rgba(0,0,0,.06); color: rgba(0,0,0,.55); } .m-usercard__name{ font-weight: 900; letter-spacing: -0.02em; } .m-usercard__meta{ font-size: 12px; color: rgba(0,0,0,.65); margin-top: 2px; } .m-usercard__actions{ display:flex; gap: 8px; margin-top: 10px; } .m-pill{ height: 36px; padding: 0 12px; display:inline-flex; align-items:center; justify-content:center; border-radius: 999px; background:#0b63ff; color:#fff; text-decoration:none; font-weight: 900; border: 1px solid rgba(11,99,255,.35); } .m-pill--ghost{ background:#fff; color:#0b63ff; } .m-navsec{ padding: 0 12px; margin-top: 14px; } .m-navsec__title{ font-weight: 900; margin: 0 0 8px; letter-spacing: -0.02em; } .m-navsec__hint{ font-size: 12px; color: rgba(0,0,0,.60); margin: -4px 0 10px; } .m-grid{ display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .m-tile{ height: 35px; border-radius: 14px; border: 1px solid rgba(0,0,0,.08); background: #fff; display:flex; align-items:center; justify-content:center; font-size:15px; font-weight: 600; text-decoration:none; color: rgba(0,0,0,.84); transition: transform .06s ease, background-color .12s ease; min-width:0; text-align:center; padding: 0 10px; } .m-tile:hover{ background: rgba(0,0,0,.02); } .m-tile:active{ transform: translateY(1px); } .m-tile--ghost{ background: rgba(0,0,0,.02); } /* Kakao CS page */ .kakao-page{ display:block; } .kakao-hero{ margin-top:14px; } .kakao-hero__card{ border:1px solid rgba(0,0,0,.08); background:#fff; border-radius:18px; padding:16px; } .kakao-hero__badge{ display:inline-flex; align-items:center; height:28px; padding:0 10px; border-radius:999px; background: rgba(0,0,0,.04); font-weight:900; font-size:12px; } .kakao-hero__title{ margin:10px 0 6px; font-weight:900; letter-spacing:-0.02em; padding-top:10px;} .kakao-hero__desc{ margin:0; color:rgba(0,0,0,.68); line-height:1.7; } .kakao-hero__meta{ margin-top:12px; display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:10px; } .kakao-meta{ border:1px solid rgba(0,0,0,.06); background: rgba(0,0,0,.02); border-radius:14px; padding:10px 12px; } .kakao-meta__k{ font-size:12px; color:rgba(0,0,0,.60); font-weight:800; } .kakao-meta__v{ margin-top:2px; font-weight:900; } .kakao-hero__actions{ margin-top:14px; display:flex; gap:10px; flex-wrap:wrap; } .kakao-hero__img{ width:100%; height:auto; margin-top:12px; border-radius:14px; border:1px solid rgba(0,0,0,.06); } .kakao-sec-title{ margin:18px 0 10px; font-weight:900; letter-spacing:-0.02em; } .kakao-step-grid{ display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:10px; } .kakao-step{ border:1px solid rgba(0,0,0,.08); background:#fff; border-radius:16px; padding:14px; } .kakao-step__num{ font-weight:900; color:#0b63ff; } .kakao-step__title{ margin-top:6px; font-weight:900; } .kakao-step__desc{ margin-top:4px; color:rgba(0,0,0,.68); line-height:1.6; } .kakao-help-grid{ display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:10px; } .kakao-card{ border:1px solid rgba(0,0,0,.08); background:#fff; border-radius:16px; padding:14px; } .kakao-card__title{ font-weight:900; margin-bottom:8px; } .kakao-list{ margin:0; padding-left:18px; color:rgba(0,0,0,.72); line-height:1.8; } @media (max-width: 640px){ .kakao-hero__meta{ grid-template-columns: 1fr; } .kakao-step-grid{ grid-template-columns: 1fr; } .kakao-help-grid{ grid-template-columns: 1fr; } } /* Kakao Accent Tokens */ :root{ --kakao-yellow: #FEE500; --kakao-yellow-soft: rgba(254,229,0,.18); --kakao-black: #191919; } /* Kakao CS page accent */ .kakao-hero__badge{ background: var(--kakao-yellow); color: var(--kakao-black); border: 1px solid rgba(0,0,0,.10); } /* 제목 왼쪽 포인트 라인(과하지 않게) */ .kakao-hero__title{ position: relative; padding-left: 12px; } .kakao-hero__title:before{ content:""; position:absolute; left:0; top:.35em; width:4px; height:1.05em; border-radius: 8px; background: var(--kakao-yellow); } /* 메타 카드 배경에 은은한 노랑 */ .kakao-meta{ background: linear-gradient(135deg, var(--kakao-yellow-soft), rgba(0,0,0,.02)); border-color: rgba(0,0,0,.06); } /* Step 숫자 색을 카카오 노랑으로 */ .kakao-step__num{ color: var(--kakao-black); background: var(--kakao-yellow); display: inline-flex; align-items:center; justify-content:center; height: 28px; min-width: 46px; padding: 0 10px; border-radius: 999px; font-weight: 900; border: 1px solid rgba(0,0,0,.10); } /* 카드 hover에 노랑 tint */ .kakao-step:hover, .kakao-card:hover{ border-color: rgba(254,229,0,.55); box-shadow: 0 10px 24px rgba(0,0,0,.06); } /* CTA 버튼: primary를 카카오 노랑 버전으로(카카오 페이지에서만) */ .kakao-page .btn.btn--primary{ background: var(--kakao-yellow); color: var(--kakao-black); border: 1px solid rgba(0,0,0,.10); } .kakao-page .btn.btn--primary:hover{ filter: brightness(.98); } .kakao-page .btn.btn--ghost{ border-color: rgba(0,0,0,.12); } /* Quick 카드에도 작은 포인트 */ .kakao-page .cs-quick__bar{ background: linear-gradient(135deg, var(--kakao-yellow-soft), rgba(0,0,0,.02)); border: 1px solid rgba(0,0,0,.08); } .kakao-page .cs-quick__card:hover{ border-color: rgba(254,229,0,.55); } .btn{ display:inline-flex; align-items:center; justify-content:center; height:44px; padding: 0 14px; border-radius: 14px; font-weight: 900; text-decoration:none; } /* ========================================================= FAQ (CS) - clean, modern, responsive ========================================================= */ .faq { margin-top: 16px; } .faq-tools{ display:flex; flex-direction:column; gap:12px; margin-bottom: 14px; } .faq-search{ position:relative; width:100%; } .faq-search__input{ width:100%; height:44px; border-radius:14px; border:1px solid rgba(0,0,0,.10); background:#fff; padding:0 44px 0 14px; outline:none; font-weight:700; } .faq-search__input:focus{ border-color: rgba(0,0,0,.22); box-shadow: 0 0 0 3px rgba(0,0,0,.06); } .faq-search__icon{ position:absolute; right:12px; top:50%; transform:translateY(-50%); opacity:.55; font-size:16px; } .faq-cats{ display:flex; flex-wrap:wrap; /* ✅ 넘치면 줄바꿈 */ justify-content:center; /* ✅ 중앙정렬 */ gap:8px; } .faq-cat{ height:36px; padding:0 12px; border-radius:999px; border:1px solid rgba(0,0,0,.10); background: rgba(0,0,0,.02); /* DG 느낌 */ color: rgba(0,0,0,.82); font-weight:800; cursor:pointer; } .faq-cat.is-active{ background: rgba(0,0,0,.86); /* DG 강조 */ color:#fff; border-color: rgba(0,0,0,.86); } .faq-list{ display:flex; flex-direction:column; gap:10px; } .faq-item{ border:1px solid rgba(0,0,0,.10); background:#fff; border-radius:16px; overflow:hidden; } .faq-q{ list-style:none; display:flex; align-items:center; gap:10px; padding:14px 14px; cursor:pointer; user-select:none; } .faq-q::-webkit-details-marker{ display:none; } .faq-q__badge{ width:26px; height:26px; display:inline-flex; align-items:center; justify-content:center; border-radius:10px; background: rgba(0,0,0,.06); font-weight:900; } .faq-q__text{ flex:1; font-weight:600; font-size:16px; letter-spacing:-0.02em; } .faq-q__chev{ opacity:.6; transition: transform .15s ease; } .faq-item[open] .faq-q__chev{ transform: rotate(180deg); } .faq-a{ padding: 0 14px 14px 14px; color: rgba(0,0,0,.76); line-height:1.7; font-weight:600; } .faq-empty{ margin-top: 8px; padding:14px; border-radius:14px; border:1px dashed rgba(0,0,0,.16); background: rgba(0,0,0,.02); text-align:center; color: rgba(0,0,0,.60); font-weight:800; } /* ========================================================= CS Guide (refined color + modern) ========================================================= */ :root{ --g-brand: #0b63ff; /* 사이트 블루 */ --g-ink: rgba(0,0,0,.88); --g-muted: rgba(0,0,0,.62); --g-line: rgba(0,0,0,.10); --g-soft: rgba(11,99,255,.08); --g-shadow: 0 10px 28px rgba(0,0,0,.07); --g-shadow2: 0 14px 34px rgba(0,0,0,.10); } .guide { margin-top: 14px; } /* Hero */ .guide-hero{ border: 1px solid var(--g-line); background: radial-gradient(1200px 300px at 10% 0%, rgba(11,99,255,.14), transparent 55%), radial-gradient(900px 260px at 100% 10%, rgba(255,199,0,.10), transparent 55%), linear-gradient(135deg, rgba(255,255,255,1), rgba(0,0,0,.01)); border-radius: 20px; padding: 18px; box-shadow: 0 10px 26px rgba(0,0,0,.05); } .guide-hero__badge{ display:inline-flex; align-items:center; height:30px; padding:0 12px; border-radius:999px; font-weight:900; letter-spacing:-0.02em; background: linear-gradient(135deg, var(--g-brand), #2aa6ff); color:#fff; box-shadow: 0 10px 22px rgba(11,99,255,.22); } .guide-hero__title{ margin-top: 10px; font-size: 18px; font-weight: 950; letter-spacing:-0.03em; color: var(--g-ink); } .guide-hero__desc{ margin-top: 8px; color: var(--g-muted); line-height: 1.75; font-weight: 650; max-width: 72ch; } .guide-hero__chips{ margin-top: 12px; display:flex; flex-wrap:wrap; gap:8px; } .guide-chip{ display:inline-flex; align-items:center; min-height:34px; padding:0 12px; border-radius: 999px; border: 1px solid rgba(11,99,255,.14); background: rgba(11,99,255,.06); font-weight: 850; color: rgba(0,0,0,.76); } /* Grid */ .guide-grid{ margin-top: 12px; display:grid; grid-template-columns: 1fr 1fr; gap: 12px; } /* Card base */ .guide-card{ border: 1px solid var(--g-line); background:#fff; border-radius: 20px; padding: 16px; box-shadow: var(--g-shadow); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; } .guide-card:hover{ transform: translateY(-2px); box-shadow: var(--g-shadow2); border-color: rgba(11,99,255,.18); } .guide-card__top{ display:flex; align-items:center; gap:10px; } .guide-card__icon{ width:38px; height:38px; border-radius: 14px; display:flex; align-items:center; justify-content:center; font-weight: 950; color: rgba(0,0,0,.82); border: 1px solid rgba(0,0,0,.08); background: rgba(0,0,0,.03); } .guide-card__title{ margin:0; font-size: 16px; font-weight: 950; letter-spacing:-0.03em; color: var(--g-ink); } .guide-card__lead{ margin-top: 10px; color: var(--g-muted); line-height: 1.75; font-weight: 650; } /* Steps & bullets */ .guide-steps, .guide-bullets{ margin-top: 10px; padding-left: 18px; color: rgba(0,0,0,.70); line-height: 1.75; font-weight: 650; } .guide-steps li, .guide-bullets li{ margin: 7px 0; } .guide-steps b, .guide-bullets b{ color: rgba(0,0,0,.90); } /* Note */ .guide-note{ margin-top: 12px; border-radius: 16px; padding: 11px 12px; border: 1px solid rgba(11,99,255,.14); background: rgba(11,99,255,.06); color: rgba(0,0,0,.72); line-height:1.65; font-weight: 750; } .guide-note--muted{ border-color: rgba(0,0,0,.10); background: rgba(0,0,0,.02); color: rgba(0,0,0,.68); } /* Footer */ .guide-footer{ margin-top: 12px; } .guide-footer__box{ border: 1px solid var(--g-line); background: radial-gradient(900px 260px at 0% 0%, rgba(11,99,255,.10), transparent 55%), linear-gradient(135deg, rgba(255,255,255,1), rgba(0,0,0,.01)); border-radius: 20px; padding: 16px; box-shadow: var(--g-shadow); } .guide-footer__title{ font-weight: 950; letter-spacing:-0.03em; color: var(--g-ink); } .guide-footer__desc{ margin-top: 6px; color: var(--g-muted); line-height: 1.75; font-weight: 650; } /* --- Make each card feel different (subtle accent) --- */ .guide-card:nth-child(1) .guide-card__icon{ background: rgba(11,99,255,.08); border-color: rgba(11,99,255,.16); } .guide-card:nth-child(2) .guide-card__icon{ background: rgba(0,200,120,.10); border-color: rgba(0,200,120,.18); } .guide-card:nth-child(3) .guide-card__icon{ background: rgba(255,170,0,.12); border-color: rgba(255,170,0,.22); } .guide-card:nth-child(4) .guide-card__icon{ background: rgba(160,80,255,.10); border-color: rgba(160,80,255,.18); } /* Responsive */ @media (max-width: 960px){ .guide-grid{ grid-template-columns: 1fr; } .guide-hero{ padding: 16px; } } .guide-card__icon{ color: rgba(11,99,255,.92); } /* ========================================================= CS QnA (UI only) — refined color + modern ========================================================= */ :root{ --q-brand: #0b63ff; --q-ink: rgba(0,0,0,.88); --q-muted: rgba(0,0,0,.62); --q-line: rgba(0,0,0,.10); --q-soft: rgba(11,99,255,.08); --q-soft2: rgba(255,199,0,.10); --q-shadow: 0 10px 28px rgba(0,0,0,.07); --q-shadow2: 0 14px 34px rgba(0,0,0,.10); } .qna{ margin-top: 12px; } /* Top */ .qna-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom: 12px; } .qna-top__hint{ flex:1; border:1px solid rgba(11,99,255,.14); background: radial-gradient(900px 240px at 0% 0%, rgba(11,99,255,.14), transparent 55%), radial-gradient(900px 240px at 100% 0%, rgba(255,199,0,.10), transparent 55%), linear-gradient(135deg, rgba(255,255,255,1), rgba(0,0,0,.01)); border-radius: 18px; padding:12px 12px; font-weight:850; color: rgba(0,0,0,.76); line-height:1.5; box-shadow: 0 8px 22px rgba(0,0,0,.05); } .qna-pill{ display:inline-flex; align-items:center; height:26px; padding:0 12px; border-radius:999px; background: linear-gradient(135deg, var(--q-brand), #2aa6ff); color:#fff; font-weight:950; margin-right:8px; letter-spacing:-0.02em; box-shadow: 0 10px 22px rgba(11,99,255,.22); } /* Card */ .qna-card{ border:1px solid var(--q-line); background:#fff; border-radius: 20px; overflow:hidden; box-shadow: var(--q-shadow); } .qna-card__head{ padding:15px 15px 13px; border-bottom:1px solid rgba(0,0,0,.08); background: radial-gradient(900px 260px at 0% 0%, rgba(11,99,255,.10), transparent 55%), linear-gradient(135deg, rgba(255,255,255,1), rgba(0,0,0,.01)); } .qna-card__title{ margin:0; font-size: 16px; font-weight: 950; letter-spacing:-0.03em; color: var(--q-ink); } .qna-card__desc{ margin:7px 0 0; color: var(--q-muted); line-height: 1.65; font-weight: 650; } /* Form */ .qna-form{ padding:15px; } .qna-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:12px; } .qna-field--mt{ margin-top: 12px; } .qna-label{ display:flex; align-items:center; gap:6px; font-weight: 950; letter-spacing:-0.02em; color: var(--q-ink); } .qna-req{ color:#d14b4b; font-weight: 950; } .qna-sub{ color: rgba(0,0,0,.55); font-weight: 850; } /* Inputs */ .qna-input{ margin-top:8px; width:100%; height:46px; border-radius:16px; border:1px solid rgba(0,0,0,.10); background:#fff; padding:0 12px; font-weight:850; outline:none; transition: box-shadow .15s ease, border-color .15s ease, background .15s ease; } .qna-input:focus{ border-color: rgba(11,99,255,.30); box-shadow: 0 0 0 4px rgba(11,99,255,.12); } .qna-textarea{ margin-top:8px; width:100%; min-height: 180px; border-radius:16px; border:1px solid rgba(0,0,0,.10); background:#fff; padding:12px; font-weight:750; line-height:1.75; outline:none; resize: vertical; transition: box-shadow .15s ease, border-color .15s ease; } .qna-textarea:focus{ border-color: rgba(11,99,255,.30); box-shadow: 0 0 0 4px rgba(11,99,255,.12); } .qna-help{ margin-top:8px; color: rgba(0,0,0,.64); font-weight:650; line-height:1.55; } /* File */ .qna-file{ margin-top:8px; width:100%; height:46px; padding: 9px 10px; border-radius:16px; border:1px solid rgba(0,0,0,.10); background: rgba(0,0,0,.02); font-weight:850; } .qna-filelist{ margin-top:10px; display:flex; flex-direction:column; gap:7px; } .qna-filelist__item{ padding:9px 11px; border-radius:16px; border:1px solid rgba(11,99,255,.12); background: rgba(11,99,255,.05); font-weight:850; color: rgba(0,0,0,.76); } .qna-filelist__warn{ padding:10px 12px; border-radius:16px; border:1px dashed rgba(0,0,0,.20); background: rgba(0,0,0,.02); color: rgba(0,0,0,.68); font-weight:950; } /* Choice */ .qna-choice{ margin-top:10px; display:flex; flex-wrap:wrap; gap:10px 14px; align-items:center; } .qna-check, .qna-radio{ display:flex; align-items:center; gap:8px; font-weight:850; color: rgba(0,0,0,.78); } .qna-check input, .qna-radio input{ transform: translateY(1px); } /* Recap placeholder */ .qna-recap{ display:flex; align-items:center; justify-content:space-between; gap:10px; border:1px solid rgba(11,99,255,.14); background: radial-gradient(900px 240px at 0% 0%, rgba(11,99,255,.12), transparent 55%), linear-gradient(135deg, rgba(255,255,255,1), rgba(0,0,0,.01)); border-radius:18px; padding:12px; } .qna-recap__badge{ display:inline-flex; align-items:center; height:28px; padding:0 12px; border-radius:999px; background: rgba(0,0,0,.86); color:#fff; font-weight:950; } .qna-recap__text{ color: rgba(0,0,0,.70); font-weight:750; line-height:1.55; } /* Actions */ .qna-actions{ margin-top: 14px; display:flex; flex-direction:column; align-items:center; gap:10px; } .qna-btn{ display:inline-flex; align-items:center; justify-content:center; height:46px; padding:0 14px; border-radius:16px; text-decoration:none; font-weight:950; border:1px solid rgba(0,0,0,.10); background:#fff; color: rgba(0,0,0,.86); cursor:pointer; transition: transform .12s ease, box-shadow .12s ease, background .12s ease, border-color .12s ease; } .qna-btn:hover{ transform: translateY(-1px); box-shadow: 0 12px 26px rgba(0,0,0,.10); } .qna-btn--primary{ width:min(360px, 100%); background: linear-gradient(135deg, var(--q-brand), #2aa6ff); color:#fff; border-color: rgba(11,99,255,.18); } .qna-btn--ghost{ background: rgba(0,0,0,.02); } .qna-top__actions .qna-btn{ height:42px; } .qna-actions__note{ color: rgba(0,0,0,.58); font-weight:750; } /* Responsive */ @media (max-width: 960px){ .qna-top{ flex-direction:column; align-items:stretch; } .qna-grid{ grid-template-columns: 1fr; } } /* ========================================================= AUTH (Clean & Centered) - delete your old Auth Layout/Auth Forms block and paste this ========================================================= */ /* a11y */ .sr-only{ position:absolute!important; width:1px!important;height:1px!important; padding:0!important;margin:-1px!important; overflow:hidden!important;clip:rect(0,0,0,0)!important; white-space:nowrap!important;border:0!important; } /* page */ .auth-body{ background: radial-gradient(900px 380px at 10% -10%, rgba(11,99,255,.12), transparent 55%), radial-gradient(800px 320px at 90% -10%, rgba(255,199,0,.10), transparent 55%), #f6f8ff; min-height:100dvh; } /* ✅ 중앙 박스형 리듬 */ .auth-page{ padding: 40px 16px 72px; } @media (max-width: 960px){ .auth-page{ padding: 22px 12px 48px; } } /* wrapper */ .auth-wrap{ max-width: 520px; margin: 0 auto; } /* card */ .auth-card{ border: 1px solid rgba(0,0,0,.12) !important; background: #fff !important; border-radius: 18px !important; box-shadow: 0 14px 36px rgba(0,0,0,.10) !important; overflow: hidden; border-color: rgba(11,99,255,.18) !important; } /* head */ .auth-card__head{ padding: 20px 20px 14px; background: rgba(0,0,0,.02); border-bottom: 1px solid rgba(0,0,0,.08); } .auth-title{ margin:0; font-size: 20px; font-weight: 950; letter-spacing: -0.03em; color: rgba(0,0,0,.90); } .auth-desc{ margin: 8px 0 0; color: rgba(0,0,0,.62); font-weight: 650; line-height: 1.6; } /* body/foot padding */ .auth-card__body{ padding: 18px 20px 10px; } .auth-card__foot{ padding: 14px 20px 18px; border-top: 1px solid rgba(0,0,0,.08); background: rgba(0,0,0,.015); } @media (max-width: 480px){ .auth-card{ border-radius: 20px; } .auth-card__head{ padding: 16px 16px 12px; } .auth-card__body{ padding: 14px 16px 8px; } .auth-card__foot{ padding: 12px 16px 14px; } .auth-title{ font-size: 18px; } } /* ========================================================= AUTH FORM ========================================================= */ .auth-form{ display:flex; flex-direction:column; gap: 14px; } .auth-field{ display:flex; flex-direction:column; gap: 8px; } .auth-label{ font-weight: 900; letter-spacing:-0.02em; color: rgba(0,0,0,.86); display:flex; align-items:center; gap:8px; } .auth-label small{ font-weight:800; color: rgba(0,0,0,.52); } /* inputs */ .auth-input{ width:100%; height: 48px; border-radius: 14px; border: 1px solid rgba(0,0,0,.10); background: #fff; padding: 0 14px; font-weight: 800; outline:none; transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease; } .auth-input::placeholder{ color: rgba(0,0,0,.34); font-weight: 700; } .auth-input:focus{ border-color: rgba(11,99,255,.35); box-shadow: 0 0 0 4px rgba(11,99,255,.12); } .auth-row{ display:flex; align-items:center; justify-content:space-between; gap: 10px; flex-wrap:wrap; margin-top: 2px; } .auth-check{ display:flex; align-items:center; gap: 8px; font-weight: 800; color: rgba(0,0,0,.70); } .auth-check input{ transform: translateY(1px); } /* ✅ 링크 전용 줄 */ .auth-links-inline{ display:flex; align-items:center; gap: 8px; flex-wrap:wrap; } .auth-link{ text-decoration:none; font-weight: 900; color: rgba(0,0,0,.72); } .auth-link:hover{ color: rgba(11,99,255,.92); } .auth-dot{ color: rgba(0,0,0,.32); font-weight: 900; } /* actions */ .auth-actions{ display:flex; flex-direction:column; gap: 10px; margin-top: 6px; } .auth-btn{ height: 48px; border-radius: 14px; border: 1px solid rgba(0,0,0,.10); background: #fff; font-weight: 950; cursor:pointer; text-decoration:none; display:flex; align-items:center; justify-content:center; transition: transform .12s ease, box-shadow .12s ease, background .12s ease; } .auth-btn:hover{ transform: translateY(-1px); box-shadow: 0 14px 30px rgba(0,0,0,.10); } .auth-btn--primary{ background: linear-gradient(135deg, #0b63ff, #2aa6ff); color:#fff; border-color: rgba(11,99,255,.18); } .auth-btn--ghost{ background: rgba(0,0,0,.02); color: rgba(0,0,0,.86); } .auth-btn--ghost:hover{ background: rgba(0,0,0,.04); } .auth-help{ margin-top: 4px; font-size: 13px; color: rgba(0,0,0,.58); line-height: 1.6; font-weight: 650; } /* bottom links */ .auth-links{ display:flex; align-items:center; justify-content:center; gap: 10px; flex-wrap:wrap; } /* ========================================================= AUTH SHELL (left+right) ========================================================= */ .auth-shell{ max-width: 980px; /* 유지 */ margin: 0 auto; display: flex; /* grid -> flex 로 오버라이드 */ justify-content: center; } @media (max-width: 960px){ .auth-shell{ grid-template-columns: 1fr; } .auth-aside{ display:none; } } /* Left panel */ .auth-aside{ border: 1px solid rgba(0,0,0,.06); background: radial-gradient(900px 320px at 0% 0%, rgba(11,99,255,.10), transparent 60%), radial-gradient(700px 260px at 100% 0%, rgba(255,199,0,.10), transparent 60%), rgba(255,255,255,.70); border-radius: 22px; padding: 22px; box-shadow: 0 12px 30px rgba(0,0,0,.06); } .auth-aside__headline{ margin: 0; font-size: 22px; font-weight: 950; letter-spacing: -0.03em; color: rgba(0,0,0,.90); } .auth-aside__desc{ margin: 10px 0 0; color: rgba(0,0,0,.62); font-weight: 650; line-height: 1.7; } .auth-aside__bullets{ margin: 14px 0 0; padding-left: 18px; color: rgba(0,0,0,.72); font-weight: 700; line-height: 1.8; } .auth-aside__bullets b{ color: rgba(0,0,0,.88); } /* ========================================================= AUTH MINI HELP (under form) ========================================================= */ .auth-minihelp{ margin-top: 14px; border-top: 1px solid rgba(0,0,0,.06); padding-top: 12px; display:flex; flex-direction:column; gap: 8px; } .auth-minihelp__pill{ display:inline-flex; width: fit-content; height: 26px; align-items:center; padding: 0 10px; border-radius: 999px; background: rgba(11,99,255,.08); color: rgba(11,99,255,.92); font-weight: 900; } .auth-minihelp__text{ color: rgba(0,0,0,.62); font-weight: 650; line-height: 1.6; } .auth-minihelp__links{ display:flex; align-items:center; gap: 8px; flex-wrap:wrap; } .auth-minihelp__link{ text-decoration:none; font-weight: 900; color: rgba(0,0,0,.72); } .auth-minihelp__link:hover{ color: rgba(11,99,255,.92); } .auth-minihelp__dot{ color: rgba(0,0,0,.30); font-weight: 900; } /* ✅ Auth: Desktop에서만 +150px 넓게 */ @media (min-width: 961px){ .auth-container{ max-width: 410px !important; /* (기존 560px 기준 +150) */ } .auth-card__head, .auth-card__body, .auth-card__foot{ padding-left: 26px; padding-right: 26px; } .auth-page .auth-shell{ max-width: 410px; /* 기존보다 +150 정도로 조정 (560 -> 710 예시) */ width: 100%; margin: 0 auto; } .auth-page .auth-card{ max-width: 410px; width: 100%; } } /* ✅ Mobile은 기존 유지(혹시 덮였으면 안전하게) */ @media (max-width: 960px){ .auth-container{ max-width: 100% !important; } }