/* Venue Rentals front end. Override the variables on .stmvr in your theme or Breakdance to match the site. */
.stmvr {
	--stmvr-accent: #b5121b;
	--stmvr-accent-ink: #ffffff;
	--stmvr-ink: #1d1d1f;
	--stmvr-muted: #5f6368;
	--stmvr-surface: #f4f4f5;
	--stmvr-field: #ececee;
	--stmvr-free: #e3f1e6;
	--stmvr-free-ink: #1f5b2c;
	--stmvr-partial: #fdf0d5;
	--stmvr-partial-ink: #7a5300;
	--stmvr-full: #ededed;
	--stmvr-full-ink: #9a9a9a;
	--stmvr-radius: 10px;
	color: var(--stmvr-ink);
	font-size: 16px;
	line-height: 1.5;
	max-width: 760px;
}
.stmvr *, .stmvr *::before, .stmvr *::after { box-sizing: border-box; }
.stmvr [hidden] { display: none !important; }
.stmvr h2, .stmvr h3, .stmvr h4 { margin: 0 0 .5em; line-height: 1.25; }
.stmvr-step { margin-bottom: 28px; }
.stmvr-intro, .stmvr-next { color: var(--stmvr-muted); }

/* Fields */
.stmvr-field { display: block; margin: 0 0 16px; }
.stmvr-field > span { display: block; font-weight: 600; margin-bottom: 6px; }
.stmvr input[type=text], .stmvr input[type=email], .stmvr input[type=tel], .stmvr input[type=number], .stmvr select, .stmvr textarea {
	width: 100%;
	border: 0;
	border-radius: 8px;
	background: var(--stmvr-field);
	color: var(--stmvr-ink);
	padding: 12px 14px;
	font: inherit;
	outline: none;
}
.stmvr input:focus-visible, .stmvr select:focus-visible, .stmvr textarea:focus-visible, .stmvr button:focus-visible {
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--stmvr-accent) 45%, transparent);
}
.stmvr-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
@media (max-width: 600px) { .stmvr-grid { grid-template-columns: 1fr; } }
.stmvr-check { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 16px; cursor: pointer; }
.stmvr-check input { margin-top: 4px; width: 18px; height: 18px; accent-color: var(--stmvr-accent); flex: none; }
.stmvr-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Buttons */
.stmvr-button {
	display: inline-block;
	border: 0;
	border-radius: 999px;
	background: var(--stmvr-accent);
	color: var(--stmvr-accent-ink);
	font: inherit;
	font-weight: 700;
	padding: 13px 26px;
	cursor: pointer;
	text-decoration: none;
}
.stmvr-button:hover { filter: brightness(1.08); color: var(--stmvr-accent-ink); }
.stmvr-button:disabled { opacity: .6; cursor: wait; }
.stmvr-button.is-secondary { background: var(--stmvr-ink); }
.stmvr-link { background: none; border: 0; padding: 4px 0; color: var(--stmvr-accent); font: inherit; text-decoration: underline; cursor: pointer; }
.stmvr-message:not(:empty) { background: #fdeaea; color: #8a1414; border-radius: 8px; padding: 10px 14px; margin: 0 0 16px; }
.stmvr-done, .stmvr-banner { background: var(--stmvr-free); color: var(--stmvr-free-ink); border-radius: var(--stmvr-radius); padding: 18px 20px; font-weight: 600; }
.stmvr-note { background: var(--stmvr-surface); border-radius: var(--stmvr-radius); padding: 18px 20px; }

/* Space info */
.stmvr-space-info { margin-bottom: 12px; }
.stmvr-capacity { color: var(--stmvr-muted); margin: 0; }

/* Calendar */
.stmvr-calendar { background: var(--stmvr-surface); border-radius: var(--stmvr-radius); padding: 16px; min-height: 320px; transition: opacity .15s; }
.stmvr-calendar.is-loading { opacity: .5; }
.stmvr-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.stmvr-cal-head h3 { margin: 0; font-size: 1.15em; }
.stmvr-cal-nav { border: 0; background: #ffffff; border-radius: 50%; width: 40px; height: 40px; font-size: 24px; line-height: 1; cursor: pointer; color: var(--stmvr-ink); }
.stmvr-cal-nav:disabled { opacity: .3; cursor: default; }
.stmvr-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.stmvr-cal-wd { text-align: center; font-size: 13px; color: var(--stmvr-muted); padding: 4px 0; }
.stmvr-cal-day { border: 0; border-radius: 8px; aspect-ratio: 1 / 1; min-height: 38px; font: inherit; font-weight: 600; cursor: pointer; padding: 0; }
.stmvr-cal-day.is-free { background: var(--stmvr-free); color: var(--stmvr-free-ink); }
.stmvr-cal-day.is-partial { background: var(--stmvr-partial); color: var(--stmvr-partial-ink); }
.stmvr-cal-day.is-full, .stmvr-cal-day.is-closed { background: var(--stmvr-full); color: var(--stmvr-full-ink); cursor: not-allowed; }
.stmvr-cal-day.is-closed { background: transparent; }
.stmvr-cal-day.is-selected { background: var(--stmvr-accent); color: var(--stmvr-accent-ink); }
.stmvr-legend { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 18px; padding: 0; margin: 10px 0 0; font-size: 14px; color: var(--stmvr-muted); }
.stmvr-legend li { display: flex; align-items: center; gap: 6px; }
.stmvr-legend i { width: 14px; height: 14px; border-radius: 4px; display: inline-block; }
.stmvr-legend .is-free { background: var(--stmvr-free); }
.stmvr-legend .is-partial { background: var(--stmvr-partial); }
.stmvr-legend .is-full { background: var(--stmvr-full); }

/* Blocks */
.stmvr-hint { color: var(--stmvr-muted); margin: 0 0 10px; }
.stmvr-blocks { display: grid; gap: 8px; margin-bottom: 16px; }
.stmvr-block { display: flex; gap: 12px; align-items: center; background: var(--stmvr-surface); border-radius: var(--stmvr-radius); padding: 14px 16px; cursor: pointer; }
.stmvr-block input { width: 20px; height: 20px; accent-color: var(--stmvr-accent); flex: none; }
.stmvr-block-text { display: flex; flex-direction: column; }
.stmvr-block-text span { color: var(--stmvr-muted); font-size: 14px; }
.stmvr-block.is-taken { opacity: .55; cursor: not-allowed; }
.stmvr-block:has(input:checked) { background: color-mix(in srgb, var(--stmvr-accent) 12%, #ffffff); }

/* Money */
.stmvr-money { width: 100%; border-collapse: collapse; margin: 0 0 20px; background: var(--stmvr-surface); border-radius: var(--stmvr-radius); overflow: hidden; }
.stmvr-money td { padding: 9px 16px; border: 0; }
.stmvr-money td:last-child { text-align: right; white-space: nowrap; }
.stmvr-money tr.is-total td { font-weight: 700; background: color-mix(in srgb, var(--stmvr-ink) 6%, transparent); }

/* Portal */
.stmvr-portal-head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 16px 0 6px; }
.stmvr-portal-head h2 { margin: 0; }
.stmvr-status { display: inline-block; border-radius: 999px; padding: 4px 12px; font-size: 14px; font-weight: 700; background: var(--stmvr-full); }
.stmvr-status.is-pending { background: var(--stmvr-partial); color: var(--stmvr-partial-ink); }
.stmvr-status.is-approved { background: #e2ecfb; color: #1c4587; }
.stmvr-status.is-confirmed { background: var(--stmvr-free); color: var(--stmvr-free-ink); }
.stmvr-summary { display: grid; grid-template-columns: max-content 1fr; gap: 6px 18px; background: var(--stmvr-surface); border-radius: var(--stmvr-radius); padding: 16px 18px; margin: 16px 0 20px; }
.stmvr-summary dt { font-weight: 600; margin: 0; }
.stmvr-summary dd { margin: 0; }
@media (max-width: 480px) { .stmvr-summary { grid-template-columns: 1fr; } .stmvr-summary dd { margin-bottom: 8px; } }
.stmvr-sign, .stmvr-pay, .stmvr-signed { margin: 28px 0; }
.stmvr-agreement { max-height: 360px; overflow: auto; background: var(--stmvr-surface); border-radius: var(--stmvr-radius); padding: 18px 20px; margin-bottom: 18px; font-size: 15px; }
.stmvr-agreement h3 { font-size: 1.1em; }
.stmvr-agreement h4 { font-size: 1em; margin: 1em 0 .3em; }
.stmvr-agreement p { margin: 0 0 .7em; }
.stmvr-pad { display: block; width: 100%; max-width: 600px; aspect-ratio: 3 / 1; height: auto; background: #ffffff; border-radius: 6px; touch-action: none; cursor: crosshair; }
.stmvr-pad-wrap { background: var(--stmvr-field); border-radius: var(--stmvr-radius); padding: 8px; max-width: 616px; }
