@charset "utf-8";

/* 모바일 공통 퀵메뉴 */
.hico-mobile-quick {
	display: none;
}

/* 가로형 탭 스크롤 안내 */
.hico-mobile-scroll-hint {
	display: none;
}

@media (max-width: 900px) {
	/* 모바일에서 등장 효과 때문에 콘텐츠가 남지 않도록 즉시 표시합니다. */
	.sub-page.hico-scroll-reveal .hico-scroll-reveal__item {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
		will-change: auto !important;
	}
}

@media (max-width: 767px) {
	/* 서브페이지 상단 인트로 제목 크기 통일 */
	.sub-page .hico-venue__intro h2,
	.sub-page .hico-amenity__intro h2,
	.sub-page .hico-parking__intro h2,
	.sub-page .hico-rental__intro h2,
	.sub-page .hico-rental-guide__intro h2,
	.sub-page .hico-report__intro h2,
	.sub-page .hico-partners__intro h2,
	.sub-page .hico-floors__intro h2,
	.sub-page .hico-events3__intro h2,
	.sub-page .hico-ci3__intro h2,
	.sub-page .hico-alliance__intro-head h2,
	.sub-page .hico-overview__intro h2,
	.sub-page .hico-greeting__heading h2 {
		font-size: 36px !important;
		line-height: 1.25;
	}

	.hico-mobile-quick {
		position: fixed;
		background:#333;
		z-index: 1300;
		right: 0;
		bottom: 0;
		left: 0;
		display: flex;
		min-height: calc(64px + env(safe-area-inset-bottom));
		padding: 0 0 env(safe-area-inset-bottom);
		color: #fff;
		box-shadow: 0 -8px 24px rgba(0, 0, 0, .08);
		backdrop-filter: blur(14px);
		transition: transform 220ms ease;
	}

	.hico-mobile-quick a {
		display: flex;
		min-width: 0;
		min-height: 64px;
		flex: 1 1 0;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 4px;
		border-right: 1px solid rgba(255,255,255,0.2);
		color: rgba(255,255,255,0.8);
		font-size: 12px;
		font-weight: 600;
		line-height: 1.2;
		letter-spacing: -.02em;
		text-decoration: none;
		-webkit-tap-highlight-color: transparent;
	}

	.hico-mobile-quick a:last-child {
		border-right: 0;
	}

	.hico-mobile-quick svg {
		width: 23px;
		height: 23px;
		flex: 0 0 23px;
		color: #fff;
		stroke: currentColor;
		stroke-width: 1.7;
	}

	.hico-mobile-quick a:active {
		color: #dc3323;
		background: #f7f7f4;
	}

	.hico-mobile-quick a:active svg {
		color: #dc3323;
	}

	body.hico-new-is-menu-open .hico-mobile-quick {
		transform: translateY(110%);
	}

	/* 가로 스크롤 탭은 얇은 스크롤바와 안내 문구를 함께 표시합니다. */
	.sub-page :is(
		.hico-partners__filters,
		.hico-alliance__cats,
		.board-cates,
		.hico-floors__plan-tabs
	) {
		padding-bottom: 8px;
		overscroll-behavior-inline: contain;
		scrollbar-width: thin;
		scrollbar-color: rgba(32, 32, 30, .48) #eeeeea;
		-webkit-overflow-scrolling: touch;
	}

	.sub-page :is(
		.hico-partners__filters,
		.hico-alliance__cats,
		.board-cates,
		.hico-floors__plan-tabs
	)::-webkit-scrollbar {
		height: 5px;
	}

	.sub-page :is(
		.hico-partners__filters,
		.hico-alliance__cats,
		.board-cates,
		.hico-floors__plan-tabs
	)::-webkit-scrollbar-track {
		background: #eeeeea;
	}

	.sub-page :is(
		.hico-partners__filters,
		.hico-alliance__cats,
		.board-cates,
		.hico-floors__plan-tabs
	)::-webkit-scrollbar-thumb {
		border-radius: 999px;
		background: rgba(32, 32, 30, .48);
	}

	.hico-mobile-scroll-hint {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		gap: 7px;
		margin: 8px 2px 0;
		color: rgba(32, 32, 30, .52);
		font-size: 12px;
		font-weight: 550;
		line-height: 1.4;
		transition: opacity 180ms ease;
	}

	.hico-mobile-scroll-hint[hidden] {
		display: none;
	}

	.hico-mobile-scroll-hint.is-used {
		opacity: .35;
	}

	.hico-mobile-scroll-hint svg {
		width: 22px;
		height: 14px;
		flex: 0 0 22px;
		fill: none;
		stroke: currentColor;
		stroke-width: 1.6;
		stroke-linecap: round;
		stroke-linejoin: round;
	}

	/* 게시판 목록: 제목과 날짜만 남긴 단일 열 구조 */
	.sub-page--board .board-table tbody tr:has(.board-table__subject) {
		position: relative;
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: 9px;
		padding: 22px 42px 20px 0;
		border-top: 1px solid var(--board-line);
	}

	.sub-page--board .board-table tbody tr:has(.board-table__subject)::after {
		position: absolute;
		top: 50%;
		right: 4px;
		width: 22px;
		height: 22px;
		background: center / 22px 22px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23777772' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E");
		content: "";
		transform: translateY(-50%);
	}

	.sub-page--board .board-table tbody tr:has(.board-table__subject) > td {
		display: none;
	}

	.sub-page--board .board-table tbody tr:has(.board-table__subject) > .board-table__subject,
	.sub-page--board .board-table tbody tr:has(.board-table__subject) > td:nth-child(4) {
		display: block;
		grid-column: 1;
		padding: 0 !important;
		border: 0;
		text-align: left;
	}

	.sub-page--board .board-table__subject .board-tag {
		display: none;
	}

	.sub-page--board .board-table__subject a {
		display: block;
		width: 100%;
		font-size: 19px;
		font-weight: 600;
		line-height: 1.5;
		text-decoration: none;
		word-break: keep-all;
	}

	.sub-page--board .board-table tbody tr:has(.board-table__subject) > td:nth-child(4) {
		color: #858580;
		font-size: 14px;
		font-weight: 400;
		line-height: 1.4;
	}

	/* 게시판 상세: 제목, 메타 정보, 첨부파일을 평면적인 단일 열로 정리 */
	.sub-page--board .board-view__head {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
		padding: 28px 20px 24px;
	}

	.sub-page--board .board-view__head .board-tag {
		display: inline-flex;
		width: fit-content;
		min-height: 30px;
		align-items: center;
		gap: 0;
		margin: 0;
		padding: 5px 10px;
		border: 1px solid #d6d6d1;
		border-radius: 999px;
		color: #666661;
		font-size: 13px;
		font-weight: 600;
		line-height: 1;
		background: #fff;
	}

	.sub-page--board .board-view__title {
		font-size: 23px;
		font-weight: 600;
		line-height: 1.45;
		letter-spacing: -.025em;
	}

	.sub-page--board .board-view__meta {
		display: grid;
		grid-template-columns: 1fr;
		gap: 10px;
		margin: 0;
		padding: 18px 20px;
		background: #f7f7f4;
	}

	.sub-page--board .board-view__meta > div,
	.sub-page--board .board-view__meta > div + div {
		display: flex;
		justify-content: flex-start;
		gap: 5px;
		padding: 0;
		border: 0;
	}

	.sub-page--board .board-view__meta dt,
	.sub-page--board .board-view__meta dd {
		font-size: 15px;
		font-weight: 400;
		line-height: 1.5;
	}

	.sub-page--board .board-view__meta dt {
		color: #5f5f5a;
	}

	.sub-page--board .board-view__meta dt::after {
		content: ":";
	}

	.sub-page--board .board-view__meta dd {
		color: #858580;
	}

	.sub-page--board .board-view__files {
		display: grid;
		grid-template-columns: 1fr;
		gap: 10px;
		padding: 18px 20px;
		background: #fff;
	}

	.sub-page--board .board-view__files > strong {
		color: #5f5f5a;
		font-size: 15px;
		font-weight: 500;
	}

	.sub-page--board .board-view__files li {
		display: grid;
		grid-template-columns: 20px minmax(0, 1fr);
		gap: 5px 9px;
	}

	.sub-page--board .board-view__files .file-type-ico {
		grid-row: 1 / span 2;
	}

	.sub-page--board .board-view__files a {
		grid-column: 2;
		color: #383834;
		font-size: 15px;
		font-weight: 400;
		line-height: 1.5;
		text-decoration: none;
		overflow-wrap: anywhere;
	}

	.sub-page--board .board-view__filesize {
		grid-column: 2;
		color: #999994;
		font-size: 12px !important;
		font-weight: 400;
	}

	/* 통합신고센터 상단 이미지 위 텍스트 대비 강화 */
	.sub-page .hico-report__intro {
		background-image:
			linear-gradient(180deg, rgba(12, 12, 11, .42), rgba(12, 12, 11, .78)),
			url("/img_new/report_bg.png");
		background-position: center;
		background-size: cover;
		background-blend-mode: multiply;
	}

	/* 오시는 길 공통 탭: 항공 아래의 두 번째 행 구분선 보완 */
	.sub-page .hico-common-tabs.hico-common-tabs--five > :is(button, a):nth-child(3) {
		border-bottom: 1px solid #e3e3df;
	}

	/* 오시는 길 경로: 출발·도착 / 수단·버스번호 / 시간의 3단 구조 */
	.sub-page .hico-location__route-list > .hico-location__route-item,
	.sub-page .hico-location__route-list--bus > .hico-location__route-item {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 18px minmax(0, 1fr);
		grid-template-rows: auto auto auto;
		gap: 8px 6px;
		padding: 20px 0;
	}

	.sub-page .hico-location__route-list > .hico-location__route-item > strong,
	.sub-page .hico-location__route-list--bus > .hico-location__route-item > strong {
		grid-row: 1;
		grid-column: 1;
	}

	.sub-page .hico-location__route-list > .hico-location__route-item > i,
	.sub-page .hico-location__route-list--bus > .hico-location__route-item > i {
		grid-row: 1;
		grid-column: 2;
		text-align: center;
	}

	.sub-page .hico-location__route-list > .hico-location__route-item > em,
	.sub-page .hico-location__route-list--bus > .hico-location__route-item > em {
		grid-row: 1;
		grid-column: 3;
		text-align: right;
	}

	.sub-page .hico-location__route-list > .hico-location__route-item > span,
	.sub-page .hico-location__route-list--bus > .hico-location__route-item > .hico-location__route-number {
		display: flex;
		grid-row: 2;
		grid-column: 1 / -1;
		align-items: flex-start;
		gap: 8px;
		color: #777772;
		font-size: 15px;
		line-height: 1.55;
	}

	.sub-page .hico-location__route-list > .hico-location__route-item > b,
	.sub-page .hico-location__route-list--bus > .hico-location__route-item > b {
		grid-row: 3;
		grid-column: 1 / -1;
		padding-top: 9px;
		border-top: 1px solid #ecece8;
		color: var(--venue-red);
		font-size: 16px;
		text-align: right;
	}

	.sub-page .hico-location__route-list strong,
	.sub-page .hico-location__route-list em {
		font-size: 16px;
		line-height: 1.45;
		word-break: keep-all;
	}

	/* Alliance 상세 모달: 모바일 브라우저의 실제 화면 높이 안에서 내부 스크롤 */
	.hico-alliance-modal {
		height: 100dvh;
		max-height: 100dvh;
		padding: 7.5dvh 0;
	}

	.hico-alliance-modal__dialog {
		display: flex;
		width: 80%;
		height: auto;
		max-height: 85dvh;
		flex-direction: column;
		border-radius: 20px;
	}

	.hico-alliance-modal__content {
		min-height: 0;
		flex: 1 1 auto;
		overflow-y: auto;
		width: 100%;
		height: auto;
		max-height: 85dvh;
		padding: 68px 18px calc(32px + env(safe-area-inset-bottom));
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
	}

	.hico-alliance-modal__close {
		position: absolute;
		top: 14px;
		right: 14px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.hico-mobile-quick,
	.hico-mobile-scroll-hint {
		transition: none;
	}
}
