.ghb-form { --ghb-accent: var(--gh-accent, #9e7256); --ghb-line: var(--gh-line, #e3e3e3); }
.ghb-form .ghb-field { margin: 0 0 18px; }
.ghb-form label { display: block; font-size: 13px; font-weight: 500; margin-bottom: 6px; }
.ghb-form label abbr { color: var(--ghb-accent); text-decoration: none; }
.ghb-form input[type=date], .ghb-form input[type=text], .ghb-form input[type=email], .ghb-form input[type=tel], .ghb-form select, .ghb-form textarea {
	display: block; width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid var(--ghb-line); border-radius: 4px; background: #fff;
	font-size: 16px; line-height: 1.4; color: inherit; -webkit-appearance: none; appearance: none;
}
.ghb-form select { background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 36px; }
.ghb-form input[type=date] { position: relative; }
.ghb-form input[type=date]::-webkit-date-and-time-value { text-align: left; }
.ghb-form input:focus, .ghb-form select:focus, .ghb-form textarea:focus { outline: none; border-color: var(--ghb-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ghb-accent) 18%, transparent); }
.ghb-form .ghb-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.ghb-form .ghb-submit { width: 100%; margin-top: 4px; }
.ghb-form .ghb-check label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: 14px; }
.ghb-form .ghb-check input { margin-top: 4px; width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--ghb-accent); }
.ghb-hp { position: absolute !important; left: -9999px !important; }
.ghb-required-note, .ghb-small { font-size: 13px; color: var(--gh-muted, #777); }
.ghb-result { min-height: 0; margin: 0 0 12px; font-size: 14px; }
.ghb-result:empty { display: none; }
.ghb-result.is-ok { color: #1e6b34; }
.ghb-result.is-error { color: #b32d2e; }
.ghb-result.is-loading { color: var(--gh-muted, #777); }
.ghb-error, .ghb-notice { padding: 14px 18px; border-radius: 4px; margin: 0 0 24px; }
.ghb-error { background: #fdecec; color: #8a1f1f; border-left: 4px solid #d63638; }
.ghb-notice { background: var(--gh-bg-soft, #f7f4f0); border-left: 4px solid var(--gh-accent, #9e7256); }

.ghb-search-form .ghb-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 16px; }
.ghb-search-form .ghb-submit { width: auto; min-width: 180px; }
.ghb-results { margin-top: 48px; }
.ghb-results-title { font-size: 22px; margin-bottom: 26px; }
.ghb-result-item { display: grid; grid-template-columns: 320px 1fr; gap: 28px; padding: 24px 0; border-top: 1px solid var(--gh-line, #e3e3e3); align-items: center; }
.ghb-result-img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 4px; }
.ghb-result-item h3 { margin: 0 0 6px; }
.ghb-result-meta { color: var(--gh-muted, #777); font-size: 14px; margin-bottom: 10px; }
.ghb-result-price span { color: var(--gh-muted, #777); font-size: 14px; }

.ghb-checkout-grid { display: grid; grid-template-columns: 360px 1fr; gap: clamp(28px, 5vw, 60px); align-items: start; }
.ghb-summary { background: var(--gh-bg-soft, #f7f4f0); border-radius: 4px; overflow: hidden; position: sticky; top: 100px; }
.ghb-summary img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.ghb-summary h3, .ghb-summary dl, .ghb-summary p { margin-left: 24px; margin-right: 24px; }
.ghb-summary h3 { margin-top: 20px; }
.ghb-summary dl, .ghb-thanks dl { display: grid; grid-template-columns: auto 1fr; gap: 8px 16px; margin-bottom: 16px; }
.ghb-summary dt, .ghb-thanks dt { color: var(--gh-muted, #777); }
.ghb-summary dd, .ghb-thanks dd { margin: 0; font-weight: 500; text-align: right; }
.ghb-summary .ghb-total { font-size: 20px; font-weight: 600; }
.ghb-summary .ghb-small { margin-bottom: 22px; }
.ghb-summary .ghb-small a { color: var(--gh-accent, #9e7256); }
.ghb-thanks { max-width: 620px; margin: 0 auto; text-align: center; }
.ghb-thanks dl { text-align: left; background: var(--gh-bg-soft, #f7f4f0); padding: 20px 24px; border-radius: 4px; margin: 28px 0; }
.ghb-contact-form .ghb-submit { width: auto; min-width: 180px; }
.ghb-sent { padding: 16px 20px; background: #e6f4ea; color: #1e6b34; border-radius: 4px; }

@media (max-width: 900px) {
	.ghb-search-form .ghb-grid { grid-template-columns: 1fr 1fr; }
	.ghb-checkout-grid { grid-template-columns: 1fr; }
	.ghb-summary { position: static; }
}
@media (max-width: 640px) {
	.ghb-result-item { grid-template-columns: 1fr; gap: 16px; }
	.ghb-search-form .ghb-submit, .ghb-contact-form .ghb-submit { width: 100%; }
}
@media (max-width: 380px) {
	.ghb-form .ghb-row, .ghb-search-form .ghb-grid { grid-template-columns: 1fr; }
}

/* Conference room booking: two compact blocks */
.ghb-form input[type=number] { display: block; width: 100%; min-height: 44px; padding: 8px 12px; border: 1px solid var(--ghb-line); border-radius: 4px; background: #fff; font-size: 16px; }
.ghb-venue-form { background: var(--gh-bg-soft, #f7f4f0); border-radius: 22px; padding: clamp(20px, 2.6vw, 30px); margin: 36px 0; }
.ghb-venue-form .ghb-form-title { margin: 0 0 4px; }
.ghb-venue-form .ghb-required-note { margin: 0 0 18px; }
.ghb-venue-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.ghb-venue-block { margin: 0; min-width: 0; background: #fff; border-radius: 16px; padding: 18px 20px 6px; }
.ghb-venue-legend { display: block; width: 100%; padding: 0; margin: 0 0 12px; font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--gh-accent, #9e7256); }
.ghb-venue-block .ghb-field { margin-bottom: 12px; }
.ghb-venue-block input[type=date], .ghb-venue-block input[type=text], .ghb-venue-block input[type=email], .ghb-venue-block input[type=tel], .ghb-venue-block input[type=number], .ghb-venue-block select, .ghb-venue-block textarea { min-height: 44px; }
.ghb-venue-block textarea { min-height: 64px; }
.ghb-form .ghb-row--3 { grid-template-columns: 1fr 1fr 90px; }
.ghb-venue-total { margin: 4px 0 14px; padding: 10px 12px; border-radius: 10px; background: #f3f6f2; font-weight: 500; }
.ghb-venue-total:empty { display: none; }
.ghb-venue-total.is-error { background: #fdecec; }
.ghb-venue-block .ghb-submit { margin-top: 2px; }
.ghb-venue-block .ghb-small { margin: 8px 0 12px; text-align: center; }
@media (max-width: 860px) { .ghb-venue-cols { grid-template-columns: 1fr; } }
@media (max-width: 420px) { .ghb-form .ghb-row--3 { grid-template-columns: 1fr 1fr; } .ghb-form .ghb-row--3 .ghb-field:last-child { grid-column: 1 / -1; } }
.ghb-venue-block .ghb-row { clear: both; }
.ghb-halls { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; margin: 0 0 18px; }
.ghb-hall { position: relative; display: flex; align-items: center; gap: 12px; padding: 10px; background: #fff; border: 1px solid var(--ghb-line, #e3e3e3); border-radius: 14px; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.ghb-hall input { position: absolute; opacity: 0; }
.ghb-hall img { width: 56px; height: 56px; object-fit: cover; border-radius: 10px; flex: 0 0 auto; }
.ghb-hall b { display: block; font-weight: 600; }
.ghb-hall small { color: var(--gh-muted, #777); font-size: 13px; }
.ghb-hall:has(input:checked) { border-color: var(--gh-accent, #9e7256); box-shadow: inset 0 0 0 1px var(--gh-accent, #9e7256); }
.ghb-hall:has(input:focus-visible) { box-shadow: 0 0 0 3px rgba(26, 115, 232, .35); }
