.lab-page .website {
  min-height: calc(100svh - var(--page-top) - var(--page-bottom));
}
.lab-page h1 {
  font-size: clamp(2.5rem, 5vw, 5rem);
  font-weight: 300;
  letter-spacing: -0.05em;
  line-height: 1.08;
  margin: 0;
}
.lab-page h1 span {
  color: #b7b7ff;
}
.lab-page h2 {
  font-size: clamp(2rem, 3vw, 3.5rem);
  font-weight: 300;
  letter-spacing: -0.04em;
  margin: 0;
}
.lab-page .lab-section {
  gap: 1.25rem;
  scroll-margin-top: 0;
}
.lab-page [hidden] {
  display: none !important;
}
.lab-sections {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #ffffff18;
}
.lab-sections a {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.65rem 1rem;
  border: 1px solid transparent;
  border-radius: 2rem;
  color: var(--color-subtle);
  font-size: 0.8125rem;
  text-decoration: none;
}
.lab-sections a > span {
  color: var(--color-purple);
  font-size: 0.625rem;
}
.lab-sections a[aria-current] {
  background: #c2a3f414;
  border-color: #c2a3f455;
  color: var(--color-text);
}
.lab-sections a:hover {
  background: #ffffff0a;
}
.lab-page .calculator-heading > .eyebrow {
  margin-bottom: 0.5rem;
}
.lab-text-link {
  color: var(--color-subtle);
  text-underline-offset: 4px;
  font-size: 0.8125rem;
}
.lab-page #briefing {
  gap: 1rem;
  height: auto;
  overflow: visible;
}
.lab-page #briefing h2 {
  font-size: clamp(2rem, 3vw, 3.5rem);
  line-height: 1.08;
}
.enquiry-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
}
.lab-page #briefing-form .client-card {
  padding: 1.25rem;
}
.lab-page #briefing-form label {
  margin: 0.5rem 0;
}
.lab-page #briefing-form .client-card > label:first-child {
  margin-top: 0;
}
.enquiry-idea {
  display: flex;
  flex-direction: column;
}
.lab-page #briefing-form textarea {
  min-height: 6rem;
  flex: 1;
}
.lab-page #briefing-form .brief-optional {
  margin-top: 0.75rem;
}
.lab-page #briefing-form .client-primary {
  margin-top: 0.75rem;
  min-height: 2.75rem;
  padding: 0.65rem 1.25rem;
}
.lab-page #briefing-status:empty {
  display: none;
}
.lab-page #briefing-form input[type="checkbox"] {
  padding: 0;
}
.lab-page #briefing .enquiry-summary {
  margin-top: auto;
}
.lab-page #briefing .enquiry-summary p {
  font-size: 0.8125rem;
  margin: 0;
}
@media (min-width: 1001px) and (max-height: 850px) {
  .lab-page #briefing {
    gap: 0.65rem;
    padding-block: 1rem;
  }
  .lab-page #briefing .calculator-heading p {
    font-size: 0.875rem;
  }
  .lab-page #briefing h2 {
    font-size: 2rem;
  }
  .lab-page #briefing .enquiry-summary > div {
    display: flex;
    align-items: baseline;
    gap: 1rem;
  }
  .lab-page #briefing .enquiry-summary .eyebrow {
    margin: 0;
    flex-shrink: 0;
  }
  .lab-page #briefing-form .brief-optional {
    margin-top: 0.5rem;
    font-size: 0.8125rem;
  }
  .lab-page #briefing-form .client-primary {
    margin-top: 0.5rem;
  }
  .lab-page #briefing-form .client-card {
    padding: 1rem;
  }
  .lab-page #briefing-form input:not([type="checkbox"]),
  .lab-page #briefing-form textarea {
    padding: 0.5rem 0.75rem;
    min-height: 2.5rem;
  }
  .lab-page #briefing-form .check {
    font-size: 0.75rem;
    line-height: 1.4;
  }
  .lab-page #briefing-form .privacy-note {
    font-size: 0.6875rem;
  }
  .lab-page #briefing .enquiry-summary {
    padding: 0.5rem 0.75rem;
  }
}
@media (max-width: 700px) {
  .enquiry-form {
    grid-template-columns: minmax(0, 1fr);
  }
  .lab-page #briefing-form textarea {
    min-height: 9rem;
  }
}
.lab-page #configurator {
  gap: 1rem;
  height: auto;
  align-items: stretch;
  justify-content: flex-start;
  overflow: visible;
}
.lab-page .calculator-heading h1 {
  font-size: clamp(2rem, 3vw, 3.5rem);
}
.lab-page #price-config {
  padding: 1.25rem;
}
.lab-page #price-config label {
  margin: 0.5rem 0;
}
.lab-page #price-config > label:first-child {
  margin-top: 0;
}
.lab-page #price-config label[for="config-pages"] {
  display: flex;
  justify-content: space-between;
}
.lab-page #price-config input[type="range"] {
  min-height: 2rem;
  padding: 0;
  background: none;
  border: 0;
  margin: 0;
}
.lab-page #price-config fieldset {
  margin: 0.75rem 0 0;
}
.lab-page #configurator .price-result {
  padding: 1.25rem;
  gap: 0.65rem;
}
.lab-page #configurator .price-result .eyebrow {
  margin-bottom: 0;
}
.lab-page #configurator .price-result p {
  margin: 0;
}
.lab-page #configurator .availability {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
  margin-top: auto;
}
.lab-page #configurator .availability p {
  margin: 0;
  font-size: 0.8125rem;
}
@media (min-width: 1001px) and (max-height: 850px) {
  .lab-page #configurator {
    gap: 0.65rem;
    padding-block: 1rem;
  }
  .lab-page #price-config {
    padding: 1rem;
  }
  .lab-page #pages-limit {
    margin: 0.25rem 0;
  }
  .lab-page #configurator .calculator-heading p {
    font-size: 0.875rem;
  }
  .lab-page #configurator .price-result {
    gap: 0.4rem;
  }
  .lab-page #configurator .price-result > p:not(#price-summary) {
    font-size: 0.75rem;
  }
  .lab-page #configurator .availability {
    padding: 0.5rem 0.75rem;
  }
}
.lab-page .availability {
  padding: 0.75rem 1rem;
}
.lab-page .availability .eyebrow {
  margin-bottom: 0.25rem;
}
.lab-page #lab-server-status:empty {
  display: none;
}
.enquiry-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
  background: #c2a3f40d;
  border: 1px solid #c2a3f433;
  border-radius: 1rem;
}
.enquiry-summary .eyebrow {
  margin-bottom: 0.4rem;
}
.enquiry-summary > a {
  flex-shrink: 0;
}
.lab-page .brief-optional {
  margin-top: 1.25rem;
}
.lab-page summary {
  cursor: pointer;
  line-height: 1.6;
}
@media (max-width: 700px) {
  .enquiry-summary {
    align-items: flex-start;
    flex-direction: column;
  }
}
.lab-page p {
  max-width: 55rem;
  margin: 0.5rem 0;
}
.availability {
  padding: 1.5rem;
  border-left: 2px solid #9ec8ff;
  background: #9ec8ff08;
  border-radius: 0 1rem 1rem 0;
}
.lab-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
}
.lab-page label {
  display: grid;
  gap: 0.65rem;
  margin: 1rem 0;
  font-size: 0.875rem;
  color: var(--color-muted);
}
.lab-page select,
.lab-page textarea,
.lab-page input:not([type="checkbox"]):not([type="range"]):not([type="color"]) {
  width: 100%;
  min-width: 0;
  border: 1px solid #ffffff30;
  border-radius: 0.75rem;
  padding: 0.875rem;
  background: #211e2c;
  color: var(--color-text);
  font: inherit;
}
.lab-page input[type="range"] {
  width: 100%;
  accent-color: #b7b7ff;
}
.lab-page input[type="color"] {
  height: 2.75rem;
  width: 5rem;
  border: 0;
  background: none;
  cursor: pointer;
}
.lab-page fieldset {
  border: 0;
  padding: 0;
  margin: 1.5rem 0;
  min-width: 0;
}
.lab-page legend {
  font-size: 1rem;
  font-weight: 500;
}
.lab-page .check {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  line-height: 1.6;
}
.lab-page .check input {
  width: 1.125rem;
  height: 1.125rem;
  min-height: 0;
  flex-shrink: 0;
  accent-color: #b7b7ff;
  margin-top: 0.2rem;
}
.lab-page .privacy-note {
  font-size: 0.75rem;
}
.lab-page .client-primary {
  width: auto;
  display: inline-flex;
  gap: 1rem;
  text-decoration: none;
}
.lab-page :is(select, textarea, input):focus-visible {
  outline: 2px solid #9ec8ff;
  outline-offset: 4px;
}
.price-result {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 1rem;
}
#price-result {
  font-size: clamp(2rem, 4vw, 4rem);
  color: #b7b7ff;
  font-weight: 300;
  letter-spacing: -0.05em;
}
.theme-stage {
  display: flex;
  justify-content: center;
  background: #181622;
  padding: 1rem;
  border-radius: 1.5rem;
}
#theme-preview {
  --demo-accent: #b7b7ff;
  --demo-ink: #161322;
  position: relative;
  overflow: hidden;
  width: 100%;
  background: #f0eee9;
  color: #292538;
  border-radius: 1rem;
  font-family: Arial, sans-serif;
  min-height: 28rem;
}
#theme-preview[data-device="tablet"] {
  max-width: 768px;
}
#theme-preview[data-device="mobile"] {
  max-width: 390px;
}
.demo-nav {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.5rem 2rem;
  border-bottom: 1px solid #29253825;
  font-size: 0.75rem;
  font-weight: 700;
}
.demo-nav span {
  font-weight: 400;
}
.demo-body {
  position: relative;
  z-index: 1;
  padding: 3rem 2rem;
  max-width: 75%;
}
.demo-label {
  font-size: 0.625rem;
  letter-spacing: 0.15em;
}
.demo-body h3 {
  font-size: clamp(2rem, 3.5vw, 3.75rem);
  letter-spacing: -0.05em;
  font-weight: 400;
  line-height: 1.05;
  margin: 1.5rem 0;
}
.lab-page .demo-body p {
  color: #514c5c;
  font-size: 0.875rem;
}
.demo-body button {
  padding: 0.875rem 1.25rem;
  margin-top: 1.5rem;
  border: 0;
  border-radius: 2rem;
  background: var(--demo-accent);
  color: var(--demo-ink);
}
.demo-art {
  position: absolute;
  right: -5%;
  top: 25%;
  width: 35%;
  aspect-ratio: 1;
  background: var(--demo-accent);
  border-radius: 50%;
  box-shadow: inset -2rem -2rem 0 #ffffff30;
  opacity: 0.8;
}
#theme-preview[data-device="mobile"] .demo-body {
  max-width: 100%;
  padding: 2rem 1.5rem;
}
#theme-preview[data-device="mobile"] .demo-art {
  opacity: 0.2;
}
#theme-preview[data-device="mobile"] .demo-nav span {
  display: none;
}
.comparison {
  position: relative;
  min-height: 25rem;
  overflow: hidden;
  border-radius: 1rem;
  --reveal: 50%;
}
.comparison article {
  position: absolute;
  inset: 0;
  padding: 3rem;
}
.compare-before {
  background: #e5e5e5;
  color: #222;
  font-family: Arial, sans-serif;
}
.compare-before h3 {
  font-size: 2rem;
  border-bottom: 4px solid #375386;
  padding-bottom: 1rem;
}
.compare-before div {
  margin-top: 3rem;
  border: 2px solid #375386;
  display: inline-block;
  padding: 1rem;
}
.compare-after {
  background: #283c32;
  color: #f0f0dc;
  clip-path: inset(0 0 0 var(--reveal));
}
.compare-after h3 {
  font-size: clamp(2rem, 4vw, 4rem);
  line-height: 1.05;
  font-weight: 400;
  margin: 2rem 0;
  letter-spacing: -0.05em;
}
.compare-after em {
  font-family: Georgia, serif;
  color: #c5d2a4;
}
.lab-page .compare-before p {
  color: #333;
}
.lab-page .compare-after p {
  color: #dbe2d1;
}
.compare-divider {
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--reveal);
  width: 3px;
  background: white;
  pointer-events: none;
}
.comparison article > span {
  font-size: 0.6875rem;
  letter-spacing: 0.2em;
}
.design-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
}
.lab-page .design-heading > p {
  max-width: 29rem;
  margin: 0;
  font-size: 0.875rem;
}
.ideas-layout {
  display: grid;
  grid-template-columns: minmax(16rem, 0.65fr) minmax(0, 1.5fr);
  gap: clamp(1.5rem, 3vw, 3rem);
  align-items: start;
}
.ideas-controls,
.ideas-preview {
  min-width: 0;
}
.lab-page .style-presets,
.lab-page .theme-controls {
  margin: 0;
  padding: 0;
}
.lab-page .ideas-controls legend {
  margin-bottom: 0.75rem;
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  color: var(--color-subtle);
}
.style-presets {
  display: grid;
  gap: 0.5rem;
}
.style-preset {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  padding: 0.65rem 0.75rem;
  text-align: left;
  border: 1px solid #ffffff20;
  border-radius: 0.875rem;
  background: #ffffff03;
  color: var(--color-text);
}
.style-preset[aria-pressed="true"] {
  border-color: var(--color-purple);
  background: #c2a3f412;
}
.style-preset > span:nth-child(2) {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
}
.style-preset strong {
  font-weight: 500;
  font-size: 0.8125rem;
}
.style-preset small {
  font-size: 0.625rem;
  line-height: 1.5;
  color: var(--color-subtle);
}
.preset-sample {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.5rem;
  font-size: 1.25rem;
}
.preset-modern {
  background: #b7b7ff;
  color: #211e2c;
  font-family: Arial, sans-serif;
}
.preset-editorial {
  background: #d8b68a;
  color: #332c24;
  font-family: Georgia, serif;
  font-style: italic;
}
.preset-technical {
  background: #a7d6c6;
  color: #172c26;
  font-family: monospace;
}
.preset-check {
  margin-left: auto;
  color: var(--color-purple);
  opacity: 0;
}
.style-preset[aria-pressed="true"] .preset-check {
  opacity: 1;
}
.lab-page .theme-controls {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.5rem;
  margin-top: 1.25rem;
}
.lab-page .theme-controls label {
  margin: 0;
  font-size: 0.6875rem;
  gap: 0.4rem;
}
.lab-page .theme-controls select {
  padding: 0.5rem;
  font-size: 0.75rem;
  min-height: 2.75rem;
}
.lab-page .theme-controls input[type="color"] {
  width: 3rem;
  padding: 0;
}
.lab-text-button {
  padding: 0.5rem 0;
  border: 0;
  background: none;
  color: var(--color-subtle);
  text-decoration: underline;
  text-underline-offset: 4px;
  font-size: 0.75rem !important;
}
.preview-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.preview-label .eyebrow {
  margin: 0;
  font-size: 0.625rem;
}
.preview-label > span:last-child {
  color: var(--color-subtle);
  font-size: 0.625rem;
}
.ideas-preview .theme-stage {
  min-width: 0;
  padding: 0.75rem;
  border: 1px solid #ffffff15;
  border-radius: 1rem;
}
.ideas-preview #theme-preview {
  min-height: 21rem;
}
.ideas-preview #theme-preview[data-device="tablet"] {
  max-width: 85%;
}
.ideas-preview #theme-preview[data-device="mobile"] {
  max-width: min(100%, 20rem);
}
.ideas-preview .demo-nav {
  padding: 1rem 1.25rem;
  font-size: 0.625rem;
}
.ideas-preview .demo-body {
  max-width: 80%;
  padding: 2rem 1.5rem;
}
.ideas-preview .demo-body h3 {
  font-size: clamp(1.75rem, 3vw, 3rem);
  margin: 1rem 0;
}
.ideas-preview .demo-body p {
  font-size: 0.75rem;
}
.ideas-preview .demo-label {
  color: #665b78;
}
.ideas-preview .demo-body button {
  margin-top: 0.75rem;
  padding: 0.65rem 1rem;
  font-size: 0.75rem;
}
.lab-page #theme-demo-status:empty,
.lab-page #design-transfer-status:empty {
  display: none;
}
.design-next {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.lab-page .design-next > p {
  max-width: 33rem;
  font-size: 0.75rem;
}
.lab-page .design-next .client-primary {
  margin: 0;
  flex-shrink: 0;
  font-size: 0.8125rem;
}
.lab-page #design-transfer-status {
  color: var(--color-pink);
}
.comparison-disclosure {
  border-top: 1px solid #ffffff20;
  padding-top: 1rem;
}
.comparison-disclosure > summary {
  font-size: 0.8125rem;
  color: var(--color-subtle);
}
.design-comparison {
  display: grid;
  gap: 1rem;
  padding-top: 1.5rem;
}
.design-comparison > .eyebrow {
  margin: 0;
}
.lab-page .design-comparison > h2 {
  font-size: clamp(1.5rem, 3vw, 2.5rem);
}
.design-comparison > p {
  font-size: 0.875rem;
}
.lab-footer {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: auto;
}
.lab-footer a {
  color: var(--color-subtle);
  font-size: 0.75rem;
  text-underline-offset: 4px;
}
.newsletter-dialog {
  position: fixed;
  width: min(36rem, calc(100% - 2rem));
  max-height: calc(100svh - 2rem);
  overflow-y: auto;
  padding: clamp(1.25rem, 4vw, 2rem);
  border: 1px solid #ffffff30;
  border-radius: 1.5rem;
  background: #252230;
  color: var(--color-text);
}
.newsletter-dialog::backdrop {
  background: #100e18b8;
  backdrop-filter: blur(8px);
}
html.lab-dialog-open {
  overflow: hidden;
}
html.lab-document {
  scrollbar-gutter: stable;
}
.dialog-close {
  display: flex;
  justify-content: end;
}
.dialog-close button {
  border: 0;
  background: none;
  color: var(--color-text);
  font-size: 1.5rem;
  min-width: 2.75rem;
  min-height: 2.75rem;
}
.newsletter-dialog .client-card {
  padding: 0;
  border: 0;
  background: none;
}
.lab-page .newsletter-dialog h2 {
  font-size: 2rem;
}
.newsletter-dialog [hidden] {
  display: none !important;
}
@media (min-width: 1001px) and (max-height: 850px) {
  .lab-page :is(#configurator, #briefing) {
    padding-block: 0.75rem;
    gap: 0.5rem;
  }
  .lab-page :is(#configurator, #briefing) .lab-sections {
    padding-bottom: 0.375rem;
  }
  .lab-page :is(#configurator, #briefing) .lab-sections a {
    padding: 0.375rem 0.75rem;
  }
  .lab-page :is(#configurator, #briefing) .calculator-heading > .eyebrow {
    display: none;
  }
  .lab-page .calculator-heading h1 {
    font-size: 2rem;
  }
}
@media (max-width: 1000px) {
  .design-heading {
    display: block;
  }
  .lab-page .design-heading > p {
    max-width: 40rem;
    margin-top: 0.75rem;
  }
  .ideas-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .style-presets {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .style-presets legend {
    grid-column: 1 / -1;
  }
  .style-preset {
    align-items: start;
    flex-direction: column;
  }
  .preset-check {
    display: none;
  }
  .ideas-controls .theme-controls {
    grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr);
    max-width: 32rem;
  }
  .design-next {
    align-items: start;
    flex-direction: column;
  }
}
@media (max-width: 600px) {
  .lab-sections {
    gap: 0.25rem;
    padding-bottom: 0.75rem;
  }
  .lab-sections a {
    padding: 0.6rem 0.65rem;
    font-size: 0.75rem;
    gap: 0.4rem;
  }
  .style-presets {
    grid-template-columns: minmax(0, 1fr);
  }
  .style-preset {
    flex-direction: row;
    align-items: center;
  }
  .preset-check {
    display: block;
  }
  .ideas-preview .demo-nav span {
    display: none;
  }
  .ideas-preview .demo-body {
    max-width: 100%;
    padding: 1.5rem 1rem;
  }
  .ideas-preview #theme-preview {
    min-height: 20rem;
  }
  .ideas-preview .theme-stage {
    padding: 0.5rem;
  }
  .lab-page .design-next .client-primary {
    width: 100%;
  }
}
@media (max-width: 700px) {
  .lab-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .lab-page input,
  .lab-page select,
  .lab-page textarea {
    font-size: 1rem;
  }
  .theme-stage {
    padding: 0.5rem;
  }
  .demo-body {
    max-width: 100%;
  }
  .demo-art {
    opacity: 0.2;
  }
  .comparison article {
    padding: 1.5rem;
  }
}

.lab-page #price-config .extra-option p {
  margin: 0.25rem 0 0.5rem;
}
.lab-page #price-config .extra-option input[type="number"] {
  max-width: 8rem;
  min-height: 2.75rem;
}
.lab-page #price-summary,
.lab-page #briefing-estimate {
  overflow-wrap: anywhere;
}

/* Calculator: content-led columns and independently operable service cards. */
.lab-page #configurator > .lab-grid {
  grid-template-columns: minmax(0, 1.4fr) minmax(18rem, 1fr);
  align-items: start;
}
.lab-page #configurator .price-result {
  align-self: start;
  justify-content: flex-start;
  height: auto;
  min-height: 0;
  position: sticky;
  top: calc(var(--page-top, 6rem) + 1rem);
  max-height: calc(100svh - var(--page-top, 6rem) - 2rem);
  overflow-y: auto;
}
.lab-page #configurator #price-result {
  font-size: clamp(1.8rem, 3vw, 3rem);
  line-height: 1.2;
  letter-spacing: -0.035em;
}
.lab-page #configurator .client-primary {
  width: 100%;
  text-align: center;
  justify-content: center;
  min-height: 2.75rem;
}
.lab-page #price-config .extras-title {
  font-size: 1.35rem;
  margin-top: 1.5rem;
}
.extra-group > legend {
  font-size: 0.875rem;
  color: var(--color-subtle);
  padding: 0.75rem 0;
}
.extras-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.625rem;
}
.extra-option {
  min-width: 0;
  border: 1px solid #ffffff20;
  border-radius: 1rem;
  background: linear-gradient(145deg, #ffffff08, #ffffff02);
  padding: 0.8rem;
  transition:
    border-color 0.15s,
    background 0.15s;
}
.extra-option.is-selected {
  border-color: #b7b7ff99;
  background: #b7b7ff12;
}
.lab-page #price-config .extra-select {
  display: flex;
  align-items: start;
  gap: 0.6rem;
  cursor: pointer;
  margin: 0;
  min-height: 2.75rem;
}
.extra-select > span {
  display: grid;
  gap: 0.35rem;
  min-width: 0;
}
.extra-select strong {
  font-size: 0.8125rem;
  font-weight: 600;
  overflow-wrap: anywhere;
}
.extra-price {
  color: #c9b7ff;
  font-size: 0.8125rem;
}
.extra-benefit {
  font-size: 0.75rem;
  color: var(--color-subtle);
  line-height: 1.55;
}
.extra-select input {
  flex-shrink: 0;
  accent-color: #b7b7ff;
  margin-top: 0.15rem;
}
.extra-details {
  margin-top: 0.4rem;
}
.lab-page .extra-details summary {
  font-size: 0.75rem;
  padding: 0.5rem 0;
  min-height: 2.75rem;
}
.lab-page #price-config .extra-details p {
  font-size: 0.75rem;
  line-height: 1.6;
}
.lab-page #price-config .quantity-wrap label {
  font-size: 0.75rem;
}
.lab-page #price-config .lab-text-link {
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  padding: 0.5rem 0;
  min-height: 2.75rem;
  font-family: inherit;
}
.price-items {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.65rem 0.75rem;
  width: 100%;
  margin: 0.5rem 0;
  font-size: 0.8125rem;
}
.price-items dt {
  min-width: 0;
  overflow-wrap: anywhere;
}
.price-items dd {
  margin: 0;
  text-align: right;
  max-width: 12rem;
}
.price-terms {
  font-size: 0.75rem;
  color: var(--color-subtle);
}
.price-terms summary {
  min-height: 2.75rem;
  padding: 0.5rem 0;
}
.lab-page #configurator :focus-visible {
  outline: 2px solid #b7b7ff;
  outline-offset: 4px;
}
.lab-page #configurator [id] {
  scroll-margin-top: calc(var(--page-top, 6rem) + 1rem);
}
@media (max-width: 1000px) {
  .lab-page #configurator > .lab-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .lab-page #configurator .price-result {
    position: static;
    max-height: none;
    overflow: visible;
  }
}
@media (max-width: 480px) {
  .extras-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .price-items {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
}
/* The document viewport owns scrolling; no overflow ancestor may trap sticky. */
body.lab-page {
  overflow-x: clip;
  overflow-y: visible;
}
.lab-page #price-items:empty {
  display: none;
}
.lab-page #price-config .extra-select input[type="checkbox"] {
  width: 1.25rem;
  height: 1.25rem;
  min-height: 1.25rem;
  padding: 0;
}

.price-breakdown {
  width: 100%;
}
.price-breakdown > summary {
  cursor: pointer;
  min-height: 2.75rem;
  padding: 0.5rem 0;
  font-size: 0.8125rem;
  color: var(--color-subtle);
}
.price-return {
  display: none;
}
@media (max-width: 1000px) {
  .lab-page #configurator .price-result {
    grid-row: 1;
    padding: 1rem;
    gap: 0.45rem;
  }
  .lab-page #configurator .price-result .client-primary {
    margin-top: 0.5rem;
  }
  .lab-page #configurator #price-result {
    font-size: clamp(1.75rem, 5vw, 2.5rem);
  }
  .lab-page #price-config .price-return {
    display: inline-flex;
    align-items: center;
    min-height: 2.75rem;
    margin-top: 1rem;
  }
}

.lab-page #configurator #price-overview {
  scroll-margin-top: 1rem;
}

.lab-page button {
  font-family: inherit;
}

html.lab-document {
  color-scheme: dark;
}

/* Service scope stays inside native, keyboard-operable disclosures. */
.lab-page #price-config .extra-details h3 {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-text, #f4f4f5);
  margin: 1rem 0 0.4rem;
  letter-spacing: normal;
}
.lab-page #price-config .extra-details ul {
  margin: 0;
  padding-left: 1rem;
  list-style: disc;
  font-size: 0.75rem;
  line-height: 1.65;
  color: var(--color-subtle);
}
.lab-page #price-config .extra-details li + li {
  margin-top: 0.4rem;
}
.lab-page #price-config :is(.extra-provider-note, .extra-condition) {
  margin: 0.6rem 0 0;
  font-size: 0.6875rem;
  line-height: 1.6;
  color: var(--color-subtle);
}
.lab-page #price-config .extra-condition {
  color: #d3c9ff;
}
.lab-page #briefing .enquiry-summary > div {
  min-width: 0;
  flex-wrap: wrap;
}
.briefing-selection {
  width: 100%;
  flex-basis: 100%;
}
.briefing-selection > summary {
  cursor: pointer;
  min-height: 2.75rem;
  padding: 0.65rem 0;
  font-size: 0.8125rem;
  color: #d3c9ff;
}
.briefing-items {
  display: grid;
  grid-template-columns: minmax(8rem, 0.7fr) minmax(0, 1.3fr);
  gap: 0.65rem 1rem;
  margin: 0.5rem 0 1rem;
  font-size: 0.8125rem;
  line-height: 1.65;
}
.briefing-items dt {
  color: var(--color-subtle);
}
.briefing-items dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}
.lab-page #briefing-selection :focus-visible,
.lab-page #briefing-selection:focus-visible {
  outline: 2px solid #b7b7ff;
  outline-offset: 4px;
}
@media (max-width: 480px) {
  .briefing-items {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.25rem;
  }
  .briefing-items dd + dt {
    margin-top: 0.65rem;
  }
}
