.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: rgba(255, 255, 255, .97); border-top: 1px solid #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: #eef3f1; color: #172026; border: 1px solid #c9d6d1; box-sizing: border-box; }
	.opc-kit-bar__book { background: #126b5b; color: #fff; }
	.opc-kit-bar__wechat { background: #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: #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: #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 #8fa39b; border-radius: 10px; font: inherit; font-size: 16px; color: #172026; background: #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 #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: #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: #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 #dce6e2;padding:24px;border-radius:16px;background:#fff}
.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 #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 #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:#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}}
