/**
 * Cubbing — front-end + editor styles that theme.json cannot express.
 * Tokens come from theme.json presets (--wp--preset--*).
 */

/* ------------------------------------------------------------------
 * 1. Colour modes. Dark is the default palette; the toggle adds
 *    html.is-light / html.is-dark and remembers the choice.
 * ------------------------------------------------------------------ */
html.is-light {
	--wp--preset--color--base: #F6F4EF;
	--wp--preset--color--surface: #FFFFFF;
	--wp--preset--color--surface-2: #ECE9E2;
	--wp--preset--color--line: #D9D5CC;
	--wp--preset--color--contrast: #111214;
	--wp--preset--color--muted: #54585F;
	--wp--preset--color--accent-text: var(--wp--preset--color--accent-deep);
	--wp--preset--color--on-accent: #111214;
	--wp--preset--color--success: #0B7A4B;
	--wp--preset--color--error: #B42318;
	--cubbing-shadow: 0 30px 60px rgba(17, 18, 20, .12);
	color-scheme: light;
}
html.is-dark {
	--wp--preset--color--base: #0C0D0F;
	--wp--preset--color--surface: #141619;
	--wp--preset--color--surface-2: #1C1F23;
	--wp--preset--color--line: #2A2E35;
	--wp--preset--color--contrast: #F3F1EC;
	--wp--preset--color--muted: #A4A8AF;
	--wp--preset--color--accent-text: var(--wp--preset--color--accent-soft);
	--wp--preset--color--on-accent: #0C0D0F;
	--wp--preset--color--success: #5EE6A8;
	--wp--preset--color--error: #FF8A8A;
	color-scheme: dark;
}
:root {
	--cubbing-ease: cubic-bezier(.2, .8, .2, 1);
	--cubbing-shadow: 0 40px 80px rgba(0, 0, 0, .35);
	--cubbing-radius-sm: 14px;
	--cubbing-radius-md: 24px;
	--cubbing-radius-lg: 32px;
	color-scheme: dark;
}
body {
	transition: background-color .3s, color .3s;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
::selection { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--ink); }

:where(h1, h2, h3, .wp-block-post-title) { text-wrap: balance; }
:where(p) { text-wrap: pretty; }

:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
}
.skip-link.screen-reader-text:focus {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	border-radius: 999px;
	padding: .75rem 1.25rem;
}

/* ------------------------------------------------------------------
 * 2. Header & navigation
 * ------------------------------------------------------------------ */
.cubbing-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: color-mix(in srgb, var(--wp--preset--color--base) 86%, transparent);
	-webkit-backdrop-filter: saturate(140%) blur(14px);
	backdrop-filter: saturate(140%) blur(14px);
	border-bottom: 1px solid var(--wp--preset--color--line);
	transition: background-color .3s, border-color .3s;
}
.admin-bar .cubbing-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .cubbing-header { top: 0; } }
.cubbing-header > .wp-block-group { min-height: var(--wp--custom--header-height, 88px); }

.cubbing-header .wp-block-navigation a:where(:not(.wp-element-button)) {
	color: var(--wp--preset--color--muted);
	transition: color .15s;
}
.cubbing-header .wp-block-navigation a:where(:not(.wp-element-button)):hover,
.cubbing-header .wp-block-navigation .current-menu-item > a,
.cubbing-header .wp-block-navigation [aria-current="page"] {
	color: var(--wp--preset--color--contrast);
}
.wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--contrast) !important;
	padding: 1.5rem clamp(1rem, 4.5vw, 4rem);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
	gap: 1rem;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--xl);
	font-weight: 700;
	letter-spacing: -0.03em;
	color: var(--wp--preset--color--contrast) !important;
}
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
	width: 44px;
	height: 44px;
	border-radius: 22px;
	border: 1px solid var(--wp--preset--color--line);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.wp-block-navigation__responsive-container-close { top: 1.25rem; right: clamp(1rem, 4.5vw, 4rem); }
@media (max-width: 781px) {
	.cubbing-header .cubbing-header__cta { display: none; }
}

/* Brand block */
.cubbing-brand {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	white-space: nowrap;
}
.cubbing-brand:hover { color: var(--wp--preset--color--contrast); }
.cubbing-brand__word {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.375rem;
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1;
}
.cubbing-brand__tag {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	color: var(--wp--preset--color--muted);
	text-transform: uppercase;
	letter-spacing: .12em;
	margin-top: 3px;
}
.cubbing-brand__dot { color: var(--wp--preset--color--accent); }
.cubbing-brand.is-wordmark-large .cubbing-brand__word { font-size: 1.75rem; }
.cubbing-brand img { max-height: 36px; width: auto; }

/* Theme toggle */
.cubbing-theme-toggle {
	width: 44px;
	height: 44px;
	flex: none;
	border-radius: 22px;
	border: 1px solid var(--wp--preset--color--line);
	background: transparent;
	color: var(--wp--preset--color--contrast);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 0;
	transition: border-color .2s, transform .25s var(--cubbing-ease);
}
.cubbing-theme-toggle:hover { border-color: var(--wp--preset--color--contrast); }
.cubbing-theme-toggle .is-moon { display: none; }
html.is-light .cubbing-theme-toggle .is-sun { display: none; }
html.is-light .cubbing-theme-toggle .is-moon { display: block; }

/* ------------------------------------------------------------------
 * 3. Buttons
 * ------------------------------------------------------------------ */
.wp-element-button,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6rem;
	min-height: 44px;
	transition: transform .25s var(--cubbing-ease), background-color .2s, border-color .2s, color .2s;
	will-change: transform;
}
.wp-block-button__link:hover,
.wp-element-button:hover { transform: translateY(-2px); }
.wp-block-button.has-arrow .wp-block-button__link::after,
.wp-block-button.is-style-text-arrow .wp-block-button__link::after {
	content: "";
	width: 1.1em;
	height: 1.1em;
	flex: none;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .2s;
}
.wp-block-button.has-arrow .wp-block-button__link:hover::after,
.wp-block-button.is-style-text-arrow .wp-block-button__link:hover::after { transform: translateX(4px); }

.wp-block-button.is-style-ghost .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--contrast);
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--line);
	font-weight: 600;
}
.wp-block-button.is-style-ghost .wp-block-button__link:hover { box-shadow: inset 0 0 0 1px var(--wp--preset--color--contrast); }

.wp-block-button.is-style-contrast .wp-block-button__link {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	font-weight: 600;
}
.wp-block-button.is-style-ink .wp-block-button__link {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--paper);
}
.wp-block-button.is-style-ink-outline .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--ink);
	box-shadow: inset 0 0 0 1.5px var(--wp--preset--color--ink);
	font-weight: 600;
}
.wp-block-button.is-style-whatsapp .wp-block-button__link {
	background: var(--wp--preset--color--success);
	color: var(--wp--preset--color--ink);
}
.wp-block-button.is-style-whatsapp .wp-block-button__link::before,
.wp-block-button.is-style-ink-outline.has-whatsapp .wp-block-button__link::before {
	content: "";
	width: 1.15em;
	height: 1.15em;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21l1.7-5A8.5 8.5 0 1 1 8 19.3z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21l1.7-5A8.5 8.5 0 1 1 8 19.3z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.wp-block-button.is-style-text-arrow .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--contrast);
	padding-left: 0;
	padding-right: 0;
	font-weight: 600;
}
.wp-block-button.is-style-text-arrow .wp-block-button__link:hover { transform: none; }
.wp-block-button.is-size-large .wp-block-button__link { min-height: 64px; padding-inline: 2rem; font-size: 1.125rem; }
.wp-block-button.is-size-small .wp-block-button__link { min-height: 44px; padding: .7rem 1.25rem; font-size: var(--wp--preset--font-size--sm); }

/* ------------------------------------------------------------------
 * 4. Typography styles
 * ------------------------------------------------------------------ */
.is-style-eyebrow {
	font-family: var(--wp--preset--font-family--mono) !important;
	font-size: var(--wp--preset--font-size--xs) !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
	letter-spacing: .1em !important;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-text);
}
.is-style-status-dot {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.is-style-status-dot::before {
	content: "";
	flex: none;
	width: 8px;
	height: 8px;
	border-radius: 4px;
	background: var(--wp--preset--color--success);
	box-shadow: 0 0 0 0 color-mix(in srgb, var(--wp--preset--color--success) 60%, transparent);
	animation: cubbing-pulse 2.4s ease-out infinite;
}
.is-style-status-dot.has-text-align-center { justify-content: center; }
@keyframes cubbing-pulse {
	0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--wp--preset--color--success) 55%, transparent); }
	70%, 100% { box-shadow: 0 0 0 10px transparent; }
}
.is-style-mono {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--muted);
	line-height: 1.5;
}
.is-style-lead {
	font-size: var(--wp--preset--font-size--md);
	line-height: 1.5;
	color: var(--wp--preset--color--muted);
}
.is-style-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	width: fit-content;
	padding: 7px 12px;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	line-height: 1.2;
	color: var(--wp--preset--color--contrast);
}
.is-style-pill.has-dot::before,
.is-style-pill.has-dot-accent::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 4px;
	background: var(--wp--preset--color--success);
}
.is-style-pill.has-dot-accent::before { background: var(--wp--preset--color--accent); }
.is-style-pill.is-accent { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--on-accent); border-color: transparent; }
.is-style-display-medium { font-weight: 500 !important; }

.has-display-font-family { letter-spacing: -0.03em; }
.has-mono-font-family { letter-spacing: 0; }
mark.has-inline-color { background: transparent; }

.cubbing-num,
.has-tabular-nums { font-variant-numeric: tabular-nums; }

/* ------------------------------------------------------------------
 * 5. Group styles
 * ------------------------------------------------------------------ */
.is-style-card {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--cubbing-radius-md);
	padding: clamp(1.5rem, 2.6vw, 2.25rem);
}
.is-style-card:where(a, .is-linked) { transition: border-color .2s, transform .3s var(--cubbing-ease); }
.is-style-card.is-linked:hover { border-color: var(--wp--preset--color--muted); transform: translateY(-4px); }
.is-style-panel {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--cubbing-radius-lg);
	padding: clamp(1.5rem, 4.5vw, 4rem);
}
.is-style-outline-panel {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--cubbing-radius-lg);
	padding: clamp(1.5rem, 4.5vw, 4rem);
}
.is-style-accent-band {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--ink);
	border-radius: var(--cubbing-radius-lg);
	padding: clamp(2rem, 6vw, 5.5rem) clamp(1.5rem, 5vw, 4.5rem);
	position: relative;
	overflow: hidden;
}
.is-style-accent-band :where(h1, h2, h3, h4, h5, h6, p, li, .is-style-eyebrow) { color: var(--wp--preset--color--ink); }
.is-style-accent-band a:where(:not(.wp-element-button)) { color: var(--wp--preset--color--ink); font-weight: 600; }
.is-style-accent-band a:where(:not(.wp-element-button)):hover { opacity: .75; }
.is-style-accent-band .wp-block-button:not([class*="is-style-"]) .wp-block-button__link {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--paper);
}
.is-style-rule-top,
.is-style-rule-top-accent {
	border-top: 2px solid var(--wp--preset--color--line);
	padding-top: clamp(1.25rem, 2vw, 1.75rem);
}
.is-style-rule-top-accent { border-top-color: var(--wp--preset--color--accent); }

.is-style-stat-band {
	border-top: 1px solid var(--wp--preset--color--line);
	border-bottom: 1px solid var(--wp--preset--color--line);
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 0 !important;
}
.is-style-stat-band > * {
	margin: 0 !important;
	padding: 2.5rem 1.75rem 2.25rem;
	border-left: 1px solid var(--wp--preset--color--line);
}
.is-style-stat-band > *:first-child { border-left: 0; padding-left: 0; }
@media (max-width: 781px) {
	.is-style-stat-band { grid-template-columns: 1fr 1fr; }
	.is-style-stat-band > * { border-left: 0; border-top: 1px solid var(--wp--preset--color--line); padding: 1.5rem 0; }
	.is-style-stat-band > *:nth-child(-n + 2) { border-top: 0; }
	.is-style-stat-band > *:nth-child(even) { padding-left: 1.25rem; border-left: 1px solid var(--wp--preset--color--line); }
}

.is-style-hairline-grid {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px !important;
	background: var(--wp--preset--color--line);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--cubbing-radius-md);
	overflow: hidden;
}
.is-style-hairline-grid > * {
	margin: 0 !important;
	background: var(--wp--preset--color--base);
	padding: clamp(1.5rem, 2.4vw, 2rem);
	min-height: 180px;
	box-sizing: border-box;
}
@media (max-width: 781px) { .is-style-hairline-grid { grid-template-columns: 1fr; } .is-style-hairline-grid > * { min-height: 0; } }

.is-style-divided-list { border-top: 1px solid var(--wp--preset--color--line); gap: 0 !important; }
.is-style-divided-list > * { margin: 0 !important; padding-block: 1.75rem; border-bottom: 1px solid var(--wp--preset--color--line); }

.is-style-media-frame,
.is-style-placeholder {
	position: relative;
	border-radius: var(--cubbing-radius-md);
	border: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--surface);
	overflow: hidden;
}
.is-style-media-frame > .wp-block-image,
.is-style-media-frame > figure { margin: 0 !important; height: 100%; }
.is-style-media-frame img { width: 100%; height: 100%; object-fit: cover; border-radius: 0 !important; display: block; }
.is-style-placeholder {
	display: flex !important;
	align-items: center;
	justify-content: center;
	min-height: 320px;
	padding: 1.5rem;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--muted);
	text-align: center;
}

.is-style-meta-row {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0 !important;
	border-top: 1px solid var(--wp--preset--color--line);
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.is-style-meta-row > * { margin: 0 !important; padding: 1.5rem; border-left: 1px solid var(--wp--preset--color--line); }
.is-style-meta-row > *:first-child { border-left: 0; padding-left: 0; }
@media (max-width: 781px) {
	.is-style-meta-row { grid-template-columns: 1fr 1fr; }
	.is-style-meta-row > * { padding: 1.25rem 0; border-left: 0; }
	.is-style-meta-row > *:nth-child(even) { padding-left: 1.25rem; border-left: 1px solid var(--wp--preset--color--line); }
	.is-style-meta-row > *:nth-child(n + 3) { border-top: 1px solid var(--wp--preset--color--line); }
}

/* Floating media badge inside frames */
.cubbing-badge {
	position: absolute;
	left: 20px;
	top: 20px;
	z-index: 2;
	margin: 0 !important;
}
.cubbing-badge--bottom { top: auto; bottom: 20px; }

/* ------------------------------------------------------------------
 * 6. Columns, lists, details, quotes, images
 * ------------------------------------------------------------------ */
.wp-block-columns.is-style-timeline { gap: 6px !important; margin-bottom: 0; }
.wp-block-columns.is-style-timeline > .wp-block-column {
	min-height: 64px;
	border-radius: 14px;
	background: var(--wp--preset--color--surface-2);
	border: 1px solid var(--wp--preset--color--line);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0 1.25rem;
	font-weight: 600;
}
.wp-block-columns.is-style-timeline > .wp-block-column > * { margin: 0 !important; }
.wp-block-columns.is-style-timeline > .wp-block-column:first-child {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
	border-color: transparent;
	font-weight: 700;
}
.wp-block-columns.is-style-timeline > .wp-block-column:first-child .is-style-mono { color: var(--wp--preset--color--on-accent); }
.wp-block-columns.is-style-timeline > .wp-block-column:nth-child(3) {
	background: transparent;
	border-style: dashed;
	color: var(--wp--preset--color--muted);
	font-weight: 500;
}
@media (max-width: 781px) {
	.wp-block-columns.is-style-timeline { flex-wrap: nowrap !important; }
	.wp-block-columns.is-style-timeline > .wp-block-column { flex-basis: auto !important; padding: 0 .75rem; font-size: 14px; }
}

.wp-block-columns.is-style-divided > .wp-block-column + .wp-block-column {
	border-left: 1px solid var(--wp--preset--color--line);
	padding-left: clamp(1rem, 2vw, 1.5rem);
}

ol.is-style-numbered-rows,
ul.is-style-numbered-rows {
	list-style: none;
	margin-inline: 0;
	margin-bottom: 0;
	padding: 0;
	counter-reset: cubbing-row;
	border-top: 1px solid var(--wp--preset--color--line);
}
.is-style-numbered-rows > li {
	counter-increment: cubbing-row;
	display: grid;
	grid-template-columns: 56px 1fr;
	column-gap: 1rem;
	padding: 1.75rem 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
	color: var(--wp--preset--color--muted);
	line-height: 1.55;
}
.is-style-numbered-rows > li::before {
	content: counter(cubbing-row, decimal-leading-zero);
	grid-row: span 2;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--accent-text);
	padding-top: .45rem;
}
.is-style-numbered-rows > li strong {
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.25rem, 1rem + .7vw, 1.625rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--contrast);
	margin-bottom: .35rem;
	line-height: 1.2;
}

ul.is-style-pills {
	list-style: none;
	margin-inline: 0;
	margin-bottom: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.is-style-pills > li {
	margin: 0;
	padding: 7px 12px;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--line);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	line-height: 1.2;
	color: var(--wp--preset--color--muted);
}
ul.is-style-checks { list-style: none; padding: 0; margin-inline: 0; margin-bottom: 0; display: grid; gap: .6rem; }
.is-style-checks > li { position: relative; padding-left: 1.75rem; line-height: 1.5; }
.is-style-checks > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .3em;
	width: 1.05em;
	height: 1.05em;
	background: var(--wp--preset--color--accent);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wp-block-details.is-style-faq {
	border-bottom: 1px solid var(--wp--preset--color--line);
	padding: 1.75rem 0;
	margin: 0 !important;
}
.wp-block-details.is-style-faq summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1.5rem;
	font-size: clamp(1.125rem, 1rem + .4vw, 1.375rem);
	font-weight: 600;
	line-height: 1.35;
}
.wp-block-details.is-style-faq summary::-webkit-details-marker { display: none; }
.wp-block-details.is-style-faq summary::after {
	content: "+";
	flex: none;
	font-size: 1.75rem;
	font-weight: 400;
	line-height: 1;
	color: var(--wp--preset--color--accent-text);
	transition: transform .25s var(--cubbing-ease);
}
.wp-block-details.is-style-faq[open] summary::after { transform: rotate(45deg); }
.wp-block-details.is-style-faq > :not(summary) {
	color: var(--wp--preset--color--muted);
	max-width: 640px;
	margin-top: 1rem;
	font-size: var(--wp--preset--font-size--base);
}
.cubbing-faq-list { border-top: 1px solid var(--wp--preset--color--line); }
.cubbing-faq-list > * + * { margin-top: 0 !important; }

.wp-block-quote.is-style-testimonial {
	margin: 0;
	padding: clamp(1.75rem, 3vw, 2.5rem);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--cubbing-radius-md);
	display: flex;
	flex-direction: column;
	gap: 2rem;
	height: 100%;
	box-sizing: border-box;
}
.wp-block-quote.is-style-testimonial p {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.375rem, 1.1rem + .8vw, 1.875rem);
	line-height: 1.25;
	font-weight: 500;
	letter-spacing: -0.02em;
	margin: 0;
}
.wp-block-quote.is-style-testimonial cite {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--muted);
	display: flex;
	flex-direction: column;
	margin-top: auto;
}
.wp-block-quote.is-style-testimonial cite strong { color: var(--wp--preset--color--contrast); font-weight: 600; font-size: var(--wp--preset--font-size--base); }
.wp-block-quote.is-style-plain { border: 0; padding: 0; }
.wp-block-quote.is-style-plain p { font-size: clamp(1.5rem, 1.2rem + 1vw, 1.875rem); }

.wp-block-image.is-style-frame img,
.wp-block-cover.is-style-frame {
	border-radius: var(--cubbing-radius-md);
	border: 1px solid var(--wp--preset--color--line);
}
.wp-block-image.is-style-device img {
	border-radius: 34px;
	border: 1px solid var(--wp--preset--color--line);
	box-shadow: var(--cubbing-shadow);
}
.wp-block-separator.is-style-accent { background: var(--wp--preset--color--accent) !important; height: 2px; }
.wp-block-separator { height: 1px; opacity: 1; }

/* Media with hover zoom (cards) */
.cubbing-zoom { overflow: hidden; }
.cubbing-zoom img { transition: transform .5s var(--cubbing-ease); }
.cubbing-zoom:hover img,
a:hover .cubbing-zoom img { transform: scale(1.03); }

/* ------------------------------------------------------------------
 * 7. Custom blocks
 * ------------------------------------------------------------------ */

/* Stat counter */
.cubbing-stat { display: flex; flex-direction: column; gap: 10px; }
.cubbing-stat__value {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.5rem, 1.6rem + 2.6vw, 4rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.03em;
	font-variant-numeric: tabular-nums;
	color: var(--wp--preset--color--contrast);
}
.cubbing-stat__label { font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--muted); line-height: 1.4; }
.cubbing-stat.is-size-small .cubbing-stat__value { font-size: clamp(2rem, 1.4rem + 1.6vw, 2.75rem); }
.cubbing-stat.is-size-large .cubbing-stat__value { font-size: clamp(3rem, 2rem + 3vw, 4.5rem); }

/* Marquee */
.cubbing-marquee {
	overflow: hidden;
	border-top: 1px solid var(--wp--preset--color--line);
	border-bottom: 1px solid var(--wp--preset--color--line);
	padding: 1.75rem 0;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.cubbing-marquee__track {
	display: flex;
	width: max-content;
	animation: cubbing-marquee var(--cubbing-marquee-speed, 28s) linear infinite;
}
.cubbing-marquee.is-paused .cubbing-marquee__track,
.cubbing-marquee:hover .cubbing-marquee__track { animation-play-state: paused; }
.cubbing-marquee__group { display: flex; gap: 4rem; padding-right: 4rem; margin: 0; list-style: none; padding-left: 0; }
.cubbing-marquee__item {
	display: flex;
	align-items: center;
	gap: 4rem;
	white-space: nowrap;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.5rem, 1.6rem + 3vw, 4.5rem);
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 1.1;
}
.cubbing-marquee__item::after {
	content: "";
	width: 14px;
	height: 14px;
	border-radius: 7px;
	background: var(--wp--preset--color--accent);
}
@keyframes cubbing-marquee { to { transform: translateX(-50%); } }

/* Hero showcase */
.cubbing-showcase {
	position: relative;
	height: clamp(340px, 42vw, 560px);
	border-radius: 28px;
	border: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--surface);
	overflow: hidden;
	isolation: isolate;
}
.cubbing-showcase__grid {
	position: absolute;
	inset: 0;
	background-image: linear-gradient(var(--wp--preset--color--line) 1px, transparent 1px), linear-gradient(90deg, var(--wp--preset--color--line) 1px, transparent 1px);
	background-size: 64px 64px;
	opacity: .35;
	z-index: -1;
}
.cubbing-showcase__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}
.cubbing-showcase__frame {
	position: absolute;
	border-radius: 16px;
	background: var(--wp--preset--color--surface-2);
	border: 1px solid var(--wp--preset--color--line);
	box-shadow: var(--cubbing-shadow);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	z-index: 1;
}
.cubbing-showcase__frame img { width: 100%; height: 100%; object-fit: cover; display: block; flex: 1; min-height: 0; }
.cubbing-showcase__frame.is-browser { left: 5%; top: 13%; width: 44.5%; height: 71.5%; }
.cubbing-showcase__frame.is-phone { left: 52.8%; top: 8.5%; width: 15.3%; height: 78.5%; border-radius: 34px; padding: 10px; box-sizing: border-box; }
.cubbing-showcase__frame.is-phone img { border-radius: 26px; }
.cubbing-showcase__frame.is-card { left: 70.8%; top: 25%; width: 26.4%; height: 53.5%; }
.cubbing-showcase__chrome {
	height: 36px;
	flex: none;
	border-bottom: 1px solid var(--wp--preset--color--line);
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 0 14px;
}
.cubbing-showcase__chrome span { width: 9px; height: 9px; border-radius: 5px; background: var(--wp--preset--color--line); }
.cubbing-showcase__label {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 1rem;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	line-height: 1.5;
	color: var(--wp--preset--color--muted);
}
.cubbing-showcase.is-playing .is-browser { animation: cubbing-drift 9s ease-in-out infinite alternate; }
.cubbing-showcase.is-playing .is-phone { animation: cubbing-drift 11s ease-in-out -3s infinite alternate; }
.cubbing-showcase.is-playing .is-card { animation: cubbing-drift 13s ease-in-out -6s infinite alternate; }
@keyframes cubbing-drift { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(0, -18px, 0); } }
.cubbing-showcase__caption {
	position: absolute;
	left: 24px;
	bottom: 24px;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 16px;
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	color: var(--wp--preset--color--muted);
	max-width: calc(100% - 120px);
}
.cubbing-showcase__caption::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 4px; background: var(--wp--preset--color--accent); }
.cubbing-pause {
	position: absolute;
	right: 24px;
	bottom: 24px;
	z-index: 2;
	width: 48px;
	height: 48px;
	border-radius: 24px;
	border: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 0;
}
.cubbing-pause .is-play { display: none; }
.cubbing-pause[aria-pressed="true"] .is-play { display: block; }
.cubbing-pause[aria-pressed="true"] .is-pause { display: none; }
@media (max-width: 781px) {
	.cubbing-showcase { height: 420px; }
	.cubbing-showcase__frame.is-browser { left: 6%; top: 8%; width: 80%; height: 52%; }
	.cubbing-showcase__frame.is-phone { left: auto; right: 6%; top: 34%; width: 34%; height: 58%; }
	.cubbing-showcase__frame.is-card { display: none; }
	.cubbing-showcase__caption { display: none; }
}

/* Service list — rows */
.cubbing-services { list-style: none; margin: 0; padding: 0; }
.cubbing-services.is-layout-rows { border-top: 1px solid var(--wp--preset--color--line); }
.cubbing-services__row {
	display: grid;
	grid-template-columns: 56px 1fr auto;
	align-items: center;
	gap: 1.5rem;
	padding: 1.75rem .5rem;
	border-bottom: 1px solid var(--wp--preset--color--line);
	text-decoration: none;
	color: var(--wp--preset--color--contrast);
	transition: background-color .2s, padding .25s var(--cubbing-ease);
}
.cubbing-services__row:hover { background: var(--wp--preset--color--surface); padding-left: 1.5rem; color: var(--wp--preset--color--contrast); }
.cubbing-services__num { font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--muted); }
.cubbing-services__name {
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.5rem, 1.1rem + 1.1vw, 2rem);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.03em;
}
.cubbing-services__stack { display: block; margin-top: 8px; font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--muted); }
.cubbing-services__arrow { transition: transform .2s, color .2s; }
.cubbing-services__row:hover .cubbing-services__arrow { color: var(--wp--preset--color--accent); transform: translateX(6px); }

/* Service list — cards */
.cubbing-services.is-layout-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr));
	gap: 1.5rem;
}
.cubbing-services__card {
	min-height: 420px;
	padding: 2.25rem;
	border-radius: var(--cubbing-radius-md);
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	text-decoration: none;
	color: var(--wp--preset--color--contrast);
	box-sizing: border-box;
	transition: border-color .2s, transform .3s var(--cubbing-ease);
}
.cubbing-services__card:hover { color: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--muted); transform: translateY(-4px); }
.cubbing-services__card-top { display: flex; justify-content: space-between; align-items: center; }
.cubbing-services__card .cubbing-services__num { color: var(--wp--preset--color--accent-text); }
.cubbing-services__card h3 { margin: 0; font-size: clamp(1.75rem, 1.3rem + 1.2vw, 2.375rem); line-height: 1.05; }
.cubbing-services__card p { margin: 0; color: var(--wp--preset--color--muted); line-height: 1.55; }
.cubbing-services__card .is-style-pills { margin-top: auto; }
@media (max-width: 600px) {
	.cubbing-services__row { grid-template-columns: 36px 1fr auto; gap: 1rem; }
	.cubbing-services__card { min-height: 0; }
}

/* Work grid */
.cubbing-work { display: flex; flex-direction: column; gap: 2.5rem; }
.cubbing-work__filters {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
	padding: 1.25rem 0;
	border-top: 1px solid var(--wp--preset--color--line);
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.cubbing-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.cubbing-chip {
	min-height: 44px;
	padding: 0 20px;
	border-radius: 22px;
	border: 1px solid var(--wp--preset--color--line);
	background: transparent;
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s;
}
.cubbing-chip:hover { border-color: var(--wp--preset--color--contrast); }
.cubbing-chip[aria-pressed="true"] {
	background: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}
.cubbing-chip__count { font-family: var(--wp--preset--font-family--mono); font-size: 12px; opacity: .7; }
.cubbing-work__status { font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--muted); }

.cubbing-work__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2rem 1.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.cubbing-work__grid.is-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cubbing-work__grid.is-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) { .cubbing-work__grid, .cubbing-work__grid.is-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .cubbing-work__grid, .cubbing-work__grid.is-cols-2, .cubbing-work__grid.is-cols-4 { grid-template-columns: 1fr; } }

.cubbing-work__item[hidden] { display: none; }
.cubbing-work__item.is-entering { animation: cubbing-rise .3s var(--cubbing-ease) both; }
.cubbing-card {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	text-decoration: none;
	color: var(--wp--preset--color--contrast);
	position: relative;
}
.cubbing-card:hover { color: var(--wp--preset--color--contrast); }
.cubbing-card__media {
	position: relative;
	aspect-ratio: 4 / 3;
	border-radius: 22px;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--surface);
}
.cubbing-card__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .45s var(--cubbing-ease);
}
.cubbing-card:hover .cubbing-card__media img { transform: scale(1.025); }
.cubbing-card__ph {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	color: var(--wp--preset--color--muted);
	text-align: center;
}
.cubbing-card__badge {
	position: absolute;
	left: 16px;
	top: 16px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	padding: 6px 10px;
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	color: var(--wp--preset--color--contrast);
}
.cubbing-card__badge i { width: 6px; height: 6px; border-radius: 3px; background: var(--wp--preset--color--success); }
.cubbing-card__badge i.is-accent { background: var(--wp--preset--color--accent); }
.cubbing-card__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.cubbing-card__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.5rem, 1.2rem + .8vw, 1.75rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.1;
}
.cubbing-card__kind { font-family: var(--wp--preset--font-family--mono); font-size: 12px; color: var(--wp--preset--color--muted); white-space: nowrap; }
.cubbing-card__line { margin: -.5rem 0 0; font-size: var(--wp--preset--font-size--base); color: var(--wp--preset--color--muted); line-height: 1.45; }
.cubbing-work.is-layout-cards .cubbing-card { border: 1px solid var(--wp--preset--color--line); border-radius: var(--cubbing-radius-md); padding: 16px; }
.cubbing-work.is-layout-cards .cubbing-card__media { border-radius: 14px; border: 0; aspect-ratio: 16 / 9; }
.cubbing-work.is-layout-cards .cubbing-card__head,
.cubbing-work.is-layout-cards .cubbing-card__line { padding: 0 8px; }
.cubbing-work.is-layout-cards .cubbing-card__line { padding-bottom: 8px; }

/* Featured (home) asymmetric layout */
.cubbing-work.is-layout-featured .cubbing-work__grid {
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 1.5rem;
}
.cubbing-work.is-layout-featured .cubbing-work__item:nth-child(1) { grid-column: span 7; grid-row: span 2; }
.cubbing-work.is-layout-featured .cubbing-work__item:nth-child(n + 2) { grid-column: span 5; }
.cubbing-work.is-layout-featured .cubbing-work__item:nth-child(1) .cubbing-card__media { aspect-ratio: auto; height: 100%; min-height: 420px; }
.cubbing-work.is-layout-featured .cubbing-work__item:nth-child(1) .cubbing-card { height: 100%; }
.cubbing-work.is-layout-featured .cubbing-work__item:nth-child(1) .cubbing-card__media { flex: 1; }
.cubbing-work.is-layout-featured .cubbing-card__media { aspect-ratio: 16 / 9.5; border-radius: 24px; }
.cubbing-work.is-layout-featured .cubbing-card__title { font-size: clamp(1.625rem, 1.3rem + .9vw, 1.875rem); }
@media (max-width: 900px) {
	.cubbing-work.is-layout-featured .cubbing-work__grid { grid-template-columns: minmax(0, 1fr); }
	.cubbing-work.is-layout-featured .cubbing-work__item:nth-child(n) { grid-column: auto; grid-row: auto; }
	.cubbing-work.is-layout-featured .cubbing-work__item:nth-child(1) .cubbing-card__media { min-height: 0; aspect-ratio: 4 / 3; }
}
.cubbing-cursor {
	position: absolute;
	left: 0;
	top: 0;
	z-index: 3;
	width: 88px;
	height: 88px;
	border-radius: 44px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 14px;
	pointer-events: none;
	opacity: 0;
	transform: translate(-50%, -50%) scale(.6);
	transition: opacity .2s, transform .2s var(--cubbing-ease);
}
.cubbing-card.has-cursor { cursor: none; }
.cubbing-card.has-cursor:hover .cubbing-cursor { opacity: 1; transform: translate(-50%, -50%) scale(1); }

/* Project meta (dl) */
.cubbing-meta {
	margin: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid var(--wp--preset--color--line);
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.cubbing-meta > div { padding: 1.5rem; border-left: 1px solid var(--wp--preset--color--line); display: flex; flex-direction: column; gap: 6px; }
.cubbing-meta > div:first-child { border-left: 0; padding-left: 0; }
.cubbing-meta dt { font-family: var(--wp--preset--font-family--mono); font-size: 12px; color: var(--wp--preset--color--muted); }
.cubbing-meta dd { margin: 0; font-size: 1.125rem; font-weight: 600; }
@media (max-width: 781px) {
	.cubbing-meta { grid-template-columns: 1fr 1fr; }
	.cubbing-meta > div { padding: 1.25rem 0; border-left: 0; }
	.cubbing-meta > div:nth-child(even) { padding-left: 1.25rem; border-left: 1px solid var(--wp--preset--color--line); }
	.cubbing-meta > div:nth-child(n + 3) { border-top: 1px solid var(--wp--preset--color--line); }
}

/* Breadcrumbs */
.cubbing-breadcrumbs ol {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--muted);
}
.cubbing-breadcrumbs li { display: flex; gap: 8px; }
.cubbing-breadcrumbs li + li::before { content: "/"; }
.cubbing-breadcrumbs a { color: var(--wp--preset--color--muted); text-decoration: none; }
.cubbing-breadcrumbs a:hover { color: var(--wp--preset--color--contrast); }
.cubbing-breadcrumbs [aria-current="page"] { color: var(--wp--preset--color--contrast); }

/* Contact form */
.cubbing-form {
	padding: clamp(1.5rem, 3vw, 2.5rem);
	border-radius: 28px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	display: flex;
	flex-direction: column;
	gap: 1.75rem;
	min-height: 620px;
	box-sizing: border-box;
}
.cubbing-form__progress { display: flex; flex-direction: column; gap: 12px; }
.cubbing-form__step-label { font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--muted); }
.cubbing-form__bars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.cubbing-form__bars span { height: 4px; border-radius: 2px; background: var(--wp--preset--color--line); transition: background-color .3s; }
.cubbing-form__bars span.is-done { background: var(--wp--preset--color--accent); }
.cubbing-form fieldset { margin: 0; padding: 0; border: 0; display: flex; flex-direction: column; gap: 1.25rem; min-width: 0; }
.cubbing-form legend {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.05;
	padding: 0;
	margin-bottom: 1.25rem;
}
.js .cubbing-form fieldset[data-step]:not(.is-active) { display: none; }
.cubbing-form fieldset.is-active { animation: cubbing-slide .3s var(--cubbing-ease) both; }
@keyframes cubbing-slide { from { opacity: 0; transform: translateX(16px); } }
.cubbing-form .cubbing-chip { min-height: 52px; border-radius: 26px; padding: 0 22px; font-size: 1rem; }
.cubbing-form .cubbing-chip input { position: absolute; opacity: 0; pointer-events: none; }
.cubbing-form label.cubbing-chip { position: relative; }
.cubbing-form label.cubbing-chip:has(input:checked) {
	background: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}
.cubbing-form label.cubbing-chip:has(input:focus-visible) { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 3px; }
.cubbing-field { font-size: var(--wp--preset--font-size--sm); font-weight: 600; display: flex; flex-direction: column; gap: 8px; }
.cubbing-field__hint { font-weight: 400; color: var(--wp--preset--color--muted); font-size: 14px; }
.cubbing-input {
	width: 100%;
	box-sizing: border-box;
	min-height: 56px;
	padding: 0 18px;
	border-radius: 14px;
	border: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: 1.0625rem;
	font-weight: 400;
	transition: border-color .15s, box-shadow .15s;
}
textarea.cubbing-input { min-height: 140px; padding: 16px 18px; resize: vertical; line-height: 1.5; }
.cubbing-input:focus { outline: none; border-color: var(--wp--preset--color--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--accent) 30%, transparent); }
.cubbing-input[aria-invalid="true"] { border-color: var(--wp--preset--color--error); }
.cubbing-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 640px) { .cubbing-form__grid { grid-template-columns: 1fr; } }
.cubbing-form__foot { margin-top: auto; display: flex; flex-direction: column; gap: 1rem; }
.cubbing-form__error { margin: 0; min-height: 22px; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--error); font-weight: 600; }
.cubbing-form__actions { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.cubbing-form__actions .wp-element-button { border: 0; cursor: pointer; }
.cubbing-form__back {
	min-height: 56px;
	padding: 0 24px;
	border-radius: 28px;
	border: 1px solid var(--wp--preset--color--line);
	background: transparent;
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.js .cubbing-form__back[hidden] { visibility: hidden; display: inline-flex; }
.cubbing-form__done { display: flex; flex-direction: column; gap: 1.25rem; padding: 1.5rem 0; }
.cubbing-form__done[hidden] { display: none; }
.cubbing-form__tick { width: 72px; height: 72px; border-radius: 36px; background: var(--wp--preset--color--success); color: var(--wp--preset--color--ink); display: flex; align-items: center; justify-content: center; }
.cubbing-form__done h2 { margin: 0; font-size: clamp(2rem, 1.5rem + 1.5vw, 3rem); }
.cubbing-form__done p { margin: 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--md); max-width: 520px; }
.cubbing-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.cubbing-form.is-sending .cubbing-form__next { opacity: .6; pointer-events: none; }
.js .cubbing-form:not(.is-enhanced) .cubbing-form__progress { visibility: hidden; }

/* Contact aside */
.cubbing-contact-card {
	padding: 1.75rem;
	border-radius: var(--cubbing-radius-md);
	border: 1px solid var(--wp--preset--color--line);
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}
.cubbing-contact-card dt { font-family: var(--wp--preset--font-family--mono); font-size: 12px; color: var(--wp--preset--color--muted); margin-bottom: 4px; }
.cubbing-contact-card dd { margin: 0; font-weight: 600; line-height: 1.55; }
.cubbing-contact-card address { font-style: normal; font-weight: 400; }

/* ------------------------------------------------------------------
 * 8. Blog / post UI
 * ------------------------------------------------------------------ */
.is-style-post-cards.wp-block-post-template { gap: 2.5rem 1.5rem; }
.is-style-post-cards .wp-block-post { display: flex; flex-direction: column; gap: .9rem; }
.is-style-post-cards .wp-block-post-featured-image { margin: 0; overflow: hidden; border-radius: 22px; border: 1px solid var(--wp--preset--color--line); aspect-ratio: 16 / 9; }
.is-style-post-cards .wp-block-post-featured-image img { height: 100%; object-fit: cover; transition: transform .45s var(--cubbing-ease); }
.is-style-post-cards .wp-block-post:hover .wp-block-post-featured-image img { transform: scale(1.03); }
.is-style-post-cards .wp-block-post-title { margin: 0; }
.is-style-post-cards .wp-block-post-excerpt { margin: 0; }
.is-style-post-cards .wp-block-post-excerpt__excerpt { margin: 0; }

.cubbing-prose > * + * { margin-block-start: 1.25em; }
.cubbing-prose :where(h2) { font-size: var(--wp--preset--font-size--2-xl); margin-block-start: 2em; }
.cubbing-prose :where(h3) { font-size: var(--wp--preset--font-size--xl); margin-block-start: 1.75em; }
.cubbing-prose :where(p, li) { font-size: 1.1875rem; line-height: 1.7; }
.cubbing-prose :where(p, li) { color: color-mix(in srgb, var(--wp--preset--color--contrast) 88%, var(--wp--preset--color--muted)); }
.cubbing-prose :where(ul, ol) { padding-left: 1.25em; }
.cubbing-prose :where(li + li) { margin-top: .4em; }
.cubbing-prose :where(code:not(pre code)) { font-family: var(--wp--preset--font-family--mono); font-size: .85em; background: var(--wp--preset--color--surface-2); padding: .15em .4em; border-radius: 6px; }
.cubbing-prose :where(table) { border-collapse: collapse; width: 100%; }
.cubbing-prose :where(th, td) { border: 1px solid var(--wp--preset--color--line); padding: .7rem .9rem; text-align: left; }
.cubbing-prose :where(th) { background: var(--wp--preset--color--surface); font-weight: 600; }

.wp-block-post-comments-form input:not([type="submit"]):not([type="checkbox"]),
.wp-block-post-comments-form textarea,
.wp-block-search__input {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 14px;
	padding: .9rem 1rem;
	font: inherit;
}
.wp-block-search__inside-wrapper { gap: .5rem; border: 0 !important; }
.wp-block-search__input { border-radius: 999px; padding-inline: 1.25rem; min-height: 52px; }
.wp-block-comment-template { padding: 0; }
.wp-block-comment-template li { list-style: none; border-top: 1px solid var(--wp--preset--color--line); padding-top: 1.5rem; }

.wp-block-query-pagination { gap: .75rem; }
.wp-block-query-pagination-numbers .page-numbers {
	display: inline-flex;
	min-width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	border-radius: 22px;
	border: 1px solid var(--wp--preset--color--line);
	text-decoration: none;
	color: var(--wp--preset--color--contrast);
}
.wp-block-query-pagination-numbers .page-numbers.current { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); border-color: var(--wp--preset--color--contrast); }

/* Footer */
.cubbing-footer a { color: var(--wp--preset--color--muted); text-decoration: none; }
.cubbing-footer a:hover { color: var(--wp--preset--color--contrast); }
.cubbing-footer a.cubbing-brand, .cubbing-footer a.cubbing-brand:hover { color: var(--wp--preset--color--contrast); }
.cubbing-footer .wp-block-navigation { gap: .75rem; }
.cubbing-footer .wp-block-navigation a { color: var(--wp--preset--color--muted); }

/* ------------------------------------------------------------------
 * 9. Motion: reveals. JS adds .cubbing-reveal to section children.
 * ------------------------------------------------------------------ */
@keyframes cubbing-rise { from { opacity: 0; transform: translateY(24px); } }
.js .cubbing-reveal:not(.is-inview) { opacity: 0; transform: translateY(24px); }
.js .cubbing-reveal { transition: opacity .5s var(--cubbing-ease), transform .5s var(--cubbing-ease); }
.cubbing-rise { animation: cubbing-rise .6s var(--cubbing-ease) both; }
.cubbing-rise-2 { animation: cubbing-rise .6s var(--cubbing-ease) .08s both; }
.cubbing-rise-3 { animation: cubbing-rise .6s var(--cubbing-ease) .16s both; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
	.js .cubbing-reveal:not(.is-inview) { opacity: 1; transform: none; }
	.cubbing-marquee__track { animation: none !important; }
}

/* ------------------------------------------------------------------
 * 10. Layout helpers
 * ------------------------------------------------------------------ */
.cubbing-sticky { position: sticky; top: calc(var(--wp--custom--header-height, 88px) + 2rem); }
.cubbing-ratio-16-9 { aspect-ratio: 16 / 9; }
.cubbing-h-full { height: 100%; }
@media (max-width: 781px) {
	.cubbing-hide-mobile { display: none !important; }
	.cubbing-sticky { position: static; }
}
@media (min-width: 782px) {
	.cubbing-hide-desktop { display: none !important; }
}
.wp-site-blocks { min-height: 100vh; display: flex; flex-direction: column; }
.wp-site-blocks > main,
.wp-site-blocks > .cubbing-main { flex: 1 0 auto; }
.wp-site-blocks > footer { margin-block-start: auto; }

/* Elementor: let Cubbing tokens drive Elementor kit defaults */
.elementor-page .elementor-widget-text-editor { color: inherit; }
.elementor-page .elementor-widget-heading .elementor-heading-title { font-family: var(--wp--preset--font-family--display); letter-spacing: -0.03em; }
.elementor-widget-cubbing-section .alignwide,
.elementor-widget-cubbing-section .alignfull { max-width: none; margin-inline: 0; }

/* Highlighted card (pricing) */
.is-style-card.is-highlighted { border: 2px solid var(--wp--preset--color--accent); position: relative; overflow: visible; }
.is-style-card.is-highlighted > .cubbing-badge { top: -14px; left: 2.25rem; }

/* Service number + title on one baseline */
.cubbing-title-row { align-items: baseline !important; }
.cubbing-title-row > .is-style-eyebrow { flex: none; }
@media (max-width: 600px) { .cubbing-title-row { flex-wrap: wrap !important; } }

/* Display-font paragraphs (metrics, big leads) */
.has-display-font-family { font-family: var(--wp--preset--font-family--display) !important; }
p.has-display-font-family.has-3-xl-font-size,
p.has-display-font-family.has-4-xl-font-size { font-weight: 700; line-height: 1; }

/* Next project link (post-navigation-link) as a big card */
.cubbing-next-case {
	flex: 1 1 520px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: clamp(1.5rem, 3.4vw, 3rem);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 28px;
	transition: border-color .2s;
	position: relative;
}
.cubbing-next-case:hover { border-color: var(--wp--preset--color--muted); }
.cubbing-next-case::before {
	content: attr(data-label);
	position: absolute;
	left: clamp(1.5rem, 3.4vw, 3rem);
	top: clamp(1rem, 2vw, 1.5rem);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	letter-spacing: 0;
	color: var(--wp--preset--color--muted);
}
.cubbing-next-case a {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	letter-spacing: -0.03em;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	padding-top: .75rem;
}
.cubbing-next-case a::after { content: ""; position: absolute; inset: 0; border-radius: 28px; }
.cubbing-next-case .wp-block-post-navigation-link__arrow-next { color: var(--wp--preset--color--contrast); }

/* The header's backdrop-filter would trap the fixed mobile menu overlay. */
html.has-modal-open .cubbing-header,
.cubbing-header:has(.is-menu-open) {
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	background: var(--wp--preset--color--base);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible { outline-offset: 6px; }
.cubbing-work__item, .cubbing-card { min-width: 0; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start !important; }
