/* Copyright (C) 2026 Sarah Vickery. All rights reserved. See LICENSE.txt in the plugin root. */
/* HBS Course Registration — public styles.
   Everything is scoped under .hbscr and written to hold its own against theme (Divi) styles. */

.hbscr {
	--hb-forest: #173228;
	--hb-deep: #0e211b;
	--hb-gold: #d8bd80;
	--hb-gold-deep: #7d6223;
	--hb-cream: #f3efe3;
	--hb-paper: #fbf9f2;
	--hb-ink: #22271f;
	--hb-stone: #5a6157;
	--hb-line: #d9d2bf;
	--hb-error: #8c2f1f;
	--hb-ok: #2f5d3a;
	--hb-display: "Fraunces", Georgia, "Times New Roman", serif;
	--hb-body: "Spectral", Georgia, "Times New Roman", serif;
	--hb-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
	max-width: 1080px;
	margin: 0 auto;
	font-family: var(--hb-body);
	font-size: 18px;
	line-height: 1.55;
	color: var(--hb-ink);
	text-align: left;
}
.hbscr *, .hbscr *::before, .hbscr *::after { box-sizing: border-box; }
.hbscr p { margin: 0 0 .9em; padding: 0; font-family: var(--hb-body); color: inherit; }
.hbscr small { font-size: .82em; color: var(--hb-stone); }
.hbscr a { color: var(--hb-forest); }
.hbscr ul, .hbscr dl { margin: 0; padding: 0 !important; list-style: none !important; }
.hbscr li { list-style: none !important; }

.hbscr .hbscr-kicker {
	margin: 0 0 .5em;
	font-family: var(--hb-mono);
	font-size: .72rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--hb-gold-deep);
}
.hbscr .hbscr-h2, #main-content .hbscr .hbscr-h2, #page-container .hbscr .hbscr-h2 {
	margin: 0 0 .25em !important; padding: 0 !important;
	font-family: var(--hb-display) !important; font-weight: 500 !important;
	font-size: clamp(1.9rem, 4.2vw, 2.7rem) !important; line-height: 1.12 !important;
	letter-spacing: -.01em; color: var(--hb-forest) !important; text-wrap: balance;
}
.hbscr .hbscr-h3, #main-content .hbscr .hbscr-h3, #page-container .hbscr .hbscr-h3 {
	margin: 0 0 .4em !important; padding: 0 !important;
	font-family: var(--hb-display) !important; font-weight: 500 !important;
	font-size: 1.45rem !important; line-height: 1.2 !important; color: var(--hb-forest) !important; text-wrap: balance;
}

.hbscr .hbscr-head { margin: 0 0 1.6rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--hb-line); }
.hbscr .hbscr-head__meta { margin: 0; color: var(--hb-stone); font-style: italic; }
.hbscr .hbscr-head__jump { margin: .7rem 0 0; }
.hbscr .hbscr-head__sessions { margin: .7rem 0 0; padding: .7rem .95rem; border-left: 3px solid var(--hb-gold-deep); background: var(--hb-cream); font-size: .98rem; }
.hbscr .hbscr-head__sessions a { text-underline-offset: 3px; }

/* panels and alerts */
.hbscr .hbscr-panel { margin: 0 0 1.4rem; padding: 1.4rem 1.5rem; background: var(--hb-paper); border: 1px solid var(--hb-line); }
.hbscr .hbscr-panel > :last-child { margin-bottom: 0; }
.hbscr .hbscr-alert { margin: 0 0 1.4rem; padding: 1rem 1.25rem; border-left: 4px solid var(--hb-forest); background: var(--hb-cream); }
.hbscr .hbscr-alert p:last-child, .hbscr .hbscr-alert ul:last-child { margin-bottom: 0; }
.hbscr .hbscr-alert ul { padding-left: 1.2em !important; }
.hbscr .hbscr-alert li { list-style: disc !important; }
.hbscr .hbscr-alert--error { border-left-color: var(--hb-error); background: #f8ece8; }
.hbscr .hbscr-alert--warn { border-left-color: var(--hb-gold-deep); }
.hbscr .hbscr-alert--ok { border-left-color: var(--hb-ok); }

/* buttons and links */
.hbscr .hbscr-btn, .hbscr a.hbscr-btn, .hbscr button.hbscr-btn {
	display: inline-block; padding: .78em 1.5em; border: 1.5px solid var(--hb-forest); border-radius: 2px;
	background: var(--hb-forest); color: var(--hb-cream) !important;
	font-family: var(--hb-mono); font-size: .8rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; text-decoration: none !important;
	line-height: 1.3; cursor: pointer; transition: background .15s, color .15s;
}
.hbscr .hbscr-btn:hover, .hbscr .hbscr-btn:focus-visible { background: var(--hb-deep); }
.hbscr .hbscr-btn--ghost, .hbscr a.hbscr-btn--ghost, .hbscr button.hbscr-btn--ghost { background: transparent; color: var(--hb-forest) !important; }
.hbscr .hbscr-btn--ghost:hover, .hbscr .hbscr-btn--ghost:focus-visible { background: var(--hb-forest); color: var(--hb-cream) !important; }
.hbscr .hbscr-btn--wide { display: block; width: 100%; text-align: center; }
.hbscr .hbscr-btn[disabled] { opacity: .6; cursor: progress; }
.hbscr .hbscr-link { font-family: var(--hb-mono); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--hb-forest); text-underline-offset: 3px; }
.hbscr :focus-visible { outline: 3px solid var(--hb-gold-deep); outline-offset: 2px; }

/* status pills */
.hbscr .hbscr-pill {
	display: inline-block; padding: .28em .7em; border: 1px solid var(--hb-line); border-radius: 100px;
	font-family: var(--hb-mono); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--hb-stone); background: #fff; white-space: nowrap;
}
.hbscr .hbscr-pill--open { border-color: var(--hb-ok); color: var(--hb-ok); }
.hbscr .hbscr-pill--full { border-color: var(--hb-gold-deep); color: var(--hb-gold-deep); }
.hbscr .hbscr-pill--cancelled { border-color: var(--hb-error); color: var(--hb-error); }

/* catalog */
.hbscr .hbscr-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.4rem; }
.hbscr .hbscr-card { display: flex; flex-direction: column; background: var(--hb-paper); border: 1px solid var(--hb-line); border-top: 3px solid var(--hb-forest); }
.hbscr .hbscr-card__img img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.hbscr .hbscr-card__body { display: flex; flex-direction: column; flex: 1; padding: 1.3rem 1.4rem 1.2rem; }
.hbscr .hbscr-card__title, #main-content .hbscr .hbscr-card__title, #page-container .hbscr .hbscr-card__title {
	margin: 0 0 .3em !important; padding: 0 !important; font-family: var(--hb-display) !important; font-weight: 500 !important;
	font-size: 1.4rem !important; line-height: 1.2 !important; color: var(--hb-forest) !important; text-wrap: balance;
}
.hbscr .hbscr-nowrap { white-space: nowrap; }
.hbscr .hbscr-card__session { margin: 0 0 .6em; font-size: .92rem; line-height: 1.5; color: var(--hb-stone); }
.hbscr .hbscr-tag { display: inline-block; margin-right: .35em; padding: .18em .65em; border: 1px solid var(--hb-gold-deep); border-radius: 100px; font-family: var(--hb-mono); font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; color: var(--hb-gold-deep); white-space: nowrap; vertical-align: 1px; }
.hbscr .hbscr-card__meta { margin: 0 0 .7em; font-style: italic; color: var(--hb-stone); }
.hbscr .hbscr-card__facts { margin: 0 0 .7em; font-family: var(--hb-mono); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--hb-stone); }
.hbscr .hbscr-card__sum { font-size: .98rem; }
.hbscr .hbscr-card__fee { margin-top: auto; font-family: var(--hb-display); font-size: 1.3rem; color: var(--hb-forest); }
.hbscr .hbscr-card__fee small { display: block; font-family: var(--hb-body); font-size: .88rem; }
.hbscr .hbscr-card__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .7rem; padding-top: .9rem; border-top: 1px solid var(--hb-line); }
.hbscr .hbscr-card__actions { display: flex; align-items: center; gap: .9rem; }

/* form */
.hbscr .hbscr-cols { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 2rem; align-items: start; }
.hbscr .hbscr-cols--even { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem; }
.hbscr .hbscr-side { position: sticky; top: 2rem; }
.hbscr .hbscr-set { margin: 0 0 1.8rem; padding: 0; border: 0; min-width: 0; }
.hbscr .hbscr-set > legend {
	display: block; width: 100%; margin: 0 0 1rem; padding: 0 0 .5rem; border-bottom: 1px solid var(--hb-line);
	font-family: var(--hb-display); font-size: 1.35rem; font-weight: 500; color: var(--hb-forest);
}
.hbscr .hbscr-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
.hbscr .hbscr-row--fit { grid-template-columns: repeat(auto-fit, minmax(13.5rem, 1fr)); }
.hbscr .hbscr-field { margin: 0 0 1.05rem; }
.hbscr .hbscr-field label, .hbscr .hbscr-group__label { display: block; margin: 0 0 .3rem; font-family: var(--hb-body); font-size: 1rem; font-weight: 600; color: var(--hb-ink); }
.hbscr .hbscr-opt { font-family: var(--hb-mono); font-size: .66rem; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--hb-stone); }
.hbscr .hbscr-hint { display: block; margin-top: .3rem; font-size: .9rem; line-height: 1.4; color: var(--hb-stone); }
.hbscr p.hbscr-hint--set { margin: -.55em 0 1.1em; }
.hbscr input[type="text"], .hbscr input[type="email"], .hbscr input[type="tel"], .hbscr select, .hbscr textarea {
	display: block; width: 100%; max-width: none; margin: 0; padding: .65em .75em !important;
	border: 1.5px solid #b9b19b !important; border-radius: 2px !important; background: #fff !important; color: var(--hb-ink) !important;
	font-family: var(--hb-body) !important; font-size: 1.05rem !important; line-height: 1.4 !important; height: auto; box-shadow: none; appearance: auto;
}
.hbscr input:focus, .hbscr select:focus, .hbscr textarea:focus { border-color: var(--hb-forest) !important; outline: 3px solid rgba(125, 98, 35, .35); outline-offset: 1px; }
.hbscr input[type="file"] { display: block; width: 100%; padding: .6em; border: 1.5px dashed #b9b19b; background: #fff; font-family: var(--hb-body); font-size: 1rem; }
.hbscr .hbscr-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.hbscr .hbscr-group { margin: 0 0 1.2rem; }
.hbscr .hbscr-choice {
	display: flex; gap: .7rem; align-items: flex-start; margin: 0 0 .5rem; padding: .75rem .9rem;
	border: 1.5px solid var(--hb-line); background: #fff; cursor: pointer; font-weight: 400;
}
.hbscr .hbscr-choice:has(input:checked) { border-color: var(--hb-forest); background: var(--hb-paper); }
.hbscr .hbscr-choice input { flex: none; width: 1.15rem; height: 1.15rem; margin: .28rem 0 0; accent-color: var(--hb-forest); }
.hbscr .hbscr-choice b { display: block; font-weight: 600; }
.hbscr .hbscr-choice small { display: block; margin-top: .1rem; font-size: .9rem; line-height: 1.4; }
.hbscr .hbscr-agree { margin: 0 0 1rem; }
.hbscr .hbscr-agree__text { max-height: 9.5rem; overflow: auto; margin: 0; padding: .8rem .9rem; border: 1.5px solid var(--hb-line); border-bottom: 0; background: var(--hb-paper); font-size: .95rem; line-height: 1.5; }
.hbscr [hidden] { display: none !important; }

/* totals */
.hbscr .hbscr-sum { padding: 1.3rem 1.4rem; background: var(--hb-forest); color: var(--hb-cream); }
.hbscr .hbscr-sum .hbscr-kicker { color: var(--hb-gold); }
.hbscr .hbscr-sum__lines li { display: flex; justify-content: space-between; gap: 1rem; padding: .5rem 0; border-bottom: 1px solid rgba(243, 239, 227, .2); font-size: .98rem; line-height: 1.35; }
.hbscr .hbscr-sum__lines b { font-weight: 400; white-space: nowrap; font-variant-numeric: tabular-nums; }
.hbscr .hbscr-sum__total { display: flex; justify-content: space-between; align-items: baseline; margin: .8rem 0 .2rem; font-family: var(--hb-display); font-size: 1.15rem; }
.hbscr .hbscr-sum__total b { font-size: 1.9rem; font-weight: 500; font-variant-numeric: tabular-nums; }
.hbscr .hbscr-sum__due { margin: 0 0 1rem; font-size: .92rem; color: var(--hb-gold); }
.hbscr .hbscr-sum__note { margin: .8rem 0 0; font-size: .88rem; line-height: 1.4; color: rgba(243, 239, 227, .82); }
.hbscr .hbscr-sum .hbscr-btn { background: var(--hb-gold); border-color: var(--hb-gold); color: var(--hb-deep) !important; }
.hbscr .hbscr-sum .hbscr-btn:hover, .hbscr .hbscr-sum .hbscr-btn:focus-visible { background: var(--hb-cream); border-color: var(--hb-cream); }
.hbscr .hbscr-panel .hbscr-sum__lines li { border-bottom-color: var(--hb-line); }
.hbscr .hbscr-panel .hbscr-sum__total { color: var(--hb-forest); }

/* my registration */
.hbscr .hbscr-status { margin: 0 0 1.4rem; padding: 1.4rem 1.5rem; background: var(--hb-forest); color: var(--hb-cream); }
.hbscr .hbscr-status .hbscr-kicker { color: var(--hb-gold); }
.hbscr .hbscr-status .hbscr-h3, #main-content .hbscr .hbscr-status .hbscr-h3, #page-container .hbscr .hbscr-status .hbscr-h3 { color: var(--hb-cream) !important; font-size: 1.7rem !important; }
.hbscr .hbscr-status p:last-child { margin-bottom: 0; }
.hbscr .hbscr-status .hbscr-btn { background: var(--hb-gold); border-color: var(--hb-gold); color: var(--hb-deep) !important; }
.hbscr .hbscr-status--cancelled, .hbscr .hbscr-status--expired { background: #4a4f47; }
.hbscr .hbscr-instead { margin: 1rem 0 0; font-size: .95rem; }
.hbscr .hbscr-textbtn { padding: 0; border: 0; background: none; color: var(--hb-gold); font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.hbscr .hbscr-pay { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.2rem 2rem; border-left: 4px solid var(--hb-gold-deep); }
.hbscr .hbscr-pay__amt { margin: 0; font-family: var(--hb-display); font-size: 2.3rem; line-height: 1; color: var(--hb-forest); font-variant-numeric: tabular-nums; }
.hbscr .hbscr-pay form { max-width: 22rem; margin: 0; }
.hbscr .hbscr-pay .hbscr-hint { margin-top: .6rem; }
.hbscr .hbscr-dl { display: grid; grid-template-columns: auto 1fr; gap: .45rem 1.2rem; margin: 0 0 1rem; }
.hbscr .hbscr-dl dt { font-family: var(--hb-mono); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--hb-stone); padding-top: .3rem; }
.hbscr .hbscr-dl dd { margin: 0; }
.hbscr .hbscr-cancel { margin: 0 0 1.4rem; padding: .9rem 1.2rem; border: 1px solid var(--hb-line); }
.hbscr .hbscr-cancel summary { cursor: pointer; font-family: var(--hb-mono); font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; color: var(--hb-stone); }
.hbscr .hbscr-cancel form { margin-top: 1rem; }
.hbscr .hbscr-foot { font-size: .92rem; color: var(--hb-stone); }
.hbscr .hbscr-sandbox { border: 2px dashed var(--hb-gold-deep); }
.hbscr .hbscr-sandbox__actions { display: flex; flex-wrap: wrap; gap: .8rem; }
.hbscr .hbscr-funds li { padding: .55rem 0; border-bottom: 1px solid var(--hb-line); }
.hbscr .hbscr-funds li:last-child { border-bottom: 0; }
.hbscr .hbscr-funds small { display: block; }

/* frequently asked questions */
.hbscr .hbscr-faq { margin: 3rem 0 1rem; padding-top: 2rem; border-top: 3px solid var(--hb-forest); scroll-margin-top: 5rem; }
.hbscr .hbscr-faq__group { margin: 1.8rem 0 0; }
.hbscr .hbscr-faq__group > .hbscr-h3 { margin-bottom: .6rem !important; }
.hbscr .hbscr-faq__item { border-bottom: 1px solid var(--hb-line); }
.hbscr .hbscr-faq__item:first-of-type { border-top: 1px solid var(--hb-line); }
.hbscr .hbscr-faq__item > summary { display: block; position: relative; padding: .85rem 2.4rem .85rem 0; cursor: pointer; list-style: none; font-family: var(--hb-body); font-size: 1.08rem; font-weight: 600; line-height: 1.35; color: var(--hb-ink); }
.hbscr .hbscr-faq__item > summary::-webkit-details-marker { display: none; }
.hbscr .hbscr-faq__item > summary::after { content: "+"; position: absolute; right: .4rem; top: .55rem; font-family: var(--hb-mono); font-size: 1.4rem; font-weight: 400; color: var(--hb-gold-deep); }
.hbscr .hbscr-faq__item[open] > summary::after { content: "\2013"; }
.hbscr .hbscr-faq__item > summary:hover { color: var(--hb-forest); }
.hbscr .hbscr-faq__a { max-width: 46rem; padding: 0 0 1.1rem; }
.hbscr .hbscr-faq__a > :last-child { margin-bottom: 0; }
.hbscr .hbscr-faq__a ul, .hbscr .hbscr-faq__a ol { margin: 0 0 .9em; padding-left: 1.3em !important; }
.hbscr .hbscr-faq__a li { margin: 0 0 .3em; list-style: disc !important; }
.hbscr .hbscr-faq__a ol > li { list-style: decimal !important; }
.hbscr .hbscr-faq__a li ul { margin: .3em 0 0; }
.hbscr .hbscr-faq__a li li { list-style: circle !important; }
.hbscr .hbscr-pay p.hbscr-h3 { margin: 0 0 .3em !important; font-family: var(--hb-display) !important; font-size: 1.35rem !important; font-weight: 500 !important; color: var(--hb-forest) !important; }

/* evaluation */
.hbscr .hbscr-rate { margin: 0 0 1.5rem; padding: 0; border: 0; min-width: 0; }
.hbscr .hbscr-rate legend { display: block; margin: 0 0 .5rem; padding: 0; font-family: var(--hb-body); font-size: 1.05rem; font-weight: 600; color: var(--hb-ink); }
.hbscr .hbscr-rate__opts { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .4rem; }
.hbscr .hbscr-rate__opts label { position: relative; display: block; margin: 0; cursor: pointer; }
.hbscr .hbscr-rate__opts input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.hbscr .hbscr-rate__opts span { display: block; padding: .55rem .2rem; border: 1.5px solid var(--hb-line); background: #fff; text-align: center; font-size: .82rem; line-height: 1.25; color: var(--hb-stone); }
.hbscr .hbscr-rate__opts b { display: block; font-family: var(--hb-display); font-size: 1.3rem; font-weight: 500; color: var(--hb-forest); }
.hbscr .hbscr-rate__opts input:checked + span { border-color: var(--hb-forest); background: var(--hb-forest); color: var(--hb-cream); }
.hbscr .hbscr-rate__opts input:checked + span b { color: var(--hb-gold); }
.hbscr .hbscr-rate__opts input:focus-visible + span { outline: 3px solid var(--hb-gold-deep); outline-offset: 2px; }

/* roster */
.hbscr .hbscr-tablewrap { overflow-x: auto; margin: 0 0 1rem; border: 1px solid var(--hb-line); }
.hbscr .hbscr-table { width: 100%; min-width: 760px; border-collapse: collapse; background: var(--hb-paper); font-size: .95rem; }
.hbscr .hbscr-table th, .hbscr .hbscr-table td { padding: .6rem .8rem; border: 0; border-bottom: 1px solid var(--hb-line); text-align: left; vertical-align: top; }
.hbscr .hbscr-table thead th { font-family: var(--hb-mono); font-size: .68rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--hb-stone); background: var(--hb-cream); }
.hbscr .hbscr-table tbody th { font-weight: 600; white-space: nowrap; }

.hbscr .hbscr-eval__note { margin: 0 0 1.6rem; font-size: 1.05rem; }
.hbscr .hbscr-eval__item { margin: 0 0 1.8rem; }
.hbscr .hbscr-eval__item[hidden], .hbscr .hbscr-eval__note[hidden] { display: none; }
.hbscr .hbscr-eval__set { margin: 0; padding: 0; border: 0; min-width: 0; }
.hbscr .hbscr-eval__set legend, .hbscr .hbscr-eval__item .hbscr-field label { display: block; margin: 0 0 .6rem; padding: 0; font-family: var(--hb-body); font-size: 1.05rem; font-weight: 600; line-height: 1.4; color: var(--hb-ink); }
.hbscr .hbscr-eval__help { display: block; margin-top: .2rem; font-size: .92rem; font-weight: 400; color: var(--hb-stone); }
.hbscr .hbscr-eval__req { font-family: var(--hb-mono); font-size: .66rem; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--hb-gold-deep); }
.hbscr .hbscr-eval__choices { display: flex; flex-wrap: wrap; align-items: center; gap: .2rem 0; }
.hbscr .hbscr-eval__other { width: auto !important; flex: 1 1 14rem; margin: .1rem 0 .4rem !important; }
.hbscr .hbscr-rate__opts--n6, .hbscr .hbscr-rate__opts--n7 { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.hbscr .hbscr-rate__opts--n11 { grid-template-columns: repeat(11, minmax(0, 1fr)); }
.hbscr .hbscr-rate__opts label.is-na span { border-style: dashed; }
/* a ratings table: rows are statements, columns the scale; N/A set apart */
.hbscr .hbscr-matrix { --cols: 5; }
.hbscr .hbscr-matrix__head, .hbscr .hbscr-matrix__row { display: grid; grid-template-columns: minmax(12rem, 1.6fr) repeat(var(--cols), minmax(3.6rem, 1fr)); gap: .3rem; align-items: stretch; }
.hbscr .hbscr-matrix:has(.hbscr-matrix__head > span:nth-child(7)) { --cols: 6; }
.hbscr .hbscr-matrix:has(.hbscr-matrix__head > span:nth-child(8)) { --cols: 7; }
.hbscr .hbscr-matrix__head { position: sticky; top: 0; z-index: 1; padding: .3rem 0; background: var(--hb-bg, #fff); }
.hbscr .hbscr-matrix__head span { align-self: end; font-family: var(--hb-mono); font-size: .66rem; line-height: 1.25; letter-spacing: .05em; text-transform: uppercase; text-align: center; color: var(--hb-stone); }
.hbscr .hbscr-matrix__head span.is-na, .hbscr .hbscr-matrix__row label.is-na { margin-left: .5rem; }
.hbscr .hbscr-matrix__row { padding: .45rem 0; border-top: 1px solid var(--hb-line); }
.hbscr .hbscr-matrix__label { align-self: center; padding-right: .6rem; line-height: 1.35; }
.hbscr .hbscr-matrix__row label { position: relative; display: block; margin: 0; cursor: pointer; }
.hbscr .hbscr-matrix__row input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.hbscr .hbscr-matrix__row label span { display: flex; align-items: center; justify-content: center; height: 100%; min-height: 2.6rem; padding: .3rem .2rem; border: 1.5px solid var(--hb-line); background: #fff; font-size: 0; color: transparent; }
.hbscr .hbscr-matrix__row label span::before { content: ""; width: .9rem; height: .9rem; border: 1.5px solid #b9b19b; border-radius: 50%; }
.hbscr .hbscr-matrix__row label.is-na span { border-style: dashed; }
.hbscr .hbscr-matrix__row input:checked + span { border-color: var(--hb-forest); background: var(--hb-forest); }
.hbscr .hbscr-matrix__row input:checked + span::before { border-color: var(--hb-gold); background: var(--hb-gold); }
.hbscr .hbscr-matrix__row input:focus-visible + span { outline: 3px solid var(--hb-gold-deep); outline-offset: 2px; }
@media (max-width: 820px) {
	/* each statement becomes its own small scale, its words under the buttons */
	.hbscr .hbscr-matrix__head { display: none; }
	.hbscr .hbscr-matrix__row { grid-template-columns: repeat(var(--cols), minmax(0, 1fr)); padding: .7rem 0 .5rem; }
	.hbscr .hbscr-matrix__label { grid-column: 1 / -1; padding: 0 0 .35rem; font-weight: 600; }
	.hbscr .hbscr-matrix__row label span { flex-direction: column; gap: .25rem; font-size: .66rem; line-height: 1.15; color: var(--hb-stone); text-align: center; }
	.hbscr .hbscr-matrix__row input:checked + span { color: var(--hb-cream); }
	.hbscr .hbscr-matrix__head span.is-na, .hbscr .hbscr-matrix__row label.is-na { margin-left: 0; }
}
@media (max-width: 820px) {
	.hbscr { font-size: 17px; }
	.hbscr .hbscr-cols, .hbscr .hbscr-cols--even { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.hbscr .hbscr-side { position: static; margin-bottom: 1.4rem; }
	.hbscr .hbscr-row { grid-template-columns: minmax(0, 1fr); }
	.hbscr .hbscr-panel, .hbscr .hbscr-status { padding: 1.1rem 1.1rem; }
	.hbscr .hbscr-rate__opts span { font-size: .72rem; }
}
@media (prefers-reduced-motion: reduce) { .hbscr * { transition: none !important; } }
@media print {
	.hbscr .hbscr-btn, .hbscr .hbscr-cancel { display: none !important; }
	.hbscr .hbscr-table { min-width: 0; font-size: 10pt; }
}

/* space and equipment request */
.hbscr .hbscr-row3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 1rem; }
.hbscr .hbscr-list { margin: 0; padding: 0 0 0 1.2rem; }
.hbscr .hbscr-list li { margin: 0 0 .45rem; }
.hbscr .hbscr-nrows { border: 1px solid var(--hb-line); background: var(--hb-paper); }
.hbscr .hbscr-nrow { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(0, 1.3fr) minmax(0, 1.3fr) minmax(0, 1.9fr); gap: .5rem; align-items: center; padding: .45rem .7rem; border-bottom: 1px solid var(--hb-line); }
.hbscr .hbscr-nrows--5 .hbscr-nrow { grid-template-columns: minmax(0, 1.2fr) minmax(0, 2fr) minmax(0, 1fr) minmax(0, .6fr) minmax(0, 1.6fr); }
.hbscr .hbscr-nrow:last-child { border-bottom: 0; }
.hbscr .hbscr-nrow--head { padding: .5rem .7rem; font-family: var(--hb-mono); font-size: .68rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--hb-stone); }
.hbscr .hbscr-nrow__item { font-weight: 600; line-height: 1.3; }
.hbscr .hbscr-nrow input[type="text"] { padding: .4em .55em !important; font-size: .98rem !important; }
.hbscr .hbscr-needs .hbscr-field input[type="checkbox"] { margin-right: .4rem; }
.hbscr .hbscr-needs .hbscr-field label:has(input[type="checkbox"]) { font-weight: 400; }
.hbscr .hbscr-needsum { width: 100%; margin: 0 0 1rem; border-collapse: collapse; font-size: .95rem; }
.hbscr .hbscr-needsum th, .hbscr .hbscr-needsum td { padding: .45rem .6rem; border: 0; border-bottom: 1px solid var(--hb-line); text-align: left; vertical-align: top; }
.hbscr .hbscr-needsum th { font-family: var(--hb-mono); font-size: .68rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--hb-stone); }
@media (max-width: 760px) {
	.hbscr .hbscr-row3 { grid-template-columns: minmax(0, 1fr); }
	.hbscr .hbscr-nrow, .hbscr .hbscr-nrows--5 .hbscr-nrow { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.hbscr .hbscr-nrow > :first-child { grid-column: 1 / -1; }
	.hbscr .hbscr-nrow > :last-child:nth-child(4), .hbscr .hbscr-nrows--5 .hbscr-nrow > :last-child { grid-column: 1 / -1; }
	.hbscr .hbscr-nrow--head { display: none; }
}

/* housing placement questions */
.hbscr .hbscr-placebox { margin: .2rem 0 1.2rem; padding: 1.1rem 1.2rem .3rem; background: var(--hb-paper); border: 1px solid var(--hb-line); border-left: 3px solid var(--hb-gold); }
.hbscr .hbscr-place-intro { margin: 0 0 1rem; font-size: .98rem; line-height: 1.5; }
.hbscr .hbscr-placebox .hbscr-row { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); align-items: start; }
.hbscr .hbscr-place-intro strong { font-weight: 600; }
.hbscr .hbscr-field label.hbscr-check, .hbscr label.hbscr-check { display: inline-flex; align-items: center; gap: .5rem; margin: .15rem 1.6rem .3rem 0; font-weight: 400; cursor: pointer; }
.hbscr label.hbscr-check input { flex: none; width: 1.1rem; height: 1.1rem; margin: 0; accent-color: var(--hb-forest); }

/* The instructor form */
.hbscr .hbscr-intake [hidden] { display: none !important; }
.hbscr .hbscr-file__have { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; margin: 0 0 .5rem; }
.hbscr .hbscr-file__have img, .hbscr .hbscr-file__thumb img { display: block; width: 96px; height: 96px; object-fit: cover; border: 1px solid var(--hb-line, #d9d2bf); }
.hbscr .hbscr-file__thumbs { display: flex; flex-wrap: wrap; gap: .9rem; margin: 0 0 .6rem; }
.hbscr .hbscr-file__thumb { display: flex; flex-direction: column; gap: .3rem; }
.hbscr .hbscr-file__thumb .hbscr-check { margin: 0; font-size: .9rem; }
.hbscr .hbscr-intake input[type="file"] { display: block; max-width: 100%; }
.hbscr .hbscr-guest { margin: 0 0 .2rem; }

.hbscr .hbscr-alertopt { margin-top: 1rem; }
.hbscr .hbscr-alertopt .hbscr-choice span { font-size: .9rem; line-height: 1.45; }
