/*
Theme Name: WEBDOT
Theme URI:
Author:
Author URI:
Description: Custom blank theme with Tailwind CSS
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: webdot
*/

@import url("https://cdn.jsdelivr.net/gh/wanteddev/wanted-sans@v1.0.3/packages/wanted-sans/fonts/webfonts/variable/split/WantedSansVariable.min.css");
:root {
	--brand-color: #1D74FF;
}

/* Screen Reader Only - SEO 친화적 숨김 처리 */
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

* {
	letter-spacing: -0.03em;
}

.h2 {
	font-size: 46px;
	font-weight:700;
	letter-spacing: -2px;
	line-height: 1.3;
}

@media screen and (max-width:768px) {
	.h2 {
		font-size: 26px;
		letter-spacing: -1px;
	}
}

.brand {
	color: var(--brand-color);
}
.text-brand {
	color: var(--brand-color);
}

body {
	font-family: "Wanted Sans Variable", "Wanted Sans", -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif;
}

/* Fixed header 공간 확보 */
main {
	padding-top: 88px;
}

/* 메인 페이지에서는 헤더 공간 제거 (슬라이더가 전체화면) */
.main-page main {
	padding-top: 0;
}

/* 투명 헤더 (메인 페이지 초기 상태) */
.header-transparent {
	background: transparent;
	color: white;
	box-shadow: none;
}

.header-transparent a,
.header-transparent nav,
.header-transparent .menu-item a {
	color: white !important;
}

.header-transparent button {
	background: rgba(255, 255, 255, 0.2);
	backdrop-filter: blur(10px);
}

/* 스크롤 후 헤더 (흰색 배경) */
.header-scrolled {
	background: white !important;
	color: black !important;
	box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1) !important;
}

.header-scrolled a,
.header-scrolled nav,
.header-scrolled .menu-item a {
	color: black !important;
}

.header-scrolled button {
	background: var(--brand-color) !important;
}

/* 투명 헤더 로고 전환 */
.header-transparent .logo-white {
	display: block;
}
.header-transparent .logo-dark {
	display: none;
}

/* 투명 헤더 햄버거 아이콘 */
.header-transparent #hamburger {
	filter: none;
}

/* 스크롤 후 로고 전환 */
.header-scrolled .logo-white {
	display: none !important;
}
.header-scrolled .logo-dark {
	display: block !important;
}

/* 스크롤 후 햄버거 아이콘 원래대로 */
.header-scrolled #hamburger {
	filter: none;
}

.container {margin: 0 auto; max-width: 1280px !important; padding: 0 20px;}

/* Portfolio Slider */
.portfolio-slider {
	background: #1a1a1a;
}
.portfolio-slider .slide-bg {
}
.portfolio-slider .swiper-slide {
	position: relative;
}
.portfolio-slider .portfolio-card {
	transform: translateY(0);
	transition: transform 0.5s ease;
}
.portfolio-slider .swiper-slide-active .portfolio-card {
	animation: cardSlideIn 0.8s ease forwards;
}
@keyframes cardSlideIn {
	from {
		opacity: 0;
		transform: translateX(50px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

/* Progress Bar Animation */
.portfolio-slider .progress-bar {
	animation: progressFill 5s linear forwards;
}
.portfolio-slider .swiper-slide-active .progress-bar {
	animation: progressFill 5s linear forwards;
}
@keyframes progressFill {
	from { width: 0; }
	to { width: 100%; }
}

/* Brand Message Text Reveal */
.b_txt {
	color: rgba(255, 255, 255, 0.2);
	background: linear-gradient(to right, #fff, #fff) no-repeat;
	-webkit-background-clip: text;
	background-clip: text;
	background-size: 0%;
	transition: background-size cubic-bezier(.1,.5,.5,1) 0.5s;
}

/* Client Logo Slider */
.logo-slider-row {
	overflow: hidden;
}
.logo-track {
	display: flex;
	align-items: center;
	gap: 100px;
	width: max-content;
}
.logo-item {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
.logo-track-left {
	animation: scrollLeft 30s linear infinite;
}
.logo-track-right {
	animation: scrollRight 30s linear infinite;
}
@keyframes scrollLeft {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}
@keyframes scrollRight {
	0% { transform: translateX(-50%); }
	100% { transform: translateX(0); }
}

/* Bounce Slow Animation */
.animate-bounce-slow {
	animation: bounceSlow 2s ease-in-out infinite;
}
@keyframes bounceSlow {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-10px); }
}

/* ========================================
   Blog Detail Page Styles
   ======================================== */
.blog-detail {
	max-width: 720px;
	margin: 0 auto;
	padding: 0 20px;
}

.guide-content {
	max-width: 100%;
	padding: 0;
}

/* 제목 */
.blog-detail h1,
.guide-content h1 {
	font-size: 32px;
	font-weight: 700;
	line-height: 1.4;
	color: #111;
	margin-bottom: 16px;
	word-break: keep-all;
}

.blog-detail h2,
.guide-content h2 {
	font-size: 24px;
	font-weight: 600;
	line-height: 1.4;
	color: #111;
	margin-top: 48px;
	margin-bottom: 16px;
	word-break: keep-all;
}

.blog-detail h3,
.guide-content h3 {
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
	color: #111;
	margin-top: 32px;
	margin-bottom: 12px;
}

/* 본문 */
.blog-detail p,
.guide-content p {
	font-size: 17px;
	font-weight: 400;
	line-height: 1.6;
	color: #333d4b;
	margin-bottom: 24px;
	word-break: keep-all;
}

/* 강조 - 형광펜 효과 */
.blog-detail strong,
.guide-content strong {
	font-weight: 600;
	background-color: #fff3c4;
	padding: 2px 0;
}

/* 인용문 */
.blog-detail blockquote,
.guide-content blockquote {
	background: #f8f9fa;
	border-left: 4px solid var(--brand-color);
	padding: 20px 24px;
	margin: 32px 0;
	border-radius: 0 8px 8px 0;
}

.blog-detail blockquote p,
.guide-content blockquote p {
	margin-bottom: 0;
	color: #444;
}

/* 이미지 */
.blog-detail img,
.guide-content img {
	max-width: 100%;
	height: auto;
	border-radius: 12px;
	margin: 32px 0;
}

/* 리스트 */
.blog-detail ul,
.guide-content ul {
	margin: 24px 0;
	padding-left: 24px;
	list-style: disc;
}
.blog-detail ol,
.guide-content ol {
	margin: 24px 0;
	padding-left: 24px;
	list-style: decimal;
}

.blog-detail li,
.guide-content li {
	font-size: 17px;
	line-height: 1.8;
	color: #333;
	margin-bottom: 8px;
}

/* 링크 */
.blog-detail a,
.guide-content a {
	color: var(--brand-color);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.blog-detail a:hover,
.guide-content a:hover {
	text-decoration: none;
}

/* 구분선 */
.blog-detail hr,
.guide-content hr {
	border: none;
	border-top: 1px solid #e5e7eb;
	margin: 48px 0;
}

/* ========================================
   Blog Table Styles (토스페이먼츠 스타일)
   ======================================== */

/* 테이블 컨테이너 - 모바일 가로 스크롤 */
.blog-detail .table-wrapper,
.guide-content .table-wrapper {
	overflow-x: auto;
	margin: 32px 0;
	border-radius: 12px;
	border: 1px solid #e5e7eb;
}

.blog-detail table,
.guide-content table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
	line-height: 1.6;
}

/* 테이블 헤더 */
.blog-detail thead,
.guide-content thead {
	background: #f8f9fa;
}

.blog-detail th,
.guide-content th {
	padding: 16px 20px;
	font-weight: 600;
	color: #333d4b;
	text-align: left;
	border-bottom: 1px solid #e5e7eb;
	white-space: nowrap;
}

/* 테이블 바디 */
.blog-detail td,
.guide-content td {
	padding: 16px 20px;
	color: #4e5968;
	border-bottom: 1px solid #f1f3f5;
	vertical-align: top;
}

.blog-detail tbody tr:last-child td,
.guide-content tbody tr:last-child td {
	border-bottom: none;
}

/* 호버 효과 */
.blog-detail tbody tr:hover,
.guide-content tbody tr:hover {
	background: #fafbfc;
}

/* 첫 번째 컬럼 강조 (항목명) */
.blog-detail td:first-child,
.guide-content td:first-child {
	font-weight: 500;
	color: #333d4b;
}

/* 숫자/금액 우측 정렬 */
.blog-detail .text-right,
.guide-content .text-right,
.blog-detail td.num,
.guide-content td.num {
	text-align: right;
}

/* 중앙 정렬 */
.blog-detail .text-center,
.guide-content .text-center,
.blog-detail td.center,
.guide-content td.center {
	text-align: center;
}

/* 테이블 내 강조 텍스트 */
.blog-detail td strong,
.guide-content td strong {
	background: none;
	color: #111;
}

/* 테이블 내 링크 */
.blog-detail td a,
.guide-content td a {
	color: var(--brand-color);
	text-decoration: none;
}

.blog-detail td a:hover,
.guide-content td a:hover {
	text-decoration: underline;
}

/* 테이블 캡션 */
.blog-detail table caption,
.guide-content table caption {
	caption-side: bottom;
	padding: 12px 20px;
	font-size: 13px;
	color: #8b95a1;
	text-align: left;
	background: #fafbfc;
	border-top: 1px solid #f1f3f5;
}

/* ===== 테이블 변형 스타일 ===== */

/* 비교 테이블 - 컬럼 구분선 */
.blog-detail .table-compare td,
.blog-detail .table-compare th,
.guide-content .table-compare td,
.guide-content .table-compare th {
	border-right: 1px solid #f1f3f5;
}

.blog-detail .table-compare td:last-child,
.blog-detail .table-compare th:last-child,
.guide-content .table-compare td:last-child,
.guide-content .table-compare th:last-child {
	border-right: none;
}

/* 컴팩트 테이블 */
.blog-detail .table-compact th,
.blog-detail .table-compact td,
.guide-content .table-compact th,
.guide-content .table-compact td {
	padding: 12px 16px;
	font-size: 14px;
}

/* 스트라이프 테이블 */
.blog-detail .table-striped tbody tr:nth-child(even),
.guide-content .table-striped tbody tr:nth-child(even) {
	background: #fafbfc;
}

.blog-detail .table-striped tbody tr:hover,
.guide-content .table-striped tbody tr:hover {
	background: #f1f3f5;
}

/* 상태 뱃지 (테이블 내 사용) */
.blog-detail td .badge,
.guide-content td .badge {
	display: inline-block;
	padding: 4px 10px;
	font-size: 13px;
	font-weight: 500;
	border-radius: 4px;
}

.blog-detail td .badge-blue,
.guide-content td .badge-blue {
	background: #e8f4ff;
	color: var(--brand-color);
}

.blog-detail td .badge-green,
.guide-content td .badge-green {
	background: #e6f9ed;
	color: #059669;
}

.blog-detail td .badge-orange,
.guide-content td .badge-orange {
	background: #fff8f0;
	color: #d97706;
}

.blog-detail td .badge-gray,
.guide-content td .badge-gray {
	background: #f1f3f5;
	color: #6b7684;
}

/* 반응형 */
@media screen and (max-width: 768px) {
	.blog-detail .table-wrapper,
	.guide-content .table-wrapper {
		margin: 24px -20px;
		border-radius: 0;
		border-left: none;
		border-right: none;
	}

	.blog-detail table,
	.guide-content table {
		font-size: 14px;
		min-width: 500px;
	}

	.blog-detail th,
	.blog-detail td,
	.guide-content th,
	.guide-content td {
		padding: 14px 16px;
	}

	.blog-detail .table-compact th,
	.blog-detail .table-compact td,
	.guide-content .table-compact th,
	.guide-content .table-compact td {
		padding: 10px 12px;
		font-size: 13px;
	}
}

/* ========================================
   Blog Content Box Styles (토스페이먼츠 스타일)
   ======================================== */

/* 도입 박스 - "이 글을 읽으면" */
.blog-detail .intro-box,
.guide-content .intro-box {
	background: #f8f9fa;
	border-radius: 12px;
	padding: 12px 16px;
	margin: 32px 0;
}
.blog-detail .intro-box p,
.guide-content .intro-box p {
	margin-bottom: 0;
	color: #4e5968;
}

/* 용어 설명 박스 */
.blog-detail .term-box,
.guide-content .term-box {
	background: #f8f9fa;
	border-radius: 16px;
	padding: 28px 32px;
	margin: 32px 0;
}
.blog-detail .term-box-title,
.guide-content .term-box-title {
	font-size: 18px;
	font-weight: 700;
	color: #111;
	margin-bottom: 16px;
	display: flex;
	align-items: center;
	gap: 8px;
}
.blog-detail .term-box p,
.guide-content .term-box p {
	margin-bottom: 16px;
	color: #4e5968;
}
.blog-detail .term-box p:last-child,
.guide-content .term-box p:last-child {
	margin-bottom: 0;
}
.blog-detail .term-box ul,
.guide-content .term-box ul {
	margin: 16px 0 0 0;
}
.blog-detail .term-box li,
.guide-content .term-box li {
	color: #4e5968;
	margin-bottom: 6px;
}
.blog-detail .term-box .source,
.guide-content .term-box .source {
	font-size: 14px;
	color: #8b95a1;
	margin-top: 16px;
}

/* 팁/인사이트 박스 */
.blog-detail .tip-box,
.guide-content .tip-box {
	background: linear-gradient(135deg, #e8f4ff 0%, #f0f7ff 100%);
	border-radius: 12px;
	padding: 20px 28px;
	margin: 32px 0;
}
.blog-detail .tip-box-title,
.guide-content .tip-box-title {
	font-size: 16px;
	font-weight: 700;
	color: var(--brand-color);
	margin-bottom: 12px;
	display: flex;
	align-items: center;
	gap: 8px;
}
.blog-detail .tip-box p,
.guide-content .tip-box p {
	margin-bottom: 0;
	color: #333d4b;
}

/* 주의사항 박스 */
.blog-detail .warning-box,
.guide-content .warning-box {
	background: #fff8f0;
	border-radius: 12px;
	padding: 24px 28px;
	margin: 32px 0;
}
.blog-detail .warning-box-title,
.guide-content .warning-box-title {
	font-size: 16px;
	font-weight: 700;
	color: #d97706;
	margin-bottom: 12px;
	display: flex;
	align-items: center;
	gap: 8px;
}
.blog-detail .warning-box p,
.guide-content .warning-box p {
	margin-bottom: 0;
	color: #78350f;
}

/* CTA 박스 */
.blog-detail .cta-box,
.guide-content .cta-box {
	text-align: center;
	margin: 48px 0;
}
.blog-detail .cta-box a,
.guide-content .cta-box a {
	display: inline-block;
	background: var(--brand-color);
	color: #fff !important;
	padding: 16px 48px;
	border-radius: 50px;
	font-size: 16px;
	font-weight: 600;
	text-decoration: none;
	transition: all 0.2s ease;
}
.blog-detail .cta-box a:hover,
.guide-content .cta-box a:hover {
	background: #1560d9;
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(29, 116, 255, 0.3);
}

/* 아티클 푸터 */
.blog-detail .article-footer,
.guide-content .article-footer {
	margin-top: 48px;
	padding-top: 32px;
	border-top: 1px solid #e5e7eb;
}
.blog-detail .article-footer .meta,
.guide-content .article-footer .meta {
	font-size: 15px;
	color: #6b7684;
	margin-bottom: 8px;
}
.blog-detail .article-footer .source,
.guide-content .article-footer .source {
	font-size: 14px;
	color: #8b95a1;
	margin-bottom: 32px;
}
.blog-detail .article-footer .copyright,
.guide-content .article-footer .copyright {
	font-size: 13px;
	color: #8b95a1;
	line-height: 1.6;
	margin-top: 32px;
}

/* 반응형 */
@media screen and (max-width: 768px) {
	.blog-detail h1,
	.guide-content h1 {
		font-size: 26px;
	}
	.blog-detail h2,
	.guide-content h2 {
		font-size: 20px;
		margin-top: 36px;
	}
	.blog-detail h3,
	.guide-content h3 {
		font-size: 18px;
	}
	.blog-detail p,
	.blog-detail li,
	.guide-content p,
	.guide-content li {
		font-size: 16px;
	}

	/* 박스 반응형 */
	.blog-detail .intro-box,
	.blog-detail .term-box,
	.blog-detail .tip-box,
	.blog-detail .warning-box,
	.guide-content .intro-box,
	.guide-content .term-box,
	.guide-content .tip-box,
	.guide-content .warning-box {
		padding: 20px 20px;
		border-radius: 10px;
	}
	.blog-detail .term-box,
	.guide-content .term-box {
		padding: 24px 20px;
	}
	.blog-detail .term-box-title,
	.guide-content .term-box-title {
		font-size: 16px;
	}
	.blog-detail .cta-box a,
	.guide-content .cta-box a {
		padding: 14px 36px;
		font-size: 15px;
	}
}

/* ===== Mobile GNB Styles ===== */
.mobile-gnb-nav {
	padding: 0 20px;
}

.mobile-gnb-item {
	border-bottom: 1px solid #f1f3f5;
}

.mobile-gnb-toggle,
.mobile-gnb-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 24px 0;
	font-size: 22px;
	font-weight: 700;
	color: #191F28;
	background: none;
	border: none;
	cursor: pointer;
	text-align: left;
	text-decoration: none;
}

.mobile-gnb-toggle.active {
	color: var(--brand-color);
}

.mobile-gnb-icon {
	width: 24px;
	height: 24px;
	color: #ADB5BD;
	transition: transform 0.3s ease;
}

.mobile-gnb-toggle.active .mobile-gnb-icon {
	color: var(--brand-color);
}

.mobile-gnb-toggle.active .mobile-gnb-icon .vertical-line {
	opacity: 0;
}

.mobile-gnb-submenu {
	display: none;
	background: #F8F9FA;
	margin: 0 -20px;
	padding: 16px 20px 24px;
}

.mobile-gnb-submenu.open {
	display: block;
}

.mobile-gnb-submenu a {
	display: block;
	padding: 16px 0;
	font-size: 18px;
	font-weight: 600;
	color: #495057;
	text-decoration: none;
}

.mobile-gnb-submenu a:hover {
	color: var(--brand-color);
}

/* Close button positioning */
#gnb #close {
	position: fixed;
	top: 24px;
	right: 20px;
	z-index: 100;
}

/* ========================================
   Guide - Code Block Styles
   ======================================== */
.blog-detail pre,
.guide-content pre {
	background: #1e293b;
	color: #e2e8f0;
	border-radius: 12px;
	padding: 20px 24px;
	margin: 32px 0;
	overflow-x: auto;
	font-size: 14px;
	line-height: 1.7;
	font-family: 'SF Mono', 'Fira Code', 'Fira Mono', Menlo, Consolas, monospace;
}

.blog-detail pre code,
.guide-content pre code {
	background: none;
	padding: 0;
	font-size: inherit;
	color: inherit;
	border-radius: 0;
}

.blog-detail code,
.guide-content code {
	background: #f1f3f5;
	color: #e11d48;
	padding: 2px 6px;
	border-radius: 4px;
	font-size: 0.9em;
	font-family: 'SF Mono', 'Fira Code', 'Fira Mono', Menlo, Consolas, monospace;
}

/* ========================================
   Guide - Sidebar Styles
   ======================================== */
.guide-sidebar::-webkit-scrollbar {
	width: 4px;
}

.guide-sidebar::-webkit-scrollbar-track {
	background: transparent;
}

.guide-sidebar::-webkit-scrollbar-thumb {
	background: #e5e7eb;
	border-radius: 4px;
}

.guide-sidebar::-webkit-scrollbar-thumb:hover {
	background: #d1d5db;
}