/*
 * Labsheet: front-end layout. A vertical rail on the left from 1100px, a top bar below that.
 * The age check and the cookie bar live here too; the editor never loads this file.
 */
.wp-site-blocks { padding: 0; }
.lab-wrap { min-height: 100vh; display: flex; flex-direction: column; }

/* Rail / top bar */
.lab-rail {
	background: var(--lab-mint);
	border-bottom: 1px solid var(--lab-ink);
	position: sticky;
	top: 0;
	z-index: 40;
}
.lab-rail__top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.55rem 1.25rem; min-height: 3.5rem; }
.lab-rail__brand { display: flex; align-items: center; gap: 0.7rem; margin: 0 !important; }
.lab-rail__brand .lab-mark { flex: none; display: block; }
.lab-rail .wp-block-site-title { margin: 0; font-weight: 600; font-size: 1.02rem; letter-spacing: -0.01em; line-height: 1.15; }
.lab-rail .wp-block-site-title a { text-decoration: none; color: var(--lab-ink); }
.lab-rail__extra { display: none; }

/* the Navigation block: hamburger below 1100px */
.lab-rail .wp-block-navigation__responsive-container-open { color: var(--lab-ink); border: 1px solid var(--lab-ink); padding: 0.35rem; background: #fff; }
.lab-rail .wp-block-navigation__responsive-container.is-menu-open { background: var(--lab-mint) !important; color: var(--lab-ink) !important; padding: 1.2rem 1.4rem; }
.lab-rail .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0 !important; width: 100%; align-items: stretch; }
.lab-rail .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { padding: 0.5rem 0; }
.lab-rail .wp-block-navigation__responsive-container-close { border: 1px solid var(--lab-ink); background: #fff; padding: 0.3rem; color: var(--lab-ink); }
.lab-nav .wp-block-navigation-item__content { text-decoration: none; color: var(--lab-ink); }
.lab-nav .wp-block-navigation-item__content:hover { color: var(--lab-coral-d); }
.lab-nav .current-menu-item > .wp-block-navigation-item__content { box-shadow: inset 3px 0 0 var(--lab-coral); padding-left: 0.7rem; font-weight: 600; }
.lab-nav .wp-block-navigation__submenu-container { position: static !important; opacity: 1 !important; visibility: visible !important; height: auto !important; width: auto !important; background: transparent !important; border: 0 !important; padding: 0 0 0.3rem 1rem !important; min-width: 0 !important; }
.lab-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 0.9rem; color: var(--lab-soft); padding: 0.18rem 0; }
.lab-nav .wp-block-navigation__submenu-icon { display: none; }

body.admin-bar .lab-rail { top: 32px; }

/* Content column */
.lab-main { padding: 1.5rem 1.25rem 3rem; }
.lab-main > * { max-width: 100%; }
.lab-main .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { margin-left: 0 !important; margin-right: auto !important; }
.lab-main .is-layout-constrained > .alignwide { margin-left: 0 !important; margin-right: 0 !important; max-width: 100%; }
.lab-foot { padding: 2rem 1.25rem 5rem; }

@media (min-width: 760px) {
	.lab-rail__top { padding: 0.55rem 2rem; }
	.lab-main { padding: 2.2rem 2.4rem 4rem; }
	.lab-foot { padding: 2.4rem 2.4rem 5.5rem; }
}

@media (min-width: 1100px) {
	.lab-wrap { display: block; padding-left: 17rem; }
	.lab-rail {
		position: fixed;
		inset: 0 auto 0 0;
		width: 17rem;
		height: 100vh;
		overflow-y: auto;
		border-bottom: 0;
		border-right: 1px solid var(--lab-ink);
		display: flex;
		flex-direction: column;
		padding: 1.6rem 1.4rem 1.2rem;
	}
	body.admin-bar .lab-rail { top: 32px; height: calc(100vh - 32px); }
	.lab-rail > * { flex-shrink: 0; }
	.lab-rail__top { display: block !important; padding: 0; min-height: 0; }
	.lab-rail__brand { margin-bottom: 1.4rem !important; flex-direction: column !important; align-items: flex-start !important; gap: 0.8rem !important; }
	.lab-rail .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close { display: none !important; }
	.lab-rail .wp-block-site-title { font-size: 1.25rem; }
	.lab-rail__extra { display: block; margin-top: auto; padding-top: 1.2rem; border-top: 1px solid var(--lab-ink); font-family: var(--lab-mono); font-size: 0.66rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--lab-soft); line-height: 1.6; }
	.lab-rail__extra p { margin: 0; }
	/* the Navigation block shown inline as a vertical list */
	.lab-rail .wp-block-navigation__responsive-container-open { display: none !important; }
	.lab-rail .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: block !important;
		position: static !important;
		width: auto;
		background: transparent;
		padding: 0;
	}
	.lab-rail .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-close { max-width: none; width: 100%; }
	.lab-rail .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-dialog { margin: 0; }
	.lab-rail .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-content { padding: 0; display: block; }
	.lab-rail .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container { display: flex; flex-direction: column; align-items: stretch; gap: 0; width: 100%; }
	.lab-rail .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation > .wp-block-navigation__responsive-container > .wp-block-navigation__responsive-close .wp-block-navigation__container > .wp-block-navigation-item { width: 100%; }
	.lab-rail .wp-block-navigation-item { display: block; width: 100%; border-top: 1px solid var(--lab-line); }
	.lab-rail .wp-block-navigation-item:first-child { border-top: 0; }
	.lab-rail .wp-block-navigation-item__content { display: block; padding: 0.42rem 0; font-size: 0.97rem; }
	.lab-rail .wp-block-navigation__submenu-container .wp-block-navigation-item { border-top: 0; }
	.lab-rail .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.14rem 0; font-size: 0.86rem; }
	.lab-main { padding: 2.6rem 3.4rem 4rem; max-width: 80rem; }
	.lab-foot { padding: 2.6rem 3.4rem 4rem; }
}

/* Age check (front page only) */
.lab-gate {
	position: fixed;
	inset: 0;
	z-index: 100000;
	background: rgba(228, 242, 236, 0.97);
	display: flex !important;
	align-items: center;
	justify-content: center;
	padding: 1.25rem 1.25rem 7rem;
	overflow-y: auto;
}
.lab-aged .lab-gate { display: none !important; }
.lab-gate__panel { background: #fff; border: 1px solid var(--lab-ink); padding: 1.6rem 1.5rem; max-width: 30rem; width: 100%; position: relative; margin: auto; }
.lab-gate__panel::before { content: ""; position: absolute; inset: -6px; border: 1px solid var(--lab-coral); pointer-events: none; }
.lab-gate__panel h2 { font-size: 1.5rem; margin: 0.6rem 0 0.8rem; }
.lab-gate__refusal { color: var(--lab-coral-d); font-weight: 600; }
.lab-gate .lab-gate__refusal { display: none; }
.lab-gate .lab-gate__refusal.is-on { display: block; }

/* Cookie bar */
.lab-cookie {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 99999;
	background: #fff;
	border-top: 1px solid var(--lab-ink);
	padding: 0.8rem 1.25rem;
	display: flex !important;
	flex-wrap: wrap;
	gap: 0.6rem 1.2rem;
	align-items: center;
	justify-content: space-between;
	font-size: 0.88rem;
}
.lab-cookie p { margin: 0; max-width: 46rem; }
.lab-cookie .wp-block-buttons { margin: 0; gap: 0.5rem; }
.lab-consented .lab-cookie, .lab-cookie[hidden] { display: none !important; }
@media (min-width: 1100px) { .lab-cookie { left: 17rem; padding-inline: 2.4rem; } }
.lab-gate-lock { overflow: hidden; }

/* Skip link and focus */
.skip-link { position: absolute; left: -999px; top: 0; background: #fff; color: var(--lab-ink); border: 1px solid var(--lab-ink); padding: 0.5rem 0.8rem; z-index: 100001; }
.skip-link:focus { left: 0.5rem; top: 0.5rem; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--lab-coral); outline-offset: 2px; }

/* Bare page (403) */
body.lab-bare-page { background-image: none; }
