.pfr-booking, .pfr-inquiry {
	--pfr-ink: #2b2622; --pfr-line: #e5ded3; --pfr-free: #f4efe7; --pfr-sel: #8a6d3b; --pfr-taken: #cfc9c1;
	color: var(--pfr-ink); display: grid; gap: 1rem; max-width: 960px;
}
.pfr-booking fieldset, .pfr-inquiry fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.pfr-booking legend, .pfr-inquiry legend { font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: var(--pfr-sel); margin-bottom: .5rem; }
.pfr-booking label, .pfr-inquiry label { display: grid; gap: .3rem; font-size: .9rem; }
.pfr-booking input, .pfr-booking textarea, .pfr-inquiry input, .pfr-inquiry select, .pfr-inquiry textarea {
	font: inherit; padding: .65rem .75rem; border: 1px solid var(--pfr-line); border-radius: 4px; background: #fff; min-height: 44px;
}
.pfr-check { display: flex !important; align-items: flex-start; gap: .5rem; grid-column: 1 / -1; }
.pfr-check input { min-height: auto; margin-top: .2rem; }
.pfr-hp { position: absolute !important; left: -9999px; }
.pfr-step { display: flex; gap: .75rem; align-items: end; flex-wrap: wrap; }
.pfr-btn { font: inherit; padding: .75rem 1.25rem; min-height: 44px; border: 1px solid var(--pfr-ink); background: transparent; color: var(--pfr-ink); border-radius: 2px; cursor: pointer; }
.pfr-primary { background: var(--pfr-ink); color: #fff; justify-self: start; }
.pfr-btn:disabled { opacity: .5; cursor: wait; }

.pfr-legend { display: flex; gap: 1rem; font-size: .8rem; }
.pfr-legend span::before { content: ""; display: inline-block; width: 12px; height: 12px; margin-right: 6px; vertical-align: -1px; border-radius: 2px; }
.pfr-legend .free::before { background: var(--pfr-free); border: 1px solid var(--pfr-line); }
.pfr-legend .sel::before { background: var(--pfr-sel); }
.pfr-legend .taken::before { background: var(--pfr-taken); }

.pfr-map { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.pfr-floor h4 { margin: 0 0 .5rem; font-weight: normal; letter-spacing: .1em; text-transform: uppercase; font-size: .8rem; }
.pfr-area { position: relative; aspect-ratio: 4 / 5; border: 1px solid var(--pfr-line); background: #fff; border-radius: 4px; }
.pfr-table {
	position: absolute; display: grid; place-content: center; text-align: center; padding: 0;
	background: var(--pfr-free); border: 1px solid var(--pfr-line); border-radius: 4px; cursor: pointer;
	font: inherit; color: var(--pfr-ink); transition: background .15s, transform .15s; min-width: 40px; min-height: 40px;
}
.pfr-table small { font-size: .65rem; opacity: .7; }
.pfr-table:hover:not(:disabled) { transform: scale(1.04); border-color: var(--pfr-sel); }
.pfr-table:focus-visible { outline: 2px solid var(--pfr-sel); outline-offset: 2px; }
.pfr-table.sel { background: var(--pfr-sel); color: #fff; border-color: var(--pfr-sel); }
.pfr-table.taken { background: var(--pfr-taken); color: #777; cursor: not-allowed; text-decoration: line-through; }

.pfr-combos { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.pfr-combos p { margin: 0; width: 100%; font-size: .85rem; }
.pfr-chip { font: inherit; font-size: .85rem; padding: .4rem .8rem; border: 1px solid var(--pfr-line); border-radius: 99px; background: #fff; cursor: pointer; min-height: 36px; }
.pfr-seats.warn { color: #b32d2e; }
.pfr-msg { min-height: 1.4em; font-size: .95rem; }
.pfr-small { font-size: .8rem; opacity: .75; }
.pfr-note { padding: 1rem; border: 1px solid var(--pfr-line); }
.done .pfr-send, .done .pfr-map, .done fieldset, .done > button { display: none; }
.pfr-dayinfo { margin: 0; min-height: 1.4em; }
.pfr-dayinfo.closed { padding: .8rem 1rem; border-left: 3px solid #b32d2e; background: #fbecea; }
.pfr-dayinfo.open { color: var(--pfr-sel); }
.pfr-stage { display: grid; gap: 1rem; }
.pfr-stage[hidden] { display: none; }
.pfr-when select { font: inherit; padding: .65rem .75rem; border: 1px solid var(--pfr-line); border-radius: 4px; background: #fff; min-height: 44px; }
