/*
Theme Name: Dream Tour Theme
Theme URI: https://usdreamtour.net/
Author: Dream Tour
Description: Custom theme for Dream Tour
Version: 1.1
Text Domain: dreamtour-theme
*/

/* =========================
   Global
========================= */

/* =========================
   Global
========================= */
/* ==========================================================
   ✨ 드림투어 메인 웹 폰트 (로컬 서버 연결) ✨
========================================================== */
/* 1. 폰트 불러오기 (Pretendard & Noto Sans KR) */
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable.min.css");
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&display=swap');

/* 2. 사이트 전체 글로벌 적용 */
html, body, button, input, select, textarea {
    font-family: "Pretendard Variable", Pretendard, "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif !important;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    letter-spacing: -0.02em; /* 💡 세련됨의 한 끗 차이인 자간 조절 */
    color: #334155; /* 💡 눈이 편안한 딥 그레이 블랙 */
}

/* 3. 제목 요소들을 더 묵직하고 세련되게 */
h1, h2, h3, h4, h5, h6 {
    font-weight: 700 !important;

}
ul,
ol {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-content,
.content-area,
.content-container,
.kb-site-content,
.kadence-wrap,
.entry-content-wrap,
.site-main,
.content-wrap,
#inner-wrap,
#primary,
main[role="main"] {
	overflow: visible !important;
	transform: none !important;
}

/* ==========================================================
   ✨ 웹사이트 전체 폰트 색상 최적화 (눈이 편안한 세련된 블랙) ✨
========================================================== */

/* 1. 기본 본문 글씨 (완전 까만색이 아닌, 아주 짙고 부드러운 다크 그레이) */
body, p, span, a, li, div {
    color: #334155; /* 세련되고 눈이 편안한 슬레이트 그레이 */
}

/* 2. 제목 및 강조 글씨 (단단하고 무게감 있는 딥 블랙) */
h1, h2, h3, h4, h5, h6, strong, b, .home-section-title {
    color: #0f172a !important; /* 시선을 확 끄는 진한 블랙 */
}

/* 3. 예외 처리: 흰색 글씨가 필요한 곳(버튼, 배너, 뱃지 등)은 유지되도록 보호 */
.home-full-banner h3, 
.home-full-banner p, 
.tag-pill, 
.home-btn, 
.split-caption h3, 
.split-caption p,
.banner-action-btn,
.mobile-icon-btn svg,
.review-content p {
    color: inherit; 
}

/* =========================
   Dream Tour Header
========================= */

.site-header {
	background: #fff;
	border-bottom: 1px solid #ececec;
	position: relative;
	z-index: 100;
}

.sub-header-bar {
	border-bottom: 1px solid #f1f1f1;
	background: #fff;
}

.sub-header-inner,
.header-inner,
.gnb-inner,
.mobile-header-top,
.mobile-header-bottom,
.mobile-drawer-inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 20px;
}

/* Top bar */

.sub-header-inner {
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

.sub-header-tagline {
	margin: 0;
	font-size: 13px;
	color: #9a9a9a;
	font-weight: 300;
	white-space: nowrap;
}

.sub-header-right {
	display: flex;
	/* align-items: center; */
	gap: 20px;
}

.sub-header-link,
.sub-header-menu a {
	text-decoration: none;
	font-size: 14px;
	color: #555;
	font-weight: 600;
}

.sub-header-link:hover,
.sub-header-menu a:hover {
	color: #1565d8;
}

.sub-header-menu {
	display: flex;
	align-items: center;
	gap: 20px;
}

.sub-header-menu li {
	margin: 0;
	padding: 0;
}

/* Main header */

.desktop-header-wrap {
	display: block;
}

.header-inner {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr) auto;
	align-items: center;
	gap: 20px;
	min-height: 92px;
}

.logo-wrapper {
	display: flex;
	align-items: center;
}

.site-logo {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}

.site-logo img,
.custom-logo {
	max-height: 52px;
	width: auto;
	display: block;
}

.site-branding__text {
	font-size: 26px;
	font-weight: 800;
	color: #1565d8;
	line-height: 1;
}

.header-center {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}

.header-search {
	flex: 1;
	min-width: 0;
}

.header-search-form {
	display: flex;
	align-items: center;
	border: 1px solid #dddddd;
	border-radius: 999px;
	background: #fff;
	padding: 6px;
	max-width: 520px;
	width: 100%;
}

.header-search-input {
	flex: 1;
	min-width: 0;
	border: 0;
	outline: none;
	background: transparent;
	padding: 0 18px;
	height: 38px;
	font-size: 16px;
	color: #222;
}

.header-search-input::placeholder {
	color: #9a9a9a;
}

.header-search-btn {
	border: 0;
	background: #111;
	color: #fff;
	font-size: 15px;
	font-weight: 800;
	height: 38px;
	padding: 0 22px;
	border-radius: 999px;
	cursor: pointer;
	white-space: nowrap;
}

/* .header-hot {
	display: flex;
	align-items: center;
	gap: 8px;
	white-space: nowrap;
}

.hot-label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 52px;
	height: 30px;
	padding: 0 12px;
	border: 2px solid #2f73d9;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 800;
	line-height: 1;
	color: #2f73d9;
	background: #fff;
	box-sizing: border-box;
}

.hot-item {
	text-decoration: none;
	font-size: 15px;
	font-weight: 600;
	color: #444;
}

.hot-item:hover {
	color: #1565d8;
} */

.header-consult {
	display: flex;
	align-items: center;
	gap: 8px;
}

.header-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 40px;
	padding: 0 18px;
	border-radius: 10px;
	text-decoration: none;
	font-size: 14px;
	font-weight: 800;
	white-space: nowrap;
	transition: all 0.2s ease;
}

.consult-live {
	background: #fae100;
	color: #111;
}

.consult-live:hover {
	filter: brightness(0.97);
}

.consult-mice {
	background: #0d1730;
	color: #fff;
}

.consult-mice:hover {
	background: #162444;
}

/* GNB */

.gnb-bar {
	border-top: 1px solid #ececec;
	border-bottom: 1px solid #ececec;
	background: #fff;
}

.gnb-inner {
	min-height: 62px;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
}

.main-nav,
.nav-list,
.nav-list > li,
.gnb-bar,
.gnb-inner {
	overflow: visible;
}

.main-nav {
	width: 100%;
}

.nav-list,
.nav-list ul,
.nav-list li,
.mobile-nav-list,
.mobile-nav-list ul,
.mobile-nav-list li {
	list-style: none !important;
	margin: 0;
	padding: 0;
}

.nav-list {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
}

.nav-list > li {
	position: relative;
	margin: 0;
	padding: 0;
}

.nav-list > li > a {
	text-decoration: none;
	font-size: 16px;
	font-weight: 700;
	color: #333;
	line-height: 1;
	padding: 22px 22px;
	display: inline-flex;
	align-items: center;
}

.nav-list > li > a:hover,
.nav-list > li.current-menu-item > a,
.nav-list > li.current_page_item > a {
	color: #1565d8;
}

/* Desktop dropdown arrow */

.nav-list > li.menu-item-has-children > a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.nav-list > li.menu-item-has-children > a::after {
    content: "";
    font-size: 12px;
    margin-left: 6px;
    line-height: 1;
}

/* Dropdown menu */

.nav-list .sub-menu {
	margin: 0;
	padding: 8px 0;
	position: absolute;
	top: calc(100%+8px);
	left: 0%;
    transform: none;
    min-width: 150px;
	background: #fff;
	border: 1px solid #e9e9e9;
	border-radius: 14px;
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
	opacity: 0;
	visibility: hidden;
	transition: all 0.18s ease;
	z-index: 999;
}

.nav-list .sub-menu li {
	margin: 0;
	padding: 0;
	width: 100%;
}

.nav-list .sub-menu a {
	display: block;
	width: 100%;
	padding: 11px 18px;
	font-size: 14px;
	font-weight: 600;
	color: #333;
	text-decoration: none;
	line-height: 1.5;
	white-space: nowrap;
}

.nav-list .sub-menu a:hover {
	background: #f6f9ff;
	color: #1565d8;
}

/* 현재 페이지 */
.nav-list .sub-menu .current-menu-item > a {
	color: #1565d8;
}

.nav-list > li:hover > .sub-menu,
.nav-list > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	top: calc(100% + 6px);
}

/* Desktop hamburger hidden */

.menu-toggle {
	display: none;
}

/* Mobile */

.mobile-header {
	display: none;
}

.mobile-menu-toggle,
.menu-toggle {
	width: 42px;
	height: 42px;
	border: 0;
	background: transparent;
	padding: 0;
	cursor: pointer;
}

.mobile-menu-toggle span,
.menu-toggle span {
	display: block;
	width: 24px;
	height: 2px;
	background: #222;
	margin: 5px auto;
	border-radius: 999px;
}

.mobile-header-top {
	min-height: 68px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.mobile-logo {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}

.mobile-logo img,
.mobile-logo .custom-logo {
	max-height: 44px;
	width: auto;
	display: block;
}

.mobile-consult-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 38px;
	padding: 0 14px;
	border-radius: 10px;
	background: #0d1730;
	color: #fff;
	text-decoration: none;
	font-size: 13px;
	font-weight: 800;
	white-space: nowrap;
}

.mobile-header-bottom {
	min-height: 52px;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	border-top: 1px solid #f1f1f1;
}

.mobile-drawer {
	display: none;
	border-top: 1px solid #ececec;
	background: #fff;
}

.mobile-drawer.is-open {
	display: block;
}

.mobile-drawer-inner {
	padding-top: 8px;
	padding-bottom: 16px;
}

.mobile-nav-list,
.mobile-nav-list .sub-menu {
	margin: 0;
	padding: 0;
}

.mobile-nav-list > li {
	border-bottom: 1px solid #f3f3f3;
}

.mobile-nav-list > li > a {
	display: block;
	padding: 14px 0;
	text-decoration: none;
	color: #222;
	font-size: 15px;
	font-weight: 700;
}

.mobile-nav-list .menu-item-has-children > a {
	position: relative;
	padding-right: 24px;
}

.mobile-nav-list .menu-item-has-children > a::after {
	content: "";
	position: absolute;
	right: 4px;
	top: 50%;
	width: 7px;
	height: 7px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-60%) rotate(45deg);
}

.mobile-nav-list .sub-menu {
	display: none;
	padding-bottom: 10px;
}

.mobile-nav-list .menu-item-has-children.is-open > .sub-menu {
	display: block;
}

.mobile-nav-list .sub-menu li a {
	display: block;
	padding: 10px 0 10px 14px;
	text-decoration: none;
	color: #555;
	font-size: 14px;
	font-weight: 600;
}

/* Main area */

.site-main {
	min-height: 60vh;
}

/* Tablet */

@media (max-width: 1200px) {
	.header-inner {
		grid-template-columns: 220px minmax(0, 1fr);
		gap: 16px;
		min-height: 84px;
	}

	.header-consult {
		grid-column: 1 / -1;
		justify-content: flex-end;
		margin-top: -4px;
		padding-bottom: 12px;
	}

	.nav-list {
		gap: 20px;
	}

	.nav-list > li > a {
		font-size: 15px;
	}
}

/* Mobile */

@media (max-width: 768px) {
	.sub-header-bar,
	.desktop-header-wrap {
		display: none;
	}

	.mobile-header {
		display: block;
		background: #fff;
		border-bottom: 1px solid #ececec;
	}

	.mobile-header-top,
	.mobile-header-bottom,
	.mobile-drawer-inner {
		padding-left: 14px;
		padding-right: 14px;
	}
}

/* =========================
   Dream Tour Footer
========================= */

.site-footer {
	background: #0d1730;
	color: #e5e7eb;
	margin-top: 0px;
}

.footer-top {
	padding: 56px 0 40px;
}

.footer-inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 20px;
}

.footer-top .footer-inner {
	display: grid;
	grid-template-columns: 1.4fr 0.8fr 1fr;
	gap: 48px;
}

.footer-col {
	min-width: 0;
}

.footer-logo {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	margin-bottom: 18px;
}

.footer-logo img,
.footer-logo .custom-logo {
	max-height: 54px;
	width: auto;
	display: block;
}

.footer-brand{
    display:flex;
    flex-direction:column;
    height:100%;
}

.footer-brand-text {
	font-size: 26px;
	font-weight: 800;
	color: #fff;
}

.footer-desc {
	margin: 0;
	font-size: 15px;
	line-height: 1.9;
	color: rgba(255, 255, 255, 0.72);
	max-width: 460px;
}

.footer-title,
.footer-sub-title {
	margin: 0 0 18px;
	font-size: 18px;
	font-weight: 700;
	color: #fff;
}

.footer-links,
.footer-contact {
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-links li,
.footer-contact li {
	margin-bottom: 12px;
	font-size: 15px;
	line-height: 1.8;
	color: rgba(255, 255, 255, 0.78);
}

.footer-links a {
	color: rgba(255, 255, 255, 0.78);
	text-decoration: none;
	transition: color 0.2s ease;
}

.footer-links a:hover {
	color: #fff;
}

.footer-contact strong {
	color: #fff;
	font-weight: 700;
	margin-right: 8px;
}

/* partners */
.footer-partners {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding: 28px 0;
}

.footer-partner-logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
    justify-content: center;
	gap: 18px;
}

.footer-partner-logo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 120px;
	min-height: 80px;
	padding: 8px 16px;
	background: transparent;
	border-radius: 0;
	text-decoration: none;
}

.footer-partner-logo img {
	max-width: 120px;
	max-height: 40px;
	width: auto;
	height: auto;
	display: block;
    opacity: 0.9;
}

.footer-partner-logo img:hover {
	opacity: 1;
}

/* social */
.footer-social {
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	padding: 24px 0;
}

.footer-social-inner {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 20px;
}

.footer-social-links {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.footer-social-links a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 40px;
	padding: 0 16px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 999px;
	color: #fff;
	text-decoration: none;
	font-size: 14px;
	font-weight: 700;
	transition: all 0.2s ease;
}

.footer-social-links a:hover {
	background: rgba(255, 255, 255, 0.08);
}

/* bottom */
.footer-bottom {
	/* border-top: 1px solid rgba(255, 255, 255, 0.1); */
	padding: 18px 0;
}

.footer-bottom-inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
}

.footer-copy {
	margin: 0;
	font-size: 14px;
	color: rgba(255, 255, 255, 0.58);
}

/* tablet */
@media (max-width: 1024px) {
	.footer-top .footer-inner {
		grid-template-columns: 1fr 1fr;
		gap: 32px;
	}

	.footer-brand {
		grid-column: 1 / -1;
	}

	.footer-social-inner {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* mobile */
@media (max-width: 768px) {
	.site-footer {
		margin-top: 0px;
	}

	.footer-top {
		padding: 42px 0 28px;
	}

	.footer-inner {
		padding: 0 14px;
	}

	.footer-top .footer-inner {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.footer-logo img,
	.footer-logo .custom-logo {
		max-height: 48px;
	}

	.footer-title,
	.footer-sub-title {
		font-size: 17px;
		margin-bottom: 12px;
	}

	.footer-desc,
	.footer-links li,
	.footer-contact li {
		font-size: 14px;
	}

	.footer-partner-logos {
		display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 28px;
	}

	.footer-partner-logo {
		min-width: 100px;
		min-height: 54px;
		padding: 10px 12px;
	}

	.footer-partner-logo img {
		max-width: 100px;
		max-height: 28px;
	}

	.footer-social-links {
		gap: 10px;
	}

	.footer-social-links a {
		height: 38px;
		font-size: 13px;
		padding: 0 14px;
	}

	.footer-bottom-inner {
		flex-direction: column;
		align-items: flex-start;
	}

	.footer-copy {
		font-size: 13px;
	}
}

.footer-logo-white img {
	max-height: 56px;
	width: auto;
	display: block;
}

.footer-map-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 12px;
	height: 40px;
	padding: 0 16px;
	border: 1px solid rgba(255,255,255,0.18);
	border-radius: 999px;
	color: #fff;
	text-decoration: none;
	font-size: 14px;
	font-weight: 700;
	transition: all 0.2s ease;
}

.footer-map-link:hover {
	background: rgba(255,255,255,0.08);
}

@media (max-width: 768px) {
	.footer-logo-white img {
		max-height: 48px;
	}

	.footer-map-link {
		height: 38px;
		font-size: 13px;
		padding: 0 14px;
	}
}

.footer-top-bar{
border-bottom:1px solid rgba(255,255,255,0.08);
padding:14px 0;
}

.footer-top-bar-inner{
display:flex;
justify-content:space-between;
align-items:center;
}

/* 법적 링크 */

.footer-legal-links{
display:flex;
gap:10px;
font-size:13px;
color:rgba(255,255,255,0.6);
}

.footer-legal-links a{
color:rgba(255,255,255,0.6);
text-decoration:none;
}

.footer-legal-links a:hover{
color:#fff;
}

.footer-legal-sep{
opacity:0.4;
}

/* SNS */

.footer-social-links{
display:flex;
gap:14px;
}

.footer-social-links a{
font-size:13px;
color:rgba(255,255,255,0.7);
text-decoration:none;
}

.footer-social-links a:hover{
color:#fff;
}


/* =========================
   Dream Tour Home
========================= */

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

.home-section {
    padding-top: 60px !important; 
    padding-bottom: 60px !important;
}

.home-section-head {
	text-align: center;
	margin-bottom: 38px;
}

/* 2. 헤더 영역 반응형 정밀 조정 */
.home-section-head-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    width: 100%;
    box-sizing: border-box;
}

.home-section-kicker {
	margin: 0 0 10px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #1565d8;
}

/* ✨ 추천 상품 섹션: 파란색 소제목(Kicker) 왼쪽 정렬 ✨ */
.home-featured-section .home-section-head-row {
    text-align: left !important; /* 👈 중앙 정렬을 무시하고 왼쪽으로 붙임 */
}

.home-featured-section .home-section-kicker {
    margin-left: 0 !important;
    display: block; /* 줄 전체를 차지하게 해서 확실히 왼쪽 정렬 */
}

/* 태블릿/모바일에서도 일관되게 왼쪽 정렬 유지 */
@media (max-width: 1024px) {
    .home-featured-section .home-section-head-row {
        text-align: left !important;
        align-items: flex-start !important;
    }
}

.home-section-title {
	margin: 0;
	font-size: 38px;
	line-height: 1.25;
	font-weight: 800;
	color: #111827;
}

.home-more-link {
	font-size: 15px;
	font-weight: 700;
	color: #1565d8;
	text-decoration: none;
	white-space: nowrap;
}

/* Hero */

.home-hero {
	position: relative;
	min-height: 640px;
	background-size: cover;
	background-position: center;
	display: flex;
	align-items: center;
	overflow: hidden;
}

.home-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(7, 21, 51, 0.82) 0%, rgba(7, 21, 51, 0.55) 45%, rgba(7, 21, 51, 0.18) 100%);
}

.home-hero-inner {
	position: relative;
	z-index: 2;
	width: 100%;
}

.home-hero-content {
	max-width: 720px;
	color: #fff;
	padding: 60px 0;
}

.home-hero-kicker {
	margin: 0 0 14px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.82);
}

.home-hero-title {
	margin: 0 0 20px;
	font-size: 56px;
	line-height: 1.15;
	font-weight: 800;
	letter-spacing: -0.03em;
}

.home-hero-text {
	margin: 0;
	max-width: 620px;
	font-size: 18px;
	line-height: 1.8;
	color: rgba(255,255,255,0.86);
}

.home-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 30px;
}

.home-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 148px;
	height: 52px;
	padding: 0 22px;
	border-radius: 999px;
	text-decoration: none;
	font-size: 15px;
	font-weight: 800;
	transition: all 0.2s ease;
}

.home-btn-primary {
	background: #1565d8;
	color: #fff;
}

.home-btn-primary:hover {
	background: #0f56bc;
}

.home-btn-secondary {
	background: rgba(255,255,255,0.12);
	color: #fff;
	border: 1px solid rgba(255,255,255,0.25);
}

.home-btn-secondary:hover {
	background: rgba(255,255,255,0.18);
}

/* Categories */

.home-category-section {
	background: #fff;
}

/* ✨ 카테고리 그리드: PC 버전 6개 1줄 배치 ✨ */
.home-category-grid {
    display: grid !important;
    grid-template-columns: repeat(6, 1fr) !important; 
    gap: 16px;
    overflow: visible !important; /* 슬라이드 기능 완전 해제 */
}

.home-category-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid #e8edf5;
    border-radius: 16px;
    padding: 20px 10px; /* 💡 콤팩트한 패딩 */
    text-decoration: none;
    text-align: center;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.04);
    transition: all 0.2s ease;
}

.home-category-card:hover {
    transform: translateY(-4px);
    border-color: #1565d8;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
}

.home-category-icon {
    font-size: 28px; /* 💡 아이콘 크기 최적화 */
    margin-bottom: 10px;
}

.home-category-name {
    font-size: 20px; /* 💡 제목 폰트 조절 */
    font-weight: 700;
    color: #111827;
    white-space: nowrap; /* 💡 글자 줄바꿈 방지 */
}



/* 2. 태블릿 구간 (1024px ~ 601px): 3개씩 두 줄 배치 💡 */
@media (max-width: 1024px) {
    .home-category-grid {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important; /* 💡 3개씩 배치 */
        grid-template-rows: auto auto; /* 💡 2줄 구성 */
        gap: 12px;
        overflow: visible !important;
    }

    .home-category-card {
        padding: 18px 8px !important;
        flex: none !important; /* 가로 스크롤용 설정 해제 */
        width: auto !important;
    }

    .home-category-icon {
        font-size: 26px;
        margin-bottom: 8px;
    }

    
}

/* 3. 초소형 모바일 (480px 이하): 폰트 및 여백 추가 축소 💡 */
@media (max-width: 480px) {
    .home-category-grid {
        gap: 8px; /* 간격을 더 좁혀서 공간 확보 */
    }

    .home-category-card {
        padding: 15px 5px !important;
        border-radius: 12px !important;
    }

    .home-category-icon {
        font-size: 22px;
        margin-bottom: 6px;
    }

    .home-category-name {
        font-size: 16px !important; /* 💡 아주 작은 화면에 맞춰 폰트 더 축소 */
        letter-spacing: -0.03em; /* 자간을 줄여 가독성 유지 */
    }
}

/* Featured tours */

.home-featured-section {
	background: #f8fafc;
}

.home-tour-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
}

.home-tour-card {
	display: block;
	background: #fff;
	border: 1px solid #e8edf3;
	border-radius: 26px;
	overflow: hidden;
	text-decoration: none;
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.05);
	transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
}

.home-tour-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 18px 42px rgba(15, 23, 42, 0.12);
	border-color: #d7e3f5;
}

.home-tour-thumb {
	position: relative;
	aspect-ratio: 1.28 / 1;
	background: #eef2f7;
	overflow: hidden;
}

.home-tour-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.5s ease;
}

.home-tour-card:hover .home-tour-thumb img {
	transform: scale(1.04);
}

.home-tour-noimage {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #6b7280;
	font-size: 14px;
	font-weight: 700;
}

.home-tour-badge {
	position: absolute;
	top: 18px;
	left: 18px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 13px;
	border-radius: 999px;
	background: rgba(11, 23, 48, 0.82);
	backdrop-filter: blur(6px);
	color: #fff;
	font-size: 12px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0.01em;
}

.home-tour-body {
	padding: 24px 24px 22px;
}

.home-tour-meta {
	display: inline-flex;
	align-items: center;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #1565d8;
	margin-bottom: 12px;
}

.home-tour-title {
	margin: 0 0 10px;
	font-size: 25px;
	line-height: 1.32;
	font-weight: 800;
	color: #111827;
	letter-spacing: -0.02em;
}

.home-tour-text {
	margin: 0;
	font-size: 15px;
	line-height: 1.8;
	color: #6b7280;
	min-height: 56px;
}

.home-tour-bottom {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	margin-top: 22px;
	padding-top: 16px;
	border-top: 1px solid #edf2f7;
}

.home-tour-duration {
	font-size: 14px;
	font-weight: 700;
	color: #4b5563;
}

.home-tour-price {
	font-size: 21px;
	font-weight: 800;
	line-height: 1.2;
	color: #0f172a;
	letter-spacing: -0.02em;
}

.home-empty-box {
	padding: 40px;
	border: 1px dashed #d1d5db;
	border-radius: 20px;
	background: #fff;
	text-align: center;
	color: #6b7280;
}

/* Why */

.home-why-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 22px;
}

.home-why-card {
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 22px;
	padding: 28px 24px;
}

.home-why-number {
	font-size: 14px;
	font-weight: 800;
	color: #1565d8;
	margin-bottom: 14px;
}

.home-why-card h3 {
	margin: 0 0 12px;
	font-size: 22px;
	line-height: 1.35;
	font-weight: 800;
	color: #111827;
}

.home-why-card p {
	margin: 0;
	font-size: 15px;
	line-height: 1.8;
	color: #6b7280;
}

/* Reviews */

.home-review-section {
	background: #ffffff;
}

.home-review-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.home-review-card {
	position: relative;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 24px;
	padding: 28px 24px;
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}

.home-review-quote {
	font-size: 44px;
	line-height: 1;
	font-weight: 800;
	color: #1565d8;
	margin-bottom: 12px;
}

.home-review-text {
	margin: 0;
	font-size: 15px;
	line-height: 1.9;
	color: #4b5563;
	min-height: 140px;
}

.home-review-meta {
	margin-top: 22px;
	padding-top: 16px;
	border-top: 1px solid #eef2f7;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.home-review-meta strong {
	font-size: 15px;
	font-weight: 800;
	color: #111827;
}

.home-review-meta span {
	font-size: 14px;
	color: #6b7280;
}

@media (max-width: 1200px) {
	.home-review-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 768px) {
	.home-review-grid {
		grid-template-columns: 1fr;
	}

	.home-review-text {
		min-height: auto;
	}
}

/* Trust */

.home-trust-section {
	background: #fff;
}

.home-trust-box {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.home-trust-item {
	background: #f8fafc;
	border: 1px solid #e5e7eb;
	border-radius: 22px;
	padding: 28px 24px;
}

.home-trust-item h3 {
	margin: 0 0 12px;
	font-size: 22px;
	line-height: 1.35;
	font-weight: 800;
	color: #111827;
}

.home-trust-item p {
	margin: 0;
	font-size: 15px;
	line-height: 1.8;
	color: #6b7280;
}

/* CTA */

.home-cta-section {
	padding-top: 20;
}

.home-cta-box {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	background: linear-gradient(135deg, #0b1730 0%, #12356f 100%);
	border-radius: 28px;
	padding: 42px 40px;
	color: #fff;
	overflow: hidden;
}

.home-cta-title {
	margin: 0 0 14px;
	font-size: 36px;
	line-height: 1.2;
	font-weight: 800;
}

.home-cta-text {
	margin: 0;
	max-width: 680px;
	font-size: 16px;
	line-height: 1.8;
	color: rgba(255,255,255,0.82);
}

.home-cta-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

/* Responsive */

@media (max-width: 1200px) {
	.home-hero-title {
		font-size: 48px;
	}

	.home-category-grid,
	.home-tour-grid,
	.home-trust-box {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.home-why-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 900px) {
	.home-section {
		padding: 60px 0;
	}

	.home-section-head-row,
	.home-cta-box {
		flex-direction: column;
		align-items: flex-start;
	}

	.home-hero {
		min-height: 560px;
	}

	.home-hero-title {
		font-size: 42px;
	}
}

@media (max-width: 768px) {
	.home-container {
		padding: 0 14px;
	}

	.home-section {
        padding-top: 40px !important;
        padding-bottom: 40px !important;
    }

	.home-section-title {
		font-size: 30px;
	}

	.home-hero {
		min-height: 520px;
	}

	.home-hero-content {
		padding: 42px 0;
	}

	.home-hero-title {
		font-size: 34px;
	}

	.home-hero-text {
		font-size: 16px;
	}

	.home-category-grid,
	.home-tour-grid,
	.home-why-grid,
	.home-trust-box {
		grid-template-columns: 1fr;
	}

	.home-category-name,
	.home-why-card h3,
	.home-trust-item h3,
	.home-tour-title {
		font-size: 22px;
	}

	.home-cta-box {
		padding: 30px 24px;
		border-radius: 22px;
	}

	.home-cta-title {
		font-size: 28px;
	}
}

/* =========================
   Dream Tour Archive
========================= */

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

.archive-hero {
	position: relative;
	min-height: 300px;
	background: linear-gradient(135deg, #0b1730 0%, #12356f 100%);
	display: flex;
	align-items: center;
	overflow: hidden;
}

.archive-hero-overlay {
	position: absolute;
	inset: 0;
	background: rgba(7, 21, 51, 0.24);
}

.archive-hero-inner {
	position: relative;
	z-index: 2;
	padding: 48px 0;
	color: #fff;
}

.archive-hero-kicker {
	margin: 0 0 12px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.78);
}

.archive-hero-title {
	margin: 0 0 14px;
	font-size: 48px;
	line-height: 1.15;
	font-weight: 800;
	letter-spacing: -0.03em;
}

.archive-hero-text,
.archive-term-description {
	margin: 0;
	max-width: 760px;
	font-size: 17px;
	line-height: 1.8;
	color: rgba(255,255,255,0.86);
}

.archive-main-section {
	padding: 64px 0 84px;
	background: #f8fafc;
}

.archive-topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 28px;
}

.archive-result-count {
	font-size: 15px;
	color: #4b5563;
}

.archive-tour-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
}

.archive-tour-card {
	display: block;
	background: #fff;
	border: 1px solid #e8edf3;
	border-radius: 26px;
	overflow: hidden;
	text-decoration: none;
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.05);
	transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
}

.archive-tour-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 18px 42px rgba(15, 23, 42, 0.12);
	border-color: #d7e3f5;
}

.archive-tour-thumb {
	position: relative;
	aspect-ratio: 1.28 / 1;
	background: #eef2f7;
	overflow: hidden;
}

.archive-tour-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.5s ease;
}

.archive-tour-card:hover .archive-tour-thumb img {
	transform: scale(1.04);
}

.archive-tour-noimage {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #6b7280;
	font-size: 14px;
	font-weight: 700;
}

.archive-tour-badge {
	position: absolute;
	top: 18px;
	left: 18px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 13px;
	border-radius: 999px;
	background: rgba(11, 23, 48, 0.82);
	backdrop-filter: blur(6px);
	color: #fff;
	font-size: 12px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0.01em;
}

.archive-tour-body {
	padding: 24px 24px 22px;
}

.archive-tour-meta-row {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 12px;
}

.archive-tour-meta {
	display: inline-flex;
	align-items: center;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #1565d8;
}

.archive-tour-title {
	margin: 0 0 10px;
	font-size: 25px;
	line-height: 1.32;
	font-weight: 800;
	color: #111827;
	letter-spacing: -0.02em;
}

.archive-tour-text {
	margin: 0;
	font-size: 15px;
	line-height: 1.8;
	color: #6b7280;
	min-height: 56px;
}

.archive-tour-bottom {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	margin-top: 22px;
	padding-top: 16px;
	border-top: 1px solid #edf2f7;
}

.archive-tour-duration {
	font-size: 14px;
	font-weight: 700;
	color: #4b5563;
}

.archive-tour-price {
	font-size: 21px;
	font-weight: 800;
	line-height: 1.2;
	color: #0f172a;
	letter-spacing: -0.02em;
}

.archive-empty-box {
	padding: 40px;
	border: 1px dashed #d1d5db;
	border-radius: 20px;
	background: #fff;
	text-align: center;
	color: #6b7280;
}

.archive-pagination {
	margin-top: 40px;
	display: flex;
	justify-content: center;
}

.archive-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	margin: 0 4px;
	border-radius: 999px;
	background: #fff;
	border: 1px solid #e5e7eb;
	color: #374151;
	text-decoration: none;
	font-size: 14px;
	font-weight: 700;
}

.archive-pagination .page-numbers.current,
.archive-pagination .page-numbers:hover {
	background: #1565d8;
	border-color: #1565d8;
	color: #fff;
}

@media (max-width: 1200px) {
	.archive-tour-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.archive-hero-title {
		font-size: 40px;
	}
}

@media (max-width: 768px) {
	.archive-container {
		padding: 0 14px;
	}

	.archive-main-section {
		padding: 48px 0 56px;
	}

	.archive-tour-grid {
		grid-template-columns: 1fr;
	}

	.archive-hero {
		min-height: 240px;
	}

	.archive-hero-title {
		font-size: 32px;
	}

	.archive-hero-text,
	.archive-term-description {
		font-size: 15px;
	}

	.archive-tour-title {
		font-size: 22px;
	}
}

.dreamtour-inquiry-wrap{
    max-width: 780px;
    margin: 0 auto;
    padding: 0px 20px;
}

/* =========================
   Dream Tour Info Layout
========================= */

.dreamtour-info-wrap {
	padding: 40px 20px 80px;
	background: #f7f8fa;
}

.dreamtour-info-inner {
	max-width: 1400px;
	margin: 0 auto;
}

.dreamtour-info-hero {
	margin-bottom: 28px;
}

.dreamtour-info-breadcrumb {
	font-size: 13px;
	color: #777;
	margin-bottom: 10px;
}

.dreamtour-info-breadcrumb a {
	color: #777;
	text-decoration: none;
}

.dreamtour-info-breadcrumb a:hover {
	color: #111;
}

.dreamtour-info-breadcrumb span {
	margin: 0 6px;
}

.dreamtour-info-title {
	margin: 0;
	font-size: 34px;
	line-height: 1.2;
	color: #111;
	font-weight: 700;
}

.dreamtour-info-layout {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: 28px;
	align-items: start;
}

.dreamtour-info-sidebar {
	position: sticky;
	top: 210px; /* 💡 헤더 높이보다 넉넉하게 띄워서 가림 방지 */
	z-index: 10; /* 💡 다른 요소에 가려지지 않게 보호 */
}

.dreamtour-info-sidebar-box {
	background: #fff;
	border: 1px solid #e7e7e7;
	border-radius: 18px;
	padding: 22px;
	box-shadow: 0 8px 24px rgba(0,0,0,0.04);
}

.dreamtour-info-sidebar-title {
	margin: 0 0 14px;
	font-size: 20px;
	font-weight: 700;
	color: #111;
}

.dreamtour-info-sidebar-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.dreamtour-info-sidebar-list li + li {
	margin-top: 8px;
}

.dreamtour-info-sidebar-list a {
	display: block;
	padding: 11px 14px;
	border-radius: 12px;
	text-decoration: none;
	color: #333;
	background: #fff;
	border: 1px solid #ececec;
	transition: all .2s ease;
}

.dreamtour-info-sidebar-list a:hover {
	background: #eef4ff;
	border-color: #c8dafc;
	color: #111;
	font-weight: 600;
}

.dreamtour-info-sidebar-list a.is-active {
    background: #111;
	color: #fff;
    font-weight: 600;
}

.dreamtour-info-main {
	min-width: 0;
}

.dreamtour-info-content {
	background: #fff;
	border: 1px solid #e7e7e7;
	border-radius: 18px;
	padding: 32px;
	box-shadow: 0 8px 24px rgba(0,0,0,0.04);
}

.dreamtour-info-content h2,
.dreamtour-info-content h3,
.dreamtour-info-content h4 {
	color: #111;
	margin-top: 0;
}

.dreamtour-info-content p,
.dreamtour-info-content li {
	font-size: 15px;
	line-height: 1.8;
	color: #555;
}

.dreamtour-info-content ul,
.dreamtour-info-content ol {
	padding-left: 20px;
}

.dreamtour-info-content iframe {
	width: 100%;
	max-width: 100%;
	border: 0;
	border-radius: 14px;
}

@media (max-width: 900px) {
	.dreamtour-info-layout {
		grid-template-columns: 1fr;
	}

	.dreamtour-info-sidebar {
		position: static;
	}

	.dreamtour-info-title {
		font-size: 28px;
	}

	.dreamtour-info-content {
		padding: 24px;
	}
}

/* =========================
   Dream Tour Review Archive
========================= */

.dreamtour-info-subtext {
	margin-top: 10px;
	font-size: 15px;
	line-height: 1.8;
	color: #666;
}

.dreamtour-review-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}

.dreamtour-review-card {
	background: #fff;
	border: 1px solid #e7e7e7;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(0,0,0,0.04);
	transition: transform .2s ease, box-shadow .2s ease;
}

.dreamtour-review-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 30px rgba(0,0,0,0.08);
}

.dreamtour-review-thumb {
	display: block;
	aspect-ratio: 16 / 10;
	background: #eef2f5;
	overflow: hidden;
}

.dreamtour-review-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.dreamtour-review-thumb-placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #888;
	font-size: 18px;
	font-weight: 600;
}

.dreamtour-review-body {
	padding: 20px;
}

.dreamtour-review-title {
	margin: 0 0 12px;
	font-size: 22px;
	line-height: 1.35;
	font-weight: 700;
}

.dreamtour-review-title a {
	color: #111;
	text-decoration: none;
}

.dreamtour-review-title a:hover {
	text-decoration: underline;
}

.dreamtour-review-excerpt {
	font-size: 14px;
	line-height: 1.8;
	color: #666;
	margin-bottom: 14px;
	min-height: 72px;
}

.dreamtour-review-meta {
	font-size: 13px;
	color: #888;
	margin-bottom: 16px;
}

.dreamtour-review-more {
	display: inline-block;
	padding: 11px 16px;
	border-radius: 10px;
	background: #111;
	color: #fff;
	text-decoration: none;
	font-weight: 600;
}

.dreamtour-review-more:hover {
	opacity: .92;
}

.dreamtour-empty-box {
	background: #fff;
	border: 1px solid #e8e8e8;
	border-radius: 18px;
	padding: 40px 24px;
	text-align: center;
	color: #666;
}

@media (max-width: 1100px) {
	.dreamtour-review-grid {
		grid-template-columns: 1fr;
	}
}

/* =========================
   Dream Tour FAQ Archive
========================= */

.dreamtour-faq-list {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.dreamtour-faq-item {
	background: #fff;
	border: 1px solid #e7e7e7;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(0,0,0,0.04);
}

.dreamtour-faq-question {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 22px 22px;
	border: 0;
	background: #fff;
	cursor: pointer;
	text-align: left;
}

.dreamtour-faq-question:hover {
	background: #fafafa;
}

.dreamtour-faq-q {
	flex: 0 0 auto;
	font-size: 18px;
	font-weight: 800;
	color: #1565d8;
}

.dreamtour-faq-question-text {
	flex: 1;
	font-size: 18px;
	line-height: 1.5;
	font-weight: 700;
	color: #111;
}

.dreamtour-faq-icon {
	flex: 0 0 auto;
	width: 12px;
	height: 12px;
	border-right: 2px solid #555;
	border-bottom: 2px solid #555;
	transform: rotate(45deg);
	transition: transform .2s ease;
	margin-top: -4px;
}

.dreamtour-faq-question[aria-expanded="true"] .dreamtour-faq-icon {
	transform: rotate(225deg);
	margin-top: 4px;
}

.dreamtour-faq-answer {
	border-top: 1px solid #efefef;
	background: #fcfcfc;
}

.dreamtour-faq-answer-inner {
	display: grid;
	grid-template-columns: 34px minmax(0, 1fr);
	gap: 14px;
	padding: 22px;
}

.dreamtour-faq-a {
	font-size: 18px;
	font-weight: 800;
	color: #111;
}

.dreamtour-faq-content {
	font-size: 15px;
	line-height: 1.9;
	color: #555;
}

.dreamtour-faq-content p:last-child {
	margin-bottom: 0;
}

@media (max-width: 768px) {
	.dreamtour-faq-question {
		padding: 18px 16px;
	}

	.dreamtour-faq-question-text {
		font-size: 16px;
	}

	.dreamtour-faq-answer-inner {
		grid-template-columns: 28px minmax(0, 1fr);
		padding: 18px 16px;
	}
}

/* =========================
   Dream Tour Notice Archive
========================= */

.dreamtour-notice-list {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.dreamtour-notice-item {
	background: #fff;
	border: 1px solid #e7e7e7;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(0,0,0,0.04);
	transition: transform .2s ease, box-shadow .2s ease;
}

.dreamtour-notice-item:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 28px rgba(0,0,0,0.06);
}

.dreamtour-notice-link {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 120px;
	gap: 18px;
	align-items: center;
	padding: 22px 24px;
	text-decoration: none;
}

.dreamtour-notice-main {
	min-width: 0;
}

.dreamtour-notice-title {
	margin: 0 0 8px;
	font-size: 20px;
	line-height: 1.4;
	font-weight: 700;
	color: #111;
}

.dreamtour-notice-excerpt {
	font-size: 14px;
	line-height: 1.8;
	color: #666;
}

.dreamtour-notice-date {
	text-align: right;
	font-size: 14px;
	font-weight: 600;
	color: #888;
	white-space: nowrap;
}

@media (max-width: 768px) {
	.dreamtour-notice-link {
		grid-template-columns: 1fr;
		gap: 10px;
		padding: 18px 16px;
	}

	.dreamtour-notice-title {
		font-size: 17px;
	}

	.dreamtour-notice-date {
		text-align: left;
		font-size: 13px;
	}
}

/* =========================
   Dream Tour Review Single
========================= */

.dreamtour-review-single-meta {
	margin-top: 10px;
	font-size: 14px;
	color: #777;
}

.dreamtour-review-single-card {
	background: #fff;
	border: 1px solid #e7e7e7;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(0,0,0,0.04);
}

.dreamtour-review-single-thumb {
	background: #eef2f5;
	overflow: hidden;
}

.dreamtour-review-single-thumb img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
}

.dreamtour-review-single-content {
	padding: 32px;
}

.dreamtour-review-single-content h2,
.dreamtour-review-single-content h3,
.dreamtour-review-single-content h4 {
	color: #111;
	margin-top: 0;
}

.dreamtour-review-single-content p,
.dreamtour-review-single-content li {
	font-size: 15px;
	line-height: 1.9;
	color: #555;
}

.dreamtour-review-single-content ul,
.dreamtour-review-single-content ol {
	padding-left: 20px;
}

.dreamtour-review-single-bottom {
	padding: 0 32px 32px;
}

.dreamtour-review-back {
	display: inline-flex;
	align-items: center;
	padding: 12px 16px;
	border-radius: 10px;
	background: #111;
	color: #fff;
	text-decoration: none;
	font-weight: 600;
}

.dreamtour-review-back:hover {
	opacity: .92;
}

@media (max-width: 768px) {
	.dreamtour-review-single-content {
		padding: 24px;
	}

	.dreamtour-review-single-bottom {
		padding: 0 24px 24px;
	}
}

/* =========================
   Dream Tour Notice Single
========================= */

.dreamtour-notice-single-meta {
	margin-top: 10px;
	font-size: 14px;
	color: #777;
}

.dreamtour-notice-single-card {
	background: #fff;
	border: 1px solid #e7e7e7;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(0,0,0,0.04);
}

.dreamtour-notice-single-content {
	padding: 32px;
}

.dreamtour-notice-single-content h2,
.dreamtour-notice-single-content h3,
.dreamtour-notice-single-content h4 {
	color: #111;
	margin-top: 0;
}

.dreamtour-notice-single-content p,
.dreamtour-notice-single-content li {
	font-size: 15px;
	line-height: 1.9;
	color: #555;
}

.dreamtour-notice-single-content ul,
.dreamtour-notice-single-content ol {
	padding-left: 20px;
}

.dreamtour-notice-single-bottom {
	padding: 0 32px 32px;
}

.dreamtour-notice-back {
	display: inline-flex;
	align-items: center;
	padding: 12px 16px;
	border-radius: 10px;
	background: #111;
	color: #fff;
	text-decoration: none;
	font-weight: 600;
}

.dreamtour-notice-back:hover {
	opacity: .92;
}

@media (max-width: 768px) {
	.dreamtour-notice-single-content {
		padding: 24px;
	}

	.dreamtour-notice-single-bottom {
		padding: 0 24px 24px;
	}
}

/* =========================
   Header Optimization (Sticky & Mobile) - FINAL
========================= */

/* 1. 스티키 헤더 설정 */
.site-header {
    position: sticky;
    top: 0;
    width: 100%;
    background: #fff;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
    z-index: 1000;
}

/* 2. 데스크탑: 메인 메뉴 폰트 & 검색창 크기 */
.nav-list > li > a {
    font-size: 17px !important;
    font-weight: 700;
}
.header-search-form {
    max-width: 400px;
    margin: 0 auto;
}
.sub-header-tagline, .sub-header-link, .header-btn {
    font-weight: 500 !important;
}

/* 3. 태블릿 대응: 검색은 살리고 HOT만 숨김 */
@media (max-width: 1200px) {
    .header-center { display: flex !important; }
    .header-hot { display: none !important; }
    .header-inner {
        grid-template-columns: 220px minmax(0, 1fr) auto !important;
        gap: 15px;
        min-height: 80px;
    }
}

/* =========================
   모바일 헤더 (2줄 구조) 완벽 정리
========================= */

/* 1줄: 로고 & 상담문의 */
.mobile-header-top {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-height: 68px;
    padding: 0 15px;
    background: #fff;
}
.mobile-logo-wrap {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
}
.mobile-logo img {
    max-height: 40px !important;
}

/* 2줄: 돋보기 & 햄버거 */
.mobile-header-bottom {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 50px;
    padding: 0 15px;
    border-top: 1px solid #f1f1f1;
    background: #fff;
}

/* 검색 돋보기 아이콘 */
.mobile-search-toggle {
    background: transparent;
    border: none;
    color: #111;
    padding: 5px 5px 5px 0;
    display: flex;
    align-items: center;
    cursor: pointer;
}

/* 햄버거 버튼 & 3줄 강제 세팅 */
button.mobile-menu-toggle {
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    width: 28px !important;
    height: 20px !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    cursor: pointer !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 9999 !important;
}

button.mobile-menu-toggle span {
    display: block !important;
    width: 100% !important;
    height: 3px !important;
    background-color: #000000 !important; /* 강제 검정 */
    border-radius: 2px !important;
    transition: all 0.3s ease;
}

/* 햄버거 X 애니메이션 */
.mobile-menu-toggle.is-open span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.mobile-menu-toggle.is-open span:nth-child(2) { opacity: 0; }
.mobile-menu-toggle.is-open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* 검색창 (펼쳐질 때) */
.mobile-search-bar {
    display: none;
    background: #f9f9f9;
    padding: 12px 15px;
    border-bottom: 1px solid #e1e1e1;
}
.mobile-search-bar.is-active { display: block; }
.mobile-search-bar form { display: flex; gap: 8px; }
.mobile-search-bar input {
    flex: 1; height: 44px; border: 1px solid #ddd;
    border-radius: 8px; padding: 0 14px; font-size: 15px;
}
.mobile-search-bar button {
    background: #111; color: #fff; border: 0;
    padding: 0 16px; border-radius: 8px; font-weight: 700;
}

/* 드로어 메뉴 스타일 */
.mobile-drawer {
    position: fixed;
    top: 0; right: 0;
    width: 90% !important;
    height: 100%;
    background: #fff;
    padding: 70px 25px 30px !important;
    box-shadow: -5px 0 25px rgba(0,0,0,0.1);
    transform: translateX(100%);
    transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    z-index: 2000;
    display: block !important;
    visibility: hidden;
}
.mobile-drawer.is-open {
    transform: translateX(0);
    visibility: visible;
}
.drawer-close {
    position: absolute;
    top: 20px !important; right: 20px !important;
    background: none; border: 0;
    font-size: 30px !important; color: #333; cursor: pointer;
}
.mobile-nav-list > li { border-bottom: 0; margin-bottom: 25px; }
.mobile-nav-list > li > a {
    font-size: 18px; font-weight: 800;
    margin-bottom: 12px; display: block;
}


/* =========================================
   SVG 햄버거 열림(X) 애니메이션
========================================= */
.hamburger-svg line {
    transition: all 0.3s ease;
    transform-origin: center;
}

/* 메뉴 열리면 X로 변신 */
.mobile-menu-toggle.is-open .line-top { transform: translateY(7px) rotate(45deg); }
.mobile-menu-toggle.is-open .line-mid { opacity: 0; }
.mobile-menu-toggle.is-open .line-bot { transform: translateY(-7px) rotate(-45deg); }

/* =========================================
   모바일 메뉴창(드로어) 찌꺼기 제거 및 X버튼 최적화
========================================= */

/* 1. 테마가 몰래 집어넣은 화살표(^, v) 완벽하게 숨김 */
.mobile-drawer > *:not(.mobile-drawer-inner):not(#drawerClose) {
    display: none !important;
}
.mobile-nav-list button,
.mobile-nav-list .dropdown-toggle,
.mobile-nav-list .sub-menu-toggle {
    display: none !important;
}

/* 2. 닫기(X) 버튼 강력하게 앱 스타일(동그라미) 고정 */
/* 클래스 대신 ID(#)를 써서 캐시를 뚫고 무조건 최우선 적용되게 만듭니다 */
/* ✨ 은은한 미니멀 닫기 버튼 (추천 스타일) */
#drawerClose {
    position: absolute !important;
    top: 25px !important; /* 로고와 높이를 맞춰서 시각적 안정감 부여 */
    right: 15px !important;
    font-size: 32px !important; /* 아이콘 크기는 시원하게 */
    color: #94a3b8 !important; /* 💡 은은하고 세련된 회색 */
    background: transparent !important; /* 배경 없이 투명하게 */
    border: none !important;
    z-index: 100 !important;
    cursor: pointer;
    line-height: 1;
    padding: 10px;
    transition: color 0.2s ease; /* 호버 시 부드러운 효과 */
}

/* 마우스를 올리거나 터치했을 때만 살짝 진해지게 */
#drawerClose:hover,
#drawerClose:active {
    color: #1e293b !important;
    transform: scale(1.1); /* 살짝 커지는 효과로 누르는 재미 가미 */
}

/* =========================================
   1. PC 풀화면 디테일 완성 (수정본)
========================================= */

/* 검색창 고정 */
.header-search {
    flex: 0 0 auto !important;
    width: 320px !important;
}
.header-search-form {
    max-width: 100% !important;
    margin: 0 !important;
}
.header-center {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 20px !important;
    flex: 1 !important;
}

/* HOT 특가 디자인: 굵기 완화 & 알약 찌그러짐 완벽 방지 */
.header-hot {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
}
/*  NOTICE 라벨 (주황색) */
.notice-label {
	margin-right: 10px !important;
	width: 60px !important; /* 💡 가로 크기를 고정해서 뒤에 오는 글자 위치를 완벽히 통일 */
	display: inline-flex !important;
	justify-content: center !important;
	font-size: 11px;
	font-weight: 700;
	color: #f97316;
	border: 1.5px solid #f97316;
	padding: 2px 0; /* width를 고정했으므로 좌우 패딩은 제거 */
	border-radius: 4px;
	white-space: nowrap;
	box-sizing: border-box !important;
    }

/* HOT 라벨 */
.hot-label {
	margin-right: 10px !important;
	width: 60px !important; /* 💡 NOTICE와 완벽히 같은 사이즈 */
	display: inline-flex !important;
	justify-content: center !important;
	font-size: 11px;
	font-weight: 700;
	color: #0059b3; 
	border: 1.5px solid #0059b3;
	padding: 2px 0;
	border-radius: 4px;
	white-space: nowrap;
	box-sizing: border-box !important;
}

.hot-item {
    font-size: 15px !important; /* 글씨 살짝 축소 */
    font-weight: 550 !important; /* 굵기 완화 (800 -> 700) */
    color: #0e0e0e !important;
    /* text-decoration: none !important; */
    letter-spacing: -0.02em !important;
}
.hot-item:hover {
     font-weight: 800;
	 color: #111;
}

/* ✨ 메인 메뉴 드롭다운 중앙 정렬 복구 & 폰트 다듬기 ✨ */
.nav-list > li {
    position: relative !important; /* 중앙 정렬의 기준점 */
}
.nav-list .sub-menu {
    left: 50% !important;
    transform: translateX(-50%) !important; /* 정확히 50% 당겨서 중앙 맞춤 */
    text-align: center !important;
}
.nav-list .sub-menu a {
    font-size: 16px !important;
    font-weight: 600 !important; /* 굵기 완화 */
    padding: 16px 20px !important;
}

/* =========================================
   2. 반응형 분기점 (화면 줄일 때)
   💡 아래 1300px 숫자를 원하시는 너비로 수정하시면 됩니다!
========================================= */
@media (max-width: 1200px) and (min-width: 769px) {
    .sub-header-inner {
        flex-wrap: nowrap !important;
        justify-content: space-between !important;
    }
    .header-inner {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 15px !important;
    }
    
    /* 화면 좁아지면 검색창 숨기고 HOT 특가 한 줄 유지 */
    .header-search { display: none !important; } 
    .header-center { flex: 1 !important; margin-left: 20px !important; }
    .header-hot { display: flex !important; }
    
    /* .hot-label {
        font-size: 12px !important;
        height: 26px !important;
        padding: 0 10px !important;
    }
    .hot-item { font-size: 15px !important; }
    .header-btn {
        padding: 0 12px !important;
        font-size: 13px !important;
    } */
    /* .nav-list { gap: 20px !important; } /* 메뉴 간격 좁혀서 1줄 방어 */
    /* .nav-list > li > a { font-size: 15px !important; } */ 
}

/* ✨ 2. 상단 미니바 1024px 두 줄 깨짐 현상 & 중앙 정렬 완벽 방어 ✨ */
.sub-header-inner {
    display: flex !important;
    flex-direction: row !important; /* 테마의 세로 정렬 방해를 차단 */
    flex-wrap: nowrap !important; /* 절대 2줄로 넘어가지 않음 */
    justify-content: space-between !important; /* 무조건 양끝으로 찢어놓음 */
    align-items: center !important;
    width: 100% !important;
}
.sub-header-left {
    display: flex !important;
    justify-content: flex-start !important;
    white-space: nowrap !important;
}
.sub-header-right {
    display: flex !important;
    justify-content: flex-end !important;
    white-space: nowrap !important;
    gap: 20px !important;
}

/* 3. 화면이 좁아질 때(태블릿 구간) 상단바 글자 크기를 살짝 줄여서 한 줄에 쏙 들어가게 만듦 */
@media (max-width: 1300px) and (min-width: 769px) {
    .sub-header-tagline {
        font-size: 12px !important; /* 공간 확보를 위해 글자 축소 */
    }
    .sub-header-link {
        font-size: 13px !important; /* 메뉴 글자 축소 */
    }
    .sub-header-right {
        gap: 12px !important;
    }
}

/* ✨ 메인 배너 Swiper 슬라이더 디자인 ✨ */
.home-hero-slider-wrap {
    position: relative;
    width: 100%;
}
.heroSwiper {
    width: 100%;
    height: 100%;
}

/* ✨ 메인 배너 Swiper 슬라이더 디자인 업그레이드 ✨ */
.home-hero-slider-wrap {
    position: relative;
    width: 100%;
}

/* 1. 화살표 기본 상태: 투명하게 숨김 */
.heroSwiper .swiper-button-next,
.heroSwiper .swiper-button-prev {
    color: #fff !important;
    opacity: 0; /* 평소에는 안 보임 */
    transition: all 0.3s ease !important; /* 나타날 때 부드럽게 */
    transform: translateY(-50%) scale(0.8); /* 살짝 작게 시작 */
}

/* 2. 양옆 화살표 디자인 (고급형) */
.heroSwiper .swiper-button-next,
.heroSwiper .swiper-button-prev {
    color: #fff !important;
    opacity: 0;
    filter: drop-shadow(0 0 5px rgba(0, 0, 0, 0.3)); /* 평소엔 검은 그림자로 시인성 확보 */
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1) !important;
    transform: translateY(-50%) scale(0.9);
}

/* 3. 화살표 호버 효과: 흰색 그림자 + 크기 확대 ✨ */
.heroSwiper .swiper-button-next:hover,
.heroSwiper .swiper-button-prev:hover {
    color: #fff !important;
    transform: translateY(-50%) scale(1.2) !important; /* 💡 1.2배 커짐 */
    filter: drop-shadow(0 0 12px rgba(255, 255, 255, 0.9)) !important; /* 💡 눈부신 흰색 광채 */
}

/* 슬라이더 영역 호버 시 화살표 등장 */
.heroSwiper:hover .swiper-button-next,
.heroSwiper:hover .swiper-button-prev {
    opacity: 0.8;
}

/* 4. 하단 점(Pagination) 디자인 */
.heroSwiper .swiper-pagination-bullet {
    background: rgba(255, 255, 255, 0.5);
    opacity: 1;
    width: 8px;
    height: 8px;
    transition: all 0.3s ease;
}
.heroSwiper .swiper-pagination-bullet-active {
    background: #fff;
    width: 24px;
    border-radius: 4px;
}

/* 5. 📱 모바일 최적화: 화살표 숨기기 */
@media (max-width: 768px) {
    .heroSwiper .swiper-button-next,
    .heroSwiper .swiper-button-prev {
        display: none !important; /* 모바일은 스와이프 위주이므로 화살표 삭제 */
    }
    
    /* 모바일에서는 하단 점(Pagination) 위치를 살짝 위로 조정 */
    .heroSwiper .swiper-pagination {
        bottom: 20px !important;
    }
}

/* 하단 점(Pagination) 커스텀 */
.heroSwiper .swiper-pagination-bullet {
    background: rgba(255, 255, 255, 0.5);
    opacity: 1;
    width: 10px;
    height: 10px;
    margin: 0 6px !important;
    transition: all 0.3s ease;
}
.heroSwiper .swiper-pagination-bullet-active {
    background: #fff;
    width: 30px;
    border-radius: 5px; /* 활성화된 점은 길쭉한 막대 모양으로 변형 */
}

/* 🛠️ 슬라이드 이미지 겹침(반복) 방지 및 모바일 최적화 */
.home-hero {
    background-repeat: no-repeat !important; /* 💡 이미지가 반복되지 않게 설정 */
    background-size: cover !important;       /* 💡 이미지가 빈틈없이 박스를 채우게 설정 */
    background-position: center !important;  /* 💡 이미지 중앙을 기준으로 배치 */
}

/* 4. 태블릿(900px ~ 770px 포함) 및 모바일 높이 대응 */
@media (max-width: 1024px) {
    .home-hero {
        min-height: 600px !important; /* 💡 태블릿 구간에서도 높이를 넉넉히 잡아 글자 쏠림 방지 */
    }
}

@media (max-width: 768px) {
    /* 모바일에서 슬라이드 높이 조정 */
    .home-hero {
        min-height: 560px !important; /* 💡 글자가 많으므로 높이를 조금 더 넉넉하게 확보 */
        padding: 40px 0 !important;   /* 💡 위아래 여백을 줘서 내용이 꽉 끼지 않게 함 */
    }

    /* 모바일 제목 글자 크기 살짝 조절 (너무 크면 높이가 무한정 늘어남) */
    .home-hero-title {
        font-size: 28px !important; 
        line-height: 1.3 !important;
        word-break: keep-all; /* 단어 단위로 줄바꿈되어 깔끔해짐 */
    }

    /* 모바일에서 버튼 위치 조정 */
    .home-hero-actions {
        margin-top: 20px !important;
        justify-content: center; /* 💡 버튼 중앙 정렬 */
    }

}


/* ✨ 추천 상품 슬라이더 & 콤팩트 카드 디자인 ✨ */
.featured-nav-wrap {
    display: flex;
    align-items: center;
    gap: 20px;
}

/* 슬라이더 화살표 커스텀 */
.tour-swiper-nav {
    display: flex;
    gap: 8px;
    position: relative;
    width: 80px;
    height: 40px;
}
.tour-swiper-nav .swiper-button-next,
.tour-swiper-nav .swiper-button-prev {
    position: static !important;
    width: 36px !important;
    height: 36px !important;
    margin: 0 !important;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 50%;
    color: #111 !important;
}
.tour-swiper-nav .swiper-button-next::after,
.tour-swiper-nav .swiper-button-prev::after {
    font-size: 14px !important;
    font-weight: 800;
}

/* 카드 디자인 콤팩트화 */
.home-tour-card {
    border-radius: 16px !important; /* 모서리 둥글기 살짝 완화 */
}
.home-tour-thumb {
    aspect-ratio: 1.3 / 1 !important; /* 사진 높이 축소 */
}
.home-tour-title {
    font-size: 18px !important; /* 💡 제목 크기 축소 (25px -> 18px) */
    margin-bottom: 8px !important;
    display: -webkit-box;
    -webkit-line-clamp: 2; /* 두 줄 넘어가면 말줄임 */
    -webkit-box-orient: vertical;
    overflow: hidden;
    height: 2.6em;
}
.home-tour-body {
    padding: 18px !important; /* 내부 여백 축소 */
}
.home-tour-price {
    font-size: 18px !important; /* 가격 크기 조절 */
    color: #1565d8 !important; /* 가격에 포인트 컬러 적용 */
}
.home-tour-text {
    display: none; /* 💡 콤팩트 디자인을 위해 요약 문구는 과감히 제거 */
}

@media (max-width: 768px) {
    .tour-swiper-nav { display: none; } /* 모바일은 화살표 숨김 */
    .home-tour-title { font-size: 16px !important; }
}

/* ✨ 추천 상품 카드 높이 및 레이아웃 최적화 (PC 버전) ✨ */

/* 슬라이더 내부의 모든 카드가 동일한 높이를 갖도록 설정 */
.tourSwiper .swiper-slide {
    height: auto !important; /* 슬라이드 자체 높이 유동적 */
    display: flex;
}

.home-tour-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%; /* 부모(swiper-slide) 높이에 꽉 차게 */
    border-radius: 16px;
    background: #fff;
    border: 1px solid #e8edf3;
    overflow: hidden;
    text-decoration: none;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.05);
}

/* 1. 썸네일 영역 및 태그 배지 */
.home-tour-thumb {
    position: relative;
    aspect-ratio: 1.3 / 1;
    overflow: hidden;
    flex-shrink: 0; /* 썸네일 크기 고정 */
}

.home-tour-tag-wrap {
    position: absolute;
    top: 12px;
    left: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    z-index: 2;
}

.home-tour-tag {
    padding: 5px 10px;
    background: rgba(21, 101, 216, 0.9); /* 드림투어 블루 */
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    border-radius: 4px;
    backdrop-filter: blur(4px);
}

/* 2. 카드 바디 영역 (여기가 핵심: 높이를 맞춰줌) */
.home-tour-body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    flex: 1; /* 남은 공간을 모두 차지하여 바닥 정렬을 맞춤 */
}

.home-tour-title {
    font-size: 19px !important;
    font-weight: 800;
    color: #111;
    margin: 8px 0 20px 0 !important;
    line-height: 1.4;
    /* 제목이 짧아도 공간을 일정하게 차지하게 함 */
    min-height: 2.8em; 
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 3. 카드 하단 (기간 & 가격) - 항상 카드 맨 밑에 붙음 */
.home-tour-bottom {
    margin-top: auto; /* 제목이 짧아도 가격을 맨 아래로 밀어냄 */
    padding-top: 15px;
    border-top: 1px solid #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.home-tour-duration {
    font-size: 14px;
    color: #64748b;
    font-weight: 600;
}

.home-tour-price {
    font-size: 19px !important;
    font-weight: 800;
    color: #1565d8;
}

/* 1. 슬라이더: 그림자는 살리고 페이지 넘침은 방지 */
.tourSwiper {
    padding: 20px 0 45px 0 !important; 
    margin-top: -20px !important;
    margin-bottom: -45px !important;
    
    /* 💡 핵심: visible 대신 hidden(또는 clip)을 써야 페이지가 옆으로 안 늘어납니다. */
    /* 패딩을 이미 줬기 때문에 hidden을 써도 그림자가 잘리지 않습니다. */
    overflow: hidden !important; 
    width: 100%;
}

/* 추천 상품 카드 디자인 (디테일 수정) */
.home-tour-card {
    /* ... (기존 설정 유지) ... */
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), 
                box-shadow 0.3s ease, 
                border-color 0.3s ease !important;
}

/* 호버 시: 잘림 없이 부드럽게 상승 ✨ */
.home-tour-card:hover {
    transform: translateY(-10px) !important; /* 조금 더 시원하게 올라가도록 변경 */
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.12) !important; /* 그림자도 풍성하게 */
    border-color: #1565d8 !important;
    z-index: 10; /* 호버한 카드가 위로 올라오도록 설정 */
}

/* ✨ 추천 상품 반응형 (태블릿 & 모바일 콤팩트화) ✨ */

/* 1. 태블릿 구간 (1024px 이하) */
@media (max-width: 1024px) {
    .home-featured-section {
        padding: 50px 0 !important; /* 섹션 상하 여백 축소 */
    }
    
    .home-tour-thumb {
        aspect-ratio: 1.4 / 1 !important; /* 💡 사진 높이를 조금 더 납작하게 해서 세로 절약 */
    }

    .home-tour-title {
        font-size: 17px !important; /* 제목 크기 살짝 축소 */
        min-height: 2.6em !important;
        margin: 6px 0 14px 0 !important;
    }
    
    .home-tour-body {
        padding: 16px !important; /* 내부 여백 축소 */
    }
}

/* 📱 모바일 2.3개 전용 초정밀 최적화 (768px 이하) */
@media (max-width: 768px) {
    .home-tour-body {
        padding: 12px 10px !important; /* 내부 여백을 더 줄여서 공간 확보 */
    }

    .home-tour-tag {
        padding: 2px 5px !important;
        font-size: 9px !important; /* 태그도 아주 작게 */
        top: 8px !important;
        left: 8px !important;
    }

    .home-tour-meta {
        font-size: 10px !important; /* 카테고리 텍스트 축소 */
        margin-bottom: 4px !important;
    }

    .home-tour-title {
        font-size: 14px !important; /* 💡 16px에서 14px로 축소 (카드가 좁으므로) */
        min-height: 2.8em !important;
        line-height: 1.3 !important;
        margin-bottom: 8px !important;
    }

    .home-tour-bottom {
        padding-top: 10px !important;
        flex-direction: column; /* 💡 공간이 좁으면 기간과 가격을 위아래로 배치 */
        align-items: flex-start !important;
        gap: 4px !important;
    }

    .home-tour-duration {
        font-size: 11px !important;
    }

    .home-tour-price {
        font-size: 15px !important; /* 가격도 콤팩트하게 조절 */
    }

    /* 슬라이더 하단 여백 최적화 */
    .tourSwiper {
        padding-top: 10px !important;
        padding-bottom: 25px !important;
    }
}

/* =========================================
   ✨ 추천 상품 섹션 헤더 반응형 최적화
========================================= */

/* 1. 태블릿 구간 (1100px 이하): 제목과 내비게이션을 미리 세로로 정렬하여 충돌 방지 */
@media (max-width: 1100px) {
    .home-section-head-row {
        flex-direction: column !important; /* 세로 정렬 강제 */
        align-items: flex-start !important;
        gap: 15px !important;
        margin-bottom: 25px !important;
    }

    .featured-nav-wrap {
        width: 100% !important; /* 가로를 꽉 채움 */
        justify-content: space-between !important; /* 링크는 왼쪽, 화살표는 오른쪽 */
    }
}

/* 1150px 이하부터 미리 세로 정렬 준비 (글자 겹침 방지) */
@media (max-width: 1150px) {
    .home-section-head-row {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 12px !important;
    }

    .featured-nav-wrap {
        width: 100% !important;
        display: flex !important;
        justify-content: space-between !important; /* 링크는 왼쪽, 화살표는 오른쪽 */
        align-items: center !important;
    }
}

/* 2. 모바일 구간 (768px 이하): 화살표를 확실히 숨기고 링크만 남김 */
@media (max-width: 768px) {
    .tour-swiper-nav {
        display: none !important; /* 화살표 뭉치 삭제 */
    }
    
    .featured-nav-wrap {
        justify-content: flex-end !important; /* 전체보기 링크를 우측 정렬 */
    }

    .home-section-title {
        font-size: 28px !important; /* 모바일 제목 크기 조정 */
        line-height: 1.2 !important;
    }

	/* 슬라이더 간격 모바일 최적화 */
    .tourSwiper {
        padding-bottom: 30px !important;
        margin-bottom: -30px !important;
    }
}

/* 3. 초소형 모바일 (480px 이하) */
@media (max-width: 480px) {
    .home-section-title {
        font-size: 24px !important;
    }
    .home-more-link {
        font-size: 13px !important;
    }
}

/* =========================================================
   🚀 [DREAM TOUR] 추천상품: 화면 잘림 방지 & 화살표 호버 효과
========================================================= */

/* 1. 화면 끝에서 뚝 끊기는 현상 해결 (넷플릭스 스타일) */
.home-featured-section {
    overflow-x: hidden !important; /* 전체 화면 흔들림 방어 */
}
.tourSwiper {
    overflow: visible !important; /* 💡 카드가 컨테이너를 뚫고 화면 끝까지 이어짐 */
    padding: 20px 0 50px 0 !important; 
    margin-top: -20px !important;
    margin-bottom: -50px !important;
}

/* 3. 모바일 최적화 (1.3개 노출 대응) */
@media (max-width: 768px) {

	/* 1. 숨겼던 화살표 뭉치를 다시 보이게 설정 */
    .tour-swiper-nav {
        display: flex !important; 
        width: auto !important;
        height: auto !important;
        gap: 6px !important;
    }
    
    /* 2. 모바일에 맞춰 화살표 버튼 크기를 살짝 축소 (PC: 36px -> 모바일: 30px) */
    .tour-swiper-nav .swiper-button-next,
    .tour-swiper-nav .swiper-button-prev {
        width: 30px !important;
        height: 30px !important;
    }

    .tour-swiper-nav .swiper-button-next::after,
    .tour-swiper-nav .swiper-button-prev::after {
        font-size: 11px !important; /* 화살표 아이콘 굵기/크기 축소 */
    }

    /* 3. '전체 상품 보기' 링크와 '화살표'가 나란히 잘 정렬되도록 간격 조정 */
    .featured-nav-wrap {
        justify-content: space-between !important;
        align-items: center !important;
        width: 100% !important;
    }
    
    .home-tour-thumb {
        aspect-ratio: 1.25 / 1 !important; /* 모바일에서 사진이 조금 더 높게 보이도록 조절 */
    }
    .home-tour-title {
        font-size: 17px !important; /* 카드가 커진 만큼 글자 크기도 키움 */
        margin-bottom: 10px !important;
    }
    .home-tour-price {
        font-size: 18px !important;
    }
}

/* =========================================================
   ✨ [DREAM TOUR] 고객 후기 (고정형 + 원형 프사 + 따옴표 믹스)
========================================================= */


/* 1. 리뷰 그리드 (PC에서 3개 한 줄) */
.home-review-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 20px;
}

/* 2. 리뷰 카드 본체 */
.home-review-card {
    position: relative;
    display: flex !important;
    align-items: flex-start !important;
    gap: 16px;
    padding: 28px 24px !important;
    background: #fff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 16px !important;
    box-shadow: 0 4px 15px rgba(0,0,0,0.02) !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
    overflow: hidden; 
}

.home-review-card:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08) !important;
    border-color: #cbd5e1 !important;
}

/* 3. 💡 감성적인 따옴표 워터마크 (우측 상단) */
.review-quote-mark {
    position: absolute;
    top: -5px;
    right: 15px;
    font-size: 80px;
    font-family: Georgia, serif; /* 클래식한 따옴표 폰트 */
    font-weight: 900;
    line-height: 1;
    color: rgba(21, 101, 216, 0.05); /* 💡 아주 연한 파란색으로 배경처럼 스며들게 */
    z-index: 1;
    pointer-events: none;
}

/* 4. 원형 프로필 사진 (좌측) */
.review-avatar {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    overflow: hidden;
    background: #e2e8f0;
    z-index: 2;
}

.review-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 5. 우측 텍스트 영역 */
.review-body {
    flex: 1;
    position: relative;
    z-index: 2;
}

.review-title {
    font-size: 16px !important;
    font-weight: 800 !important;
    color: #111 !important;
    margin: 0 0 8px 0 !important;
    line-height: 1.3 !important;
    display: -webkit-box;
    -webkit-line-clamp: 1; /* 1줄 넘어가면 말줄임 */
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.review-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}

.review-author {
    font-size: 13px;
    font-weight: 600;
    color: #475569;
}

.review-stars {
    color: #fbbf24; /* 따뜻한 황금색 별 */
    font-size: 13px;
    letter-spacing: 1px;
}

.review-text {
    font-size: 14px !important;
    line-height: 1.6 !important;
    color: #64748b !important;
    margin: 0 !important;
    display: -webkit-box;
    -webkit-line-clamp: 2; /* 2줄까지만 보여주고 말줄임 */
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 6. 더 많은 후기 보기 버튼 (우측 상단) */
.review-more-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 20px;
    border: 1px solid #1565d8;
    border-radius: 999px;
    color: #1565d8;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
}

.review-more-btn:hover {
    background: #1565d8;
    color: #fff;
}

/* 7. 반응형 (태블릿 & 모바일) */
@media (max-width: 1024px) {
    .home-review-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 768px) {
    .home-review-grid {
        grid-template-columns: 1fr !important; /* 모바일은 1줄로 */
        gap: 16px;
    }
    .home-review-section .home-section-head-row {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 15px !important;
    }
}

/* ✨ 완벽한 중앙 제목 + 우측 버튼 레이아웃 ✨ */
.center-title-right-btn {
    display: grid !important;
    /* 왼쪽 여백, 가운데 제목, 오른쪽 버튼을 1:auto:1 비율로 정확히 나눔 */
    grid-template-columns: 1fr auto 1fr !important; 
    align-items: end !important; /* 버튼과 제목의 아래쪽 줄을 맞춤 */
    margin-bottom: 40px !important;
    width: 100%;
}

.center-title-right-btn .head-spacer {
    /* 왼쪽은 비워둠 */
}

.center-title-right-btn .head-title-wrap {
    text-align: center !important;
}

.center-title-right-btn .head-btn-wrap {
    text-align: right !important;
}

/* 📱 모바일/태블릿 화면에서는 다시 예쁘게 가운데로 모아주기 */
@media (max-width: 768px) {
    .center-title-right-btn {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 16px !important;
    }
    
    .center-title-right-btn .head-btn-wrap {
        text-align: center !important;
    }
}

/* =========================================================
   ✨ [DREAM TOUR] 푸터 SNS 선 아이콘 & 반응형 최적화
========================================================= */

/* 1. 푸터 상단바 (약관 & SNS) 가로 정렬 */
.footer-top-bar-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
}

/* 2. SNS 선(Outline) 스타일 아이콘 💡 */
.footer-social-links {
    display: flex;
    gap: 12px;
}

.footer-social-links a {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 38px; /* 동그라미 크기 */
    height: 38px;
    border: 1px solid rgba(255, 255, 255, 0.25) !important; /* 💡 깔끔한 얇은 선 */
    border-radius: 50%; /* 완벽한 원형 */
    color: rgba(255, 255, 255, 0.8) !important;
    font-size: 15px;
    text-decoration: none;
    transition: all 0.3s ease;
}

/* 마우스 올렸을 때 효과 */
.footer-social-links a:hover {
    border-color: #fff !important;
    color: #fff !important;
    background: rgba(255, 255, 255, 0.1); /* 은은하게 배경 깔림 */
    transform: translateY(-3px);
}

/* =========================================================
   📱 태블릿 & 모바일 푸터 반응형
========================================================= */

/* 1. 태블릿 (1024px 이하) */
@media (max-width: 1024px) {
    .footer-top .footer-inner {
        grid-template-columns: 1fr 1fr !important; /* 2단 분리 */
        gap: 40px;
    }
    .footer-brand {
        grid-column: 1 / -1; /* 로고와 설명은 전체 폭 차지 */
    }
}

/* 2. 모바일 (768px 이하) ✨ 2단(양옆) 배치 적용 ✨ */
@media (max-width: 768px) {
    /* 상단바: 약관과 SNS 아이콘을 위아래로 배치 */
    .footer-top-bar-inner {
        flex-direction: column-reverse;
        gap: 18px;
        padding: 20px 0;
    }
    .footer-legal-links { flex-wrap: wrap; justify-content: center; }
    .footer-social-links { justify-content: center; }

    /* 💡 푸터 본문: 모바일에서도 '바로가기'와 '연락처'를 양옆으로 나란히 배치 */
    .footer-top .footer-inner {
        grid-template-columns: 1fr 1fr !important; /* 반반씩 나눠 가짐 */
        gap: 20px;
    }

    /* 💡 로고와 설명 부분은 혼자 위쪽 한 줄을 다 쓰게 만듦 */
    .footer-brand {
        grid-column: 1 / -1; 
        text-align: center; /* 로고 쪽은 가운데 정렬로 예쁘게 */
        margin-bottom: 10px;
    }

    .footer-logo { justify-content: center; }
    .footer-desc { margin: 0 auto; }

    /* 💡 양옆으로 나뉜 메뉴들은 좌측 정렬을 해야 글씨가 깔끔하게 읽힘 */
    .footer-col:not(.footer-brand) {
        text-align: left;
    }
    
    .footer-links li, .footer-contact li {
        text-align: left;
        font-size: 13px !important; /* 좁은 공간에 들어가게 글자 크기 살짝 축소 */
        word-break: keep-all; /* 단어가 찢어지지 않게 보호 */
    }

    /* 연락처 밑의 버튼도 좁은 칸에 맞춰 꽉 차게 변경 */
    .footer-map-link {
        width: 100%;
        padding: 0 10px;
        margin-top: 16px;
    }

	/* 💡 '바로가기' 컬럼(두 번째 칸)만 콕 집어서 중앙 정렬 */
    .footer-col:nth-child(2),
    .footer-col:nth-child(2) li {
        text-align: center !important;
    }
}

/* 1. 3열 그리드 레이아웃 */
.review-grid-3col {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3장씩 배치 */
    gap: 20px;
}

/* 2. 카드 디자인 */
.review-mini-card {
    background: #fff;
    border: 1px solid #eee;
    padding: 20px;
    border-radius: 12px;
    cursor: pointer;
    position: relative;
    transition: 0.3s;
}

.review-mini-card:hover { transform: translateY(-5px); border-color: #3b82f6; }

/* 3. 이름 한글자 프로필 (랜덤색상용) */
.name-avatar {
    width: 45px; height: 45px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-weight: bold; font-size: 18px;
}

.user-avatar img { width: 45px; height: 45px; border-radius: 50%; object-fit: cover; }

/* 4. 구글 G 뱃지 */
.g-badge {
    position: absolute; top: 15px; right: 15px;
    color: #4285F4; font-size: 14px;
}

/* 5. 모달 스타일 */
.dt-modal {
    display: none; position: fixed; z-index: 9999;
    left: 0; top: 0; width: 100%; height: 100%;
    background-color: rgba(0,0,0,0.5);
}

.dt-modal-content {
    background-color: #fff; margin: 10% auto; padding: 40px;
    border-radius: 20px; width: 50%; max-width: 600px;
    position: relative; line-height: 1.8;
}

.close-modal { position: absolute; right: 20px; top: 15px; font-size: 28px; cursor: pointer; }

/* 📱 모바일은 다시 1열로 */
@media (max-width: 992px) { .review-grid-3col { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .review-grid-3col { grid-template-columns: 1fr; } .dt-modal-content { width: 90%; } }

/* ⭐ 별점 노란색 고정 */
.stars {
    color: #FFD700 !important; /* Gold/Yellow 색상 */
    font-size: 14px;
    margin-top: 4px;
}

/* 🖼️ 모달 내 갤러리 스타일 */
.modal-gallery {
    display: flex;
    gap: 10px;
    margin-top: 20px;
    overflow-x: auto;
    padding-bottom: 10px;
}

.modal-gallery img {
    width: 120px;
    height: 120px;
    object-fit: cover;
    border-radius: 8px;
    cursor: pointer;
    transition: 0.2s;
}

.modal-gallery img:hover {
    transform: scale(1.05);
}

/* 1. 3열 그리드 */
.review-grid-3col { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; }

/* 2. 카드 및 아바타 */
.review-mini-card { background:#fff; border:1px solid #f1f5f9; padding:25px; border-radius:16px; cursor:pointer; position:relative; transition:0.3s; box-shadow:0 2px 10px rgba(0,0,0,0.02); }
.review-mini-card:hover { transform:translateY(-5px); box-shadow:0 10px 25px rgba(0,0,0,0.08); border-color:#3b82f6; }
.review-user-info { display:flex; align-items:center; gap:12px; margin-bottom:15px; }
.user-avatar img, .name-avatar { width:45px; height:45px; border-radius:50%; object-fit:cover; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; }
.stars { color: #FFD700 !important; } /* 별점 노란색 */

/* 3. 모달창 디자인 */
.dt-modal { display:none; position:fixed; z-index:10000; left:0; top:0; width:100%; height:100%; background:rgba(15, 23, 42, 0.7); align-items:center; justify-content:center; }
.dt-modal-content { background:#fff; padding:40px; border-radius:24px; width:90%; max-width:700px; max-height:85vh; overflow-y:auto; position:relative; }
.close-modal { position:absolute; right:25px; top:20px; font-size:32px; cursor:pointer; color:#94a3b8; }

/* 4. 갤러리 */
.modal-gallery-label { font-weight:700; margin-bottom:12px; color:#1e293b; }
.modal-gallery { display:grid; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap:10px; }
.modal-gallery img { width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:10px; cursor:pointer; }

/* 모바일 대응 */
@media (max-width: 1024px) { .review-grid-3col { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .review-grid-3col { grid-template-columns: 1fr; } .dt-modal-content { padding:25px; } }

/* 아바타 영역 공통 */
.user-avatar {
    width: 50px;
    height: 50px;
    border-radius: 50%; /* 무조건 동그라미 */
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* 사진이 들어갔을 때 */
.user-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 글자 아바타 (사진 없을 때) */
.name-avatar {
    width: 100%;
    height: 100%;
    color: #fff;
    font-weight: bold;
    font-size: 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-transform: uppercase;
}

/* 별점 노란색 고정 */
.stars {
    color: #FFD700;
    font-size: 14px;
    margin-top: 2px;
}

/* 리뷰 카드 아바타 상단 고정 (두 줄 제목 대응) */
.review-user-info {
    align-items: flex-start !important; /* 중앙 정렬을 위쪽 정렬로 강제 변경 */
}

.user-avatar {
    margin-top: 3px !important; /* 글자 첫 줄과 동그라미 중심을 예쁘게 맞추기 위해 살짝 내림 */
}

/* 📷 사진 확대 모달 (Lightbox) 스타일 */
.dt-image-lightbox {
    display: none; 
    position: fixed; 
    z-index: 99999; /* 리뷰 모달보다 무조건 위로 */
    left: 0; 
    top: 0; 
    width: 100%; 
    height: 100%; 
    background-color: rgba(0, 0, 0, 0.85); /* 살짝 더 어두운 배경 */
    align-items: center; 
    justify-content: center;
    cursor: zoom-out; /* 배경 누르면 닫힌다는 느낌을 줌 */
}

.lightbox-img {
    max-width: 90%; 
    max-height: 85vh; 
    border-radius: 12px;
    object-fit: contain;
    box-shadow: 0 10px 30px rgba(0,0,0,0.5);
    animation: zoomIn 0.3s ease;
}

.close-lightbox {
    position: absolute; 
    top: 25px; 
    right: 35px; 
    color: #fff; 
    font-size: 45px; 
    font-weight: 300; 
    cursor: pointer;
    transition: 0.2s;
}

.close-lightbox:hover {
    color: #FFD700;
}

/* 부드럽게 커지는 애니메이션 */
@keyframes zoomIn {
    from { transform: scale(0.9); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

/* ✨ 메인 화면 리뷰 카드 개수 반응형 최적화 */

/* 1. PC(1025px 이상) '또는' 모바일(768px 이하)일 때 4번째 카드를 숨김 */
@media (min-width: 1025px), (max-width: 768px) {
    .home-review-grid .home-review-card:nth-child(4) {
        display: none !important;
    }
}

/* =========================================================
   모바일 전용: 가이드 명함 리스트 (간격 강제 할당 버전)
========================================================= */
@media (max-width: 768px) {
    .guide-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }

    .guide-card {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important; /* 사진과 글씨를 위아래 중앙으로 반듯하게 정렬 */
        justify-content: flex-start !important;
        
        /* 💡 핵심 1: 테마가 무시 못 하도록 'gap' 속성으로 아이콘과 글씨 사이를 강제로 20px 벌립니다! */
        gap: 10px !important; 
        
        text-align: left !important;
        padding: 20px 16px !important; 
        border-radius: 12px !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
        
        background-color: transparent !important;
        background-size: cover !important;
        background-position: center !important;
        position: relative !important;
        overflow: hidden !important;
        transition: transform 0.3s ease, box-shadow 0.3s ease !important;
    }

    /* 하얀 반투명 막 (은은한 배경) */
    .guide-card::before {
        content: '' !important;
        position: absolute !important;
        top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
        background: rgba(255, 255, 255, 0.85) !important;
        z-index: 1 !important;
        transition: background 0.3s ease !important;
    }

    /* 호버/터치 효과 */
    .guide-card:hover::before,
    .guide-card:active::before {
        background: rgba(255, 255, 255, 0.75) !important;
    }

    .guide-card:hover,
    .guide-card:active {
        transform: translateY(-2px) !important;
        box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12) !important;
    }

    /* 알맹이들 맨 앞으로 끌어올리기 */
    .guide-card > * {
        position: relative !important;
        z-index: 2 !important;
    }

    /* 아이콘 감싸는 둥근 틀 */
    .guide-img-wrap {
        width: 64px !important;
        height: 64px !important;
        flex-shrink: 0 !important;
        margin: 0 !important; /* 💡 핵심 2: gap을 썼으므로 무시당하던 margin은 아예 빼버립니다 */
        border-radius: 50% !important;
        background: rgba(255, 255, 255, 0.6) !important; 
        border: 1px solid rgba(0, 0, 0, 0.05) !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    /* 아이콘 이미지 축소 */
    .guide-img-wrap img {
        width: 30px !important;
        height: 30px !important;
        object-fit: contain !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* 💡 글씨 영역 (높이 오류 완벽 해결) */
    .guide-info {
        flex: 1 !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important; 
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
    }

    /* 제목 (붕 뜨는 것 방지) */
    .guide-name {
        font-size: 16px !important;
        font-weight: 700 !important;
        color: #111 !important;
        text-shadow: none !important;
        margin: 0 0 4px 0 !important; 
        padding: 0 !important;
        line-height: 1.2 !important;
    }

    /* 설명글 */
    .guide-desc {
        font-size: 13px !important;
        line-height: 1.4 !important;
        color: #555 !important;
        margin: 0 !important;
        padding: 0 !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
    }
}



/* =============================================
   ✨ 모바일 드로어 (상단 공백 제거 + 하위메뉴 회색박스 복구) 통합 CSS ✨
   ============================================== */
.mobile-drawer { 
    background: #ffffff !important; 
    width: 90% !important; 
    padding: 0 !important; /* 🚨 핵심: 상단의 거대한 텅 빈 공백을 완벽 제거! */
}
.mobile-drawer-inner { padding: 0; display: flex; flex-direction: column; }

/* ✨ 은은한 미니멀 닫기 버튼 (추천 스타일) */
#drawerClose {
    position: absolute !important;
    top: 25px !important; /* 로고와 높이를 맞춰서 시각적 안정감 부여 */
    right: 15px !important;
    font-size: 32px !important; /* 아이콘 크기는 시원하게 */
    color: #94a3b8 !important; /* 💡 은은하고 세련된 회색 */
    background: transparent !important; /* 배경 없이 투명하게 */
    border: none !important;
    z-index: 100 !important;
    cursor: pointer;
    line-height: 1;
    padding: 10px;
    transition: color 0.2s ease; /* 호버 시 부드러운 효과 */
}

/* 마우스를 올리거나 터치했을 때만 살짝 진해지게 */
#drawerClose:hover,
#drawerClose:active {
    color: #1e293b !important;
    transform: scale(1.1); /* 살짝 커지는 효과로 누르는 재미 가미 */
}

/* 1. 상단 로고 (위로 바짝 당기기) */
.m-drawer-logo { 
    padding: 15px 20px 15px; 
    border-bottom: 1px solid #f1f5f9 !important; /* 💡 화면 끝까지 닿는 선 */
    text-align: left; 
}
.m-drawer-tagline { 
    font-size: 11px; 
    color: #94a3b8; 
    margin: 0 0 6px 0; 
    letter-spacing: -0.02em; 
}
.m-drawer-logo img { max-height: 40px; width: auto; }
.m-logo-text.Thin { font-size: 20px; font-weight: 300; color: #1565d8; letter-spacing: -0.02em; }

/* 2. 미니멀 로그인/프로필 섹션 */
.m-drawer-user-section { 
    padding: 20px; 
    background: #fff; 
    border-bottom: 1px solid #f1f5f9 !important; /* 💡 화면 끝까지 닿는 선 */
}
.m-user-profile-link { display: flex; align-items: center; text-decoration: none; gap: 15px; }
.m-user-avatar { width: 48px; height: 48px; background: #f1f5f9; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #94a3b8; font-size: 22px; transition: 0.2s; }
.m-user-avatar.logged-in { background: #eff6ff; color: #1565d8; }
.m-user-profile-link:hover .m-user-avatar, .m-user-profile-link:active .m-user-avatar { background: #eff6ff; color: #1565d8; }
.m-user-info-text { flex: 1; display: flex; flex-direction: column; gap: 4px; }
.m-user-greeting { font-size: 12px; color: #94a3b8; }
.m-user-login-text { font-size: 18px; font-weight: 800; color: #1e293b; }
.m-user-name { font-size: 18px; color: #1e293b; }
.m-user-name b { font-weight: 800; color: #1565d8; }
.m-user-point { font-size: 13px; font-weight: 600; color: #64748b; }
.m-user-arrow { font-size: 14px; color: #cbd5e1; transition: 0.2s; }
.m-user-profile-link:hover .m-user-arrow { transform: translateX(3px); color: #1565d8; }
.m-user-logout { margin-top: 15px; text-align: right; }
.m-user-logout a { font-size: 12px; color: #94a3b8; text-decoration: underline; }

/* 3. 상단 퀵 메뉴 아이콘 그리드 (아이콘 굵기 최적화) */
.m-drawer-quick-menu { 
    display: grid; 
    grid-template-columns: repeat(4, 1fr); 
    padding: 20px 15px 20px; 
    background: #fff; 
    border-bottom: 1px solid #f1f5f9 !important; 
}

.quick-item { 
    display: flex; 
    flex-direction: column; 
    align-items: center; 
    justify-content: center; 
    gap: 8px; 
    text-decoration: none; 
    color: #475569; 
}

.quick-item i { 
    font-size: 22px; /* 💡 크기를 살짝 줄이면 시각적으로 더 얇아 보입니다 */
    color: #475569; 
    
    /* 🔥 핵심: 아이콘을 얇게 만드는 마법의 속성 */
    -webkit-text-stroke: 0.5px #fff; /* 흰색 선을 테두리에 살짝 입혀서 원래 선을 깎아냄 */
    opacity: 0.85; /* 투명도를 살짝 주면 훨씬 가늘고 은은해집니다 */
    transition: 0.2s;
}

/* 텍스트 디자인 */
.quick-item span { 
    font-size: 12px; 
    font-weight: 500; 
    letter-spacing: -0.02em;
}

/* 호버 시 효과 (선명해짐) */
.quick-item:hover i { 
    -webkit-text-stroke: 0px; 
    opacity: 1; 
    color: #1565d8; 
}
.quick-item:hover span { color: #1565d8; }

/* 견적문의 강조 색상 */
.quick-item.highlight i { 
    color: #1565d8; 
    opacity: 0.9;
}
.quick-item.highlight span { 
    color: #1565d8; 
    font-weight: 700; 
}
/* 4. 검색창 */
.m-drawer-search { 
    padding: 20px; 
    background: #fff;
    border-bottom: 1px solid #f1f5f9 !important; /* 💡 검색창 아래도 끝까지 닿는 선 */
}
.m-drawer-search form { display: flex; position: relative; }
.m-drawer-search input { 
    width: 100% !important; background: #f8fafc !important; 
    border: 1px solid #e2e8f0 !important; border-radius: 8px !important; 
    padding: 12px 40px 12px 15px !important; font-size: 14px !important; 
    outline: none !important; color: #1e293b !important;
}
.m-drawer-search button { 
    position: absolute; right: 5px; top: 50%; transform: translateY(-50%); 
    background: none; border: none; color: #64748b; font-size: 16px; padding: 10px; cursor: pointer; 
}

/* 5. 플랫 리스트 메뉴 (로고 밑 100% 선 + 섹션 여백 + 하단 라운딩 박스) */
.m-drawer-nav { 
    padding: 0; 
    background: #fff;
}

/* 💡 로고 및 검색창 아래의 첫 번째 구분선은 100% 꽉 차게 설정 */
.m-drawer-search { 
    padding: 15px 20px 20px; 
    border-bottom: 1px solid #f1f5f9; /* 로고 섹션과 동일한 100% 너비 선 */
}

.mobile-nav-list-flat { list-style: none; padding: 0; margin: 0; }

/* 💡 메뉴 섹션: 여기서부터는 양옆을 20px씩 띄움 */
.mobile-nav-list-flat > li { 
    margin: 0 20px !important; 
    position: relative; 
    border-bottom: 8px solid #f8fafc; /* 섹션 사이 굵은 구분선 */
}

.mobile-nav-list-flat > li:last-child { border-bottom: none; }

/* 부모 메뉴 (들여쓰기 적용) */
.mobile-nav-list-flat > li > a { 
    display: block; 
    padding: 24px 20px 15px 20px !important; 
    font-size: 17px; 
    font-weight: 800; 
    color: #111; 
    text-decoration: none; 
}

/* 💡 자식 메뉴 (회색 박스: 하단부 둥글게 처리) */
.mobile-nav-list-flat .sub-menu { 
    list-style: none; 
    padding: 15px 20px 20px !important; 
    margin: 0 !important; 
    background: #f8fafc !important; /* 은은한 회색 배경 */
    border-top: 1px dashed #e2e8f0 !important; /* 상단 점선 구분선 */
    
    /* 💡 핵심: 아래쪽 모서리만 12px로 둥글게 말아줌 */
    border-radius: 0 0 0px 0px !important; 
    
    display: grid !important; 
    grid-template-columns: repeat(2, 1fr); 
    gap: 12px 10px; 
}

.mobile-nav-list-flat .sub-menu li { width: 100%; }

.mobile-nav-list-flat .sub-menu li a { 
    display: flex; 
    align-items: center;
    padding: 6px 0; 
    font-size: 14px; 
    color: #475569; 
    text-decoration: none; 
}

/* 작은 점 (Bullet) */
.mobile-nav-list-flat .sub-menu li a::before {
    content: ""; 
    display: inline-block;
    width: 4px; 
    height: 4px; 
    background: #cbd5e1; 
    border-radius: 50%;
    margin-right: 8px; 
    flex-shrink: 0;
}

/* 6. 하단 고객센터 전화번호 링크 처리 */
.m-drawer-cs-footer { padding: 30px 20px; background: #fff; }
.cs-title { margin: 0 0 5px 0; font-size: 15px; color: #1e293b; }
.cs-title a { text-decoration: none; color: inherit; display: inline-flex; align-items: center; } 
.cs-title b { color: #1565d8; font-size: 18px; margin-left: 5px; letter-spacing: 0.5px; } 
.cs-time { margin: 0 0 15px 0; font-size: 12px; color: #94a3b8; }
.cs-links { font-size: 12px; color: #e2e8f0; }
.cs-links a { color: #64748b; text-decoration: none; padding: 0 5px; }
.cs-links a:first-child { padding-left: 0; }



/* ✨ 드림투어 사이드바 가이드 카드 디자인 */
.sidebar-guide-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    padding: 24px;
    margin-top: 20px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.03);
    transition: all 0.3s ease;
}

.sidebar-guide-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0,0,0,0.06);
    border-color: #1565d8; /* 호버 시 드림투어 메인 블루로 변신 */
}

.guide-label {
    font-size: 11px; font-weight: 800; color: #1565d8;
    margin-bottom: 12px; display: flex; align-items: center; gap: 6px;
}

.guide-title {
    font-size: 17px; font-weight: 700; line-height: 1.45;
    color: #1e293b; margin: 0 0 12px 0;
}

.guide-desc {
    font-size: 13px; color: #64748b; line-height: 1.6;
    margin-bottom: 20px; word-break: keep-all;
}

.guide-btn {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    background: #111827; color: #fff; text-decoration: none;
    padding: 12px; border-radius: 10px; font-size: 13px; font-weight: 600;
}

.guide-btn:hover { background: #1565d8; color: #fff; }



@media (max-width: 768px) {
	.dreamtour-info-sidebar { display: none !important; }
}

.split-caption {
	color: #ffffff;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7); /* 우, 하, 블러 정도, 색상 */
	
}

/* ==========================================================
   리뷰 섹션 반응형 4단 그리드 & 카드 디자인
========================================================== */

/* 💻 PC 화면: 무조건 4개 나란히 */
.home-review-photo-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

/* 포토 카드 기본 스타일 */
.home-review-photo-card {
    cursor: pointer; 
    position: relative; 
    border-radius: 20px; 
    overflow: hidden; 
    height: 380px; 
    box-shadow: 0 10px 30px rgba(0,0,0,0.06); 
    border: 1px solid #f1f5f9;
    transition: transform 0.3s ease, border-color 0.3s ease;
}
.home-review-photo-card:hover {
    transform: translateY(-8px);
    border-color: #cbd5e1;
}

/* 카드 내부 사진 및 오버레이 */
.review-bg-img, .review-bg-fallback {
    position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; 
    transition: transform 0.6s ease;
}
.home-review-photo-card:hover .review-bg-img {
    transform: scale(1.08); /* 마우스 올렸을 때 사진 확대 */
}
.review-overlay {
    position: absolute; inset: 0; 
    background: linear-gradient(to top, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.3) 45%, rgba(0,0,0,0) 100%);
}
.review-content {
    position: absolute; bottom: 0; left: 0; right: 0; 
    padding: 25px; z-index: 2; 
    display: flex; flex-direction: column;
}

/* 📱 반응형 설정 */
@media (max-width: 1024px) {
    /* 태블릿: 2개씩 2줄 */
    .home-review-photo-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
}

@media (max-width: 640px) {
    /* 모바일: 1개씩 세로로 */
    .home-review-photo-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .home-review-photo-card {
        height: 320px; /* 모바일에서는 높이를 살짝 줄여서 화면에 쏙 들어오게 */
    }
}


/* ==================================================
   게시판 우측 상단 검색 필터 CSS
================================================== */
.board-search-wrap {
    display: flex;
    justify-content: flex-end; /* 우측 정렬 */
    margin-bottom: 25px;
}
.board-search-form {
    display: flex;
    align-items: center;
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 15px;
    padding: 5px 18px;
    width: 100%;
    max-width: 260px; /* 작고 아담한 사이즈 */
    transition: all 0.3s ease;
    box-shadow: 0 2px 8px rgba(0,0,0,0.02);
}
.board-search-form:focus-within {
    border-color: #1565d8;
    box-shadow: 0 0 0 3px rgba(21, 101, 216, 0.1);
}
.board-search-form input {
    border: none;
    outline: none;
    background: transparent;
    padding: 8px 0;
    font-size: 14px;
    width: 100%;
    color: #334155;
}
.board-search-form input::placeholder {
    color: #94a3b8;
}
.board-search-form button {
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    color: #64748b;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.2s;
}
.board-search-form button:hover {
    color: #1565d8;
}

/* 모바일에서는 가로로 꽉 차게 */
@media (max-width: 768px) {
    .board-search-wrap { justify-content: center; }
    .board-search-form { max-width: 100%; }
}


/* =========================================================
   ✨ 드림투어 크루즈 지도 섹션 (밝은 버전 + 마스크 적용)
========================================================= */

.cruise-map-grid {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 24px;
    align-items: stretch;
}

/* 1. 💡 1번 요청: 배경을 밝은 블루그레이 톤으로 변경 */
.cruise-map-box {
    position: relative;
    background-color: #f1f5f9; /* 맑고 밝은 배경색 */
    height: 450px;
    border-radius: 10px;
    box-shadow: inset 0 2px 10px rgba(0,0,0,0.02);
    overflow: hidden;
    border: 1px solid #e2e8f0;
}

/* 1. 그림자를 쏴주는 투명한 껍데기 */
.map-shadow-wrapper {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 1;
    
    /* 💡 기존 12px 넓게 퍼지던 그림자를 3px로 좁히고, 진하기를 연하게 조절했습니다 */
    filter: drop-shadow(0px 4px 3px rgba(15, 23, 42, 0.1)); 
}

/* 2. 기존 지도 마스크 (z-index 속성만 제거됨) */
.world-map-bg {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    
    -webkit-mask-image: url('./assets/images/pac-world-map.png');
    mask-image: url('./assets/images/pac-world-map.png');
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    
    /* 💡 기존 연한 회색(#cbd5e1) -> 더 선명하고 엣지있는 슬레이트 그레이로 변경 */
    background-color: #94a3b8; 
}

/* 3. 📍 3번 요청: 핀 위치 재조정 (태평양 중심 PNG 기준) */
.region-dot {
    position: absolute;
    width: 78px; height: 78px;
    background: #ffffff;
    border-radius: 50%;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    border: 1px solid #e2e8f0;
    z-index: 10;
    transition: all 0.3s ease;
    text-decoration: none;
}

/* 📍 개별 좌표 (태평양 중심 지도 및 요청하신 화살표 위치 완벽 반영) */
.r-neurope       { top: 15%; left: 6%; }  /* 북유럽 (유지) */
.r-mediterranean { top: 36%; left: 5%; }  /* 지중해 (↙ 왼쪽 아래로 이동) */
.r-middleeast    { top: 45%; left: 16%; } /* 중동 (유지) */
.r-asia          { top: 38%; left: 32%; } /* 아시아 (← 왼쪽으로 크게 이동) */
.r-australia     { top: 72%; left: 38%; } /* 호주 (← 왼쪽으로 이동하여 대륙 정중앙) */
.r-hawaii        { top: 50%; left: 51%; } /* 하와이 (← 왼쪽으로 이동하여 태평양 한가운데) */
.r-alaska        { top: 24%; left: 60%; } /* 알래스카 (↙ 왼쪽 아래 북미 대륙 끝자락으로 이동) */
.r-mexico        { top: 48%; left: 70%; } /* 멕시코 (← 왼쪽 북미/남미 연결부로 이동) */
.r-caribbean     { top: 44%; left: 81%; } /* 캐리비안 (비율에 맞춰 살짝 왼쪽 이동) */
.r-southamerica  { top: 72%; left: 84%; } /* 남미 (비율에 맞춰 살짝 왼쪽 이동) */

/* 핀 호버 효과 */
.region-dot:hover {
    transform: translateY(-5px);
    border-color: #1565d8;
    box-shadow: 0 8px 20px rgba(21,101,216,0.15);
}
.r-name { font-size: 13px; font-weight: 800; color: #1e293b !important; margin-bottom: 2px; }
.r-season { font-size: 11px; font-weight: 600; color: #1565d8 !important; }

/* 📞 우측 상담 박스 스타일 보완 */
.cruise-contact-box {
    background: #ffffff;
    border-radius: 10px;
    padding: 30px;
    border: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    text-align: center;
}
.cc-phone { font-size: 28px; font-weight: 900; color: #1565d8 !important; margin: 10px 0; }
.cc-divider { border: 0; border-top: 1px dashed #e2e8f0; margin: 20px 0; }
.btn-cc.blue { 
    background: #1565d8; color: #fff; padding: 14px; border-radius: 12px; 
    text-decoration: none; font-weight: 700; display: flex; justify-content: center; align-items: center; gap: 8px;
}

/* =========================================================
   📱 드림투어 크루즈 지도 섹션 (모바일/태블릿 반응형)
========================================================= */

/* 💻 태블릿 화면 (가로 1024px 이하) */
@media (max-width: 1024px) {
    .cruise-map-grid {
        grid-template-columns: 1fr; /* 양옆 2칸을 위아래 1칸으로 합침 */
        gap: 20px;
    }
    
    .cruise-map-box {
        height: 400px; /* 지도가 너무 위아래로 길어지지 않게 높이 조절 */
    }

    .cruise-contact-box {
        padding: 24px;
    }
}

/* 📱 모바일 화면 (가로 768px 이하) */
@media (max-width: 768px) {
    .cruise-map-box {
        height: 280px; /* 모바일 비율에 맞춰 지도 높이 대폭 축소 */
        border-radius: 16px;
    }

    /* 📍 동그라미 핀 모바일 최적화 */
    .region-dot {
        width: 48px; /* 크기를 작고 귀엽게 줄임 */
        height: 48px;
        box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    }
    
    .r-name {
        font-size: 11px !important; /* 지역 이름 글씨 크기 축소 */
        margin-bottom: 0;
    }
    
    .r-season {
        display: none !important; /* 💡 핵심: 모바일에서는 좁으니까 시즌 글씨 숨김 (깔끔함 유지) */
    }

    /* 연락처 박스 모바일 최적화 */
    .cruise-contact-box {
        border-radius: 16px;
        padding: 20px;
    }
    .cc-phone {
        font-size: 24px !important; /* 모바일에 맞춰 전화번호 크기 조절 */
    }
}

/* 📱 아주 작은 모바일 화면 (가로 480px 이하) - 핀 겹침 방지 미세조정 */
@media (max-width: 480px) {
    .region-dot {
        width: 42px;
        height: 42px;
    }
    .r-name {
        font-size: 10px !important;
    }
}


/* ==========================================================
   ✨ 메인 슬라이더(어두운 배경) 글씨 하얀색으로 복구 및 보호 ✨
========================================================== */
.home-hero-content h1,
.home-hero-content .home-hero-title,
.home-hero-content p,
.home-hero-content .home-hero-kicker,
.home-hero-content .home-hero-text {
    color: #ffffff !important;
}

/* 💡 버튼 안의 글씨도 선명한 하얀색으로 복구 */
.home-hero-actions .home-btn {
    color: #ffffff !important;
}

/* ==========================================================
   ✨ CTA 배너 및 푸터(하단) 어두운 배경 글씨 하얀색 복구 ✨
========================================================== */

/* 1. 하단 CTA 배너 (원하시는 여행이 있으신가요?) */
.home-cta-box h2,
.home-cta-box .home-cta-title,
.home-cta-box p.home-cta-text {
    color: #ffffff !important;
}

/* 'READY TO TRAVEL?' 서브 타이틀은 밝은 스카이블루 포인트로 살리기 */
.home-cta-box .home-section-kicker {
    color: #38bdf8 !important; 
}

/* 2. 푸터 (맨 아래 어두운 배경 영역 전체) */
footer h1, footer h2, footer h3, footer h4,
footer p, footer span, footer a, footer li, footer div, footer strong, footer b,
.site-footer h1, .site-footer h2, .site-footer h3, .site-footer h4,
.site-footer p, .site-footer span, .site-footer a, .site-footer li, .site-footer div, .site-footer strong, .site-footer b {
    color: rgba(255, 255, 255, 0.85) !important; /* 눈이 덜 부시게 살짝 부드러운 하얀색(85%) */
}

/* 푸터의 큰 제목들은 100% 쨍한 하얀색으로 강조 */
footer h2, footer h3, footer h4, footer strong,
.site-footer h2, .site-footer h3, .site-footer h4, .site-footer strong {
    color: #ffffff !important;
}

/* 푸터 링크들에 마우스를 올렸을 때 예쁜 파란색으로 변하는 효과 */
footer a:hover, .site-footer a:hover {
    color: #38bdf8 !important;
    transition: color 0.2s ease;
}


/* ==========================================================
   ✨ 드림투어 프리미엄 드롭다운 메뉴 최적화 ✨
========================================================== */

/* 1. 드롭다운 전체 박스: 네비바에 딱 붙이고 상단 포인트 라인 추가 */
.main-nav .sub-menu {
    top: 100% !important; /* 네비바 바로 아래에 딱 붙임 */
    margin-top: 0 !important; 
    padding: 10px 0 !important;
    background: #ffffff !important;
    border-radius: 0 0 12px 12px !important; /* 아래쪽만 둥글게 해서 위쪽과 밀착감 조성 */
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1) !important;
    border: 1px solid #e2e8f0 !important;
    
    /* 상단 파란색 포인트 라인 (전문적인 느낌의 핵심) */
    /* border-top: 3px solid #1565d8 !important;  */
    
    text-align: left !important;
    min-width: 200px !important;
    
    /* 스르륵 나타나는 애니메이션 */
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: block !important;
}

/* 마우스 올렸을 때 나타나기 */
.main-nav li:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* 2. 내부 메뉴 아이템 디자인 */
.main-nav .sub-menu li a {
    padding: 12px 24px !important;
    font-size: 15px !important;
    color: #334155 !important; /* 본문용 다크 그레이 */
    font-weight: 500 !important;
    display: flex !important;
    align-items: center;
    transition: all 0.2s ease;
    border: none !important;
}

/* 3. 호버 효과: 줄 전체 배경색 변경 + 글씨색 변경 */
.main-nav .sub-menu li a:hover {
    background-color: #f1f5f9 !important; /* 아주 연한 회색 배경 */
    color: #1565d8 !important; /* 드림투어 블루 */
    padding-left: 28px !important; /* 살짝 오른쪽으로 밀리는 부드러운 효과 */
}

/* 메뉴 사이에 아주 연한 구분선 추가 (선택 사항) */
.main-nav .sub-menu li:not(:last-child) {
    border-bottom: 1px solid #f1f5f9 !important;
}

/* ==========================================================
   ✨ GNB 드롭다운 너비 다이어트 & 마우스 인식 영역 확장 ✨
========================================================== */

/* 1. 드롭다운 박스 너비 얄쌍하게 줄이기 */
.main-nav .sub-menu {
    min-width: 180px !important; /* (기존 200px -> 140px로 대폭 축소) */
}

/* 2. 서브메뉴(알래스카 등) 좌우 여백 밸런스 맞추기 */
.main-nav .sub-menu li a {
    padding: 12px 18px !important; /* 상자가 좁아졌으니 안쪽 여백도 살짝 줄입니다 */
}
.main-nav .sub-menu li a:hover {
    padding-left: 22px !important; /* 마우스 올렸을 때 이동하는 간격도 조정 */
}



/* .dreamtour-prod-card .card-info-area {
    background-color: #f8fafc; 
    border-top: 1px solid #f1f5f9; 
}

.dreamtour-prod-card .card-price-row {
    border-top: 1px solid #e2e8f0; 
}

.dreamtour-prod-card:hover .card-info-area {
    background-color: #f1f5f9;
    transition: background-color 0.3s ease;
} */


/* ==========================================================
   ✨ 상품 카드: 단정한 그레이 -> 은은한 파란회색 반전 ✨
========================================================== */

/* 1. 기본 상태: 아주 깨끗하고 단정한 뉴트럴 그레이 */
.dreamtour-prod-card .card-info-area {
    /* 💡 흰색 카드와 경계가 확실히 생기면서도 깔끔한 그레이 */
    background-color: #f4f5f7; 
    border-top: 1px solid #e5e7eb; 
    padding: 16px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); /* 💡 더 쫀득하고 부드러운 변화 효과 */
}

/* 가격 영역 위쪽 점선 (더 은은하게) */
.dreamtour-prod-card .card-price-row {
    border-top: 1px dashed #d1d5db; 
    margin-top: 12px;
    padding-top: 12px;
}

/* 🚀 [여기가 포인트!] 마우스를 올렸을 때 효과 */
.dreamtour-prod-card:hover .card-info-area {
    /* 💡 [핵심] 채도를 뺀 은은한 파란회색 (Muted Slate Blue) 
       너무 파랗지 않고 회색이 고급스럽게 섞인 톤입니다. */
    background-color: #e9eff6; 
    border-top-color: #cbd5e1; /* 상단 선도 차분한 블루그레이로 연동 */
}

/* 카드 전체 설정 */
.dreamtour-prod-card {
    border: 1px solid #e5e7eb; 
    background-color: #ffffff;
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s ease;
}

/* 마우스 올렸을 때 카드 전체 떠오르는 효과 */
.dreamtour-prod-card:hover {
    transform: translateY(-7px);
    /* 💡 그림자도 탁한 검정 대신, 블루그레이 톤을 섞어 맑은 느낌 유지 */
    box-shadow: 0 15px 35px rgba(71, 85, 105, 0.1); 
    border-color: #cbd5e1;
}