.cpres-wrap { margin: 24px 0; }

.cpres-rooms {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}
.cpres-room {
	flex: 1 1 320px;
	max-width: 480px;
	border: 1px solid #e3e3e3;
	border-radius: 12px;
	padding: 20px 22px;
	background: #fff;
	box-shadow: 0 2px 10px rgba(0,0,0,.04);
}
.cpres-room-img {
	margin: -20px -22px 14px;
	border-radius: 12px 12px 0 0;
	overflow: hidden;
}
.cpres-room-img img { width: 100%; height: 200px; object-fit: cover; display: block; }
.cpres-room-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 10px;
	margin-bottom: 8px;
}
.cpres-include { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.cpres-room-name { font-size: 1.2rem; font-weight: 600; }
.cpres-price { color: #1f7a4d; font-weight: 600; white-space: nowrap; }
.cpres-price span { font-size: 1.3rem; }
.cpres-room-desc { color: #444; font-size: .93rem; margin-bottom: 12px; line-height: 1.5; }
.cpres-taxnote { color: #777; font-size: .8rem; margin: 0 0 12px; }
.cpres-room-controls { display: flex; gap: 12px; align-items: flex-end; }
.cpres-room-controls > div:first-child { flex: 1; }
.cpres-label { display: block; font-size: .8rem; color: #555; margin-bottom: 4px; }

.cpres-room input[type=text],
.cpres-room select {
	width: 100%;
	box-sizing: border-box;
	padding: 9px 11px;
	border: 1px solid #ccc;
	border-radius: 8px;
	font-size: 1rem;
	background: #fff;
}
.cpres-subtotal {
	display: none;
	margin-top: 12px;
	padding: 8px 10px;
	background: #f4faf6;
	border: 1px solid #d5ecdd;
	border-radius: 8px;
	font-size: .9rem;
}

.cpres-extras {
	margin: 24px 0 0;
	padding: 16px 20px;
	border: 1px solid #e3e3e3;
	border-radius: 12px;
	background: #fff;
}
.cpres-extras h3 { margin: 0 0 12px; font-size: 1.1rem; }
.cpres-extra {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 0;
	border-top: 1px solid #f0f0f0;
}
.cpres-extra:first-of-type { border-top: 0; }
.cpres-extra-label { flex: 1; }
.cpres-extra-price { color: #1f7a4d; font-weight: 600; }
.cpres-extra-qty { width: 70px; padding: 6px 8px; border: 1px solid #ccc; border-radius: 6px; }

.cpres-order { margin-top: 24px; max-width: 520px; }
.cpres-total {
	background: #f4faf6;
	border: 1px solid #d5ecdd;
	border-radius: 10px;
	padding: 14px 16px;
	margin-bottom: 14px;
}
.cpres-total-line { display: flex; justify-content: space-between; font-size: 1.15rem; }
.cpres-total-sub { margin-top: 8px; font-size: .92rem; color: #555; }
.cpres-guest input[type=text],
.cpres-guest input[type=email],
.cpres-guest input[type=tel] {
	width: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	margin-bottom: 10px;
	border: 1px solid #ccc;
	border-radius: 8px;
	font-size: 1rem;
}
.cpres-policy {
	background: #fafafa;
	border: 1px solid #eee;
	border-radius: 8px;
	padding: 10px 12px;
	margin: 6px 0 14px;
	font-size: .85rem;
	color: #555;
}
.cpres-btn {
	width: 100%;
	padding: 13px;
	border: 0;
	border-radius: 8px;
	background: #1f7a4d;
	color: #fff;
	font-size: 1.05rem;
	font-weight: 600;
	cursor: pointer;
	transition: background .15s;
}
.cpres-btn:hover { background: #17603c; }
.cpres-btn:disabled { background: #9bbfa9; cursor: default; }
.cpres-hint { color: #888; font-size: .9rem; }
.cpres-error {
	color: #b02a2a;
	background: #fbeaea;
	border-radius: 8px;
	padding: 8px 12px;
	margin-top: 10px;
	font-size: .9rem;
}
.cpres-notice { padding: 14px 18px; border-radius: 10px; margin: 0 0 20px; font-size: 1rem; }
.cpres-notice.cpres-ok { background: #e8f7ee; border: 1px solid #bfe6cd; color: #175f38; }
.cpres-notice.cpres-warn { background: #fff6e5; border: 1px solid #f2dcae; color: #8a5a10; }
.cpres-notice a { color: inherit; text-decoration: underline; }
