html,
body {
	max-width: 100%;
	overflow-x: hidden;
}

body {
	padding-top: 70px;
	background-color: #fff;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	line-height: 1.5;
	top: 0px !important;
}

.main-wrapper {
	flex: 1;
}

.main-inner {
	max-width: 1280px;
	margin: 0 auto;
	width: 100%;
	display: flex;
}

footer {
	text-align: center;
	padding: 1rem;
	border-top: 1px solid #ddd;
}

.content {
	flex: 1;
	/* 남은 공간을 모두 차지 */
	min-width: 0;
}

#mainHeader {
	top: 0;
	position: fixed;
	width: 100%;
	z-index: 1050;
	background-color: white;
	border-bottom: 1px solid #f0e6e0;
}

header {
	transition: top 0.3s;
	z-index: 1050;
	height: 68px;
}

@media (max-width: 1200px) {
	header {
		height: 50px;
	}
	.logo-img {
		height: 30px;
		position: relative;
		top: -20px;
	}
	.main-wrapper {
		position: relative;
		top: -25px;
	}
}

.header-hidden {
	top: -80px !important;
}

.header-show {
	top: 0 !important;
}

#mainHeader.hidden {
	display: none !important;
}

#deskTopSearch {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.9rem 1rem;
	margin: 0 auto;
}

.mobile-search-trigger .bi-search {
	font-size: 20px;
	position: relative;
	top: -2px;
}

.mobile-search-trigger .bi-list {
	font-size: 30px;
	cursor: pointer;
	color: #d2691e;
	position: relative;
	top: -18px;
}

#mobileSearch {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 1049;
	background-color: white;
	padding: 0.75rem 1rem;
	animation: fadeIn 0.3s ease-in-out;
	border-bottom: 1px solid #f0e6e0;
}

#mobileSearch.active {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
}

@keyframes fadeIn {
	from {
		opacity: 0;
		transform: translateY(-10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.logo-img {
	height: 45px;
	position: relative;
	top: -3px;
}

.sidebar {
	width: 284px;
	border-right: 1px solid #ddd;
	padding: 1rem;
	flex-shrink: 0;
}

.content {
	flex: 1;
	padding: 1rem;
	background-color: #ffffff;
}

.card-group-inner {
	display: flex;
	gap: 1rem;
	justify-content: center;
	flex-wrap: wrap;
	width: 100%;
}

.card-group-inner .card {
	width: 100%;
	margin: 0 8px;
	border-radius: 12px;
	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.05);
}

.card-body {
	padding: 1.25rem;
}

p.card-text.text-muted,
.text-muted {
	color: #8b6f47 !important;
	line-height: 1.65;
}

h6.card-title {
	margin-bottom: 0.75rem;
}

main.content>.d-flex.justify-content-end>.btn.btn-outline-dark {
	background-color: #ff8c00;
	border-color: #ff8c00;
	color: white;
	font-weight: 600;
	padding: 0.6rem 1.5rem;
	border-radius: 50px;
	transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

main.content>.d-flex.justify-content-end>.btn.btn-outline-dark:hover {
	background-color: #ff7f50;
	border-color: #ff7f50;
	color: white;
	transform: scale(1.03);
}

.content section:nth-of-type(2) .badge.rounded-pill.text-dark.border {
	background-color: #fffaf0;
	border: 1px solid #ff8c00;
	color: #5c4033;
	padding: 0.6em 1.2em;
	font-size: 0.9rem;
	font-weight: 500;
	transition: all 0.2s ease-in-out;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.content section:nth-of-type(2) .badge.rounded-pill.text-dark.border:hover {
	background-color: #ff8c00;
	color: white;
	border-color: #ff7f50;
	transform: translateY(-2px) scale(1.02);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.sidebar .nav-link {
	transition: background-color 0.2s ease, color 0.2s ease, padding-left 0.2s ease, letter-spacing 0.2s ease;
	border-radius: 6px;
	padding-top: 0.6rem;
	padding-bottom: 0.6rem;
	margin-bottom: 0.2rem;
}

.sidebar .nav-link:hover,
.sidebar .nav-link:focus {
	background-color: #fffaf0;
	color: #ff8c00 !important;
	padding-left: 0.75rem !important;
	letter-spacing: 0.5px;
}

.sticky-box {
	position: sticky;
	top: 80px;
	z-index: 10;
}

:root {
	--theme-accent-color: #ff8c00;
	--theme-accent-hover-color: #ff7f50;
	--badge-bg-color: #fffaf0;
	--text-muted-light: #8b6f47;
}

@media (min-width: 1200px) {
	#deskTopSearch {
		max-width: 1200px;
	}
}

@media (max-width: 1200px) {
	.sidebar {
		display: none;
	}
	.desktop-search {
		display: flex !important;
	}
	.mobile-search-trigger,
	#mobileSearch {
		display: none !important;
	}
	p.card-text.text-muted {
		display: -webkit-box;
		-webkit-line-clamp: 4;
		/* 보여줄 줄 수 */
		-webkit-box-orient: vertical;
		overflow: hidden;
		text-overflow: ellipsis;
	}
}

@media (max-width: 1199.98px) {
	.desktop-search {
		display: none !important;
	}
	.mobile-search-trigger {
		display: flex !important;
	}
}

@media (max-width: 770px) {
	p.card-text.text-muted {
		display: -webkit-box;
		-webkit-line-clamp: 2;
		/* 보여줄 줄 수 */
		-webkit-box-orient: vertical;
		overflow: hidden;
		text-overflow: ellipsis;
	}
}

@media (max-width: 760px) {
	.slide-item {
		min-width: 100% !important;
	}
	.row.flex-column-reverse {
		flex-direction: row !important;
	}
	#foodInfo .col-md-4 {
		width: 100%;
		height: 240px;
		overflow: hidden;
		position: relative;
	}
	#foodInfo .col-md-4 img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		/* 핵심: 이미지 잘라도 꽉 채우기 */
		object-position: center center;
		/* 가운데 기준으로 잘라 보여줌 */
		display: block;
	}
}

#themeDetail .position-relative {
	width: 100%;
	height: 300px;
	overflow: hidden;
	position: relative;
}

#themeDetail .position-relative img {
	width: 100%;
	height: 300px;
	object-fit: cover;
	/* 핵심: 이미지 잘라도 꽉 채우기 */
	object-position: center center;
	/* 가운데 기준으로 잘라 보여줌 */
	display: block;
}

#themeDetailList .card-icons {
	position: relative;
	top: -8px;
}

@media (min-width: 761px) {
	.slide-item {
		min-width: 33.3333% !important;
	}
}

.skiptranslate,
.goog-te-banner-frame,
.goog-logo-link,
.goog-te-gadget {
	display: none !important;
}

.swiper {
	width: 100%;
	height: 100%;
}

.swiper-slide {
	text-align: center;
	font-size: 18px;
	display: flex;
	justify-content: center;
	align-items: center;
}

.swiper-slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.swiper-controls {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	margin-top: 10px;
}

.swiper-controls .swiper-button-prev,
.swiper-controls .swiper-button-next {
	position: static;
	color: #ff8c00;
	margin: 0;
	width: 20px;
	height: 15px;
	font-size: 15px;
}

.swiper-controls .swiper-button-prev::after,
.swiper-controls .swiper-button-next::after {
	font-size: 15px;
	font-weight: bold;
}

.swiper-controls .swiper-pagination {
	position: static;
	margin: 0;
	width: 200px;
}

#map {
	width: 100%;
	height: 400px;
	aspect-ratio: 16 / 9;
	/* 또는 4/3, 3/2 등 */
}

.infowindow-content {
	padding: 10px;
	max-width: 90vw;
	width: 250px;
	word-break: break-word;
	font-size: 14px;
}

@media (max-width: 480px) {
	.infowindow-content {
		width: calc(100vw - 80px);
	}
}

.heart-button {
	cursor: pointer;
	display: inline-block;
}

.heart-button .bi {
	display: inline-block;
}

.heart-button.liked .bi {
	color: #ff4500;
}

.heart-bounce {
	animation: pop 0.3s ease;
}

@keyframes pop {
	0% {
		transform: scale(1);
	}
	50% {
		transform: scale(1.5);
	}
	100% {
		transform: scale(1);
	}
}

.review-form-container {
	margin: 0 auto;
}

.review-input-group {
	display: flex;
	align-items: stretch;
	gap: 10px;
}

.review-textarea {
	flex-grow: 1;
	padding: 10px;
	border: 1px solid #f0e6e0;
	border-radius: 6px;
	min-height: 50px;
	font-size: 16px;
	line-height: 1.5;
	resize: vertical;
}

.review-submit-button {
	border: none;
	background-color: #ff8c00;
	color: white;
	font-size: 16px;
	font-weight: bold;
	border-radius: 6px;
	cursor: pointer;
	transition: background-color 0.2s;
	white-space: nowrap;
	width: 60px;
}

.review-submit-button:hover {
	background-color: #ff7f50;
}

.char-counter {
	text-align: right;
	margin-top: 5px;
	font-size: 14px;
	color: #8b6f47;
	padding-right: 90px;
}

#foodInfo .text-ellipsis-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;     /* 3줄까지 표시 */
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.5em;
  max-height: 4.5em;         /* 1.5em * 3줄 */
}

:root {
    --swiper-theme-color:  #ff7f50;
}