/*
 * Labsheet: components shared by the site and the block editor.
 * Specimen-sheet language: 1px lines, mono labels, numbered swatch cards, protocol tables.
 */
:root {
	--lab-ink: #073b43;
	--lab-soft: #2d5a61;
	--lab-teal: #0f6b73;
	--lab-coral: #f2553f;
	--lab-coral-d: #c93a26;
	--lab-mint: #e4f2ec;
	--lab-mint2: #cfe6dc;
	--lab-line: #b9d8cc;
	--lab-night: #052a31;
	--lab-mono: "Fragment Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
	--lab-grid: rgba(7, 59, 67, 0.05);
}

body {
	background-color: #fff;
	background-image: linear-gradient(var(--lab-grid) 1px, transparent 1px), linear-gradient(90deg, var(--lab-grid) 1px, transparent 1px);
	background-size: 32px 32px;
	-webkit-font-smoothing: antialiased;
	overflow-wrap: anywhere;
}

.lab-main :where(h1, h2, h3, h4) { text-wrap: balance; }
.lab-main :where(p, li) { text-wrap: pretty; }
.lab-main a { text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
.lab-main a:hover { color: var(--lab-coral-d); }

/* Mono labels */
.lab-label,
.lab-kicker {
	font-family: var(--lab-mono);
	font-size: 0.72rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--lab-teal);
	margin-block: 0;
	line-height: 1.4;
}
.lab-kicker::before {
	content: "";
	display: inline-block;
	width: 1.6rem;
	border-top: 1px solid var(--lab-coral);
	vertical-align: middle;
	margin-right: 0.6rem;
}

/* Sheet head strip: ruled cells of mono type */
.lab-sheethead {
	display: flex;
	flex-wrap: wrap;
	border-top: 1px solid var(--lab-ink);
	border-bottom: 1px solid var(--lab-ink);
	margin-bottom: 2rem !important;
}
.lab-sheethead > p {
	flex: 1 1 8rem;
	margin: 0 !important;
	padding: 0.55rem 0.8rem;
	font-family: var(--lab-mono);
	font-size: 0.68rem;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	border-left: 1px solid var(--lab-line);
	line-height: 1.35;
}
.lab-sheethead > p:first-child { border-left: 0; padding-left: 0; }
.lab-sheethead strong { color: var(--lab-coral-d); font-weight: 500; }

/* Hero: no photo, a ruled sheet */
.lab-hero { gap: 2.5rem !important; align-items: center; margin-block: 0 3rem; }
.lab-hero h1 { margin-block: 0.7rem 1.1rem; }
.lab-hero .lab-lead { font-size: 1.2rem; color: var(--lab-soft); max-width: 34rem; }
.lab-dw { margin: 0; border: 1px solid var(--lab-ink); background: #fff; padding: 0.4rem; }
.lab-dw svg { display: block; width: 100%; height: auto; }
.lab-dw--bare { border: 0; padding: 0; background: transparent; }

/* Framed photographs */
.wp-block-image.lab-frame,
.lab-frame {
	margin: 0;
	border: 1px solid var(--lab-ink);
	background: var(--lab-mint);
	padding: 6px;
	position: relative;
}
.lab-frame img { display: block; width: 100%; height: auto; }
.lab-frame figcaption,
.lab-frame .wp-element-caption {
	font-family: var(--lab-mono);
	font-size: 0.68rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--lab-soft);
	text-align: left;
	margin: 6px 2px 0;
}

/* Sections */
.lab-sec { padding-block: 2.5rem; border-top: 1px solid var(--lab-line); }
.lab-sec > h2:first-of-type,
.lab-sec > .wp-block-heading:first-of-type { margin-top: 0.5rem; }
.lab-sec--tight { padding-block: 1.5rem; }
.lab-h2 {
	display: flex;
	align-items: baseline;
	gap: 0.8rem;
	flex-wrap: wrap;
}

/* Swatch cards: Query Loop grid, numbered with a counter, with corner marks */
.lab-query { margin-top: 1.25rem; }
.wp-block-post-template.lab-cards {
	counter-reset: spec;
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr)) !important;
	gap: 1.6rem 1.4rem !important;
	list-style: none;
	padding: 0;
	margin: 0;
}
.lab-cards > li {
	counter-increment: spec;
	position: relative;
	background: #fff;
	border: 1px solid var(--lab-ink);
	margin: 0 !important;
	display: flex;
	flex-direction: column;
}
.lab-cards > li::before {
	content: "N\00B0  " counter(spec, decimal-leading-zero);
	position: absolute;
	z-index: 2;
	left: 0.55rem;
	top: 0.55rem;
	background: #fff;
	border: 1px solid var(--lab-ink);
	font-family: var(--lab-mono);
	font-size: 0.66rem;
	letter-spacing: 0.08em;
	padding: 0.1rem 0.4rem;
	line-height: 1.5;
}
.lab-cards > li::after {
	content: "";
	position: absolute;
	inset: -5px;
	pointer-events: none;
	background:
		linear-gradient(var(--lab-coral), var(--lab-coral)) 0 0 / 10px 1px no-repeat,
		linear-gradient(var(--lab-coral), var(--lab-coral)) 0 0 / 1px 10px no-repeat,
		linear-gradient(var(--lab-coral), var(--lab-coral)) 100% 0 / 10px 1px no-repeat,
		linear-gradient(var(--lab-coral), var(--lab-coral)) 100% 0 / 1px 10px no-repeat,
		linear-gradient(var(--lab-coral), var(--lab-coral)) 0 100% / 10px 1px no-repeat,
		linear-gradient(var(--lab-coral), var(--lab-coral)) 0 100% / 1px 10px no-repeat,
		linear-gradient(var(--lab-coral), var(--lab-coral)) 100% 100% / 10px 1px no-repeat,
		linear-gradient(var(--lab-coral), var(--lab-coral)) 100% 100% / 1px 10px no-repeat;
}
.lab-card__img { margin: 0 !important; border-bottom: 1px solid var(--lab-ink); background: var(--lab-mint); }
.lab-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lab-card__title { margin: 0.85rem 1rem 0.2rem !important; font-size: 1.12rem; line-height: 1.25; }
.lab-card__title a { text-decoration: none; }
.lab-card__title a:hover { text-decoration: underline; }
.lab-card__text { margin: 0 1rem 1rem !important; font-size: 0.9rem; color: var(--lab-soft); line-height: 1.5; }
.lab-card__text p { margin: 0; }
.lab-card__text .wp-block-post-excerpt__more-link { display: none; }

/* List-style Query Loop (destinations on the home page) */
.wp-block-post-template.lab-rows { counter-reset: row; list-style: none; padding: 0; margin: 0; display: block !important; }
.lab-rows > li { counter-increment: row; display: grid; grid-template-columns: 3.2rem 1fr; gap: 0.2rem 1rem; padding: 0.9rem 0; border-top: 1px solid var(--lab-line); margin: 0 !important; }
.lab-rows > li::before { content: counter(row, decimal-leading-zero); font-family: var(--lab-mono); font-size: 0.78rem; color: var(--lab-coral-d); grid-row: 1 / span 2; padding-top: 0.25rem; }
.lab-rows .lab-card__title { margin: 0 !important; font-size: 1.15rem; }
.lab-rows .lab-card__text { margin: 0 !important; }

/* Protocol tables */
.wp-block-table.lab-protocol { margin-block: 1.5rem; }
.lab-protocol table { width: 100%; border-collapse: collapse; font-size: 0.93rem; border-top: 1px solid var(--lab-ink); border-bottom: 1px solid var(--lab-ink); background: #fff; }
.lab-protocol th {
	font-family: var(--lab-mono);
	font-weight: 400;
	font-size: 0.68rem;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	text-align: left;
	background: var(--lab-mint);
	border: 0;
	border-bottom: 1px solid var(--lab-ink);
	padding: 0.55rem 0.75rem;
	white-space: nowrap;
}
.lab-protocol td { border: 0; border-top: 1px solid var(--lab-line); padding: 0.6rem 0.75rem; vertical-align: top; }
.lab-protocol td:first-child { font-family: var(--lab-mono); font-size: 0.8rem; white-space: nowrap; }
.lab-protocol tr:first-child td { border-top: 0; }
.lab-protocol figcaption { font-family: var(--lab-mono); font-size: 0.68rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--lab-soft); text-align: left; margin-top: 0.5rem; }

/* Facts */
.lab-facts { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr)); border: 1px solid var(--lab-ink); background: #fff; margin-block: 1.5rem !important; }
.lab-fact { padding: 0.7rem 0.9rem !important; border-left: 1px solid var(--lab-line); margin: 0 !important; }
.lab-fact:first-child { border-left: 0; }
.lab-fact > * { margin: 0 !important; }
.lab-fact__k { font-family: var(--lab-mono); font-size: 0.66rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--lab-teal); }
.lab-fact__v { font-size: 1.05rem; font-weight: 600; line-height: 1.3; margin-top: 0.15rem !important; }

/* Day by day */
.lab-days { margin-block: 1rem; }
.lab-day { display: grid !important; grid-template-columns: 5.2rem 1fr; gap: 0.2rem 1.2rem; padding: 1.1rem 0; border-top: 1px solid var(--lab-line); margin: 0 !important; }
.lab-day:last-child { border-bottom: 1px solid var(--lab-line); }
.lab-day__n { font-family: var(--lab-mono); font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--lab-coral-d); margin: 0 !important; padding-top: 0.2rem; }
.lab-day__body > * { margin: 0 !important; }
.lab-day__body h3 { font-size: 1.1rem; margin-bottom: 0.3rem !important; }
.lab-day__body p { color: var(--lab-ink); }

/* Included / not included */
.lab-yes, .lab-no { list-style: none; padding: 0 !important; margin: 0.6rem 0 0 !important; }
.lab-yes li, .lab-no li { position: relative; padding: 0.35rem 0 0.35rem 1.5rem; border-top: 1px solid var(--lab-line); font-size: 0.95rem; }
.lab-yes li::before { content: "+"; position: absolute; left: 0; font-family: var(--lab-mono); color: var(--lab-teal); }
.lab-no li::before { content: "\2212"; position: absolute; left: 0; font-family: var(--lab-mono); color: var(--lab-coral-d); }

/* Plain lists in prose */
.lab-main .wp-block-list { padding-left: 1.2rem; }
.lab-main .wp-block-list li { margin-bottom: 0.3rem; }
.lab-ticks { list-style: none; padding: 0 !important; }
.lab-ticks li { position: relative; padding: 0.4rem 0 0.4rem 1.6rem; border-top: 1px solid var(--lab-line); }
.lab-ticks li::before { content: ""; position: absolute; left: 0.1rem; top: 0.95rem; width: 0.7rem; border-top: 1px solid var(--lab-coral); }

/* Details (FAQ) */
.wp-block-details.lab-qa { border-top: 1px solid var(--lab-line); padding: 0.8rem 0; }
.wp-block-details.lab-qa:last-of-type { border-bottom: 1px solid var(--lab-line); }
.lab-qa summary { font-weight: 600; cursor: pointer; list-style: none; padding-right: 2rem; position: relative; }
.lab-qa summary::-webkit-details-marker { display: none; }
.lab-qa summary::after { content: "+"; position: absolute; right: 0; top: 0; font-family: var(--lab-mono); color: var(--lab-coral-d); }
.lab-qa[open] summary::after { content: "\2212"; }
.lab-qa > :not(summary) { margin-top: 0.6rem; color: var(--lab-soft); }

/* Buttons */
.wp-block-button__link { font-family: var(--lab-mono); text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.78rem; border-radius: 0; text-decoration: none; box-shadow: inset 0 -3px 0 var(--lab-coral); }
.wp-block-button__link:hover { background: var(--lab-coral-d); color: #fff; }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border: 1px solid var(--lab-ink); color: var(--lab-ink); box-shadow: none; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--lab-ink); color: #fff; }

/* Night band: the gaming-room teaser on the home page */
.lab-band { background: var(--lab-night); color: #eef7f3; padding: 2.5rem 1.5rem !important; border: 1px solid var(--lab-ink); margin-block: 1rem; }
.lab-band h2, .lab-band h3 { color: #fff; }
.lab-band .lab-kicker, .lab-band .lab-label { color: #8fd3c3; }
.lab-band a { color: #ffd0c7; }
.lab-band .wp-block-button__link { background: #f46a56; color: var(--lab-night); box-shadow: none; }
.lab-band .wp-block-button__link:hover { background: #fff; color: var(--lab-night); }
.lab-band .lab-dw { background: transparent; border-color: #1c5560; }
.lab-band p { color: #d7ebe4; }

/* Quiet notes */
.lab-note { border-left: 3px solid var(--lab-coral); padding: 0.4rem 0 0.4rem 1rem; color: var(--lab-soft); font-size: 0.95rem; }
.lab-aside { background: var(--lab-mint); border: 1px solid var(--lab-line); padding: 1rem 1.2rem !important; }
.lab-aside > :first-child { margin-top: 0 !important; }
.lab-aside > :last-child { margin-bottom: 0 !important; }

/* Cover strip used on indexes */
.wp-block-cover.lab-strip { border: 1px solid var(--lab-ink); padding: 2rem 1.5rem; }
.wp-block-cover.lab-strip h2, .wp-block-cover.lab-strip p { color: #fff; }

/* The small print line under content */
.lab-print { font-family: var(--lab-mono); font-size: 0.7rem; letter-spacing: 0.04em; line-height: 1.6; color: var(--lab-soft); border-top: 1px solid var(--lab-line); padding-top: 0.8rem; margin-top: 3rem !important; }
.lab-print p { margin: 0; }

/* Casino page pieces */
.lab-gfacts { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); border: 1px solid var(--lab-ink); background: #fff; margin: 0 !important; }
.lab-gfacts .lab-fact { border-left: 0; border-top: 1px solid var(--lab-line); }
.lab-gfacts .lab-fact:first-child { border-top: 0; }
.lab-licence { border: 1px solid var(--lab-ink); background: #fff; padding: 1rem 1.2rem !important; font-size: 0.93rem; }
.lab-licence p { margin: 0 0 0.35rem; }
.lab-licence p:last-child { margin-bottom: 0; }

/* Footer pieces */
.lab-foot { background: var(--lab-mint); border-top: 1px solid var(--lab-ink); font-size: 0.9rem; }
.lab-foot a { color: var(--lab-ink); }
.lab-foot .lab-label { margin-bottom: 0.4rem; }
.lab-foot-cols { gap: 2rem !important; }
.lab-foot .wp-block-navigation { font-size: 0.9rem; }
.lab-foot .wp-block-navigation__container { gap: 0.2rem 1.4rem; }
.lab-casinoline { font-size: 0.88rem; border-top: 1px solid var(--lab-line); padding-top: 0.8rem; margin-top: 0.8rem; }
.lab-foot-end { font-family: var(--lab-mono); font-size: 0.68rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--lab-soft); border-top: 1px solid var(--lab-ink); padding-top: 0.7rem; margin-top: 1.4rem; }

/* 403 and 404 */
.lab-bare { max-width: 34rem; margin: 18vh auto 0; padding: 0 1.25rem; }
.lab-bare h1 { font-size: 1.6rem; }
.lab-lost { max-width: 30rem; }

/* Post templates */
.lab-post-meta { font-family: var(--lab-mono); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--lab-soft); }
.wp-block-post-title.lab-ptitle { margin-block: 0.6rem 1rem; }
.wp-block-post-featured-image.lab-hero-img { margin: 0 0 1.6rem; border: 1px solid var(--lab-ink); padding: 6px; background: var(--lab-mint); }
.wp-block-post-featured-image.lab-hero-img img { width: 100%; height: auto; max-height: 30rem; object-fit: cover; display: block; }
.wp-block-query-pagination { font-family: var(--lab-mono); font-size: 0.78rem; margin-top: 2rem; }

@media (max-width: 599px) {
	.lab-day { grid-template-columns: 1fr; }
	.lab-hero { gap: 1.6rem !important; }
	.lab-band { padding: 1.6rem 1rem !important; }
	.lab-sheethead > p { flex-basis: 45%; }
}

/* Indicative price note */
.lab-pricenote { font-family: var(--lab-mono); font-size: 0.72rem; letter-spacing: 0.03em; line-height: 1.55; color: var(--lab-soft); border-left: 2px solid var(--lab-coral); padding-left: 0.7rem; }

/* Request form: a ruled sheet with mono labels */
.lab-form fieldset { border: 1px solid var(--lab-ink); background: #fff; margin: 0 0 1.2rem; padding: 0.9rem 1rem 0.4rem; min-width: 0; }
.lab-form legend { font-family: var(--lab-mono); font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--lab-teal); padding: 0 0.4rem; }
.lab-field { display: flex; flex-direction: column; gap: 0.25rem; margin-bottom: 0.9rem; }
.lab-field label { font-weight: 600; font-size: 0.93rem; }
.lab-field input, .lab-field select, .lab-field textarea, .lab-recall select {
	font: inherit; font-size: 1rem; color: var(--lab-ink); background: #fff; border: 1px solid var(--lab-line);
	border-bottom: 1px solid var(--lab-ink); border-radius: 0; padding: 0.55rem 0.6rem; width: 100%; max-width: 100%; box-sizing: border-box;
}
.lab-field input:focus, .lab-field select:focus, .lab-field textarea:focus, .lab-recall select:focus { outline: 2px solid var(--lab-coral); outline-offset: 1px; }
.lab-field [aria-invalid="true"] { border-color: var(--lab-coral-d); background: #fff5f3; }
.lab-err { color: var(--lab-coral-d); font-size: 0.85rem; min-height: 0; }
.lab-err:empty { display: none; }
.lab-hint { font-size: 0.8rem; color: var(--lab-soft); }
.lab-field--check { flex-direction: row; flex-wrap: wrap; align-items: flex-start; gap: 0.6rem; }
.lab-field--check input { width: auto; margin-top: 0.3rem; }
.lab-field--check label { font-weight: 400; flex: 1 1 14rem; }
.lab-field--check .lab-err { flex-basis: 100%; }
.lab-form__status, .lab-recall__status { font-family: var(--lab-mono); font-size: 0.78rem; color: var(--lab-coral-d); min-height: 1.2em; }
.lab-form button[type="submit"], .lab-recall button[type="submit"] { cursor: pointer; border: 0; }

/* Confirmation summary */
.lab-summary dl { display: grid; grid-template-columns: minmax(6rem, 9rem) 1fr; border: 1px solid var(--lab-ink); background: #fff; margin: 0 0 1.5rem; }
.lab-summary dt, .lab-summary dd { margin: 0; padding: 0.5rem 0.8rem; border-top: 1px solid var(--lab-line); }
.lab-summary dt:first-of-type, .lab-summary dt:first-of-type + dd { border-top: 0; }
.lab-summary dt { font-family: var(--lab-mono); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--lab-teal); padding-top: 0.7rem; }
.lab-recall { display: grid; gap: 0.6rem; max-width: 30rem; border: 1px solid var(--lab-line); background: var(--lab-mint); padding: 1rem; margin-bottom: 1.5rem; }
.lab-recall label { font-weight: 600; }
