/* =========================================================
   user.reserve.css — car / insurance-package / child-seat / quantity / agree / policy / detail / reserve-*
   ========================================================= */

/* ===== Component: .car-list / .car-card =============== */
.car-list {
	display:flex; flex-direction:column; gap:14px; margin-top:20px;
	list-style:none; padding:0;
}

/* ----- view toggle 툴바 ----- */
.car-list-toolbar {
	display:flex; align-items:center; justify-content:space-between; gap:12px;
	margin-top:20px;
}
.car-list-toolbar__count {
	font-size:0.875rem; font-weight:600; color:var(--unc-ink-2);
}
.car-list-toolbar__count strong { color:var(--unc-brand-strong); font-weight:800; }
.car-list-toolbar__view {
	display:inline-flex; align-items:center; gap:4px;
	padding:3px; border:1px solid var(--unc-line); border-radius:8px;
	background:#fff;
}
.car-list-toolbar__view-btn {
	width:32px; height:28px; border:0; background:no-repeat center / 16px;
	border-radius:5px; cursor:pointer;
	transition: background-color .12s var(--unc-ease);
}
.car-list-toolbar__view-btn[data-car-list-view="list"] {
	background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B737C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><line x1='8' y1='6' x2='21' y2='6'/><line x1='8' y1='12' x2='21' y2='12'/><line x1='8' y1='18' x2='21' y2='18'/><line x1='3' y1='6' x2='3.01' y2='6'/><line x1='3' y1='12' x2='3.01' y2='12'/><line x1='3' y1='18' x2='3.01' y2='18'/></svg>");
}
.car-list-toolbar__view-btn[data-car-list-view="grid"] {
	background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B737C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='7' height='7'/><rect x='14' y='3' width='7' height='7'/><rect x='3' y='14' width='7' height='7'/><rect x='14' y='14' width='7' height='7'/></svg>");
}
.car-list-toolbar__view-btn.is-active {
	background-color:var(--unc-bg-soft);
}
.car-list-toolbar__view-btn.is-active[data-car-list-view="list"] {
	background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F7E18' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><line x1='8' y1='6' x2='21' y2='6'/><line x1='8' y1='12' x2='21' y2='12'/><line x1='8' y1='18' x2='21' y2='18'/><line x1='3' y1='6' x2='3.01' y2='6'/><line x1='3' y1='12' x2='3.01' y2='12'/><line x1='3' y1='18' x2='3.01' y2='18'/></svg>");
}
.car-list-toolbar__view-btn.is-active[data-car-list-view="grid"] {
	background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F7E18' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='7' height='7'/><rect x='14' y='3' width='7' height='7'/><rect x='3' y='14' width='7' height='7'/><rect x='14' y='14' width='7' height='7'/></svg>");
}
/* 모바일은 항상 1 column 그리드 형식이라 toggle 숨김 */
@media (max-width:767px) {
	.car-list-toolbar__view { display:none; }
}

/* ----- 그리드 뷰 ----- */
.car-list.car-list--grid {
	display:grid; gap:14px;
	grid-template-columns:repeat(3, 1fr);
}
@media (max-width:1199px) {
	.car-list.car-list--grid { grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:767px) {
	.car-list.car-list--grid { grid-template-columns:1fr; }
}
/* 그리드 모드의 카드 — 모바일 layout 처럼 column */
.car-list--grid .car-card { flex-direction:column; padding:16px; }
.car-list--grid .car-card__main { flex-direction:column; gap:12px; }
.car-list--grid .car-card__image {
	width:100%; max-width:none; height:130px;
	display:flex; align-items:center; justify-content:center;
}
.car-list--grid .car-card__image img {
	max-width:80%; max-height:100%; width:auto; height:auto;
	object-fit:contain;
}
.car-list--grid .car-card__side {
	width:100%; align-items:stretch; border-left:0; border-top:1px dashed var(--unc-line);
	padding-left:0; margin-left:0; padding-top:12px; margin-top:12px;
}
.car-list--grid .car-card__benefits { text-align:left; }
.car-list--grid .car-card__benefits dd,
.car-list--grid .car-card__benefits li { justify-content:flex-start; }
.car-list--grid .car-card__action { width:100%; }
.car-list--grid .car-card__price { justify-content:flex-start; }
.car-card__group {
	display:inline; vertical-align:baseline;
	color:var(--unc-brand-strong); font-weight:700; line-height:inherit;
}
.results-loading { margin-top:16px; }
.car-list--skeleton { pointer-events:none; }
.car-card {
	display:flex; align-items:stretch;
	padding:18px 20px; background:#fff;
	border:1px solid var(--unc-line); border-radius:16px;
	box-shadow:0 1px 2px rgba(15,42,18,0.04);
	transition: border-color .15s var(--unc-ease), box-shadow .15s var(--unc-ease), transform .15s var(--unc-ease);
}
.car-card--skeleton { align-items:center; }
.car-card--skeleton:hover {
	border-color:var(--unc-line);
	box-shadow:0 1px 2px rgba(15,42,18,0.04);
	transform:none;
}
.car-skeleton {
	display:block;
	border-radius:6px;
	background:linear-gradient(90deg, #EEF2F7 0%, #F8FAFC 46%, #EEF2F7 100%);
	background-size:220% 100%;
	animation:carSkeletonPulse 1.2s ease-in-out infinite;
}
.car-skeleton--image { width:132px; height:88px; border-radius:8px; }
.car-skeleton--title { width:min(260px, 70%); height:22px; }
.car-skeleton--text { width:min(180px, 55%); height:14px; }
.car-skeleton-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; }
.car-skeleton--pill { width:72px; height:24px; border-radius:999px; }
.car-skeleton--price { width:116px; height:28px; margin-left:auto; }
.car-skeleton--button { width:120px; height:42px; margin-top:auto; }
@keyframes carSkeletonPulse {
	0% { background-position:120% 0; }
	100% { background-position:-120% 0; }
}

/* 선택 직후에는 상세 API를 기다리지 않고 이 화면을 먼저 보여준다. */
.detail-loading { padding-top:20px; padding-bottom:48px; }
.detail-loading__notice {
	display:flex; align-items:center; gap:14px;
	padding:18px 20px; border:1px solid #BCEFC0; border-radius:14px;
	background:#F2FCF3; color:var(--unc-ink);
}
.detail-loading__notice strong { display:block; font-size:1rem; font-weight:800; }
.detail-loading__notice p { margin-top:4px; font-size:0.8125rem; line-height:1.5; color:var(--unc-ink-3); }
.detail-loading__spinner {
	flex:0 0 auto; width:28px; height:28px; border-radius:50%;
	border:3px solid #C9F3CC; border-top-color:var(--unc-brand);
	animation:detailLoadingSpin .8s linear infinite;
}
.detail-loading.has-error .detail-loading__notice { border-color:#FECACA; background:#FFF7F7; }
.detail-loading.has-error .detail-loading__spinner { animation:none; border-color:#EF4444; }
.detail-loading__section { pointer-events:none; }
.detail-loading__panel { display:flex; flex-direction:column; gap:12px; margin-top:18px; padding:18px; border-radius:12px; background:var(--unc-bg-soft); }
.detail-loading__heading { width:min(15rem, 52%); height:1.25rem; }
.detail-loading__line { width:68%; height:0.875rem; }
.detail-loading__line--wide { width:92%; }
.detail-loading__line--short { width:42%; }
.detail-loading__vehicle { display:flex; align-items:center; gap:14px; }
.detail-loading__image { flex:0 0 8rem; width:8rem; height:5.5rem; border-radius:10px; }
.detail-loading__vehicle-copy { flex:1; min-width:0; display:flex; flex-direction:column; gap:12px; }
.detail-loading__vehicle-copy .detail-loading__heading,
.detail-loading__vehicle-copy .detail-loading__line { width:100%; }
.detail-loading__price { width:55%; height:2rem; margin-top:22px; }
.detail-loading__error-actions { display:flex; justify-content:center; gap:10px; margin-top:18px; }
.detail-loading__error-actions[hidden] { display:none; }
.detail-loading__error-actions .btn { width:min(12rem, 48%); }
@keyframes detailLoadingSpin { to { transform:rotate(360deg); } }
@media (max-width:991px) {
	.detail-loading { padding-top:12px; padding-bottom:32px; }
	.detail-loading__notice { padding:14px 16px; }
	.detail-page__layout--loading { margin-top:12px; gap:0; }
	.detail-loading__aside { order:-1; }
	.detail-loading__image { flex-basis:6.5rem; width:6.5rem; height:4.5rem; }
}
@media (prefers-reduced-motion:reduce) {
	.detail-loading__spinner, .car-skeleton { animation-duration:2.4s; }
}
.car-card__action .btn { touch-action:manipulation; }
.car-card__action .btn.is-selecting {
	pointer-events:none;
	cursor:wait;
	box-shadow:none;
	opacity:0.78;
	transform:none;
}
@media (hover:hover) and (pointer:fine) {
	.car-card:not(.car-card--skeleton):hover {
		border-color:var(--unc-brand);
		box-shadow:0 8px 20px rgba(36,210,44,0.10);
		transform:translateY(-1px);
	}
}
.car-card__main {
	flex:1; min-width:0;
	display:flex; gap:16px;
}
.car-card__image {
	flex-shrink:0; width:200px; height:140px;
	display:flex; align-items:center; justify-content:center;
}
.car-card__image img {
	max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain;
}
.car-card__content { flex:1; min-width:0; display:flex; flex-direction:column; gap:8px; }
.car-card__title {
	font-size:1rem; font-weight:800; color:var(--unc-ink); letter-spacing:0;
	line-height:1.35; word-break:keep-all; overflow-wrap:anywhere;
}
.car-card__model {
	font-size:0.8125rem; line-height:1.5; color:var(--unc-muted);
	word-break:normal; overflow-wrap:anywhere;
}
.car-card__specs {
	display:flex; flex-wrap:wrap; gap:14px;
	margin:6px 0 0;
	list-style:none; padding:0;
}
.car-card__spec {
	display:inline-flex; align-items:center; gap:5px;
	font-size:0.75rem; font-weight:500; color:var(--unc-ink-3);
}
.car-card__spec::before {
	content:""; width:14px; height:14px; background:no-repeat center / contain;
}
.car-card__spec--seats::before {
	background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A5159' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='9' cy='8' r='3'/><circle cx='15' cy='12' r='3'/><path d='M3 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2'/><path d='M9 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2'/></svg>");
}
.car-card__spec--bags::before,
.car-card__spec--bagsm::before {
	background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A5159' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='6' y='8' width='12' height='12' rx='2'/><path d='M9 8V5h6v3'/></svg>");
}
.car-card__spec--transmission::before {
	background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A5159' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><line x1='6' y1='4' x2='6' y2='20'/><line x1='18' y1='4' x2='18' y2='20'/><circle cx='6' cy='10' r='1.5'/><circle cx='18' cy='14' r='1.5'/></svg>");
}
.car-card__badge {
	align-self:flex-start;  /* flex-column 부모의 stretch 막음 */
	display:inline-flex; align-items:center;
	padding:4px 10px; border-radius:6px;
	background:#E0F2FE; color:#0369A1;
	font-size:0.75rem; font-weight:700; font-style:normal; line-height:1.2;
}
.car-card__badge--electric { background:#DBEAFE; color:#1E40AF; }

.car-card__side {
	flex-shrink:0; width:240px;
	display:flex; flex-direction:column; align-items:flex-end; gap:8px;
	border-left:1px dashed var(--unc-line); padding-left:18px; margin-left:18px;
}
.car-card__pay-label {
	font-size:0.8125rem; font-weight:600; color:var(--unc-ink-3);
}
.car-card__price {
	display:flex; align-items:baseline; gap:6px;
	font-size:1.75rem; font-weight:800; color:var(--unc-ink); letter-spacing:0;
	line-height:1.15;
}
.car-card__currency {
	font-size:0.875rem; font-weight:600; color:var(--unc-brand-strong); letter-spacing:0;
}
.car-card__price strong { color:var(--unc-brand-strong); font-weight:800; font-size:inherit; }

/* 프로모션 배지 — 네이버페이 포인트 증정.
   네이버페이 BI 공식 symbol_sq_npaybk_large.svg (검정 정사각 + 그린 Npay 워드마크) 사용. */
.car-card__promo {
	display:inline-flex; align-items:center; gap:6px;
	padding:5px 10px 5px 5px; border-radius:6px;
	background:#F0FBF4; color:#0F5A2A;
	font-size:0.75rem; font-weight:700; line-height:1.2; letter-spacing:0;
	white-space:nowrap;
}
.car-card__promo::before {
	content:""; width:22px; height:22px; flex-shrink:0;
	border-radius:4px; background:no-repeat center / contain;
	background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140' fill='none'><path d='M140 0H0V140H140V0Z' fill='black'/><path d='M118.892 61.3118L113.789 72.9397L108.018 61.3118H103.577L111.759 77.4429L108.384 84.9719H112.693L123.201 61.304H118.892V61.3118ZM101.112 79.2863H96.8961V77.6064C95.3717 78.9208 93.5517 79.6519 91.3428 79.6519C86.295 79.6519 82.3439 75.5452 82.3439 70.2952C82.3439 65.0452 86.295 60.9385 91.3428 60.9385C93.5439 60.9385 95.3717 61.6697 96.8961 62.9841V61.304H101.112V79.2863ZM97.3861 70.2952C97.3861 66.9041 95.0217 64.3297 91.8794 64.3297C88.745 64.3297 86.3728 66.9041 86.3728 70.2952C86.3728 73.6863 88.7372 76.2607 91.8794 76.2607C95.0217 76.2607 97.3861 73.6863 97.3861 70.2952ZM61.375 84.9719H65.7772V77.7619C67.2628 78.983 69.0283 79.6519 71.1439 79.6519C76.1917 79.6519 80.1428 75.5452 80.1428 70.2952C80.1428 65.0452 76.1917 60.9385 71.1439 60.9385C68.9428 60.9385 67.115 61.6697 65.5906 62.9841V61.304H61.375V84.9719ZM70.6072 64.3375C73.7417 64.3375 76.1139 66.9118 76.1139 70.303C76.1139 73.6941 73.7494 76.2684 70.6072 76.2684C67.4728 76.2684 65.1006 73.6941 65.1006 70.303C65.1006 66.9118 67.465 64.3375 70.6072 64.3375Z' fill='%2300DE5A'/><path d='M53.4885 70.8477C53.4885 80.9821 45.2752 89.1955 35.1407 89.1955C25.0063 89.1955 16.793 80.9821 16.793 70.8477C16.793 60.7132 25.0063 52.5 35.1407 52.5C45.2752 52.5 53.4885 60.7132 53.4885 70.8477ZM38.213 62.23V71.4543L31.8041 62.23H26.5152V79.4733H32.0685V70.2488L38.4774 79.4733H43.7663V62.23H38.213Z' fill='%2300DE5A'/></svg>");
}
.car-list--grid .car-card__promo { align-self:flex-start; }
.reserve-payment__promo {
	padding:8px 0 0; display:flex; justify-content:flex-start;
}
.car-card__benefits {
	list-style:none; padding:0; margin:0;
	font-size:0.75rem; line-height:1.5; color:var(--unc-ink-3);
	text-align:right; word-break:keep-all;
}
.car-card__benefits dd, .car-card__benefits li {
	margin:0 0 3px;
	display:flex; align-items:center; justify-content:flex-end; gap:5px;
}
.car-card__benefits dd::before,
.car-card__benefits li::before {
	content:"✓"; color:var(--unc-brand-strong); font-weight:700; font-size:0.6875rem;
}
.car-card__benefits li.car-card__benefit--limited::before {
	content:"!"; color:#e36a00;
}
.car-card__benefits li.car-card__benefit-note {
	margin-top:4px;
	align-items:flex-start;
	color:var(--unc-muted);
	font-size:0.6875rem;
	line-height:1.45;
}
.car-card__benefits li.car-card__benefit-note::before {
	content:"※"; color:inherit;
}
.car-card__action { width:120px; margin-top:auto; }
.car-card__action .btn { height:42px; font-size:0.875rem; }

@media (max-width:767px) {
	.car-card { flex-direction:column; padding:16px; }
	.car-card__main { gap:12px; }
	.car-card__image { width:100px; height:auto; }
	.car-card__side {
		width:100%; align-items:stretch; border-left:0; border-top:1px dashed var(--unc-line);
		padding-left:0; margin-left:0; padding-top:12px; margin-top:12px;
	}
	.car-card__benefits { text-align:left; }
	.car-card__benefits dd, .car-card__benefits li { justify-content:flex-start; }
	.car-card__action { width:100%; }
}


/* ===== Component: .insurance-package (보험 패키지) ==== */
.insurance-package {
	border:1px solid var(--unc-line); border-radius:14px;
	background:#fff; padding:0; overflow:hidden;
	transition: border-color .15s var(--unc-ease), box-shadow .15s var(--unc-ease);
	cursor:pointer;
}
.insurance-package + .insurance-package { margin-top:12px; }
.insurance-package.is-selected,
.insurance-package.active.selected {
	border-color:var(--unc-brand);
	box-shadow:0 4px 12px rgba(36,210,44,0.10);
}
.insurance-package__head {
	display:flex; align-items:center; gap:12px;
	padding:14px 16px; background:var(--unc-bg-soft);
	cursor:pointer;
}
.insurance-package__name {
	flex:1; min-width:0; text-align:left;
	font-size:0.9375rem; font-weight:800; color:var(--unc-ink); letter-spacing:0;
	background:none; border:0; padding:0; cursor:pointer;
	display:flex; flex-direction:column; align-items:flex-start; gap:2px; line-height:1.35;
}
.insurance-package__name-local { display:block; }
.insurance-package__name-en {
	display:block; max-width:100%;
	font-size:0.75rem; font-weight:600; line-height:1.35; color:var(--unc-ink-3);
	overflow-wrap:anywhere; word-break:normal;
}
/* accordion 화살표 — head 우측 */
.insurance-package__head::after {
	content:""; flex-shrink:0; width:18px; height:18px; margin-left:4px;
	background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A1D21' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat center / 18px;
	transition: transform .15s var(--unc-ease);
}
.insurance-package.is-open .insurance-package__head::after { transform:rotate(180deg); }
.insurance-package__price {
	flex-shrink:0;
	display:inline-flex; align-items:baseline; gap:5px;
	font-size:1.25rem; font-weight:900; color:var(--unc-brand-strong);
	letter-spacing:0;
}
.insurance-package__price strong { font-size:inherit; font-weight:inherit; color:inherit; }
.insurance-package__price .car-card__currency { font-size:0.8125rem; font-weight:700; color:inherit; }
.insurance-package__select { flex-shrink:0; }
.insurance-package__body {
	padding:14px 16px;
	display:none;
	cursor:pointer;
}
.insurance-package.is-open .insurance-package__body { display:block; }
.insurance-package__description {
	margin:0 0 14px; padding:0 0 14px;
	border-bottom:1px solid var(--unc-line);
	font-size:0.8125rem; line-height:1.6; color:var(--unc-ink);
}
.insurance-package__section-title {
	margin:0 0 8px; font-size:0.75rem; font-weight:800; line-height:1.4; color:var(--unc-brand-strong);
}
.insurance-package__list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:0; }
.insurance-package__item { margin:0; padding:0; }
.insurance-package__item + .insurance-package__item {
	margin-top:12px; padding-top:12px;
	border-top:1px dashed var(--unc-line);
}
.insurance-package__item p {
	margin:0;
	font-size:0.8125rem; font-weight:700; color:var(--unc-ink); line-height:1.5;
}
.insurance-package__coverage-name { display:flex; align-items:baseline; flex-wrap:wrap; gap:3px 7px; }
.insurance-package__coverage-name-local { word-break:keep-all; }
.insurance-package__coverage-name-en {
	font-size:0.75rem; font-weight:600; color:var(--unc-ink-3);
	overflow-wrap:anywhere; word-break:normal;
}
.insurance-package__item small {
	display:block; margin:5px 0 0;
	font-size:0.75rem; line-height:1.5; color:var(--unc-ink-3);
}
.insurance-package__benefits {
	margin-top:14px; padding-top:14px; border-top:1px solid var(--unc-line);
}
.insurance-package__benefit-item { padding-left:18px; position:relative; }
.insurance-package__benefit-item::before {
	content:"✓"; position:absolute; left:0; top:1px; color:var(--unc-brand-strong); font-weight:900;
}
.insurance-package__benefit-badge {
	display:inline-flex; align-items:center; min-height:20px; padding:2px 7px;
	border-radius:999px; background:#E8F8EA; color:var(--unc-brand-strong);
	font-size:0.6875rem; font-weight:800; line-height:1.35; white-space:nowrap;
}
/* 모바일: head 한 줄에 [이름+가격+선택+화살표] 가 다 안 들어가 이름이 1글자씩
   세로로 부서지던 문제 → 이름을 한 줄 전체로 두고 가격/선택/화살표를 아랫줄로 */
@media (max-width:600px) {
	.insurance-package__head { flex-wrap:wrap; justify-content:flex-end; row-gap:8px; }
	.insurance-package__name {
		flex:0 0 100%; min-width:0;
		white-space:normal; word-break:keep-all;
	}
	.insurance-package__name-en { word-break:normal; overflow-wrap:anywhere; }
	.insurance-package__coverage-name { display:block; }
	.insurance-package__coverage-name-en { display:block; margin-top:2px; }
	.insurance-package__description { margin-bottom:12px; padding-bottom:12px; }
	.insurance-package__benefits { margin-top:12px; padding-top:12px; }
	.insurance-package__item + .insurance-package__item { margin-top:10px; padding-top:10px; }
}


/* ===== Component: .child-seat-list (카시트 옵션) ===== */
.child-seat-list {
	border:1px solid var(--unc-line); border-radius:14px; background:#fff; overflow:hidden;
}
.child-seat-list__head {
	padding:14px 16px; background:var(--unc-bg-soft);
	font-size:0.875rem; font-weight:800; color:var(--unc-ink);
}
.child-seat-list__items { list-style:none; padding:0; margin:0; }
.child-seat-list__item {
	display:flex; align-items:center; gap:14px;
	padding:14px 16px;
}
.child-seat-list__item + .child-seat-list__item { border-top:1px solid var(--unc-line); }
.child-seat-list__image {
	flex-shrink:0; width:64px; height:64px;
	display:flex; align-items:center; justify-content:center;
}
.child-seat-list__image img { max-width:100%; max-height:100%; object-fit:contain; }
.child-seat-list__content { flex:1; min-width:0; }
.child-seat-list__name {
	font-size:0.8125rem; font-weight:700; color:var(--unc-ink); margin-bottom:2px;
	word-break:keep-all;
}
.child-seat-list__desc {
	font-size:0.75rem; color:var(--unc-muted); display:block;
	word-break:keep-all;
}
.child-seat-list__status {
	margin:0.5rem 0 0;
	font-size:0.75rem;
	line-height:1.5;
	color:var(--unc-muted);
}
.child-seat-list__status.is-success { color:var(--unc-brand-strong); font-weight:700; }
.child-seat-list__status.is-error { color:#D93025; font-weight:700; }
.child-seat-list[aria-busy="true"] .quantity-box { opacity:0.55; }
.child-seat-list[aria-busy="true"] .quantity-box a { cursor:wait; pointer-events:none; }

.rate-reprice-overlay {
	position:fixed;
	inset:0;
	z-index:12000;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:1.25rem;
	background:rgba(18, 24, 20, 0.58);
	backdrop-filter:blur(0.1875rem);
}
.rate-reprice-overlay[hidden] { display:none; }
.rate-reprice-overlay__panel {
	width:min(27rem, 100%);
	padding:1.75rem 1.25rem;
	border:0.0625rem solid rgba(31, 211, 54, 0.35);
	border-radius:1rem;
	background:#fff;
	box-shadow:0 1rem 3rem rgba(0, 0, 0, 0.24);
	text-align:center;
}
.rate-reprice-overlay__spinner {
	display:block;
	width:2.75rem;
	height:2.75rem;
	margin:0 auto 1rem;
	border:0.25rem solid #e3f7e7;
	border-top-color:var(--unc-brand);
	border-radius:50%;
	animation:rate-reprice-spin 0.75s linear infinite;
}
.rate-reprice-overlay__panel strong {
	display:block;
	font-size:1rem;
	line-height:1.45;
	color:var(--unc-ink);
	word-break:keep-all;
}
.rate-reprice-overlay__panel p {
	margin:0.5rem 0 0;
	font-size:0.75rem;
	line-height:1.5;
	color:var(--unc-muted);
}
.is-rate-repricing [data-detail-rate-packages],
.is-rate-repricing [data-sticky-summary] {
	opacity:0.48;
	filter:saturate(0.4);
}
@keyframes rate-reprice-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) {
	.rate-reprice-overlay__spinner { animation-duration:1.5s; }
}
.booking-validation-message {
	position:fixed; left:50%; bottom:6.25rem; z-index:96;
	width:min(calc(100% - 2rem), 28rem); margin:0; padding:0.75rem 1rem;
	transform:translate(-50%, 0.5rem);
	border-radius:0.75rem; background:rgba(31,39,32,0.94); color:#fff;
	box-shadow:0 0.5rem 1.5rem rgba(0,0,0,0.2);
	font-size:0.8125rem; line-height:1.45; font-weight:700; text-align:center;
	opacity:0; pointer-events:none;
	transition:opacity 0.18s ease, transform 0.18s ease;
}
.booking-validation-message.is-visible {
	transform:translate(-50%, 0);
	opacity:1;
}
@media (min-width:992px) {
	.booking-validation-message { bottom:2rem; }
}
/* 모바일: 이미지+카운터가 행을 다 먹어 가운데 텍스트가 ~38px 로 짓눌려
   한 글자씩 세로로 부서지던 문제 → 카운터를 아랫줄(우측)로 내려 텍스트 폭 확보 */
@media (max-width:600px) {
	.child-seat-list__item { flex-wrap:wrap; }
	.child-seat-list__content { flex-basis:calc(100% - 78px); }
	.child-seat-list__item > .quantity-box { margin-left:auto; }
}


/* ===== Component: .quantity-box (수량 control) ======= */
.quantity-box {
	display:inline-flex; align-items:center;
	border:1px solid var(--unc-line); border-radius:8px;
	background:#fff; overflow:hidden;
}
.quantity-box a,
.quantity-box .minus,
.quantity-box .plus {
	display:inline-flex; align-items:center; justify-content:center;
	width:32px; height:32px;
	font-size:0; background:no-repeat center / 14px; cursor:pointer;
	text-decoration:none;
}
.quantity-box .minus {
	background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A1D21' stroke-width='2' stroke-linecap='round'><line x1='5' y1='12' x2='19' y2='12'/></svg>");
}
.quantity-box .plus {
	background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A1D21' stroke-width='2' stroke-linecap='round'><line x1='5' y1='12' x2='19' y2='12'/><line x1='12' y1='5' x2='12' y2='19'/></svg>");
}
.quantity-box input {
	width:36px; height:32px; padding:0; border:0; border-left:1px solid var(--unc-line); border-right:1px solid var(--unc-line);
	background:transparent; text-align:center;
	font-size:0.8125rem; font-weight:700; color:var(--unc-ink);
}


/* ===== Component: .agree-list (약관 동의 collapsible) === */
.agree-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.agree-list__item {
	border:1px solid var(--unc-line); border-radius:10px; background:#fff;
	overflow:hidden;
}
.agree-list__head {
	display:flex; align-items:center; justify-content:space-between; gap:10px;
	padding:14px 16px;
}
.agree-list__toggle {
	display:inline-flex; align-items:center; justify-content:center;
	width:24px; height:24px; padding:0; border:0; cursor:pointer;
	background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A5159' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat center / 16px;
	font-size:0; transition: transform .15s var(--unc-ease);
}
.agree-list__item.active .agree-list__toggle { transform:rotate(180deg); }
.agree-list__body {
	display:none;
	padding:14px 16px; border-top:1px solid var(--unc-line);
	background:var(--unc-bg-soft);
}
.agree-list__item.active .agree-list__body { display:block; }
.agree-list__body .agree-box {
	font-size:0.8125rem; line-height:1.7; color:var(--unc-ink-3);
	max-height:24rem; overflow:auto;
	word-break:keep-all; overflow-wrap:anywhere;
	overscroll-behavior:contain;
	-webkit-overflow-scrolling:touch;
	scrollbar-width:thin;
	scrollbar-color:var(--unc-line-2) transparent;
}
/* 회원가입 비밀번호 일치 안내 */
.booking-password-match {
	margin:8px 0 0; font-size:0.8125rem; font-weight:600; line-height:1.5;
}
.booking-password-match.is-success { color:var(--unc-brand-text); }
.booking-password-match.is-error { color:#D93025; }

/* 이벤트 확인하기 — 로고색 형광 강조 + 밑줄 */
.booking-account__reward-link {
	color:var(--unc-brand-text); font-weight:700; text-decoration:underline;
	background:linear-gradient(transparent 55%, var(--unc-brand) 55%);
	padding:0 2px; border-radius:2px;
}
/* 골드회원 안내 — 들여쓰기 없이 입력 필드와 좌측을 맞추고, 활자는 위쪽
   "영문 성/이름은 여권 …" 안내(.reserve-section__note)와 동일하게 맞춘다. */
.reserve-section__bullets {
	margin:8px 0 0; padding-left:0;
	font-size:0.8125rem; font-weight:700; line-height:1.6; color:var(--unc-ink-3);
}
.reserve-section__bullets p { margin:0; }
.reserve-section__bullets p + p { margin-top:6px; }
.reserve-section__bullets a { color:var(--unc-brand-text); font-weight:700; text-decoration:underline; }

/* 임차 자격 및 이용 규정 — 본문 안 "원문 규정" 은 픽업 지점의 공급사 원문 페이지로 */
.agree-list__body .agree-box__source-link {
	color:var(--unc-brand-text); font-weight:700; text-decoration:underline;
}
/* 소제목 옆 안내 링크 — 골드회원 "가입하기" 링크와 같은 모양으로 맞춘다. */
.detail-page__sub-title .detail-page__sub-link {
	margin-left:4px; font-size:0.8125rem; font-weight:700;
	color:var(--unc-brand-text); text-decoration:underline;
}

/* 운전자 프로필의 입력칸 라벨 — 번호만 나란히 있으면 어떤 번호인지 헷갈린다. */
.reserve-section__field-label {
	margin:0 0 6px; font-size:0.8125rem; font-weight:700; color:var(--unc-ink-3);
}
.reserve-section__field-label.mt12 { margin-top:12px; }

/* 예약확약서 이메일이 최종 예약 내용이라는 안내 — 놓치면 분쟁이 되므로 강조한다. */
.agree-list__body .agree-box__highlight {
	color:var(--unc-brand-text); font-weight:800;
}
/* 이 항목은 접지 않고 항상 펼쳐 둔다(토글 버튼 없음). */
.agree-list__item--always-open .agree-list__body { display:block; }

.agree-list__body .agree-box::-webkit-scrollbar {
	width:.25rem; height:.25rem;
}
.agree-list__body .agree-box::-webkit-scrollbar-thumb {
	background:var(--unc-line-2); border-radius:999px;
}
.agree-list__body .agree-box:focus-visible {
	outline:3px solid rgba(36, 210, 44, .45);
	outline-offset:3px;
}
.agree-list__body .agree-box p { margin:0 0 12px; }
.agree-list__body .agree-box p:last-child { margin-bottom:0; }
.agree-list__body .agree-box b,
.agree-list__body .agree-box strong {
	font-weight:800; color:var(--unc-ink);
}
.agree-list__body .agree-box table {
	width:100%; margin:12px 0 14px; border-collapse:collapse; table-layout:fixed;
	background:#fff; border:1px solid var(--unc-line);
}
.agree-list__body .agree-box th,
.agree-list__body .agree-box td {
	padding:10px; border:1px solid var(--unc-line);
	font-size:0.75rem; line-height:1.55; color:var(--unc-ink-3);
	text-align:left; vertical-align:top; word-break:keep-all; overflow-wrap:anywhere;
}
.agree-list__body .agree-box th {
	background:#F4F7F4; font-weight:800; color:var(--unc-ink);
}
@media (max-width:767px) {
	.agree-list__head { align-items:flex-start; }
	.agree-list__body { padding:12px; }
	/* 본문 크기는 좁은 화면에서도 줄이지 않는다. 이 본문이 "변경/취소 및 환불
	   규정" 크기의 기준인데 여기서 0.75rem 으로 작아지면 둘 다 읽기 어려워진다
	   (리뉴얼 검토 6차 4번). 높이 제한만 모바일에서 조인다. */
	.agree-list__body .agree-box {
		max-height:min(18rem, 40dvh);
		line-height:1.65;
	}
	.agree-list__body .agree-box table { min-width:560px; }
	.agree-list__body .agree-box {
		overflow:auto; display:block;
	}
}


/* ===== Component: .policy-guide (변경/취소 규정 박스) === */
.policy-guide {
	padding:16px 18px; border-radius:12px; background:var(--unc-bg-soft);
}
.policy-guide__title {
	display:block; font-size:0.875rem; font-weight:800; color:var(--unc-ink); margin-bottom:8px;
}
.policy-guide__title + ul { margin-bottom:14px; }
.policy-guide ul { list-style:none; padding:0; margin:0; }
/* base.css 의 `* { font-size:.875rem }` 가 .agree-box 안 <p> 를 직접 잡아 14px 로
   그린다. 상속이 아니라 직접 매칭이라 .agree-box 의 0.8125rem 은 문단에 닿지
   않는다. 나란히 놓이는 이 목록도 같은 14px 로 맞춘다 — 0.8125rem 이면 `*` 를
   이겨 혼자 1px 작아 보인다 (리뉴얼 검토 6차 4번). */
.policy-guide ul li {
	position:relative; padding-left:14px; margin-bottom:6px;
	font-size:0.875rem; line-height:1.7; color:var(--unc-ink-2); word-break:keep-all;
}
.policy-guide ul li::before {
	content:""; position:absolute; left:0; top:10px;
	width:4px; height:4px; border-radius:50%; background:var(--unc-brand);
}


/* ===== Page: .detail-page (차량 상세 2-col) =========== */
.agent-handoff-intro {
	display:grid; grid-template-columns:auto minmax(0, 1fr); gap:1.5rem; align-items:center;
	margin-top:1.25rem; padding:1.5rem 1.75rem;
	border:1px solid #BCEFC0; border-radius:1rem;
	background:linear-gradient(135deg, #F3FCF4 0%, #FFFDF5 100%);
	box-shadow:0 .25rem 1rem rgba(27,55,31,.05);
}
.agent-handoff-intro__brand {
	display:flex; flex-direction:column; align-items:center; justify-content:center;
	width:8.75rem; min-height:7.5rem; padding:1rem;
	border:1px solid rgba(36,210,44,.18); border-radius:.875rem; background:#fff;
}
.agent-handoff-intro__brand img { display:block; width:7rem; height:auto; max-height:3.25rem; object-fit:contain; }
.agent-handoff-intro__brand span { margin:.3rem 0; font-size:.75rem; color:var(--unc-muted-2); }
.agent-handoff-intro__brand em {
	position:relative; z-index:0;
	font-family:Arial, sans-serif; font-size:1.25rem; line-height:1.15; font-weight:900;
	font-style:italic; color:#111;
}
.agent-handoff-intro__brand em::after {
	content:""; position:absolute; z-index:-1; left:-.15rem; right:-.15rem; bottom:-.1rem;
	height:.25rem; border-radius:999px; background:#F9C900;
}
.agent-handoff-intro__eyebrow {
	display:inline-flex; align-items:center; min-height:1.75rem; padding:0 .625rem;
	border-radius:999px; background:#E2F9E4; color:var(--unc-brand-strong);
	font-size:.6875rem; font-weight:800;
}
.agent-handoff-intro__content h1 {
	margin-top:.625rem; font-size:1.25rem; line-height:1.4; font-weight:850; color:var(--unc-ink);
}
.agent-handoff-intro__content > p {
	margin-top:.375rem; font-size:.875rem; line-height:1.65; color:var(--unc-ink-2); word-break:keep-all;
}
.agent-handoff-intro__checks { display:flex; flex-wrap:wrap; gap:.5rem 1rem; margin-top:.75rem; }
.agent-handoff-intro__checks li {
	position:relative; padding-left:1.1rem;
	font-size:.75rem; line-height:1.5; font-weight:650; color:var(--unc-ink-2);
}
.agent-handoff-intro__checks li::before {
	content:"✓"; position:absolute; left:0; top:0; color:var(--unc-brand-strong); font-weight:900;
}
@media (max-width:767px) {
	.agent-handoff-intro { grid-template-columns:1fr; gap:1rem; margin-top:.875rem; padding:1.25rem; }
	.agent-handoff-intro__brand {
		flex-direction:row; justify-content:flex-start; gap:.5rem;
		width:100%; min-height:0; padding:.75rem 1rem;
	}
	.agent-handoff-intro__brand img { width:6.25rem; max-height:2.75rem; }
	.agent-handoff-intro__brand span { margin:0; }
	.agent-handoff-intro__content h1 { font-size:1.0625rem; }
}
.detail-page__layout {
	display:grid; grid-template-columns:1fr minmax(320px, 380px);
	gap:24px; align-items:start; margin-top:20px;
}
/* 그리드 아이템 min-width:auto 기본값 → 약관 펼침 시 내부 table 등 넓은 콘텐츠가
   트랙 밖으로 컨테이너를 밀어내 가로 스크롤 발생. min-width:0 으로 트랙을 따르게 한다. */
.detail-page__main, .detail-page__aside { min-width:0; }
@media (max-width:991px) {
	.detail-page__layout { grid-template-columns:1fr; gap:18px; }
}
/* PC: 우측 사이드바 sticky — schedule-bar(64px) + 여유 */
@media (min-width:992px) {
	.detail-page__aside {
		position:sticky; top:88px;
		max-height:calc(100vh - 104px);
		overflow-y:auto;
	}
	.detail-page__aside::-webkit-scrollbar { width:4px; }
	.detail-page__aside::-webkit-scrollbar-thumb { background:var(--unc-line-2); border-radius:4px; }
}
.detail-page__section {
	padding:20px 22px; background:#fff; border:1px solid var(--unc-line);
	border-radius:16px; margin-bottom:14px;
}
.detail-page__section-title {
	font-size:1.0625rem; font-weight:800; color:var(--unc-ink); letter-spacing:0;
	margin-bottom:14px;
}
.detail-page__sub-title {
	font-size:0.875rem; font-weight:700; color:var(--unc-ink-2);
	margin:14px 0 10px; display:flex; align-items:center; gap:6px;
}
.detail-page__sub-title:first-child { margin-top:0; }
.detail-page__sub-title small {
	font-size:0.75rem; font-weight:500; color:var(--unc-muted);
}
.hertz-gold-verify__row {
	display:grid;
	grid-template-columns:minmax(0, 1fr) 6rem;
	gap:0.625rem;
	align-items:stretch;
}
.hertz-gold-verify__row .input-box { min-width:0; }
.hertz-gold-verify__button {
	width:100%;
	height:3.125rem;
	padding:0 0.75rem;
	white-space:nowrap;
}
.hertz-gold-verify__button[disabled] {
	cursor:wait;
	opacity:0.65;
}
/* 확인 안내 — 위쪽 "영문 성/이름은 여권 …" 안내와 같은 활자. 이전엔 회색 소자
   크기라 눈에 들어오지 않았다. */
.hertz-gold-verify__status {
	margin-top:0.5rem;
	font-size:0.8125rem;
	font-weight:700;
	line-height:1.6;
	color:var(--unc-ink-3);
}
.hertz-gold-verify__status.is-success { color:var(--unc-brand-strong); font-weight:700; }
.hertz-gold-verify__status.is-error { color:#D93025; font-weight:700; }
.hertz-gold-verify.is-verified .input-box { border-color:var(--unc-brand); }
/* footer 여백은 main padding-bottom (user.base.css) 으로 일관 처리 */
.detail-page__actions {
	display:flex; gap:14px; margin-top:24px;
}
.detail-page__actions .btn { flex:1; min-width:0; height:54px; }


/* ===== Component: .booking-account ===================== */
.booking-account {
	margin-top:10px;
	padding:14px;
	border:1px solid var(--unc-line);
	border-radius:12px;
	background:var(--unc-bg-soft);
}
.booking-account__email {
	background:#fff;
}
.booking-account__options {
	display:grid;
	grid-template-columns:repeat(3, minmax(160px, 1fr));
	gap:8px;
	margin-top:12px;
}
.booking-account__option label {
	width:100%;
	min-height:46px;
	background:#fff;
	box-sizing:border-box;
}
.booking-account__reward-notice {
	display:grid;
	gap:3px;
	margin:0 0 12px;
	padding:11px 13px;
	border:1px solid #B7E4BC;
	border-radius:9px;
	background:#F1FBF2;
	font-size:0.8125rem;
	line-height:1.55;
	color:var(--unc-ink-3);
}
.booking-account__reward-notice[hidden] { display:none; }
.booking-account__reward-notice strong {
	font-weight:900;
	color:var(--unc-brand-strong);
}
.booking-account__panel {
	margin-top:12px;
	padding:12px;
	border-radius:10px;
	background:#fff;
	border:1px solid var(--unc-line);
}
.booking-account__panel[hidden] { display:none; }
.booking-account__panel .reserve-section__note:first-child { margin-top:0; }

.booking-account__verify-row {
	display:grid;
	grid-template-columns:minmax(0, 1fr) 176px;
	gap:10px;
	align-items:stretch;
	margin-top:12px;
}
.booking-account__password {
	min-width:0;
}
.booking-account__verify {
	width:100%;
	height:50px;
	white-space:nowrap;
}
.booking-account__verify[aria-busy="true"] {
	opacity:.72;
	cursor:wait;
}
.booking-account__status {
	min-height:20px;
	margin-top:10px;
	font-size:14px;
	line-height:1.45;
	color:var(--unc-muted);
}
.booking-account__status:empty { display:none; }
.booking-account__status.is-error { color:#D93025; font-weight:700; }
.booking-account__status.is-success { color:var(--unc-brand-strong); font-weight:700; }
.booking-account__authenticated {
	display:flex;
	align-items:center;
	gap:12px;
	min-height:64px;
	padding:12px 14px;
	border:1px solid var(--unc-brand);
	border-radius:10px;
	background:var(--unc-brand-soft);
}
.booking-account__authenticated[hidden] { display:none; }
.booking-account__authenticated-icon {
	display:flex;
	align-items:center;
	justify-content:center;
	flex:0 0 28px;
	width:28px;
	height:28px;
	border-radius:50%;
	background:var(--unc-brand);
	color:#fff;
	font-weight:800;
}
.booking-account__authenticated strong {
	display:block;
	font-size:15px;
	color:var(--unc-brand-strong);
}
.booking-account__authenticated p {
	margin-top:3px;
	font-size:14px;
	color:var(--unc-text);
	overflow-wrap:anywhere;
}
.booking-driver-picker { margin-top:12px; padding:14px; border:1px solid var(--unc-line); border-radius:10px; background:#fff; }
.booking-driver-picker[hidden] { display:none; }
.booking-driver-picker__label { display:block; margin-bottom:8px; font-size:14px; font-weight:800; }
.booking-driver-picker__row select { width:100%; min-height:50px; padding:0 42px 0 14px; border:1px solid var(--unc-line); border-radius:10px; background:#fff; color:var(--unc-text); font:inherit; }
.booking-driver-picker__new-label { margin-top:10px; }
.booking-field-helpers--two {
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:16px;
}
.booking-field-helpers--phone {
	display:grid;
	grid-template-columns:minmax(0, 1fr) 100px minmax(0, 1fr);
	gap:16px;
}
.booking-field-helpers--phone .helper:first-child { grid-column:2; }
.booking-field-helpers--phone .helper:last-child { grid-column:3; }
@media (max-width:991px) {
	.booking-account__options { grid-template-columns:1fr; }
	.booking-account__verify-row { grid-template-columns:1fr; }
	.booking-field-helpers--two { grid-template-columns:1fr; gap:0; }
	.booking-field-helpers--phone { grid-template-columns:1fr; gap:0; }
	.booking-field-helpers--phone .helper:first-child,
	.booking-field-helpers--phone .helper:last-child { grid-column:auto; }
}


/* ===== Layout: .reserve-page (2-col) ================== */
/* 예약 상세는 인증/게스트 조회 진입 경로와 관계없이 데스크톱 컨테이너 폭을 유지한다.
   body.mobile 공통 규칙이 남아 있어도 430px 안에 2열이 강제로 들어가지 않도록 방어한다. */
body.reservation-detail main .container,
body.mobile main .container:has(> .reserve-page__layout),
.reservation-detail-page > section > .container {
	width:100%; max-width:1080px; margin-left:auto; margin-right:auto;
	padding-left:24px; padding-right:24px;
}
.reserve-page__layout {
	display:flex;
	gap:24px; align-items:start; margin-top:20px;
}
/* Safari에서 body.mobile 또는 캐시된 body 클래스가 남더라도 두 열의 계산이
	서로 침범하지 않도록 명시적인 flex 기준 폭을 사용한다. */
.reserve-page__main { flex:1 1 0; min-width:0; }
.reserve-page__aside { flex:0 0 40%; width:40%; min-width:320px; max-width:420px; }
@media (max-width:991px) {
	body.reservation-detail main .container,
	body.mobile main .container:has(> .reserve-page__layout),
	.reservation-detail-page > section > .container { max-width:430px; padding-left:20px; padding-right:20px; }
	.reserve-page__layout { flex-direction:column; gap:18px; }
	.reserve-page__main,
	.reserve-page__aside { flex:0 0 auto; width:100%; min-width:0; max-width:none; }
}


/* ===== Component: .reserve-header (페이지 상단 안내) === */
.reserve-header {
	display:flex; align-items:flex-start; gap:14px;
	padding:20px 22px; border-radius:16px;
	background:var(--unc-bg-soft); border:1px solid var(--unc-line);
	margin-top:20px;
}
.reserve-header__body { flex:1; min-width:0; }
.reserve-header__title {
	font-size:1.25rem; font-weight:800; color:var(--unc-ink); letter-spacing:0;
	margin-bottom:8px;
}
/* 안내 문구는 한 단계 크게 — 0.75rem 은 읽기에 작았다. */
.reserve-header__notes {
	font-size:0.875rem; line-height:1.6; color:var(--unc-ink-3);
}
.reserve-header__badge {
	flex-shrink:0; padding:6px 12px; border-radius:999px;
	background:var(--unc-brand); color:var(--unc-ink);
	font-size:0.75rem; font-weight:700;
}
.reserve-header__badge--cancelled { background:var(--unc-ink-3); color:#fff; }


/* ===== Component: .reserve-section (입력 폼 섹션) ===== */
.reserve-section {
	padding:20px 22px; border:1px solid var(--unc-line); border-radius:16px;
	background:#fff; margin-bottom:14px;
}
.reserve-section__title {
	font-size:0.9375rem; font-weight:800; color:var(--unc-ink); letter-spacing:0;
	margin-bottom:14px; display:flex; align-items:center; gap:6px;
}
.reserve-section__title small {
	font-size:0.75rem; font-weight:500; color:var(--unc-muted);
}
.reserve-section__info dl, .reserve-section__info ul { margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.reserve-section__info dd, .reserve-section__info li {
	margin:0; display:flex; justify-content:space-between; gap:12px;
	font-size:0.875rem; line-height:1.55;
}
.reserve-section__info dd, .reserve-section__info li p:first-child {
	color:var(--unc-muted); font-weight:600;
}
.reserve-section__info dd, .reserve-section__info li p:last-child {
	color:var(--unc-ink); font-weight:600;
}
.reserve-section__note {
	margin-top:10px;
	font-size:0.8125rem; font-weight:700; line-height:1.6; color:var(--unc-ink-3);
}
.reserve-section__note strong {
	font-size:inherit; font-weight:800; line-height:inherit;
	color:var(--unc-danger);
}
.reserve-section__note--caution {
	display:block;
	margin-top:12px; padding:11px 13px;
	border:1px solid #FCD34D; border-radius:8px;
	background:#FFFBEB; color:#92400E;
	font-size:0.8125rem; font-weight:800; line-height:1.55;
}
.reserve-section__note--caution strong {
	display:inline-flex; align-items:center;
	margin-right:6px; padding:2px 7px;
	border-radius:999px; background:#78350F; color:#fff;
	font-size:0.75rem; font-weight:900; line-height:1.35;
}
.reserve-section__note--caution a {
	color:#B45309;
}
.reserve-section__note-alert {
	display:inline-flex; align-items:center;
	margin:0 3px; padding:2px 7px;
	border:1px solid #FCA5A5; border-radius:6px;
	background:#FEF2F2; color:#B91C1C;
	font-size:0.75rem; font-weight:900; line-height:1.45;
	vertical-align:baseline;
}
.reserve-section__note a {
	font-size:inherit; font-weight:800; line-height:inherit;
	color:var(--unc-brand-strong);
	text-decoration:underline; text-underline-offset:2px;
}
.reserve-section__note a:hover { color:#0A5C12; }

.reserve-provider-warnings {
	margin:14px 0; padding:14px 16px;
	border:1px solid #FCD34D; border-radius:12px;
	background:#FFFBEB; color:#78350F;
}
.reserve-provider-warnings__title {
	display:flex; align-items:center; gap:8px;
	font-size:0.875rem; font-weight:900; line-height:1.45;
}
.reserve-provider-warnings__title span {
	display:inline-flex; align-items:center; justify-content:center;
	width:20px; height:20px; border-radius:50%;
	background:#D97706; color:#fff;
	font-size:0.75rem; font-weight:900;
}
.reserve-provider-warnings__list {
	margin:8px 0 0; padding-left:20px;
	font-size:0.8125rem; font-weight:700; line-height:1.6;
}
.reserve-provider-warnings__list li + li { margin-top:4px; }


/* ===== Component: .reservation-itinerary (예약 일정) ===== */
.reservation-itinerary {
	display:grid; grid-template-columns:1fr; gap:10px;
}
.reservation-itinerary__card {
	display:grid; grid-template-columns:minmax(180px, 0.85fr) minmax(0, 1.4fr);
	align-items:start; gap:14px;
	padding:14px; border:1px solid var(--unc-line); border-radius:12px;
	background:var(--unc-bg-soft);
}
.reservation-itinerary__head {
	display:block;
	margin-bottom:0;
}
.reservation-itinerary__head > div {
	min-width:0;
}
.reservation-itinerary__badge {
	flex-shrink:0; display:inline-flex; align-items:center; justify-content:center;
	min-width:42px; height:26px; padding:0 8px; border-radius:6px;
	margin-bottom:8px;
	background:var(--unc-brand); color:var(--unc-ink);
	font-size:0.75rem; font-weight:700; line-height:1; letter-spacing:0;
}
.reservation-itinerary__badge--return {
	background:#fff; color:var(--unc-ink-3); border:1px solid var(--unc-line);
}
.reservation-itinerary__branch {
	display:flex; flex-wrap:wrap; align-items:center; gap:4px 6px;
	font-size:0.9375rem; font-weight:700; color:var(--unc-ink); line-height:1.35; letter-spacing:0;
	word-break:normal; overflow-wrap:anywhere;
}
.reservation-itinerary__code {
	flex-shrink:0; display:inline-flex; align-items:center;
	margin-left:0; padding:2px 6px; border-radius:6px;
	background:#fff; border:1px solid var(--unc-line);
	font-size:0.6875rem; font-weight:600; color:var(--unc-muted);
	line-height:1.2; vertical-align:baseline;
}
.reservation-itinerary__details {
	display:flex; flex-direction:column; gap:8px;
	margin:0; padding:0 0 0 14px; border-left:1px dashed var(--unc-line);
	list-style:none;
}
.reservation-itinerary__details li {
	display:grid; grid-template-columns:64px minmax(0, 1fr); gap:10px;
	margin:0; list-style:none;
	font-size:0.8125rem; line-height:1.5;
}
.reservation-itinerary__details b {
	font-weight:600; color:var(--unc-muted);
}
.reservation-itinerary__details p {
	margin:0;
	font-weight:500; color:var(--unc-ink-2);
	word-break:keep-all; overflow-wrap:anywhere;
}
.reservation-itinerary__details li:first-child p {
	font-weight:700; color:var(--unc-ink);
}


/* ===== Component: .reserve-summary (차량 정보) ======== */
.reserve-summary {
	padding:20px; border:1px solid var(--unc-line); border-radius:16px;
	background:#fff; box-shadow:0 1px 2px rgba(15,42,18,0.04);
}
.reserve-summary__head {
	font-size:0.875rem; font-weight:800; color:var(--unc-ink-3);
	margin-bottom:14px;
}
.reserve-summary__main { display:flex; gap:14px; align-items:center; }
.reserve-summary__image { flex-shrink:0; width:120px; }
.reserve-summary__image img { width:100%; height:auto; object-fit:contain; }
.reserve-summary__content { flex:1; min-width:0; }
.reserve-summary__title {
	font-size:0.9375rem; font-weight:800; color:var(--unc-ink); letter-spacing:0;
	line-height:1.35; word-break:keep-all; overflow-wrap:anywhere;
}
.reserve-summary__model {
	margin-top:2px;
	font-size:0.75rem; line-height:1.5; color:var(--unc-muted);
	word-break:normal; overflow-wrap:anywhere;
}
.reserve-summary__specs {
	display:flex; flex-wrap:wrap; gap:10px;
	margin:14px 0 0; padding:0; list-style:none;
	border-top:1px dashed var(--unc-line); padding-top:12px;
}
.reserve-summary__specs dd, .reserve-summary__specs li {
	margin:0;
	font-size:0.75rem; font-weight:500; color:var(--unc-ink-3);
}


/* ===== Component: .reserve-payment (결제 요약) ======== */
.reserve-payment {
	margin-top:14px; padding:18px 20px; border:1px solid var(--unc-line); border-radius:16px;
	background:#fff; box-shadow:0 1px 2px rgba(15,42,18,0.04);
}
.reserve-payment__total {
	display:flex; align-items:center; justify-content:space-between;
	padding-bottom:14px; border-bottom:1px solid var(--unc-line);
}
.reserve-payment__total-label {
	font-size:0.8125rem; font-weight:600; color:var(--unc-ink-3);
}
.reserve-payment__total-value {
	display:inline-flex; align-items:baseline; gap:5px;
	font-size:1.25rem; font-weight:900; color:var(--unc-brand-strong); letter-spacing:0;
	line-height:1.2;
}
/* base.css * { font-size:0.875rem } 강제 override — 금액 span 부모 사이즈 상속 */
.reserve-payment__total-value > span:not(.car-card__currency) {
	font-size:inherit; font-weight:inherit; color:inherit; letter-spacing:0;
}
.reserve-payment__total-value .car-card__currency { font-size:0.8125rem; font-weight:700; color:inherit; }
/* 행 안 가격 — currency 작게 */
.reserve-payment__row p > span:not(.car-card__currency) {
	font-size:0.875rem; font-weight:600; color:inherit;
}
/* 행 안 가격 — currency 작게. 통화가 위로 뜨지 않도록 요금 카드
   (.insurance-package__price)와 같은 baseline 정렬을 쓴다. */
.reserve-payment__row p {
	display:inline-flex; align-items:baseline; gap:3px;
}
.reserve-payment__row p .car-card__currency {
	font-size:0.6875rem; font-weight:600; color:var(--unc-muted);
}
.reserve-payment__list {
	margin:14px 0 0; padding:0; list-style:none;
	display:flex; flex-direction:column; gap:14px;
}
.reserve-payment__list-group { margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px; }
.reserve-payment__list-group + .reserve-payment__list-group {
	margin-top:14px; padding-top:14px; border-top:1px dashed var(--unc-line);
}
.reserve-payment__group-title {
	font-size:0.75rem;
	font-weight:800;
	color:var(--unc-brand-strong);
}
/* 라벨과 값을 두 칸으로 고정한다. flex + space-between 이면 보험 설명처럼 긴 값이
   라벨을 밀어 "보 험 / 보 장" 처럼 한 글자씩 세로로 눌린다(리뉴얼 검토 5차 3번). */
.reserve-payment__row {
	display:grid; grid-template-columns:5.25rem minmax(0, 1fr); gap:2px 12px;
	align-items:start;
	font-size:0.8125rem; line-height:1.5;
}
.reserve-payment__row b {
	font-weight:600; color:var(--unc-ink-3);
	white-space:nowrap;
}
.reserve-payment__row p {
	font-weight:600; color:var(--unc-ink); margin:0;
	justify-self:end; text-align:right;
}
/* 보험·혜택처럼 설명이 붙는 행은 왼쪽에서 시작해야 읽힌다. */
.reserve-payment__row--text p {
	justify-self:start; text-align:left; display:block;
}
.reserve-payment__name { font-weight:700; color:var(--unc-ink); }
.reserve-payment__code {
	display:inline-block; margin-left:6px; padding:1px 6px;
	border-radius:999px; background:var(--unc-bg-soft);
	font-size:0.6875rem; font-weight:700; color:var(--unc-muted);
	vertical-align:middle;
}
.reserve-payment__row--text small {
	display:block; margin-top:2px; white-space:pre-line;
	font-size:0.75rem; font-weight:500; line-height:1.55; color:var(--unc-ink-3);
}
.reserve-payment__info-btn {
	display:inline-flex; align-items:center; justify-content:center;
	width:16px; height:16px; padding:0; border:1px solid var(--unc-muted-2); border-radius:50%;
	background:#fff; font-size:0.625rem; font-weight:700; color:var(--unc-muted); cursor:pointer;
	line-height:1;
}
.reserve-payment__info-btn:hover { border-color:var(--unc-brand); color:var(--unc-brand-strong); }
.reserve-payment__notice {
	margin-top:14px; padding-top:12px; border-top:1px dashed var(--unc-line);
	font-size:0.6875rem; color:var(--unc-muted); text-align:center;
}
.reserve-payment__notice--warn {
	display:flex; align-items:flex-start; justify-content:center; gap:7px;
	margin-top:10px; padding:10px 12px;
	border:1px solid #FDBA74; border-radius:8px;
	background:#FFF7ED; color:#9A3412;
	font-size:0.75rem; font-weight:800; line-height:1.45; text-align:left;
}
.reserve-payment__notice--warn::before {
	content:"!"; flex-shrink:0;
	display:inline-flex; align-items:center; justify-content:center;
	width:18px; height:18px; margin-top:1px;
	border-radius:50%; background:#EA580C; color:#fff;
	font-size:0.75rem; font-weight:900; line-height:1;
}
.reserve-payment__notice--warn strong {
	font:inherit; color:inherit;
}


/* ===== Component: .reserve-actions (sticky 액션) ====== */
.reserve-actions {
	display:flex; flex-direction:column; gap:10px; margin-top:14px;
}
.reserve-actions .btn { height:54px; }


/* ===== Component: .reserve-list / .reserve-card ====== */
.reserve-list {
	display:flex; flex-direction:column; gap:14px; margin-top:20px;
	list-style:none; padding:0;
}
.reserve-list .reserve-list__item { margin:0; padding:0; list-style:none; }
.reserve-card {
	display:flex; flex-direction:column;
	background:#fff; border:1px solid var(--unc-line); border-radius:16px;
	overflow:hidden; text-decoration:none; color:inherit;
	transition: border-color .15s var(--unc-ease), box-shadow .15s var(--unc-ease), transform .15s var(--unc-ease);
}
.reserve-card:hover {
	border-color:var(--unc-brand);
	box-shadow:0 6px 18px rgba(36,210,44,0.10);
	transform:translateY(-1px);
}
.reserve-card__top {
	display:flex; align-items:center; gap:10px;
	padding:12px 18px; border-bottom:1px solid var(--unc-line);
	background:var(--unc-bg-soft);
}
.reserve-card__status {
	display:inline-flex; align-items:center;
	padding:4px 10px; border-radius:6px;
	background:var(--unc-brand); color:var(--unc-ink);
	font-size:0.6875rem; font-weight:700; font-style:normal;
}
.reserve-card__status--cancelled { background:var(--unc-ink-3); color:#fff; }
.reserve-card__number {
	font-size:0.75rem; color:var(--unc-muted); font-weight:500;
}
.reserve-card__main {
	display:flex; align-items:stretch; gap:18px; padding:18px;
}
.reserve-card__image {
	flex-shrink:0; width:140px;
	display:flex; align-items:center; justify-content:center;
}
.reserve-card__image img { max-width:100%; height:auto; object-fit:contain; }
.reserve-card__body { flex:1; min-width:0; display:flex; flex-direction:column; gap:10px; }
.reserve-card__state {
	font-size:0.875rem; font-weight:800; line-height:1.4; color:var(--unc-ink); letter-spacing:0;
}
.reserve-card__state--cancelled { color:var(--unc-muted); }
.reserve-card__time dl, .reserve-card__time ul { margin:0; padding:0; }
.reserve-card__time dd, .reserve-card__time li {
	margin:0 0 4px;
	display:flex; gap:8px;
	font-size:0.8125rem; line-height:1.5; color:var(--unc-ink-2);
}
.reserve-card__time dd, .reserve-card__time li b {
	flex-shrink:0; width:80px;
	font-weight:700; color:var(--unc-ink-3);
}
.reserve-card__time dd p, .reserve-card__time li p {
	min-width:0; margin:0;
	word-break:normal; overflow-wrap:anywhere;
}
.reserve-card__info {
	border-top:1px dashed var(--unc-line); padding-top:10px;
}
.reserve-card__info strong {
	display:block; font-size:0.8125rem; font-weight:700; line-height:1.4; color:var(--unc-ink-3); margin-bottom:4px;
}
.reserve-card__info p {
	margin:0 0 2px; font-size:0.8125rem; line-height:1.5; color:var(--unc-ink-2);
}
.reserve-card__specs {
	display:flex; flex-wrap:wrap; gap:12px; margin:0; padding:0;
	list-style:none;
}
.reserve-card__specs dd, .reserve-card__specs li {
	margin:0;
	display:inline-flex; align-items:center; gap:5px;
	font-size:0.75rem; font-weight:500; color:var(--unc-ink-3);
}
@media (max-width:600px) {
	.reserve-card__main { flex-direction:column; gap:12px; }
	.reserve-card__image { width:120px; align-self:center; }
}

/* ===== Component: .reserve-card__price (카드 우측 금액) === */
.reserve-card__price {
	flex-shrink:0; align-self:stretch;
	display:flex; flex-direction:column; justify-content:center; align-items:flex-end;
	gap:6px; padding-left:18px;
	border-left:1px dashed var(--unc-line); min-width:140px;
}
.reserve-card__price-label {
	font-size:0.75rem; font-weight:600; color:var(--unc-ink-3);
}
.reserve-card__price-value {
	display:inline-flex; align-items:baseline; gap:5px;
	font-size:1.125rem; font-weight:900; color:var(--unc-brand-strong); letter-spacing:0;
	line-height:1.2;
}
.reserve-card__price-value > span:not(.car-card__currency) {
	font-size:inherit; font-weight:inherit; color:inherit; letter-spacing:0;
}
.reserve-card__price-value .car-card__currency {
	font-size:0.75rem; font-weight:700; color:inherit;
}
.reserve-card__price--cancelled .reserve-card__price-value {
	color:var(--unc-muted); text-decoration:line-through;
}
@media (max-width:600px) {
	.reserve-card__price {
		align-self:auto; flex-direction:row; justify-content:space-between; align-items:center;
		padding-left:0; padding-top:12px;
		border-left:0; border-top:1px dashed var(--unc-line);
		min-width:0; width:100%;
	}
}
@media (max-width:620px) {
	.reservation-itinerary__card { grid-template-columns:1fr; }
	.reservation-itinerary__details {
		padding:12px 0 0; border-left:0; border-top:1px dashed var(--unc-line);
	}
}
@media (max-width:420px) {
	.reservation-itinerary__details li {
		grid-template-columns:62px minmax(0, 1fr);
	}
}


/* ===== Component: .pagination (페이지네이션) ============ */
.pagination {
	display:flex; align-items:center; justify-content:center; gap:8px;
	margin-top:24px;
}
.pagination__list {
	display:flex; align-items:center; gap:4px;
	list-style:none; padding:0; margin:0;
}
.pagination__list li { list-style:none; }
.pagination__num,
.pagination__nav {
	display:inline-flex; align-items:center; justify-content:center;
	min-width:36px; height:36px; padding:0 10px;
	border:1px solid var(--unc-line); border-radius:8px;
	background:#fff; color:var(--unc-ink-3); cursor:pointer;
	font-size:0.8125rem; font-weight:600; line-height:1;
	transition: border-color .15s var(--unc-ease), color .15s var(--unc-ease), background-color .15s var(--unc-ease);
}
.pagination__num:hover,
.pagination__nav:hover:not([disabled]) {
	border-color:var(--unc-brand); color:var(--unc-brand-strong);
}
.pagination__num.is-active {
	background:var(--unc-brand); color:var(--unc-ink); border-color:var(--unc-brand);
}
.pagination__nav { font-size:1.125rem; font-weight:700; }
.pagination__nav[disabled] {
	opacity:0.4; cursor:not-allowed;
}
@media (max-width:480px) {
	.pagination__num,
	.pagination__nav { min-width:32px; height:32px; padding:0 8px; font-size:0.75rem; }
}


/* ===== Component: .reserve-complete (예약 완료 페이지) === */
.reserve-complete { max-width:680px; margin:0 auto; padding:24px 0 0; }

.reserve-complete__hero {
	text-align:center; padding:24px 0 36px;
	display:flex; flex-direction:column; align-items:center;
}
.reserve-complete__check {
	display:inline-flex; align-items:center; justify-content:center;
	width:80px; height:80px; border-radius:50%;
	background:var(--unc-brand);
	box-shadow:0 8px 24px rgba(36,210,44,0.30);
	margin-bottom:22px; position:relative;
}
.reserve-complete__check::before {
	content:""; position:absolute; display:block;
	width:30px; height:16px;
	border-left:5px solid #fff; border-bottom:5px solid #fff;
	transform: rotate(-45deg); margin-top:-6px;
	border-bottom-left-radius:2px;
}
.reserve-complete__title {
	font-size:1.625rem; font-weight:800; color:var(--unc-ink);
	letter-spacing:0; line-height:1.3; margin-bottom:8px;
}
.reserve-complete__subtitle {
	font-size:0.9375rem; color:var(--unc-ink-3); margin:0 0 22px; font-weight:500;
}
.reserve-complete__number {
	display:inline-flex; align-items:center; gap:10px;
	padding:10px 18px; border-radius:999px;
	background:var(--unc-brand-soft); border:1px solid rgba(36,210,44,0.20);
}
.reserve-complete__number-label {
	font-size:0.75rem; font-weight:700; color:var(--unc-ink-3);
}
.reserve-complete__number-value {
	font-size:1rem; font-weight:900; color:var(--unc-brand-strong);
	letter-spacing:0; line-height:1.2;
}

.reserve-complete__card {
	padding:24px; border:1px solid var(--unc-line); border-radius:18px;
	background:#fff; box-shadow:0 2px 8px rgba(15,42,18,0.05);
	margin-bottom:16px;
}
.reserve-complete__car {
	display:flex; gap:18px; align-items:center;
	padding-bottom:20px; border-bottom:1px dashed var(--unc-line);
}
.reserve-complete__car-image { flex-shrink:0; width:132px; }
.reserve-complete__car-image img { width:100%; height:auto; object-fit:contain; }
.reserve-complete__car-body { flex:1; min-width:0; }
.reserve-complete__car-group {
	font-size:0.9375rem; font-weight:800; color:var(--unc-ink); letter-spacing:0;
	line-height:1.4;
}
.reserve-complete__car-model {
	margin-top:4px; font-size:0.75rem; line-height:1.5; color:var(--unc-muted); font-weight:500;
	word-break:normal; overflow-wrap:anywhere;
}
.reserve-complete__car-specs {
	display:flex; flex-wrap:wrap; gap:8px;
	margin:10px 0 0; padding:0; list-style:none;
}
.reserve-complete__car-specs li {
	font-size:0.6875rem; font-weight:600; color:var(--unc-ink-3);
	padding:3px 8px; background:var(--unc-bg-soft); border-radius:6px;
	list-style:none;
}

.reserve-complete__schedule {
	list-style:none; padding:0;
	margin:20px 0; display:flex; flex-direction:column; gap:16px;
}
.reserve-complete__schedule li {
	display:flex; gap:16px; align-items:flex-start; list-style:none;
}
.reserve-complete__schedule-tag {
	flex-shrink:0; display:inline-flex; align-items:center; justify-content:center;
	min-width:46px; height:26px; padding:0 8px; border-radius:6px;
	background:var(--unc-brand); color:var(--unc-ink);
	font-size:0.75rem; font-weight:800; letter-spacing:0;
}
.reserve-complete__schedule-tag--return {
	background:var(--unc-bg-soft); color:var(--unc-ink-3); border:1px solid var(--unc-line);
}
.reserve-complete__schedule-body { flex:1; min-width:0; }
.reserve-complete__schedule-branch {
	font-size:0.875rem; font-weight:800; color:var(--unc-ink); letter-spacing:0;
	line-height:1.4; margin:0;
}
.reserve-complete__schedule-date {
	margin:3px 0 0; font-size:0.8125rem; color:var(--unc-ink-3); font-weight:600;
}

.reserve-complete__terms {
	display:grid; gap:0.5rem; margin:0 0 1rem; padding:0.875rem 1rem;
	border:1px solid var(--unc-line); border-radius:0.75rem; background:var(--unc-bg-soft);
}
/* 라벨과 값을 모두 왼쪽으로 — 오른쪽 정렬이면 보험 설명이 줄마다 다른 위치에서
   시작해 읽기 어렵다. */
.reserve-complete__terms > div {
	display:grid; grid-template-columns:6.5rem minmax(0, 1fr); align-items:start; gap:0.25rem 1rem;
}
.reserve-complete__terms dt,
.reserve-complete__terms dd { margin:0; font-size:0.8125rem; line-height:1.45; text-align:left; }
.reserve-complete__terms dt { color:var(--unc-ink-3); font-weight:600; }
.reserve-complete__terms dd { color:var(--unc-ink); font-weight:800; }

.reserve-complete__total {
	display:flex; justify-content:space-between; align-items:center;
	padding-top:18px; border-top:1px solid var(--unc-line);
}
.reserve-complete__total-label {
	font-size:0.8125rem; font-weight:600; color:var(--unc-ink-3);
}
.reserve-complete__total-value {
	display:inline-flex; align-items:baseline; gap:6px;
	font-size:1.375rem; font-weight:900; color:var(--unc-brand-strong); letter-spacing:0;
	line-height:1.2;
}
.reserve-complete__total-value > span:not(.car-card__currency) {
	font-size:inherit; font-weight:inherit; color:inherit; letter-spacing:0;
}
.reserve-complete__total-value .car-card__currency {
	font-size:0.8125rem; font-weight:700; color:inherit;
}

.reserve-complete__notice {
	display:flex; gap:14px; align-items:flex-start;
	padding:16px 18px; border-radius:14px;
	background:var(--unc-brand-soft); border:1px solid rgba(36,210,44,0.20);
	margin-bottom:14px;
}
.reserve-complete__notice-icon {
	flex-shrink:0; display:inline-flex; align-items:center; justify-content:center;
	width:36px; height:36px; border-radius:10px;
	background:#fff; color:var(--unc-brand-strong);
	font-size:1.125rem; font-weight:700; line-height:1;
}
.reserve-complete__notice-body { flex:1; min-width:0; }
.reserve-complete__notice-body strong {
	display:block; font-size:0.875rem; font-weight:800; color:var(--unc-ink);
	letter-spacing:0; margin-bottom:4px; line-height:1.4;
}
.reserve-complete__notice-body p {
	margin:0; font-size:0.8125rem; line-height:1.6; color:var(--unc-ink-2); font-weight:500;
	word-break:keep-all;
}
.reserve-complete__notice-sub {
	margin-top:4px !important; font-size:0.75rem !important; color:var(--unc-muted) !important;
}

.reserve-complete__checklist {
	padding:18px 20px; border-radius:14px;
	background:#fff; border:1px solid var(--unc-line);
	margin-bottom:24px;
}
.reserve-complete__checklist-title {
	display:block; font-size:0.875rem; font-weight:800; color:var(--unc-ink);
	margin-bottom:12px; letter-spacing:0;
}
.reserve-complete__checklist ul {
	list-style:none; padding:0; margin:0;
	display:flex; flex-direction:column; gap:8px;
}
.reserve-complete__checklist li {
	position:relative; padding-left:26px; list-style:none;
	font-size:0.8125rem; line-height:1.55; color:var(--unc-ink-2); font-weight:600;
}
.reserve-complete__checklist li small {
	/* base.css 의 `* { display:inline-block; line-height:1 }` 무력화 — li 와 같은 라인 baseline 유지 */
	display:inline; vertical-align:baseline; line-height:inherit;
	margin-left:4px; font-size:0.75rem; font-weight:500; color:var(--unc-muted);
}
.reserve-complete__checklist li::before {
	content:""; position:absolute; left:0; top:3px;
	width:16px; height:16px; border-radius:50%;
	background:var(--unc-brand);
}
.reserve-complete__checklist li::after {
	content:""; position:absolute; left:4px; top:7px;
	width:8px; height:4px;
	border-left:2px solid #fff; border-bottom:2px solid #fff;
	transform: rotate(-45deg);
}

.reserve-complete__help {
	text-align:center; margin:0 0 24px;
	font-size:0.8125rem; line-height:1.7; color:var(--unc-ink-3); font-weight:500;
	word-break:keep-all;
}
.reserve-complete__help a {
	font:inherit; color:var(--unc-brand-strong); font-weight:800;
	text-decoration:underline; text-underline-offset:2px;
}
.reserve-complete__help a:hover { color:#0A5C12; }

.reserve-complete__actions {
	display:flex; gap:12px;
}
.reserve-complete__actions .btn { flex:1; min-width:0; height:54px; }

@media (max-width:600px) {
	.reserve-complete__hero { padding:16px 0 28px; }
	.reserve-complete__title { font-size:1.375rem; }
	.reserve-complete__check { width:68px; height:68px; }
	.reserve-complete__check::before { width:26px; height:14px; border-left-width:4px; border-bottom-width:4px; }
	.reserve-complete__card { padding:20px 18px; }
	.reserve-complete__car { flex-direction:column; text-align:center; gap:12px; padding-bottom:16px; }
	.reserve-complete__car-image { width:140px; }
	.reserve-complete__car-specs { justify-content:center; }
	/* .reserve-complete__actions 는 가로 1줄 유지 */
}


/* ===== Component: .completion (예약 완료 결과) ======= */
.completion {
	display:flex; flex-direction:column; align-items:center;
	max-width:560px; margin:0 auto; padding:40px 0;
	text-align:center;
}
.completion__image {
	width:auto; height:120px; margin-bottom:24px;
}
.completion__title {
	font-size:1.5rem; font-weight:800; letter-spacing:0;
	color:var(--unc-ink); margin-bottom:20px; word-break:keep-all;
}
.completion__description {
	font-size:0.9375rem; line-height:1.7; color:var(--unc-ink-3);
	letter-spacing:0; word-break:keep-all;
}
.completion__description + .completion__description { margin-top:16px; }
.completion__description a {
	font:inherit; color:var(--unc-brand-strong);
	text-decoration:underline; text-underline-offset:2px;
}


/* ===== Component: .action-row (가로 2버튼) ============ */
.action-row {
	display:flex; gap:12px; margin-top:40px; width:100%;
}
.action-row > * { flex:1; min-width:0; }
@media (max-width:480px) {
	.action-row { flex-direction:column; gap:10px; }
}


/* ===== Component: .icon-link (복사하기 등) ============ */
.icon-link {
	display:inline-flex; align-items:center; gap:6px;
	color:var(--unc-ink-3); text-decoration:none; cursor:pointer;
	font-size:0.8125rem; font-weight:600;
}
.icon-link::before {
	content:""; width:16px; height:16px; background:no-repeat center / contain;
}
.icon-link--copy::before {
	background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A5159' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><rect x='9' y='9' width='13' height='13' rx='2'/><path d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/></svg>");
}
.icon-link:hover { color:var(--unc-brand-strong); }

.icon-link-row { display:flex; justify-content:center; }

/* ===== a11y: dl→ul 전환 시 list-style 제거 ============= */
ul.car-card__benefits,
ul.reserve-summary__specs,
ul.reserve-card__specs,
.reserve-section__info ul {
	list-style: none;
	padding-left: 0;
	margin-left: 0;
}
ul.car-card__benefits li,
ul.reserve-summary__specs li,
ul.reserve-card__specs li,
.reserve-section__info ul li {
	list-style: none;
}


/* ===== Component: .sticky-summary (모바일 하단 고정 요약) === */
/* PC(992↑): 토글 버튼 숨김, body는 그대로 노출. aside 그대로 동작 */
.sticky-summary-toggle { display:none; }
.sticky-summary-bar { display:none; }
.sticky-summary-booking { display:none; }
@media (min-width:992px) {
	[data-sticky-summary] .sticky-summary-body { display:block; }
}
/* 모바일(991↓): aside를 하단 고정 패널로 변환 */
@media (max-width:991px) {
	[data-sticky-summary] {
		position:fixed; left:0; right:0; bottom:0; z-index:80;
		background:#fff; border-top:1px solid var(--unc-line);
		box-shadow:0 -8px 24px rgba(15,42,18,0.10);
		max-height:85vh; display:flex; flex-direction:column;
		transition: transform .25s var(--unc-ease);
	}
	.sticky-summary-bar {
		order:2;
		display:grid;
		grid-template-columns:minmax(0, 1fr) 6.75rem;
		gap:0.625rem;
		align-items:stretch;
		position:relative;
		padding:0.625rem 0.75rem calc(0.625rem + env(safe-area-inset-bottom));
		background:#fff;
	}
	.sticky-summary-toggle {
		display:flex; align-items:center; justify-content:center;
		position:absolute; left:50%; top:-1.625rem; z-index:2;
		width:3.5rem; height:1.75rem; min-width:0; padding:0;
		transform:translateX(-50%);
		border:1px solid var(--unc-line); border-bottom:0;
		background:#fff; cursor:pointer; color:inherit;
		border-radius:0.875rem 0.875rem 0 0;
		box-shadow:0 -5px 10px rgba(15,42,18,0.06);
	}
	.sticky-summary-card {
		display:flex; align-items:center;
		width:100%; min-width:0; overflow:hidden;
		padding:0.375rem 0.625rem;
		background:var(--unc-bg-soft);
		border-radius:0.75rem;
	}
	.sticky-summary-toggle__main {
		width:100%; min-width:0; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:0.125rem;
	}
	.sticky-summary-toggle__label {
		display:block; width:100%; max-width:100%; min-width:0;
		overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
		font-size:0.75rem; line-height:1.25; font-weight:700; color:var(--unc-ink-3);
	}
	.sticky-summary-toggle__total {
		display:inline-flex; align-items:baseline; gap:4px; flex-shrink:0;
		font-size:0.9375rem; line-height:1.2; font-weight:900; color:var(--unc-brand-strong); letter-spacing:0;
	}
	.sticky-summary-toggle__total .car-card__currency {
		font-size:0.6875rem; font-weight:700; color:inherit;
	}
	.sticky-summary-toggle__total strong {
		font-size:inherit; font-weight:inherit; color:inherit;
	}
	.sticky-summary-booking {
		display:flex;
		align-items:center;
		justify-content:center;
		width:100%;
		height:auto;
		min-height:3.25rem;
		padding:0 0.5rem;
		border-radius:0.75rem;
		font-size:0.8125rem;
		font-weight:800;
		white-space:nowrap;
	}
	.sticky-summary-toggle__chevron {
		flex-shrink:0; width:1.125rem; height:1.125rem; position:relative;
		transition: transform .25s var(--unc-ease);
	}
	.sticky-summary-toggle__chevron::before {
		content:""; position:absolute; left:0.25rem; top:0.375rem;
		width:0.5rem; height:0.5rem;
		border-right:2px solid var(--unc-ink-3); border-top:2px solid var(--unc-ink-3);
		transform:rotate(-45deg);
	}
	[data-sticky-summary].is-expanded .sticky-summary-toggle__chevron {
		transform:rotate(180deg);
	}
	/* 접힘 상태(기본): 헤더만 보임 */
	[data-sticky-summary] .sticky-summary-body {
		order:1;
		display:none;
		padding:0 18px 18px;
		overflow-y:auto; -webkit-overflow-scrolling:touch;
	}
	[data-sticky-summary].is-expanded .sticky-summary-body {
		display:block;
		border-bottom:1px solid var(--unc-line);
		padding-top:14px;
	}
	/* aside 내부 카드 모양은 모바일 sticky에선 평탄화 (이중 border 제거) */
	[data-sticky-summary] .reserve-summary,
	[data-sticky-summary] .reserve-payment {
		border:0; border-radius:0; box-shadow:none; padding:0;
		background:transparent;
	}
	[data-sticky-summary] .reserve-payment { margin-top:14px; padding-top:14px; border-top:1px dashed var(--unc-line); }
	/* main 콘텐츠가 sticky 영역에 가려지지 않도록 패딩 확보 (JS가 동적 보정) */
	body.has-sticky-summary { padding-bottom:5rem; }
	.detail-page__actions button[type="submit"] { display:none; }
}
@media (max-width:400px) {
	.sticky-summary-bar {
		grid-template-columns:minmax(0, 1fr) 6.25rem;
		gap:0.5rem;
		padding-left:0.5rem;
		padding-right:0.5rem;
	}
}
