.opc-kit-bar { display: none; }

@media (max-width: 760px) {
	body.has-opc-kit-bar { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
	.opc-kit-bar {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 99;
		display: flex; gap: 10px;
		padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
		background: var(--opc-card, rgba(255, 255, 255, .97)); border-top: 1px solid var(--opc-line, #dce6e2);
	}
	.opc-kit-bar a {
		flex: 1; display: flex; align-items: center; justify-content: center;
		height: 46px; border-radius: 10px; font-weight: 700; text-decoration: none;
	}
	.opc-kit-bar__call { background: var(--opc-paper, #eef3f1); color: var(--opc-ink, #172026); border: 1px solid var(--opc-line, #c9d6d1); box-sizing: border-box; }
	.opc-kit-bar__book { background: var(--opc-brand, #126b5b); color: #fff; }
	.opc-kit-bar__wechat { background: var(--opc-brand, #126b5b); color: #fff; }
}

.opc-kit-contact dl { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin: 0 0 16px; }
.opc-kit-contact dt { color: var(--opc-muted, #607078); }
.opc-kit-contact dd { margin: 0; overflow-wrap: anywhere; }
.opc-kit-contact__qr { max-width: 200px; height: auto; }

.opc-booking { max-width: 560px; margin-top: 24px; scroll-margin-top: 16px; }
.opc-booking p { margin: 0 0 14px; }
.opc-booking label { display: block; margin-bottom: 6px; font-weight: 600; }
.opc-booking__hint { display: block; margin-top: 6px; color: var(--opc-muted, #4a5a62); font-size: .9rem; }
.opc-booking input:not([type=checkbox]),
.opc-booking select,
.opc-booking textarea {
	width: 100%; box-sizing: border-box; min-height: 44px; padding: 10px 12px;
	border: 1px solid var(--opc-line, #8fa39b); border-radius: 10px; font: inherit; font-size: 16px; color: var(--opc-ink, #172026); background: var(--opc-card, #fff);
}
.opc-booking textarea { min-height: 96px; resize: vertical; }
.opc-booking input:focus-visible,
.opc-booking select:focus-visible,
.opc-booking textarea:focus-visible,
.opc-booking__submit:focus-visible,
.opc-booking a:focus-visible,
.opc-kit-bar a:focus-visible { outline: 3px solid var(--opc-dark, #0b443a); outline-offset: 2px; }
.opc-booking [aria-invalid=true] { border-color: #b3261e; background: #fff8f7; }
.opc-booking__err { display: block; margin-top: 6px; color: #b3261e; font-size: .9rem; font-weight: 600; }
.opc-booking .opc-booking__consent label { display: flex; align-items: flex-start; gap: 10px; min-height: 44px; padding: 8px 0; font-weight: 400; }
.opc-booking .opc-booking__consent input { flex: none; width: 24px; height: 24px; margin: 0; }
.opc-booking__privacy { color: var(--opc-muted, #4a5a62); font-size: .9rem; }
.opc-booking__submit {
	min-height: 48px; padding: 12px 28px; border: 0; border-radius: 10px; font: inherit; font-weight: 700;
	color: #fff; background: var(--opc-brand, #126b5b); cursor: pointer;
}
.opc-booking__submit:disabled { opacity: .6; cursor: progress; }
.opc-booking__notice { margin: 0 0 18px; padding: 14px 16px; border-radius: 10px; border: 1px solid; }
.opc-booking__notice p, .opc-booking__notice ul { margin: 6px 0 0; }
.opc-booking__notice ul { padding-left: 1.2em; }
.opc-booking__notice.is-success { color: #0b443a; background: #e9f5f1; border-color: #126b5b; }
.opc-booking__notice.is-error { color: #7a1510; background: #fdeceb; border-color: #b3261e; }
.opc-booking__notice a { color: inherit; font-weight: 600; }
.opc-booking-trap { position: absolute; left: -10000px; }
@media (max-width: 760px) {
	body.has-opc-kit-bar .opc-booking input,
	body.has-opc-kit-bar .opc-booking select,
	body.has-opc-kit-bar .opc-booking textarea { scroll-margin-bottom: calc(96px + env(safe-area-inset-bottom)); }
}
.opc-catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.opc-catalog-card{border:1px solid var(--opc-line, #dce6e2);padding:24px;border-radius:16px;background:var(--opc-card, #fff)}
/* 筛选靠 hidden 属性隐藏卡片。任何给 .opc-catalog-card 设了 display 的版式
   都会盖掉浏览器默认的 [hidden]{display:none}，导致「筛选点了没反应」。
   这条兜底把 display 重新写死，将来新增版式也不会再踩这个坑。 */
.opc-catalog-card[hidden]{display:none !important}
.opc-catalog-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.opc-catalog-nav{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:24px}
.opc-specs{width:100%;border-collapse:collapse;margin:24px 0}
.opc-specs caption{text-align:left;font-weight:700;padding:12px 0}
.opc-specs th,.opc-specs td{border:1px solid var(--opc-line, #dce6e2);text-align:left;padding:12px;overflow-wrap:anywhere}
.opc-kit-inquiry{max-width:680px}
.opc-kit-inquiry label{display:block}
.opc-kit-inquiry input:not([type=checkbox]),.opc-kit-inquiry textarea{width:100%;padding:12px;border:1px solid var(--opc-line, #bccfc6);border-radius:8px;font:inherit}
.opc-kit-inquiry button,.opc-inquiry-button{display:inline-block;border:0;border-radius:10px;padding:12px 18px;background:var(--opc-brand, #126b5b);color:#fff;font:inherit;text-decoration:none}
.opc-inquiry-trap{position:absolute;left:-10000px}
@media(max-width:760px){.opc-catalog-grid{grid-template-columns:1fr}}
