:root {
	--mono: 'JetBrains Mono', ui-monospace, Menlo, monospace;
}

/* Global default font */
:root {
	--font: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif;
}

html, body { font-family: var(--font); }

/* Accent helper (migrated from inline site-root var) */
.accent--5b82b0 { --accent: #5B82B0; }

.site-root {
	--bg: #FBFBFA;
	--panel: #F4F3F1;
	--ink: #1D1D1F;
	--grey: #86868B;
	--grey-d: #48484A;
	--line: rgba(0, 0, 0, .09);
	--maxw: 1180px;
	--font: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Helvetica Neue', Arial, sans-serif;
	--mono: 'JetBrains Mono', ui-monospace, Menlo, monospace;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--font);
	font-size: 16px;
	line-height: 1.55;
	overflow-x: hidden;
}

@media screen and (max-width: 1023px) {
    body.menu-open {
		/* Prevent background scrolling without altering layout */
		overflow: hidden;
		overscroll-behavior: none;
		touch-action: manipulation;
    }
}

.header-fixed {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
    background: rgba(251, 251, 250, 0.86);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid var(--line);
	transition: background .4s ease, border-color .4s ease;
}

.nav {
	max-width: var(--maxw);
	margin: 0 auto;
	padding: 18px 40px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.brand {
	display: flex;
	align-items: center;
	gap: 11px
}

.brand img {
	height: 34px;
	width: auto
}

.brand-text {
	display: flex;
	align-items: baseline;
	gap: 6px;
	line-height: 1
}

.brand-title {
	font-weight: 700;
	font-size: 17px;
	letter-spacing: .02em;
	color: var(--ink)
}

.brand-sub {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .22em;
	color: var(--grey)
}

.nav-links {
	display: flex;
	gap: 26px;
	flex-wrap: wrap;
	font-size: 13px;
	font-weight: 400;
	color: var(--grey-d)
}
@media (max-width: 1023px) {
    .nav-links {
        display: none;
        opacity: 0;
        transition: opacity .4s ease;
    }
    body.menu-open .nav-links {
        opacity: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        position: absolute;
        z-index: 100;
        height: 100vh;
        width: 100%;
        top: 0;
        left: 0;
        background: rgba(251, 251, 250, 0.86);
        backdrop-filter: blur(18px);
        font-weight: bold;
        font-size: 20px;
    }
}
@media (max-width: 439px) {
    header .cta-primary {
        display: none
    }
}

.nav-toggle {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 40px;
    height: 40px;
    cursor: pointer;
    padding: 8px;
    border: none;
    background: none;
    z-index: 100;
}
.nav-toggle-bar {
    height: 0;
    border-top: 2px solid var(--ink);
    width: 100%;
    background: var(--ink);
    transition: transform 0.3s ease, opacity 0.3s ease;
    transform-origin: center;
}
.menu-open .nav-toggle-bar:nth-child(1) {
    transform: translateY(11px) rotate(45deg);
}
.menu-open .nav-toggle-bar:nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
}
.menu-open .nav-toggle-bar:nth-child(3) {
    transform: translateY(-11px) rotate(-45deg);
}
@media (min-width: 1024px) {
    .nav-toggle {
        display: none
    }
}

.cta-primary {
	font-size: 12.5px;
	font-weight: 500;
	padding: 10px 20px;
	background: var(--ink);
	color: #fff;
	border-radius: 100px;
	white-space: nowrap
}

.hero-section {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 160px 0 60px;
	text-align: center
}

.container {
	max-width: var(--maxw);
	margin: 0 auto;
	padding: 0 40px;
	width: 100%;
    box-sizing: border-box;
}

.mono-accent {
	font-family: var(--mono);
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--grey);
	margin-bottom: 26px
}

.hero-title {
	font-size: clamp(42px, 8vw, 108px);
	font-weight: 800;
	letter-spacing: -.02em;
	text-transform: uppercase;
	line-height: 1.02;
	margin: 0 0 28px
}

.hero-sub {
	font-size: clamp(17px, 2vw, 21px);
	color: var(--grey-d);
	max-width: 44ch;
	margin: 28px auto 36px;
	font-weight: 400;
	line-height: 1.55;
	letter-spacing: 0;
	text-transform: none
}

.hero-cta {
	display: flex;
	gap: 14px;
	justify-content: center;
	flex-wrap: wrap;
	margin-bottom: 14px
}

.price {
	font-family: var(--mono);
	font-size: 12.5px;
	color: var(--grey)
}

.price-strong {
	color: var(--ink);
	font-weight: 600
}

.media-frame {
	aspect-ratio: 20/9;
	border-radius: 26px;
	overflow: hidden;
	position: relative;
	background: var(--panel)
}

.parallax-inner {
	position: absolute;
	inset: -16% 0;
	will-change: transform
}

.hero-image-wrapper {
	max-width: var(--maxw);
	margin: 56px auto 0;
	padding: 0 40px;
	width: 100%
}

.btn {
	font-size: 14px;
	font-weight: 500;
	padding: 15px 30px;
	border-radius: 100px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
}

.btn-primary {
	background: var(--ink);
	color: #fff
}

.btn-outline {
	border: 1px solid var(--line);
	color: var(--ink);
	background: transparent
}

.section {
	padding: 150px 0
}

.grid-2 {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 50px;
	align-items: start;
	margin-bottom: 70px
}

.section-title {
	font-size: clamp(36px, 5.4vw, 68px);
	font-weight: 800;
	letter-spacing: -.015em;
	text-transform: uppercase;
	margin: 0
}

.lead {
	max-width: 52ch;
	color: var(--grey-d);
	font-size: 18px;
	font-weight: 400;
	margin: 18px 0 0
}

.small-grid {
	display: grid;
	grid-template-columns: minmax(280px, 1.2fr) minmax(240px, .8fr);
	gap: 70px;
	align-items: start
}

.content-column {
	display: flex;
	flex-direction: column;
	gap: 20px
}

.text-muted {
	color: var(--grey-d);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.6;
	margin: 0
}

.emph {
	color: var(--ink);
	font-weight: 600
}

.tech-column {
	border-top: 2px solid var(--ink)
}

.spec-row {
	display: flex;
	justify-content: space-between;
	padding: 16px 0;
	border-bottom: 1px solid var(--line);
	font-family: var(--mono);
	font-size: 13px
}

/* generic row used in spec and lists to replace repeated inline flex+padding rules */
.row-split { display:flex; justify-content:space-between; align-items:baseline; padding:18px 0; border-bottom:1px solid var(--line); gap:16px }

/* Flex row with wrap and smaller gap */
.row-split-wrap { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:22px; flex-wrap:wrap; gap:8px }

/* Heading utilities for clamp-based responsive headings */
.heading-clamp-lg { font-size: clamp(36px, 5.4vw, 68px); font-weight: 800; letter-spacing: -0.015em; text-transform: uppercase; margin: 0 }
.heading-clamp-xl { font-size: clamp(38px, 5.6vw, 64px); font-weight: 800; letter-spacing: -0.015em; text-transform: uppercase; margin: 20px 0 24px }

/* FAQ button reused styles */
.faq-button { width:100%; text-align:left; background:none; border:0; cursor:pointer; padding:26px 0; display:flex; justify-content:space-between; align-items:center; gap:24px; font-size:clamp(18px,2.1vw,23px); font-weight:600; color:var(--ink); letter-spacing:-0.015em; font-family:var(--font) }

/* small mono label spacing */
.mono-small--mt12 { margin-top:12px }

/* small uppercase mono caption used in multiple places */
.mono-caption { font-family: var(--mono); font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--grey); margin-bottom: 20px }

.mono-caption--light { font-family: var(--mono); font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.08em; color: rgba(255,255,255,0.6); margin-bottom: 12px }

/* utility spacing */
.mb24 { margin-bottom: 24px }
.mb32 { margin-bottom: 32px }
.mb8 { margin-bottom: 8px }
.mb16 { margin-bottom: 16px }

/* small mono text used across the site */
.mono-small { font-family: var(--mono); font-size: 12px; color: var(--grey); margin: 0 }

/* small margin-top utilities used in templates */
.mt10 { margin-top: 10px }
.mt12 { margin-top: 12px }
.mt34 { margin-top: 34px }

/* paragraph helper for 56ch wide muted paragraphs */
.para-56 { max-width: 56ch; color: var(--grey-d); font-size: 18px; font-weight: 400; margin: 18px 0 0; line-height: 1.55 }

/* small helper rows */
.row-baseline-gap12 { display:flex; align-items:baseline; gap:12px; margin-bottom:14px }

/* top border ink */
.border-top-ink { border-top: 2px solid var(--ink) }

/* pricing list row */
.price-row { display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding:20px 0; border-bottom:1px solid var(--line) }

/* small mono inline used for PDF lines */
.mono-inline { font-family: var(--mono); font-size: 12px; color: var(--ink) }

/* mono small variants */
.mono-small--no-transform { text-transform: none }
.mb40 { margin-bottom: 40px }
.mb56 { margin-bottom: 56px }
.para-white-18 { color: rgba(255, 255, 255, 0.85); font-size: 18px; font-weight: 400; margin: 0 0 22px; line-height: 1.55 }

/* Price/title utilities */
.price-title { font-size:24px; font-weight:600; letter-spacing:-0.02em }
.price-amount { font-size:24px; font-weight:600; letter-spacing:-0.02em; white-space:nowrap }
.price-em { font-style:normal; font-family:var(--mono); font-size:10.5px; color:var(--grey); font-weight:400; margin-left:7px; text-transform:uppercase; letter-spacing:0.05em }

/* Section utilities */
.section-padding { padding: 150px 0 }
.section-panel { background: var(--panel); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line) }

/* Fullwidth media helper (used for hero/media blocks) */
.fullwidth-media--tall { width:100vw; position:relative; left:50%; margin-left:-50vw; overflow:hidden; height:70vh; min-height:460px }

/* Gradient overlay helper */
.bg-gradient-dark { position:absolute; inset:0; background: linear-gradient(120deg, rgba(10, 10, 10, 0.82), rgba(10, 10, 10, 0.42)) }

/* Lead paragraph */
.text-lead { font-size:15px; color:var(--grey-d); font-weight:400; margin:0; line-height:1.5 }

/* Contact/column helper with right border */
.panel-col { padding: 36px 32px 36px 0; border-right: 1px solid var(--line) }

/* Contact name/title */
.contact-name { font-size:22px; font-weight:600; letter-spacing:-0.015em; margin-bottom:8px }

.spec-key {
	color: var(--grey-d)
}

.spec-val {
	font-weight: 500
}

/* small monospace right-aligned value used in spec rows */
.mono-right-small { font-family:var(--mono); font-size:12.5px; font-weight:500; text-align:right }

/* equipment/item title */
.equip-title { font-size:20px; font-weight:600; letter-spacing:-0.015em }

/* document list row */
.doc-row { display:flex; justify-content:space-between; align-items:center; padding:20px 0; border-bottom:1px solid var(--line); font-size:15px; font-weight:500; color:var(--ink) }
.doc-row--muted { color:var(--grey) }

/* metric clamp for small numeric headings */
.metric-clamp { font-size: clamp(26px, 3vw, 38px); font-weight:600; letter-spacing:-0.02em }

/* flex row with margin-bottom:20 and wrapping */
.row-split-mb20 { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:20px; flex-wrap:wrap; gap:8px }
.row-split-sm { display:flex; justify-content:space-between; align-items:baseline; padding:14px 0; border-bottom:1px solid var(--line); font-size:14px; gap:16px }

/* reveal spacing helpers */
.reveal-mb64 { margin-bottom:64px }

.panel-top {
	padding: 120px 0;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	background: var(--panel);
	text-align: center
}

.fullwidth-media {
	width: 100vw;
	position: relative;
	left: 50%;
	margin-left: -50vw;
	overflow: hidden;
	display: flex;
	align-items: flex-end
}

.fullwidth-media-inner {
	position: absolute;
	inset: -26% 0;
	will-change: transform
}

.overlay-dark {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 45%, rgba(10, 10, 10, .78) 100%)
}

.section-cards-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 0;
	margin-top: 64px;
	border-top: 1px solid var(--line)
}

/* Grid utilities for specific minmax breakpoints used in templates */
.spec-grid-320 { display:grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 0 56px; border-top: 2px solid var(--ink); }
.cards-grid-300 { display:grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 50px; margin-bottom: 12px; }
.mode-grid-220 { display:grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0; border-top: 2px solid var(--ink); }
.grid-260 { display:grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); border-top: 2px solid var(--ink); }

.card {
	padding: 40px 28px 40px 0;
	border-right: 1px solid var(--line)
}

.spec-card {
	padding: 32px;
	border-right: 1px solid var(--line)
}

.svg-responsive {
	width: 100%;
	height: auto;
	display: block;
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px
}

.metrics-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	border-top: 2px solid var(--ink)
}

.mode-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	border-top: 2px solid var(--ink);
	margin-bottom: 70px
}

/* Reveal helper classes (migrated) */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1);
}
.reveal--d90 { transition-delay: 90ms; }
.reveal--d180 { transition-delay: 180ms; }
.reveal--d270 { transition-delay: 270ms; }
.reveal-visible { opacity: 1; transform: none; }

/* Image helper */
.img-cover { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Partner logos */
.partner-logo { display: block; margin-bottom: 24px; width: auto; object-fit: contain; object-position: left center; }

/* Small uppercase mono label */
.mono-small {
	font-family: var(--mono);
	font-size: 11px;
	color: var(--grey);
	text-transform: uppercase;
	letter-spacing: 0.08em;
}


.spec-rows {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 0 56px;
	border-top: 2px solid var(--ink)
}

.doc-row {
	padding: 36px 0;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	margin-bottom: 36px
}

.chips {
	display: flex;
	flex-wrap: wrap;
	gap: 9px
}

.chip {
	padding: 9px 17px;
	border: 1px solid var(--line);
	border-radius: 100px;
	font-size: 13px;
	font-weight: 400;
	color: var(--grey-d)
}

.contact-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 0;
	border-top: 2px solid var(--ink)
}

.contact-col {
	padding: 36px 32px 36px 0;
	border-right: 1px solid var(--line)
}

.partner-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	border-top: 2px solid var(--ink)
}

.faq-section {
	padding: 150px 0;
	background: var(--panel);
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line)
}

.faq-item {
	border-bottom: 1px solid var(--line)
}

.open-days-registration-form {
	margin-top: 18px;
	padding: 28px;
	border: 1px solid var(--line);
	border-radius: 22px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.68), rgba(255, 255, 255, 0.92));
	box-shadow: 0 20px 50px rgba(29, 29, 31, 0.06);
	backdrop-filter: blur(10px);
	color: var(--ink);
	font-family: var(--font);
}

.open-days-registration-form .wpcf7,
.open-days-registration-form .wpcf7 form {
	margin: 0;
	font-family: inherit;
}

.open-days-registration-form .wpcf7 p {
	margin: 0 0 16px;
	line-height: 1.45;
}

.open-days-registration-form .wpcf7 label {
	display: block;
	font-family: var(--mono);
	font-size: 10.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--grey);
	margin-bottom: 8px;
}

.open-days-registration-form .wpcf7 legend {
	display: block;
	font-family: var(--mono);
	font-size: 10.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--grey);
	margin: 0 0 8px;
	padding: 0;
	border: 0;
}

.open-days-registration-form .wpcf7 fieldset {
	margin: 0 0 18px;
	padding: 0;
	border: 0;
	min-width: 0;
}

.open-days-registration-form .wpcf7 input[type="text"],
.open-days-registration-form .wpcf7 input[type="email"],
.open-days-registration-form .wpcf7 input[type="tel"],
.open-days-registration-form .wpcf7 textarea {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid rgba(29, 29, 31, 0.12);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.94);
	color: var(--ink);
	font-family: var(--font);
	font-size: 16px;
	line-height: 1.55;
	padding: 14px 16px;
	outline: none;
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.open-days-registration-form .wpcf7 textarea {
	min-height: 140px;
	resize: vertical;
}

.open-days-registration-form .wpcf7 input[type="text"]:focus,
.open-days-registration-form .wpcf7 input[type="email"]:focus,
.open-days-registration-form .wpcf7 input[type="tel"]:focus,
.open-days-registration-form .wpcf7 textarea:focus {
	border-color: rgba(29, 29, 31, 0.34);
	box-shadow: 0 0 0 4px rgba(29, 29, 31, 0.06);
}

.open-days-registration-form .wpcf7-radio,
.open-days-registration-form .wpcf7-checkbox {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 14px;
	padding-top: 4px;
}

.open-days-registration-form .wpcf7-list-item {
	display: inline-flex;
	margin: 0;
}

.open-days-registration-form .wpcf7-list-item label {
	font-family: var(--font);
	font-size: 14px;
	letter-spacing: 0;
	text-transform: none;
	color: var(--grey-d);
	margin: 0;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 14px;
	border: 1px solid rgba(29, 29, 31, 0.12);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.72);
	cursor: pointer;
	transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.open-days-registration-form .wpcf7-list-item label:hover {
	border-color: rgba(29, 29, 31, 0.24);
	background: rgba(255, 255, 255, 0.92);
}

.open-days-registration-form .wpcf7-list-item input[type="radio"],
.open-days-registration-form .wpcf7-list-item input[type="checkbox"] {
	margin: 0;
	margin-right: 0.55em;
	accent-color: var(--ink);
}

.open-days-registration-form .wpcf7-acceptance {
	display: block;
	margin-top: 12px;
}

.open-days-registration-form .wpcf7-acceptance .wpcf7-list-item label {
	border-radius: 18px;
	padding: 14px 16px;
	white-space: normal;
	align-items: flex-start;
	line-height: 1.4;
}

.open-days-registration-form .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	border: 0;
	border-radius: 999px;
	background: var(--ink);
	color: #fff;
	font-family: var(--font);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0;
	padding: 15px 26px;
	cursor: pointer;
	box-shadow: 0 10px 22px rgba(29, 29, 31, 0.12);
	transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}

.open-days-registration-form .wpcf7-submit:hover {
	transform: translateY(-1px);
	box-shadow: 0 14px 28px rgba(29, 29, 31, 0.16);
}

.open-days-registration-form .wpcf7-submit:focus-visible {
	outline: 3px solid rgba(29, 29, 31, 0.18);
	outline-offset: 3px;
}

.open-days-registration-form .wpcf7-response-output,
.open-days-registration-form .wpcf7-not-valid-tip {
	font-family: var(--font);
	font-size: 14px;
	line-height: 1.5;
}

@media (max-width: 639px) {
	.open-days-registration-form {
		padding: 20px;
		border-radius: 18px;
	}

	.open-days-registration-form .wpcf7-submit {
		width: 100%;
	}
}

.faq-button {
	width: 100%;
	text-align: left;
	background: none;
	border: none;
	cursor: pointer;
	padding: 26px 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	font-size: clamp(18px, 2.1vw, 23px);
	font-weight: 600;
	color: var(--ink);
	letter-spacing: -.015em;
	font-family: var(--font)
}

.faq-plus {
	font-family: var(--mono);
	font-size: 22px;
	color: var(--grey);
	flex-shrink: 0;
	transition: transform .35s ease
}

.faq-answer p {
	padding: 0 0 26px;
	color: var(--grey-d);
	font-size: 15.5px;
	max-width: 74ch;
	font-weight: 400;
	margin: 0;
	line-height: 1.5
}

.footer-panel {
	padding: 56px 0 60px;
	border-top: 1px solid var(--line);
	background: var(--panel);
	text-align: center
}

/* small helpers */
.text-right {
	text-align: right
}

.muted {
	color: var(--grey)
}

/* Styles moved from inline <style> blocks (runtime placeholders and atomics) */
.sc-placeholder{background:color-mix(in srgb,currentColor 8%,transparent);border:1px solid color-mix(in srgb,currentColor 50%,transparent);border-radius:2px;box-sizing:border-box;overflow:hidden}
@keyframes sc-shine{0%{background-position:100% 50%}100%{background-position:0% 50%}}
html.sc-dc-streaming .sc-placeholder,html.sc-dc-streaming .sc-interp.sc-missing{position:relative;background:color-mix(in srgb,currentColor 5%,transparent);border-color:transparent}
html.sc-dc-streaming .sc-placeholder::before,html.sc-dc-streaming .sc-interp.sc-missing::before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(217,119,87,0) 25%,rgba(247,225,211,.95) 37%,rgba(217,119,87,0) 63%);background-size:400% 100%;animation:sc-shine 1.4s ease infinite}
html.sc-dc-streaming .sc-placeholder:nth-child(n+9 of .sc-placeholder)::before,html.sc-dc-streaming .sc-interp.sc-missing:nth-child(n+9 of .sc-interp.sc-missing)::before{animation:none;background:color-mix(in srgb,currentColor 8%,transparent)}
.sc-placeholder-error{padding:4px 8px;font:11px/1.4 ui-monospace,monospace;color:color-mix(in srgb,currentColor 70%,transparent);word-break:break-word}
.sc-interp.sc-missing{display:inline-block;width:2em;height:1em;overflow:hidden;vertical-align:text-bottom;background:rgba(255,255,255,.3);border:1px solid rgba(0,0,0,.5);border-radius:2px;box-sizing:border-box;color:transparent;user-select:none}
.sc-interp.sc-unresolved{font-family:ui-monospace,monospace;font-size:.85em;color:color-mix(in srgb,currentColor 50%,transparent);background:color-mix(in srgb,currentColor 10%,transparent);border-radius:3px;padding:0 3px}
.sc-host.sc-has-error{position:relative}
.sc-logic-error{position:absolute;top:8px;left:8px;z-index:2147483647;max-width:60ch;padding:6px 10px;background:#b00020;color:#fff;font:12px/1.4 ui-monospace,monospace;border-radius:4px;white-space:pre-wrap;pointer-events:none}

/* atomic helpers previously in __dc-atomics */
.fx{display:flex}.col{display:flex;flex-direction:column}.grid{display:grid}.ac{align-items:center}.jc{justify-content:center}.jb{justify-content:space-between}.f1{flex:1}.noshrink{flex-shrink:0}.wrap{flex-wrap:wrap}.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}.fw8{font-weight:800}.fs11{font-size:11px}.fs12{font-size:12px}.fs13{font-size:13px}.fs14{font-size:14px}.fs15{font-size:15px}.fs16{font-size:16px}.fs20{font-size:20px}.fs22{font-size:22px}.upper{text-transform:uppercase}.tc{text-align:center}.nowrap{white-space:nowrap}.gap8{gap:8px}.gap10{gap:10px}.gap12{gap:12px}.gap16{gap:16px}.gap24{gap:24px}.m0{margin:0}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mb8{margin-bottom:8px}.mb12{margin-bottom:12px}.mb16{margin-bottom:16px}.posrel{position:relative}.posabs{position:absolute}.round{border-radius:50%}.ohide{overflow:hidden}.bbox{box-sizing:border-box}.pointer{cursor:pointer}.w100{width:100%}.b0{border:none}

/* basic document rules moved from head */
html,body{height:100%;margin:0}
#dc-root,#dc-root>.sc-host{height:100%}
x-dc{display:none!important}
html{scroll-behavior:smooth}
body{-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:hover{opacity:.7}
img{display:block}
::selection{background:#5B82B0;color:#fff}

/* Reveal helpers (used by JS) */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.reveal--d0{transition-delay:0ms}
.reveal--d90{transition-delay:90ms}
.reveal--d180{transition-delay:180ms}
.reveal--d270{transition-delay:270ms}
.reveal-visible{opacity:1;transform:none}

/* Tall fullwidth modifier used by large hero/media sections */
.fullwidth-media--tall { height: 72vh; min-height: 460px; }

/* Panel section with background and borders (used in multiple sections) */
.panel-section { padding: 150px 0; background: var(--panel); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }

/* Heading helpers for migrated inline heading sizes */
.heading-lg { font-size: clamp(26px, 3.6vw, 44px); font-weight: 600; letter-spacing: -0.02em; margin: 0 0 12px; }

/* Accent mono helper */
.mono-accent--accent { font-family: var(--mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); white-space: nowrap; margin-bottom: 0; }

/* FAQ helpers */
.faq-collapsed { max-height: 0; overflow: hidden; transition: max-height 0.4s; }

/* Rounded utility used on a few images */
.rounded-10 { border-radius: 10px; }

/* Content container for fullwidth panels */
.panel-content { position: relative; z-index: 2; padding: 56px; color: #fff; max-width: var(--maxw); margin: 0 auto; width: 100%; box-sizing: border-box; }

/* Spec layout used in studio details */
.spec-layout { display: grid; grid-template-columns: minmax(300px, 1.15fr) minmax(260px, 0.85fr); gap: 0; margin-top: 56px; border: 1px solid var(--line); border-radius: 20px; overflow: hidden; }

/* Utility to layout two items with baseline alignment */
.between-baseline { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 20px; flex-wrap: wrap; gap: 8px; }

/* small spacing utilities used when migrating inline margins */
.mb64 { margin-bottom: 64px; }
.mb40 { margin-bottom: 40px; }
.mb22 { margin-bottom: 22px; }

.p32-0 { padding: 32px 32px 36px 0; }

.text-normal { text-transform: none; }

/* simple padding utility used in migrated elements */
.p32 { padding: 32px; }

/* small margin and padding helpers used by migrated content */
.mt10 { margin-top: 10px; }
.mt34 { margin-top: 34px; }
.my64-80 { margin: 64px 0 80px; }
.p26 { padding: 26px 18px 26px 0; }

/* metric value styling migrated from inline */
.metric-value { font-size: clamp(20px, 2.4vw, 28px); font-weight: 600; letter-spacing: -0.02em; }

/* small migrated subheading used across sections */
.h3-sub { font-size: 21px; font-weight: 600; margin: 16px 0 10px; letter-spacing: -0.015em; }

/* --------------------------------------------------------------------------
 * FAQ accordion — state handled by JS toggling `.is-open` (no DOM changes).
 * ----------------------------------------------------------------------- */
.faq-answer { max-height: 0; overflow: hidden; transition: max-height .4s ease; }
.faq-item.is-open .faq-answer { max-height: 320px; }
.faq-item.is-open .faq-plus { transform: rotate(45deg); }

/* Parallax layer base (JS updates the transform) */
.js-parallax { will-change: transform; }
