/*
 * OFFISDESIGN — rules theme.json can't express.
 * Tokens: use the --wp--preset--* custom properties generated from theme.json.
 */

/* ── Accessibility ─────────────────────────────────────────────────────── */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: none;
	box-shadow: var(--wp--custom--focus-ring);
	border-radius: var(--wp--custom--radius--sm);
}
.screen-reader-text:not(:focus):not(:active) {
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}
.skip-link:focus {
	background: var(--wp--preset--color--secondary);
	color: var(--wp--preset--color--on-dark);
	padding: 0.75rem 1rem;
	z-index: 1000;
}

/* ── Type styles ───────────────────────────────────────────────────────── */
.is-style-display {
	font-family: var(--wp--preset--font-family--display) !important;
	font-weight: 400 !important;
	text-transform: uppercase;
	letter-spacing: 0.01em;
	line-height: 0.98 !important;
}
.is-style-eyebrow {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
	margin-bottom: 0 !important;
}

/* ── Buttons ───────────────────────────────────────────────────────────── */
.wp-element-button,
.wp-block-button__link {
	transition: background-color var(--wp--custom--transition), color var(--wp--custom--transition),
		box-shadow var(--wp--custom--transition);
}
.wp-block-button.is-style-outline-brand .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--primary);
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--primary);
}
.wp-block-button.is-style-outline-brand .wp-block-button__link:hover {
	background: var(--wp--preset--color--primary-subtle);
	color: var(--wp--preset--color--primary-hover);
}

.wp-block-button.is-style-outline-light .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--on-dark);
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--on-dark-subtle);
}
.wp-block-button.is-style-outline-light .wp-block-button__link:hover {
	background: rgba(254, 254, 254, 0.08);
	color: var(--wp--preset--color--on-dark);
}
.offis-footer__rule { opacity: 0.35; }

/* ── Surfaces ──────────────────────────────────────────────────────────── */
.is-style-card {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--md);
	background: var(--wp--preset--color--background);
}

/* ── Media placeholders (before real photography is uploaded) ─────────── */
.offis-tile img,
.wp-block-cover.offis-tile { border-radius: var(--wp--custom--radius--md); }

/* ── WhatsApp button ───────────────────────────────────────────────────── */
.offis-whatsapp {
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	z-index: 60;
	display: grid;
	place-items: center;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 50%;
	background: #25d366;
	color: #fff;
	box-shadow: var(--wp--preset--shadow--raised);
	transition: transform var(--wp--custom--transition);
}
.offis-whatsapp:hover { transform: translateY(-2px); color: #fff; }

/* ── WooCommerce polish ────────────────────────────────────────────────── */
.wc-block-components-product-price,
.woocommerce-Price-amount { font-weight: 600; color: var(--wp--preset--color--secondary); }
.wc-block-components-product-image img,
.wp-block-woocommerce-product-image-gallery img { border-radius: var(--wp--custom--radius--md); }
.offis-quote-button { margin-top: 0.75rem; }
.offis-quote-note {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

/* ── Enquiry form ──────────────────────────────────────────────────────── */
.offis-enquiry-form { max-width: 760px; }
.offis-enquiry-form .offis-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 0 var(--wp--preset--spacing--40);
}
.offis-field { margin: 0 0 var(--wp--preset--spacing--30); }
.offis-field label { display: block; font-weight: 600; font-size: var(--wp--preset--font-size--small); margin-bottom: 0.35rem; }
.offis-field input,
.offis-field select,
.offis-field textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 0.7rem 0.85rem;
	font: inherit;
	color: var(--wp--preset--color--text);
	background: var(--wp--preset--color--background);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--sm);
}
.offis-field input:focus,
.offis-field select:focus,
.offis-field textarea:focus { border-color: var(--wp--preset--color--primary); }
.offis-cookie { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.offis-cookie input { margin-right: 0.4rem; }
.offis-hp { position: absolute !important; left: -9999px; }
.offis-enquiry-notice {
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	border-radius: var(--wp--custom--radius--md);
	margin-bottom: var(--wp--preset--spacing--40);
}
.offis-enquiry-notice.is-success { background: #eef7f0; border: 1px solid #b7dcc0; }
.offis-enquiry-notice.is-error { background: var(--wp--preset--color--primary-subtle); border: 1px solid var(--wp--preset--color--primary); }

/* ── Motion preferences ────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* ── Single product ────────────────────────────────────────────────────── */
/* Classic gallery CSS floats it at a fixed width; let it fill its column. */
.wp-block-woocommerce-product-image-gallery,
.wp-block-woocommerce-product-image-gallery .woocommerce-product-gallery {
	width: 100% !important;
	float: none !important;
}
.wp-block-woocommerce-product-details .woocommerce-tabs ul.tabs li {
	background: var(--wp--preset--color--surface) !important;
	border-color: var(--wp--preset--color--border) !important;
	border-radius: var(--wp--custom--radius--sm) var(--wp--custom--radius--sm) 0 0 !important;
}
.wp-block-woocommerce-product-details .woocommerce-tabs ul.tabs li.active {
	background: var(--wp--preset--color--background) !important;
}
.wp-block-woocommerce-product-details .woocommerce-tabs ul.tabs li a {
	color: var(--wp--preset--color--secondary) !important;
	font-weight: 600;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Stage S1 — chrome: utility bar, three-tier header, mega-menus, drawer,
   footer, section surfaces. Reference: docs/website-structure.md §4, §6.4.
   Desktop nav ≥ 1024px; drawer below.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Utility bar + announcement rotator ────────────────────────────────── */
.offis-utility { position: relative; }
.offis-utility__inner { min-height: 1.75rem; }
.offis-utility a { text-decoration: underline; text-underline-offset: 0.15em; } /* links sit in running text */
.offis-utility__links { display: flex; gap: var(--wp--preset--spacing--40); margin: 0; white-space: nowrap; }
.offis-announcement { display: flex; align-items: center; gap: var(--wp--preset--spacing--20); min-width: 0; }
.offis-announcement > p { margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.offis-announcement > p:not(:first-child) { display: none; }
.offis-announcement.is-enhanced > p { display: none; }
.offis-announcement.is-enhanced > p.is-active { display: block; }
.offis-announcement__btn {
	display: grid;
	place-items: center;
	width: 1.5rem;
	height: 1.5rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--wp--preset--color--on-dark-muted);
	cursor: pointer;
}
.offis-announcement__btn:hover { color: var(--wp--preset--color--on-dark); background: rgba(254, 254, 254, 0.1); }
.offis-announcement__btn--prev svg { transform: rotate(180deg); }
@media (max-width: 781px) {
	.offis-utility__links { display: none; }
	.offis-announcement { width: 100%; justify-content: center; text-align: center; }
	.offis-announcement > p { flex: 1 1 auto; white-space: normal; }
}

/* ── Header shell ──────────────────────────────────────────────────────── */
.offis-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--wp--preset--color--background);
	border-bottom: 1px solid var(--wp--preset--color--border);
	transition: transform 240ms cubic-bezier(0.2, 0, 0, 1);
}
.offis-header.is-hidden { transform: translateY(-100%); }
.admin-bar .offis-header { top: var(--wp-admin--admin-bar--height, 0); }
.offis-header__inner {
	display: grid;
	grid-template-columns: auto 1fr auto;
	grid-template-areas: "brand . utilities" "nav nav nav";
	align-items: center;
	column-gap: var(--wp--preset--spacing--40);
}
.offis-header__brand { grid-area: brand; padding: var(--wp--preset--spacing--30) 0; }
.offis-header__utilities { grid-area: utilities; flex-wrap: nowrap !important; flex-shrink: 0; align-items: center; }
.offis-header__utilities > * { flex-shrink: 0; }
.offis-header__cta .wp-block-button__link { padding: 0.55rem 1.1rem; white-space: nowrap; }
.offis-primary-nav { grid-area: nav; }
.offis-header .wp-block-search__button {
	background: transparent !important;
	color: var(--wp--preset--color--secondary) !important;
	padding: 0.4rem !important;
	border: 0;
	box-shadow: none;
}
.offis-header .wp-block-search__button:hover { color: var(--wp--preset--color--primary) !important; }
.offis-header .wp-block-search__button svg { width: 24px; height: 24px; fill: currentColor; }
.offis-header .wc-block-mini-cart__button,
.offis-header .wc-block-customer-account__account-icon { color: var(--wp--preset--color--secondary); }
.offis-header--checkout .wp-block-site-title { font-size: 1.5rem; }

/* ── Primary nav: desktop row ──────────────────────────────────────────── */
@media (min-width: 1024px) {
	/* Core copies the block's class onto the inner <ul>, so scope to the <nav>. */
	nav.offis-primary-nav {
		position: static; /* panels are positioned against .offis-header */
		border-top: 1px solid var(--wp--preset--color--border);
		padding: 0.2rem 0;
	}
	.offis-primary-nav .wp-block-navigation__container { gap: var(--wp--preset--spacing--50); }
	.offis-primary-nav .wp-block-navigation-item__content,
	.offis-primary-nav .wp-block-navigation-submenu__toggle {
		font-size: var(--wp--preset--font-size--small);
		font-weight: 600;
		letter-spacing: 0.06em;
		text-transform: uppercase;
		padding: 0.85rem 0;
		color: var(--wp--preset--color--secondary);
		position: relative;
	}
	.offis-primary-nav .wp-block-navigation-item > .wp-block-navigation-item__content::after,
	.offis-primary-nav .wp-block-navigation-submenu__toggle::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		height: 2px;
		background: var(--wp--preset--color--primary);
		transform: scaleX(0);
		transition: transform var(--wp--custom--transition);
	}
	.offis-primary-nav .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
	.offis-primary-nav .has-child.is-open > .wp-block-navigation-submenu__toggle::after,
	.offis-primary-nav .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
	.offis-primary-nav .wp-block-navigation__submenu-icon { margin-left: 0.3rem; }
	.offis-primary-nav .wp-block-navigation-submenu__toggle[aria-expanded="true"] .wp-block-navigation__submenu-icon svg { transform: rotate(180deg); }

	/* Drawer-only items never show in the desktop row. */
	.offis-primary-nav .offis-nav__cta,
	.offis-primary-nav .offis-nav__secondary { display: none; }

	/* Mega panel: full header width, below the nav row. */
	.offis-primary-nav .has-mega-panel { position: static; }
	.offis-primary-nav .has-mega-panel > .wp-block-navigation__submenu-container {
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		width: auto;
		min-width: 0;
		margin: 0;
		padding: 0;
		background: var(--wp--preset--color--background);
		border: 0;
		border-top: 1px solid var(--wp--preset--color--border);
		box-shadow: var(--wp--preset--shadow--raised);
		color: var(--wp--preset--color--text);
	}
	/* Core link children feed the drawer; the template part is the desktop panel. */
	.offis-primary-nav .has-mega-panel > .wp-block-navigation__submenu-container > li:not(.offis-mega__panel) { display: none; }
	.offis-mega__panel { display: block; width: 100%; max-width: 1280px; margin: 0 auto; padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40); }
	.offis-mega__panel { font-size: var(--wp--preset--font-size--body); font-weight: 400; letter-spacing: normal; text-transform: none; }
}

/* ── Mega panel content (desktop) ──────────────────────────────────────── */
.offis-mega__grid--furniture {
	display: grid;
	grid-template-columns: 1fr 420px;
	grid-template-areas: "links featured" "prompt prompt";
	column-gap: var(--wp--preset--spacing--60);
	row-gap: var(--wp--preset--spacing--40);
}
.offis-mega__links { grid-area: links; gap: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50) !important; }
.offis-mega__featured { grid-area: featured; padding-left: var(--wp--preset--spacing--50); border-left: 1px solid var(--wp--preset--color--border); }
.offis-mega__grid--furniture > .offis-mega__prompt { grid-area: prompt; }
.offis-mega__prompt,
.offis-mega__process {
	align-items: center;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	border-radius: var(--wp--custom--radius--md);
	background: var(--wp--preset--color--surface);
}
.offis-mega__prompt p, .offis-mega__process p { margin: 0; font-size: var(--wp--preset--font-size--small) !important; }
.offis-mega__prompt a, .offis-mega__process a { font-weight: 600; }
.offis-mega__heading {
	font-family: var(--wp--preset--font-family--heading) !important;
	font-size: var(--wp--preset--font-size--lead) !important;
	font-weight: 500 !important;
	margin: 0 0 var(--wp--preset--spacing--10);
}
.offis-mega__heading a { color: var(--wp--preset--color--secondary); }
.offis-mega__heading a:hover { color: var(--wp--preset--color--primary); text-decoration: none; }
.offis-mega__list { list-style: none; padding: 0; margin: 0; }
.offis-mega__list li { margin: 0 0 0.3rem; }
.offis-mega__list a { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small) !important; }
.offis-mega__list a:hover { color: var(--wp--preset--color--primary); }
.offis-mega__products { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--wp--preset--spacing--20); }
.offis-mega__products a { display: block; color: var(--wp--preset--color--secondary); text-decoration: none; }
.offis-mega__products img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--wp--custom--radius--sm); background: var(--wp--preset--color--surface); margin-bottom: var(--wp--preset--spacing--10); }
.offis-mega__product-name { display: block; font-size: var(--wp--preset--font-size--small); font-weight: 600; line-height: 1.3; }
.offis-mega__product-price { display: block; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.offis-mega__products a:hover .offis-mega__product-name { color: var(--wp--preset--color--primary); }
.offis-mega__grid--workspaces { display: grid; row-gap: var(--wp--preset--spacing--40); }
.offis-mega__tiles { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; gap: var(--wp--preset--spacing--20) !important; }
.offis-mega__tile { min-height: 150px; overflow: hidden; }
.offis-mega__tile img { transition: transform 400ms cubic-bezier(0.2, 0, 0, 1); }
.offis-mega__tile:hover img { transform: scale(1.04); }
.offis-mega__tile .wp-block-cover__inner-container p { margin: 0; font-weight: 600; }
.offis-mega__tile a { color: var(--wp--preset--color--on-dark); }
.offis-mega__tile a::after { content: ""; position: absolute; inset: 0; } /* whole tile clickable */
.offis-mega__grid--solutions { display: grid; row-gap: var(--wp--preset--spacing--40); }
.offis-mega__services { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: var(--wp--preset--spacing--50) !important; }
.offis-mega__service p { margin: 0; }
.offis-mega__steps { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--30); }
.offis-mega__steps span { font-weight: 600; color: var(--wp--preset--color--secondary); }
.offis-mega__steps span + span::before { content: "\2192"; margin-right: var(--wp--preset--spacing--30); color: var(--wp--preset--color--primary); font-weight: 400; }

/* ── Drawer (< 1024px) ─────────────────────────────────────────────────── */
/* Core keeps every submenu expanded inside the overlay, so the drawer is a set
   of groups: group label (the submenu toggle, visually a heading) + its links.
   Selectors carry extra specificity because core's overlay rules are strong. */
@media (max-width: 1023px) {
	.offis-header__inner {
		grid-template-columns: auto 1fr auto;
		grid-template-areas: "nav brand utilities";
		column-gap: var(--wp--preset--spacing--20);
	}
	.offis-header__brand { justify-content: center; padding: var(--wp--preset--spacing--20) 0; }
	.offis-header__brand .wp-block-site-title { font-size: 1.4rem; }
	.offis-header__cta,
	.offis-header__account { display: none !important; }
	.offis-header__utilities { gap: var(--wp--preset--spacing--10) !important; }

	/* Core only switches to the overlay below 600px; we want it below 1024px. */
	nav.offis-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	nav.offis-primary-nav .wp-block-navigation__responsive-container-open { display: flex !important; padding: 0.4rem; margin-left: -0.4rem; }
	nav.offis-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: block !important; }
	nav.offis-primary-nav .wp-block-navigation__responsive-container-open svg { width: 28px; height: 28px; }

	nav.offis-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
		background: var(--wp--preset--color--background);
		color: var(--wp--preset--color--secondary);
		padding: var(--wp--preset--spacing--40);
	}
	nav.offis-primary-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: var(--wp--preset--spacing--50); }
	nav.offis-primary-nav .is-menu-open .wp-block-navigation__container,
	nav.offis-primary-nav .is-menu-open .wp-block-navigation__submenu-container {
		align-items: stretch !important;
		justify-content: flex-start !important;
		text-align: left;
		gap: 0 !important;
		width: 100%;
	}
	nav.offis-primary-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
		display: block !important;
		width: 100%;
		border-bottom: 1px solid var(--wp--preset--color--border);
	}
	nav.offis-primary-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
		display: block !important;
		width: 100%;
		font-family: var(--wp--preset--font-family--heading);
		font-size: var(--wp--preset--font-size--h-4);
		line-height: 1.2;
		padding: 0.9rem 0;
		color: var(--wp--preset--color--secondary);
	}
	/* Group labels: core forces submenus open, so the toggle is just a heading. */
	nav.offis-primary-nav .is-menu-open .has-child > .wp-block-navigation-submenu__toggle {
		padding-bottom: 0.4rem;
		pointer-events: none;
	}
	nav.offis-primary-nav .is-menu-open .wp-block-navigation__submenu-icon { display: none !important; }
	nav.offis-primary-nav .is-menu-open .wp-block-navigation__submenu-container {
		display: flex !important;
		flex-direction: column;
		position: static !important;
		height: auto !important;
		visibility: visible !important;
		opacity: 1 !important;
		min-width: 0 !important;
		margin: 0 !important;
		padding: 0 0 var(--wp--preset--spacing--30) var(--wp--preset--spacing--30) !important;
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		color: inherit !important;
	}
	nav.offis-primary-nav .is-menu-open .wp-block-navigation__submenu-container > .wp-block-navigation-item:not(.offis-mega__panel) { display: block !important; width: 100%; }
	nav.offis-primary-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		display: block;
		padding: 0.45rem 0;
		font-size: var(--wp--preset--font-size--body);
		color: var(--wp--preset--color--text);
	}
	nav.offis-primary-nav .is-menu-open .offis-nav__all .wp-block-navigation-item__content { font-weight: 600; }
	nav.offis-primary-nav .is-menu-open .offis-mega__panel { display: none !important; } /* rich panel is desktop-only */

	nav.offis-primary-nav .is-menu-open .wp-block-navigation__container > .offis-nav__cta { border-bottom: 0 !important; margin-top: var(--wp--preset--spacing--40); }
	nav.offis-primary-nav .is-menu-open .wp-block-navigation__container > .offis-nav__cta > .wp-block-navigation-item__content {
		text-align: center;
		font-family: var(--wp--preset--font-family--body);
		font-size: var(--wp--preset--font-size--body);
		font-weight: 600;
		padding: 0.85rem 1.5rem;
		border-radius: var(--wp--custom--radius--sm);
		background: var(--wp--preset--color--primary);
		color: var(--wp--preset--color--on-dark);
	}
	nav.offis-primary-nav .is-menu-open .wp-block-navigation__container > .offis-nav__secondary { border-bottom: 0 !important; }
	nav.offis-primary-nav .is-menu-open .wp-block-navigation__container > .offis-nav__secondary > .wp-block-navigation-item__content {
		font-family: var(--wp--preset--font-family--body);
		font-size: var(--wp--preset--font-size--small);
		color: var(--wp--preset--color--muted);
		padding: 0.45rem 0;
	}
}
@media (min-width: 1024px) {
	.offis-primary-nav .wp-block-navigation__responsive-container-open { display: none !important; }
	.offis-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: block !important; position: relative; }
}

/* ── Footer ────────────────────────────────────────────────────────────── */
.offis-footer a { color: inherit; }
.offis-footer a:hover { color: var(--wp--preset--color--on-dark); text-decoration: underline; }
.offis-footer__grid {
	display: grid;
	grid-template-columns: 1.6fr repeat(4, 1fr);
	gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--50);
}
.offis-footer__brand .wp-block-site-title { margin-bottom: var(--wp--preset--spacing--20); }
.offis-footer__brand p { margin-bottom: var(--wp--preset--spacing--20); }
.offis-footer__title { letter-spacing: 0.14em; text-transform: uppercase; font-family: var(--wp--preset--font-family--body) !important; font-weight: 600 !important; margin: 0 0 var(--wp--preset--spacing--20); }
.offis-footer__title .offis-footer__toggle {
	all: unset;
	cursor: default;
	font: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	color: inherit;
}
.offis-footer__links .wp-block-navigation-item__content { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--on-dark-muted); }
.offis-footer__links .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--on-dark); }
.offis-footer__newsletter { gap: var(--wp--preset--spacing--40); }
.offis-footer__newsletter h2 { margin: 0 0 var(--wp--preset--spacing--10); }
.offis-footer__newsletter p { margin: 0; }
.offis-newsletter { min-width: min(100%, 360px); }
.offis-newsletter__row { display: flex; }
.offis-newsletter input[type="email"] {
	flex: 1 1 auto;
	min-width: 0;
	padding: 0.75rem 1rem;
	font: inherit;
	color: var(--wp--preset--color--on-dark);
	background: rgba(254, 254, 254, 0.06);
	border: 1px solid var(--wp--preset--color--on-dark-subtle);
	border-right: 0;
	border-radius: var(--wp--custom--radius--sm) 0 0 var(--wp--custom--radius--sm);
}
.offis-newsletter input::placeholder { color: var(--wp--preset--color--on-dark-subtle); }
.offis-newsletter__btn {
	display: grid;
	place-items: center;
	width: 3rem;
	border: 0;
	border-radius: 0 var(--wp--custom--radius--sm) var(--wp--custom--radius--sm) 0;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--on-dark);
	cursor: pointer;
}
.offis-newsletter__btn:hover { background: var(--wp--preset--color--primary-hover); }
.offis-newsletter__error { margin: var(--wp--preset--spacing--10) 0 0 !important; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--on-dark-muted); }
.offis-newsletter__done { font-weight: 600; }
.offis-footer .offis-payment-badges span {
	border: 1px solid rgba(254, 254, 254, 0.3);
	border-radius: var(--wp--custom--radius--sm);
	padding: 0.15rem 0.5rem;
	font-size: var(--wp--preset--font-size--caption);
}
@media (max-width: 1023px) {
	.offis-footer__grid { grid-template-columns: 1fr 1fr; }
	.offis-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 781px) {
	.offis-footer__grid { grid-template-columns: 1fr; gap: 0; }
	.offis-footer__brand { padding-bottom: var(--wp--preset--spacing--40); }
	.offis-footer__col { border-top: 1px solid var(--wp--preset--color--accent); }
	.offis-footer__col .offis-footer__title { margin: 0; }
	.offis-footer__col .offis-footer__toggle {
		display: flex;
		width: 100%;
		justify-content: space-between;
		align-items: center;
		padding: var(--wp--preset--spacing--30) 0;
		cursor: pointer;
	}
	.offis-footer__col .offis-footer__toggle::after {
		content: "";
		width: 0.5rem;
		height: 0.5rem;
		border-right: 1.5px solid currentColor;
		border-bottom: 1.5px solid currentColor;
		transform: rotate(45deg);
		transition: transform var(--wp--custom--transition);
	}
	.offis-footer__col .offis-footer__toggle[aria-expanded="true"]::after { transform: rotate(-135deg); }
	.offis-footer__col .offis-footer__links { padding-bottom: var(--wp--preset--spacing--30); }
	.offis-footer__newsletter > * { width: 100%; }
}

/* ── Section surfaces + extra block styles ─────────────────────────────── */
.wp-block-group.is-style-band-dark { background: var(--wp--preset--color--secondary); color: var(--wp--preset--color--on-dark); }
.wp-block-group.is-style-band-dark :is(h1, h2, h3, h4, p, a, li) { color: var(--wp--preset--color--on-dark); }
.wp-block-group.is-style-band-primary { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--on-dark); }
.wp-block-group.is-style-band-primary :is(h1, h2, h3, h4, p, a, li) { color: var(--wp--preset--color--on-dark); }
.wp-block-group.is-style-surface { background: var(--wp--preset--color--surface); }
.wp-block-list.is-style-checklist { list-style: none; padding-left: 0; }
.wp-block-list.is-style-checklist li { position: relative; padding-left: 1.75rem; margin-bottom: 0.4rem; }
.wp-block-list.is-style-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.4em;
	width: 0.55rem;
	height: 0.3rem;
	border-left: 2px solid var(--wp--preset--color--primary);
	border-bottom: 2px solid var(--wp--preset--color--primary);
	transform: rotate(-45deg);
}
.wp-block-image.is-style-hover-zoom { overflow: hidden; }
.wp-block-image.is-style-hover-zoom img { transition: transform 400ms cubic-bezier(0.2, 0, 0, 1); }
.wp-block-image.is-style-hover-zoom:hover img { transform: scale(1.03); }

/* ═══════════════════════════════════════════════════════════════════════════
   Stage S2 — homepage sections. Reference: docs/website-structure.md §5.1, §6.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Section scaffolding ───────────────────────────────────────────────── */
.offis-section__head { gap: var(--wp--preset--spacing--40); margin-bottom: var(--wp--preset--spacing--50); }
.offis-section__head h2 { margin: 0; }
.offis-section__head > p { margin: 0; font-weight: 600; }
.offis-section__head.is-centered { margin-bottom: var(--wp--preset--spacing--50); }
.offis-section__head.is-centered p:last-child { margin-bottom: 0; }

/* ── Hero ──────────────────────────────────────────────────────────────── */
.offis-hero .wp-block-cover__inner-container { width: 100%; }
.offis-hero__copy h1 { margin: var(--wp--preset--spacing--20) 0 var(--wp--preset--spacing--30); }
.offis-hero__note { margin-top: var(--wp--preset--spacing--40); }
.offis-hero .is-style-outline-light .wp-block-button__link { box-shadow: inset 0 0 0 1px var(--wp--preset--color--on-dark); }
@media (max-width: 781px) {
	.offis-hero { min-height: 560px !important; }
	.offis-hero__copy { text-align: center; }
	.offis-hero__copy .wp-block-buttons { justify-content: center; }
}

/* ── Carousels (scroll-snap tracks + arrows) ───────────────────────────── */
.offis-carousel__nav[hidden] { display: none; }
.offis-carousel__nav { display: flex; justify-content: flex-end; gap: var(--wp--preset--spacing--10); margin-top: var(--wp--preset--spacing--30); }
.offis-arrow {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 50%;
	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--secondary);
	cursor: pointer;
	transition: background-color var(--wp--custom--transition), color var(--wp--custom--transition);
}
.offis-arrow:hover:not(:disabled) { background: var(--wp--preset--color--secondary); color: var(--wp--preset--color--on-dark); border-color: var(--wp--preset--color--secondary); }
.offis-arrow:disabled { opacity: 0.35; cursor: default; }
.offis-arrow--prev svg { transform: rotate(180deg); }
.offis-product-list {
	list-style: none;
	margin: 0;
	padding: 0 0 var(--wp--preset--spacing--10);
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 3 * var(--wp--preset--spacing--40)) / 4);
	gap: var(--wp--preset--spacing--40);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.offis-product-list::-webkit-scrollbar { display: none; }
.offis-product-list > li { scroll-snap-align: start; }
.offis-product-list a { display: block; color: var(--wp--preset--color--secondary); text-decoration: none; }
.offis-product-list img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--wp--custom--radius--md); background: var(--wp--preset--color--background); margin-bottom: var(--wp--preset--spacing--20); transition: transform 400ms cubic-bezier(0.2, 0, 0, 1); }
.offis-product-list a:hover img { transform: translateY(-2px); }
.offis-product-list .offis-mega__product-name { display: block; font-weight: 600; line-height: 1.3; }
.offis-product-list .offis-mega__product-price { display: block; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.offis-product-list a:hover .offis-mega__product-name { color: var(--wp--preset--color--primary); }
@media (max-width: 1023px) { .offis-product-list { grid-auto-columns: calc((100% - var(--wp--preset--spacing--40)) / 2); } }
@media (max-width: 600px) { .offis-product-list { grid-auto-columns: 78%; } }

/* Category tiles + audience cards: grid on desktop, swipe row on phones. */
.offis-tiles { gap: var(--wp--preset--spacing--40) !important; }
.offis-tile { overflow: hidden; }
.offis-tile img { transition: transform 500ms cubic-bezier(0.2, 0, 0, 1); }
.offis-tile:hover img { transform: scale(1.04); }
.offis-tile h3 { margin: 0 0 var(--wp--preset--spacing--10); }
.offis-tile h3 a { color: inherit; text-decoration: none; }
.offis-tile h3 a::after { content: ""; position: absolute; inset: 0; }
.offis-tile p { margin: 0; }
@media (max-width: 781px) {
	.offis-tiles,
	.offis-audience {
		display: grid !important;
		grid-template-columns: none !important;
		grid-auto-flow: column;
		grid-auto-columns: 80%;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		padding-bottom: var(--wp--preset--spacing--10);
	}
	.offis-tiles::-webkit-scrollbar, .offis-audience::-webkit-scrollbar { display: none; }
	.offis-tiles > *, .offis-audience > * { scroll-snap-align: start; }
	.offis-tile { min-height: 260px !important; }
}
@media (min-width: 782px) and (max-width: 1023px) {
	.offis-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.offis-audience { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (min-width: 782px) { .offis-carousel:not(.offis-carousel--products) + .offis-carousel__nav { display: none; } }

/* ── Value props ───────────────────────────────────────────────────────── */
.offis-props { gap: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50) !important; }
.offis-prop__icon { color: var(--wp--preset--color--primary); margin-bottom: var(--wp--preset--spacing--20); }
.offis-prop__title { margin: 0 0 var(--wp--preset--spacing--10); }
.offis-prop p { margin: 0; }
@media (max-width: 600px) { .offis-props { grid-template-columns: 1fr !important; } }
.offis-split .wp-block-column img { width: 100%; }

/* ── Tabs + hotspots ───────────────────────────────────────────────────── */
.offis-tabs__list { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--wp--preset--spacing--10); margin-bottom: var(--wp--preset--spacing--40); }
.offis-tabs__tab {
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 0.6rem 1rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--secondary);
	cursor: pointer;
	transition: background-color var(--wp--custom--transition), color var(--wp--custom--transition);
}
.offis-tabs__tab[aria-selected="true"] { background: var(--wp--preset--color--secondary); border-color: var(--wp--preset--color--secondary); color: var(--wp--preset--color--on-dark); }
.offis-tabs__tab:hover:not([aria-selected="true"]) { background: var(--wp--preset--color--primary-subtle); }
.offis-hotspots__panel { position: relative; border-radius: var(--wp--custom--radius--lg); overflow: hidden; background: var(--wp--preset--color--surface); }
.offis-hotspots__panel > img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.offis-hotspot { position: absolute; left: var(--x); top: var(--y); transform: translate(-50%, -50%); text-decoration: none; z-index: 1; }
.offis-hotspot__dot {
	display: grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--secondary);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	box-shadow: 0 0 0 4px rgba(254, 254, 254, 0.35), var(--wp--preset--shadow--card);
	transition: transform var(--wp--custom--transition), background-color var(--wp--custom--transition);
}
.offis-hotspot:hover .offis-hotspot__dot,
.offis-hotspot:focus-visible .offis-hotspot__dot { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--on-dark); transform: scale(1.1); }
.offis-hotspot__card {
	position: absolute;
	left: 50%;
	bottom: calc(100% + 0.6rem);
	transform: translateX(-50%);
	display: none;
	flex-direction: column;
	gap: 0.1rem;
	min-width: 12rem;
	padding: 0.6rem 0.8rem;
	border-radius: var(--wp--custom--radius--sm);
	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--secondary);
	box-shadow: var(--wp--preset--shadow--raised);
	font-size: var(--wp--preset--font-size--small);
	white-space: nowrap;
}
.offis-hotspot__card span { color: var(--wp--preset--color--muted); }
.offis-hotspot:hover .offis-hotspot__card,
.offis-hotspot:focus-visible .offis-hotspot__card { display: flex; }
.offis-hotspot:focus-visible { outline: none; }
.offis-hotspots__link { position: absolute; right: var(--wp--preset--spacing--30); bottom: var(--wp--preset--spacing--30); margin: 0; }
.offis-hotspots__link a {
	display: inline-block;
	padding: 0.55rem 1rem;
	border-radius: var(--wp--custom--radius--sm);
	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--secondary);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	box-shadow: var(--wp--preset--shadow--card);
	text-decoration: none;
}
.offis-hotspots__link a:hover { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--on-dark); }
@media (max-width: 600px) {
	.offis-hotspots__panel > img { aspect-ratio: 4 / 5; }
	.offis-hotspot__card { white-space: normal; min-width: 9rem; }
}

/* ── Process steps ─────────────────────────────────────────────────────── */
.offis-steps { gap: var(--wp--preset--spacing--40) !important; counter-reset: offis-step; }
.offis-step { position: relative; padding-top: var(--wp--preset--spacing--50); border-top: 1px solid var(--wp--preset--color--border); }
.offis-step::before {
	counter-increment: offis-step;
	content: counter(offis-step, decimal-leading-zero);
	position: absolute;
	top: calc(-1 * var(--wp--preset--spacing--30));
	left: 0;
	padding-right: var(--wp--preset--spacing--20);
	background: var(--wp--preset--color--background);
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--h-3);
	line-height: 1;
	color: var(--wp--preset--color--primary);
}
.offis-step__title { margin: 0 0 var(--wp--preset--spacing--10); }
.offis-step p { margin: 0; }
@media (max-width: 1023px) { .offis-steps { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 600px) { .offis-steps { grid-template-columns: 1fr !important; } }

/* ── Featured project ──────────────────────────────────────────────────── */
.offis-split--flush { margin-top: 0 !important; margin-bottom: 0 !important; }
.offis-featured-project__image { margin: 0; }
.offis-featured-project__image img { display: block; width: 100%; height: 100%; min-height: 420px; }
.offis-featured-project__facts { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--30); }
.offis-featured-project__facts span + span::before { content: "·"; margin-right: var(--wp--preset--spacing--30); }
@media (max-width: 781px) {
	.offis-split--flush .wp-block-column { padding-left: var(--wp--preset--spacing--40) !important; padding-right: var(--wp--preset--spacing--40) !important; }
	.offis-featured-project__image img { min-height: 260px; }
}

/* ── Audience cards ────────────────────────────────────────────────────── */
.offis-audience { gap: var(--wp--preset--spacing--40) !important; }
.offis-audience__card { border-radius: var(--wp--custom--radius--md); overflow: hidden; display: flex; flex-direction: column; }
.offis-audience__image { margin: 0; }
.offis-audience__image img { display: block; width: 100%; }
.offis-audience__body { padding: var(--wp--preset--spacing--40); flex: 1; }
.offis-audience__body h3 { margin: 0 0 var(--wp--preset--spacing--10); }
.offis-audience__body h3 a { color: inherit; text-decoration: none; }
.offis-audience__body h3 a::after { content: ""; position: absolute; inset: 0; }
.offis-audience__card { position: relative; }
.offis-audience__body p { margin: 0; }
.offis-audience__card.is-style-band-primary .offis-audience__body p { color: var(--wp--preset--color--on-dark); }
.offis-audience__card.is-style-surface .offis-audience__body p { color: var(--wp--preset--color--muted); }

/* ── Testimonials ──────────────────────────────────────────────────────── */
.offis-testimonials h2 { margin: 0 0 var(--wp--preset--spacing--30); }
.offis-testimonials a { color: var(--wp--preset--color--on-dark); }
.offis-rotator:not(.is-enhanced) > .offis-testimonial + .offis-testimonial { display: none; } /* first quote only without JS */
.offis-testimonial { border-left: 0 !important; padding-left: 0 !important; margin: 0; }
.offis-testimonial p {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--h-3);
	line-height: 1.3;
	color: var(--wp--preset--color--on-dark);
	margin: 0 0 var(--wp--preset--spacing--30);
}
.offis-testimonial cite { font-style: normal; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--on-dark-muted); }
.offis-demo-note { color: var(--wp--preset--color--on-dark-subtle); }
.offis-rotator__nav { display: flex; align-items: center; gap: var(--wp--preset--spacing--20); margin-top: var(--wp--preset--spacing--40); }
.offis-rotator__nav .offis-arrow { background: transparent; border-color: var(--wp--preset--color--on-dark-subtle); color: var(--wp--preset--color--on-dark); }
.offis-rotator__nav .offis-arrow:hover:not(:disabled) { background: var(--wp--preset--color--on-dark); color: var(--wp--preset--color--secondary); border-color: var(--wp--preset--color--on-dark); }
.offis-rotator__count { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--on-dark-muted); font-variant-numeric: tabular-nums; }

/* ── Insights teaser ───────────────────────────────────────────────────── */
.offis-insights .offis-section__head { margin-bottom: var(--wp--preset--spacing--50); }
.offis-insights:has(.offis-insights__grid:empty) { display: none; }
.offis-insights__grid { gap: var(--wp--preset--spacing--40) !important; }
.offis-insight .wp-block-post-featured-image img { width: 100%; }
.offis-insight .wp-block-post-terms a { color: var(--wp--preset--color--primary); text-decoration: none; }
.offis-insight .wp-block-post-title a { color: var(--wp--preset--color--secondary); text-decoration: none; }
.offis-insight .wp-block-post-title a:hover { color: var(--wp--preset--color--primary); }
@media (max-width: 781px) { .offis-insights__grid { grid-template-columns: 1fr !important; } }

/* ── Promise band ──────────────────────────────────────────────────────── */
.offis-promise__claims { margin: 0; line-height: 1.2; }
.offis-promise p { margin: 0 0 var(--wp--preset--spacing--20); }

/* ── Brief form ────────────────────────────────────────────────────────── */
.offis-brief__form .offis-enquiry-form { max-width: none; padding: var(--wp--preset--spacing--50); background: var(--wp--preset--color--background); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--lg); }
.offis-brief h2 { margin: 0 0 var(--wp--preset--spacing--30); }

/* ── Proof band ────────────────────────────────────────────────────────── */
.offis-proof__logos { gap: var(--wp--preset--spacing--60); margin-top: var(--wp--preset--spacing--30); }
.offis-proof__logos img { height: 48px; width: auto; filter: grayscale(1); opacity: 0.7; }

/* ═══════════════════════════════════════════════════════════════════════════
   Stage S3 — shop: category pages, product cards, product page.
   Reference: docs/website-structure.md §5.2, §5.3.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Category hero + chips ─────────────────────────────────────────────── */
.offis-cat-hero {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--wp--preset--spacing--40);
	align-items: center;
	margin: var(--wp--preset--spacing--30) 0 var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--50);
	border-radius: var(--wp--custom--radius--lg);
	background: var(--wp--preset--color--surface);
}
.offis-cat-hero.has-image { grid-template-columns: 1fr minmax(240px, 38%); }
.offis-cat-hero h1 { margin: var(--wp--preset--spacing--10) 0 var(--wp--preset--spacing--20); font-size: var(--wp--preset--font-size--h-1); }
.offis-cat-hero__desc { margin: 0; max-width: 56ch; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--lead); }
.offis-cat-hero__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--wp--custom--radius--md); }
.offis-chips { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--10); margin: 0 0 var(--wp--preset--spacing--50); }
.offis-chip {
	display: inline-block;
	padding: 0.5rem 0.9rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	color: var(--wp--preset--color--secondary);
	text-decoration: none;
	transition: background-color var(--wp--custom--transition), border-color var(--wp--custom--transition);
}
.offis-chip:hover { background: var(--wp--preset--color--primary-subtle); border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--primary); text-decoration: none; }
.offis-chip[aria-current="page"] { background: var(--wp--preset--color--secondary); border-color: var(--wp--preset--color--secondary); color: var(--wp--preset--color--on-dark); }
@media (max-width: 781px) {
	.offis-cat-hero, .offis-cat-hero.has-image { grid-template-columns: 1fr; padding: var(--wp--preset--spacing--40); }
	.offis-cat-hero__img { aspect-ratio: 16 / 9; }
	.offis-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 0.25rem; }
	.offis-chips::-webkit-scrollbar { display: none; }
	.offis-chip { white-space: nowrap; }
}

/* ── Listing layout: sidebar + grid ────────────────────────────────────── */
.offis-plp { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--70); }
.offis-plp__filters { position: sticky; top: calc(var(--offis-header-h, 150px) + 1rem); align-self: start; }
.offis-plp__toolbar { margin-bottom: var(--wp--preset--spacing--40); padding-bottom: var(--wp--preset--spacing--20); border-bottom: 1px solid var(--wp--preset--color--border); align-items: center; }
.offis-plp__toolbar .woocommerce-result-count { margin: 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.offis-plp__toolbar .wc-block-catalog-sorting { margin: 0; }
.offis-plp__toolbar select { padding: 0.5rem 2rem 0.5rem 0.75rem; border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--sm); font: inherit; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--secondary); background: var(--wp--preset--color--background); }
.offis-plp__help { margin-top: var(--wp--preset--spacing--50); padding: var(--wp--preset--spacing--40); border-radius: var(--wp--custom--radius--md); background: var(--wp--preset--color--surface); }
.offis-plp__help p { margin: 0 0 var(--wp--preset--spacing--10); }
/* WooCommerce filter blocks */
.offis-filter__title { font-family: var(--wp--preset--font-family--body) !important; font-size: var(--wp--preset--font-size--small) !important; font-weight: 600 !important; letter-spacing: 0.1em; text-transform: uppercase; margin: 0 0 var(--wp--preset--spacing--20) !important; }
.wp-block-woocommerce-product-filter-taxonomy,
.wp-block-woocommerce-product-filter-price,
.wp-block-woocommerce-product-filter-status { padding: var(--wp--preset--spacing--30) 0; border-top: 1px solid var(--wp--preset--color--border); }
.wp-block-woocommerce-product-filter-active:not(:empty) { margin-bottom: var(--wp--preset--spacing--30); }
.wc-block-product-filter-checkbox-list__label { font-size: var(--wp--preset--font-size--small); }
.wc-block-product-filter-checkbox-list__input:checked + .wc-block-product-filter-checkbox-list__mark,
.wc-block-product-filter-checkbox-list__input:checked ~ * { color: var(--wp--preset--color--primary); }
.wp-block-woocommerce-product-filters .wc-block-product-filters__open-overlay,
.wp-block-woocommerce-product-filters button.wc-block-product-filters__open-overlay {
	font-weight: 600;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--sm);
	padding: 0.6rem 1rem;
	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--secondary);
}
@media (max-width: 1023px) {
	.offis-plp { grid-template-columns: 1fr; gap: var(--wp--preset--spacing--30); }
	.offis-plp__filters { position: static; }
	.offis-plp__help { display: none; }
}

/* ── Product cards ─────────────────────────────────────────────────────── */
.offis-grid .wc-block-product-template { gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40) !important; }
.offis-card { position: relative; display: flex; flex-direction: column; }
.offis-card__image { position: relative; margin: 0; }
.offis-card__image img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--wp--custom--radius--md); background: var(--wp--preset--color--surface); transition: transform 400ms cubic-bezier(0.2, 0, 0, 1); }
.offis-card:hover .offis-card__image img { transform: translateY(-3px); }
.offis-badge {
	position: absolute;
	z-index: 1;
	top: 0.75rem;
	left: 0.75rem;
	padding: 0.25rem 0.6rem;
	border-radius: 999px;
	background: var(--wp--preset--color--background);
	color: var(--wp--preset--color--secondary);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	box-shadow: var(--wp--preset--shadow--card);
}
.offis-card__title a { color: var(--wp--preset--color--secondary); text-decoration: none; }
.offis-card__title a::after { content: ""; position: absolute; inset: 0; }
.offis-card:hover .offis-card__title a { color: var(--wp--preset--color--primary); }
.offis-card__price { margin: 0.2rem 0 0; }
.offis-card__price .offis-price-on-request { font-weight: 600; color: var(--wp--preset--color--muted); }
.offis-key-specs { list-style: none; margin: var(--wp--preset--spacing--20) 0 0; padding: 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.offis-key-specs li { position: relative; padding-left: 1.1rem; margin-bottom: 0.2rem; }
.offis-key-specs li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 0.4rem; height: 0.25rem; border-left: 1.5px solid var(--wp--preset--color--primary); border-bottom: 1.5px solid var(--wp--preset--color--primary); transform: rotate(-45deg); }
.offis-pagination { margin-top: var(--wp--preset--spacing--60); }
.offis-pagination .page-numbers { padding: 0.4rem 0.75rem; border-radius: var(--wp--custom--radius--sm); text-decoration: none; }
.offis-pagination .page-numbers.current { background: var(--wp--preset--color--secondary); color: var(--wp--preset--color--on-dark); }
@media (max-width: 600px) {
	.offis-grid .wc-block-product-template { grid-template-columns: 1fr !important; }
}
@media (min-width: 601px) and (max-width: 1023px) {
	.offis-grid .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
.offis-seo-copy { padding: var(--wp--preset--spacing--60) 0 var(--wp--preset--spacing--70); color: var(--wp--preset--color--muted); }
.offis-seo-copy h2, .offis-seo-copy h3 { color: var(--wp--preset--color--secondary); }
.offis-faq__item { border-top: 1px solid var(--wp--preset--color--border); padding: var(--wp--preset--spacing--30) 0; }
.offis-faq__item:last-of-type { border-bottom: 1px solid var(--wp--preset--color--border); }
.offis-faq__item summary { cursor: pointer; font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--h-4); color: var(--wp--preset--color--secondary); list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.offis-faq__item summary::-webkit-details-marker { display: none; }
.offis-faq__item summary::after { content: "+"; font-family: var(--wp--preset--font-family--body); font-size: 1.5rem; color: var(--wp--preset--color--primary); transition: transform var(--wp--custom--transition); }
.offis-faq__item[open] summary::after { transform: rotate(45deg); }
.offis-faq__item p { margin: var(--wp--preset--spacing--20) 0 0; }
.offis-project-strip { gap: var(--wp--preset--spacing--40); }
.offis-project-strip__lead { gap: var(--wp--preset--spacing--30); }
.offis-project-strip__image { margin: 0; flex-shrink: 0; }
.offis-project-strip__image img { border-radius: var(--wp--custom--radius--md); }
.offis-project-strip p { margin: 0; }
.offis-search-head .wp-block-search { max-width: 520px; }

/* ── Product page ──────────────────────────────────────────────────────── */
.offis-pdp__eyebrow { margin: 0 0 var(--wp--preset--spacing--10) !important; }
.offis-pdp__eyebrow a { color: inherit; text-decoration: none; }
.offis-pdp__buy h1 { margin: 0 0 var(--wp--preset--spacing--20); }
.offis-pdp__buy .wp-block-woocommerce-product-rating { margin-bottom: var(--wp--preset--spacing--20); }
.offis-pdp__price { margin: 0 0 var(--wp--preset--spacing--20); }
.offis-pdp__vat { display: inline-block; margin-left: 0.5rem; font-size: var(--wp--preset--font-size--small); font-weight: 400; color: var(--wp--preset--color--muted); }
.offis-pdp__buy .wp-block-post-excerpt { margin-bottom: var(--wp--preset--spacing--40); }
.offis-pdp__buy form.cart { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--20); align-items: stretch; margin: 0 0 var(--wp--preset--spacing--20) !important; }
.offis-pdp__buy form.cart .quantity { display: flex; }
.offis-pdp__buy form.cart .quantity .qty { width: 4.5rem; padding: 0.7rem 0.5rem; border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--sm); font: inherit; text-align: center; }
.offis-pdp__buy form.cart .single_add_to_cart_button { flex: 1 1 auto; padding: 0.85rem 1.5rem; font-weight: 600; }
.offis-pdp__buy .variations td { padding: 0.25rem 0; }
.offis-pdp__buy .variations select { width: 100%; padding: 0.6rem 0.75rem; border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--sm); font: inherit; }
.offis-quote-button { margin-top: 0 !important; width: 100%; }
.offis-quote-button .wp-block-button__link { width: 100%; text-align: center; padding: 0.85rem 1.5rem; }
.offis-quote-note { margin: var(--wp--preset--spacing--20) 0 0; }
.offis-pdp__facts { margin-top: var(--wp--preset--spacing--40); padding-top: var(--wp--preset--spacing--40); border-top: 1px solid var(--wp--preset--color--border); }
.offis-pdp__lead-time { display: flex; gap: 0.5rem; align-items: flex-start; margin: 0 0 var(--wp--preset--spacing--30); font-weight: 600; color: var(--wp--preset--color--secondary); }
.offis-pdp__lead-time svg { flex-shrink: 0; margin-top: 0.15rem; color: var(--wp--preset--color--primary); }
.offis-pdp__chips { list-style: none; margin: 0 0 var(--wp--preset--spacing--30); padding: 0; display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--10); }
.offis-pdp__chips li { padding: 0.35rem 0.7rem; border-radius: 999px; background: var(--wp--preset--color--surface); font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--secondary); }
.offis-pdp__sheet { margin: 0 0 var(--wp--preset--spacing--30); font-size: var(--wp--preset--font-size--small); }
.offis-pdp__trust { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.35rem; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.offis-pdp__trust li { position: relative; padding-left: 1.3rem; }
.offis-pdp__trust li::before { content: ""; position: absolute; left: 0; top: 0.5em; width: 0.5rem; height: 0.28rem; border-left: 1.5px solid var(--wp--preset--color--primary); border-bottom: 1.5px solid var(--wp--preset--color--primary); transform: rotate(-45deg); }
.offis-pdp__volume { margin-top: var(--wp--preset--spacing--40); padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40); border-radius: var(--wp--custom--radius--md); background: var(--wp--preset--color--primary-subtle); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--wp--preset--spacing--20); }
.offis-pdp__volume p { margin: 0; font-size: var(--wp--preset--font-size--small); }
.offis-pdp__volume a { font-weight: 600; white-space: nowrap; }
.offis-pdp__meta { margin-top: var(--wp--preset--spacing--40); color: var(--wp--preset--color--muted); }
.offis-pdp__details .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 0.25rem; padding: 0 !important; margin: 0 !important; }
.offis-pdp__details .woocommerce-tabs ul.tabs::before { display: none !important; }
.offis-pdp__details .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 1px solid var(--wp--preset--color--border) !important; border-bottom: 0 !important; }
.offis-pdp__details .woocommerce-tabs ul.tabs li::before, .offis-pdp__details .woocommerce-tabs ul.tabs li::after { display: none !important; }
.offis-pdp__details .woocommerce-tabs ul.tabs li a { padding: 0.75rem 1.1rem !important; font-size: var(--wp--preset--font-size--small); }
.offis-pdp__details .woocommerce-tabs .panel { padding: var(--wp--preset--spacing--40) !important; border: 1px solid var(--wp--preset--color--border); border-radius: 0 var(--wp--custom--radius--md) var(--wp--custom--radius--md) var(--wp--custom--radius--md); margin: 0 !important; }
.offis-pdp__details .woocommerce-product-attributes th { width: 35%; color: var(--wp--preset--color--secondary); }
.offis-pdp__details .woocommerce-product-attributes td, .offis-pdp__details .woocommerce-product-attributes th { padding: 0.5rem 0.75rem !important; border-bottom: 1px solid var(--wp--preset--color--border); }
@media (max-width: 781px) {
	.offis-pdp__top { gap: var(--wp--preset--spacing--40) !important; }
	.offis-pdp__buy h1 { font-size: var(--wp--preset--font-size--h-3); }
}

/* Sticky buy bar (phones) */
.offis-buybar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 40;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	padding: 0.75rem var(--wp--preset--spacing--40) calc(0.75rem + env(safe-area-inset-bottom));
	background: var(--wp--preset--color--background);
	border-top: 1px solid var(--wp--preset--color--border);
	box-shadow: 0 -8px 24px rgba(65, 12, 20, 0.08);
}
.offis-buybar[hidden] { display: none; }
.offis-buybar__price { font-weight: 600; color: var(--wp--preset--color--secondary); }
.offis-buybar__price .offis-pdp__vat { display: none; }
.offis-buybar__btn { white-space: nowrap; }
@media (min-width: 782px) { .offis-buybar { display: none !important; } }
body:has(.offis-buybar:not([hidden])) .offis-whatsapp { bottom: 5.5rem; }

/* WooCommerce gallery: wp-emoji turns the zoom trigger's 🔍 into an <img>; keep the CSS icon only. */
.woocommerce-product-gallery__trigger img.emoji { display: none !important; }
.woocommerce-product-gallery__trigger { text-indent: -9999px; overflow: hidden; }
.offis-pdp__gallery .woocommerce-product-gallery__image img { border-radius: var(--wp--custom--radius--md); }
.offis-pdp__gallery .flex-control-thumbs { display: flex; gap: var(--wp--preset--spacing--10); margin-top: var(--wp--preset--spacing--20) !important; }
.offis-pdp__gallery .flex-control-thumbs li { width: calc(25% - 0.4rem) !important; float: none !important; }
.offis-pdp__gallery .flex-control-thumbs img { border-radius: var(--wp--custom--radius--sm); opacity: 0.6; }
.offis-pdp__gallery .flex-control-thumbs img.flex-active, .offis-pdp__gallery .flex-control-thumbs img:hover { opacity: 1; }

/* ═══════════════════════════════════════════════════════════════════════════
   Stage S4 — solutions pages and lead pages. Reference: §5.4–5.11.
   ═══════════════════════════════════════════════════════════════════════════ */
.offis-solution__hero h1 { margin: var(--wp--preset--spacing--10) 0 var(--wp--preset--spacing--20); }
.offis-solution__hero .wp-block-post-excerpt__excerpt { margin: 0; }
.offis-solution__hero .wp-block-post-featured-image img { width: 100%; }
.offis-solution__body h2 { margin-top: var(--wp--preset--spacing--50); }
.offis-solution-cards { gap: var(--wp--preset--spacing--40) !important; }
.offis-solution-card { position: relative; padding: var(--wp--preset--spacing--40); display: flex; flex-direction: column; transition: box-shadow var(--wp--custom--transition), transform var(--wp--custom--transition); }
.offis-solution-card:hover { box-shadow: var(--wp--preset--shadow--card); transform: translateY(-2px); }
.offis-solution-card__icon { color: var(--wp--preset--color--primary); margin-bottom: var(--wp--preset--spacing--30); }
.offis-solution-card h3 { margin: 0 0 var(--wp--preset--spacing--10); }
.offis-solution-card h3 a { color: inherit; text-decoration: none; }
.offis-solution-card h3 a::after { content: ""; position: absolute; inset: 0; }
.offis-solution-card p { margin: 0; }
.offis-solution-card__link { margin-top: auto !important; padding-top: var(--wp--preset--spacing--30); font-weight: 600; }
@media (max-width: 1023px) { .offis-solution-cards { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 600px) { .offis-solution-cards { grid-template-columns: 1fr !important; } }

/* Lead pages (consultation, quote, contact) */
.offis-lead__hero h1 { margin: var(--wp--preset--spacing--10) 0 var(--wp--preset--spacing--20); }
.offis-lead__hero p:last-child { margin-bottom: 0; }
.offis-lead__form .offis-enquiry-form { max-width: none; padding: var(--wp--preset--spacing--50); background: var(--wp--preset--color--background); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--lg); }
.offis-lead__steps { counter-reset: offis-lead; list-style: none; padding: 0; margin: var(--wp--preset--spacing--40) 0; }
.offis-lead__steps li { position: relative; padding-left: 3rem; margin-bottom: var(--wp--preset--spacing--30); }
.offis-lead__steps li::before { counter-increment: offis-lead; content: counter(offis-lead, decimal-leading-zero); position: absolute; left: 0; top: -0.1em; font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--h-3); line-height: 1; color: var(--wp--preset--color--primary); }
.offis-lead__steps strong { display: block; color: var(--wp--preset--color--secondary); }
.offis-lead__promise { padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40); border-left: 3px solid var(--wp--preset--color--primary); background: var(--wp--preset--color--primary-subtle); border-radius: 0 var(--wp--custom--radius--md) var(--wp--custom--radius--md) 0; }
.offis-lead__promise p { margin: 0; }
.offis-contact-cards { gap: var(--wp--preset--spacing--40) !important; }
.offis-contact-card { padding: var(--wp--preset--spacing--40); }
.offis-contact-card .is-style-eyebrow { margin-bottom: var(--wp--preset--spacing--10) !important; }
.offis-contact-card p { margin: 0 0 var(--wp--preset--spacing--10); }
.offis-contact-card p:last-child { margin-bottom: 0; }
@media (max-width: 781px) { .offis-contact-cards { grid-template-columns: 1fr !important; } }
.offis-enquiry-form select { width: 100%; box-sizing: border-box; padding: 0.7rem 0.85rem; font: inherit; color: var(--wp--preset--color--text); background: var(--wp--preset--color--background); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--sm); }
.offis-enquiry-form select:focus { border-color: var(--wp--preset--color--primary); }
.offis-enquiry-notice.is-success p:last-child { margin-bottom: 0; }

/* ═══════════════════════════════════════════════════════════════════════════
   Stage S5 — projects (case studies). Reference: §5.6–5.7.
   ═══════════════════════════════════════════════════════════════════════════ */
.offis-project-filters { margin-bottom: var(--wp--preset--spacing--50); }
.offis-project-filters .offis-chips { margin-bottom: var(--wp--preset--spacing--20); align-items: center; }
.offis-chips__label { font-size: var(--wp--preset--font-size--caption); font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--wp--preset--color--muted); margin-right: var(--wp--preset--spacing--10); }
.offis-project-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40); }
.offis-project-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.offis-project-cards--1 { grid-template-columns: 1fr; }
.offis-projects__query .offis-project-cards--grid { gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40) !important; }
.offis-project-card { position: relative; display: flex; flex-direction: column; margin: 0; }
.offis-project-card__image { display: block; overflow: hidden; border-radius: var(--wp--custom--radius--md); background: var(--wp--preset--color--surface); margin: 0; }
.offis-project-card__image img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 500ms cubic-bezier(0.2, 0, 0, 1); }
.offis-project-card:hover .offis-project-card__image img { transform: scale(1.03); }
.offis-project-card__body { padding-top: var(--wp--preset--spacing--30); }
.offis-project-card__body .is-style-eyebrow, .offis-project-card__body .wp-block-post-terms { margin-bottom: var(--wp--preset--spacing--10) !important; }
.offis-project-card__body .wp-block-post-terms a { color: var(--wp--preset--color--primary); text-decoration: none; }
.offis-project-card__title { margin: 0 0 var(--wp--preset--spacing--10); font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--h-3); line-height: 1.2; }
.offis-project-cards--1 .offis-project-card__title { font-size: var(--wp--preset--font-size--h-2); }
.offis-project-cards--3 .offis-project-card__title { font-size: var(--wp--preset--font-size--h-4); }
.offis-project-card__title a { color: var(--wp--preset--color--secondary); text-decoration: none; }
.offis-project-card__title a::after { content: ""; position: absolute; inset: 0; }
.offis-project-card:hover .offis-project-card__title a { color: var(--wp--preset--color--primary); }
.offis-project-card__scope, .offis-project-card .wp-block-post-excerpt__excerpt { margin: 0; color: var(--wp--preset--color--muted); }
.offis-project-card .wp-block-post-excerpt__more-text { display: none; }
.offis-project-cards--1 .offis-project-card { flex-direction: row; gap: var(--wp--preset--spacing--50); align-items: center; }
.offis-project-cards--1 .offis-project-card__image { flex: 0 0 46%; }
@media (max-width: 1023px) { .offis-project-cards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 781px) {
	.offis-project-cards, .offis-project-cards--3, .offis-projects__query .offis-project-cards--grid { grid-template-columns: 1fr !important; }
	.offis-project-cards--1 .offis-project-card { flex-direction: column; align-items: stretch; }
}

/* Single project */
.offis-project__hero-image img { width: 100%; max-height: 70vh; object-fit: cover; }
.offis-project__head h1 { margin: var(--wp--preset--spacing--10) 0 var(--wp--preset--spacing--20); }
.offis-project__head .wp-block-post-terms a { color: var(--wp--preset--color--primary); text-decoration: none; }
.offis-project__head .wp-block-post-excerpt__excerpt { margin: 0; }
.offis-project-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40); margin: 0; padding: var(--wp--preset--spacing--40) 0; border-top: 1px solid var(--wp--preset--color--border); border-bottom: 1px solid var(--wp--preset--color--border); }
.offis-project-facts dt { font-size: var(--wp--preset--font-size--caption); font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--wp--preset--color--muted); margin-bottom: 0.25rem; }
.offis-project-facts dd { margin: 0; font-weight: 600; color: var(--wp--preset--color--secondary); }
.offis-project__body h2 { margin-top: var(--wp--preset--spacing--50); }
.offis-project__body .wp-block-gallery { margin-top: var(--wp--preset--spacing--50); }
.offis-project__body .wp-block-gallery img { border-radius: var(--wp--custom--radius--md); }
.offis-project__products:has(.offis-section__head:empty), .offis-project__products:not(:has(.offis-product-list)) { display: none; }
.offis-project__quote:not(:has(blockquote)) { display: none; }
.offis-testimonial--single { border-left: 3px solid var(--wp--preset--color--primary) !important; padding-left: var(--wp--preset--spacing--40) !important; margin: 0; }
.offis-testimonial--single p { font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--h-3); line-height: 1.3; color: var(--wp--preset--color--secondary); margin: 0 0 var(--wp--preset--spacing--20); }
.offis-testimonial--single cite { font-style: normal; color: var(--wp--preset--color--muted); }
.offis-project__next { border-top: 1px solid var(--wp--preset--color--border); }
.offis-testimonials .offis-testimonial cite a { color: var(--wp--preset--color--on-dark); }

/* Dynamic featured project / strip (shortcode markup) */
.offis-featured-project__grid { display: grid; grid-template-columns: 55% 1fr; align-items: center; }
.offis-featured-project__image img { display: block; width: 100%; height: 100%; min-height: 420px; object-fit: cover; }
.offis-featured-project__copy { padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--60) var(--wp--preset--spacing--70) var(--wp--preset--spacing--70); }
.offis-featured-project__copy h2 { color: var(--wp--preset--color--on-dark); margin: var(--wp--preset--spacing--10) 0 var(--wp--preset--spacing--30); }
.offis-featured-project__copy .is-style-eyebrow { color: var(--wp--preset--color--on-dark-muted); }
.offis-featured-project__excerpt { color: var(--wp--preset--color--on-dark-muted); }
.offis-featured-project__copy .wp-block-buttons { margin-top: var(--wp--preset--spacing--40); }
.offis-featured-project__facts { color: var(--wp--preset--color--on-dark-subtle); font-size: var(--wp--preset--font-size--small); }
@media (max-width: 781px) {
	.offis-featured-project__grid { grid-template-columns: 1fr; }
	.offis-featured-project__image img { min-height: 260px; }
	.offis-featured-project__copy { padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40); }
}
.offis-project-strip__image img { width: 120px; height: 90px; object-fit: cover; border-radius: var(--wp--custom--radius--md); display: block; }
.offis-project-strip__text { font-weight: 600; margin: 0; }
.offis-pdp__projects, .offis-workspace__projects { padding-top: var(--wp--preset--spacing--60); }
.offis-pdp__projects:empty, .offis-workspace__projects:empty { display: none; }

/* ═══════════════════════════════════════════════════════════════════════════
   Stage S6 — Insights (articles). Reference: §5.12.
   ═══════════════════════════════════════════════════════════════════════════ */
.offis-insights-index .offis-chips { margin-bottom: var(--wp--preset--spacing--50); }
.offis-insights__featured { margin-bottom: var(--wp--preset--spacing--60); }
.offis-insight--featured { display: grid; grid-template-columns: 58% 1fr; gap: var(--wp--preset--spacing--60); align-items: center; }
.offis-insight--featured .offis-insight__body .wp-block-post-terms { margin-bottom: var(--wp--preset--spacing--10) !important; }
.offis-insight--featured .offis-insight__title { margin: 0 0 var(--wp--preset--spacing--20); }
.offis-insight--featured .wp-block-post-excerpt__excerpt { margin: 0 0 var(--wp--preset--spacing--20); }
.offis-insights__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40) !important; }
.offis-insight { position: relative; margin: 0; }
.offis-insight__image, .offis-insight .wp-block-post-featured-image { display: block; margin: 0 0 var(--wp--preset--spacing--20); overflow: hidden; border-radius: var(--wp--custom--radius--md); background: var(--wp--preset--color--surface); }
.offis-insight__image img, .offis-insight .wp-block-post-featured-image img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: transform 500ms cubic-bezier(0.2, 0, 0, 1); }
.offis-insight--featured .wp-block-post-featured-image img { aspect-ratio: 3 / 2; }
.offis-insight:hover img { transform: scale(1.03); }
.offis-insight .wp-block-post-terms, .offis-insight > .is-style-eyebrow { margin-bottom: var(--wp--preset--spacing--10) !important; }
.offis-insight .wp-block-post-terms a { color: var(--wp--preset--color--primary); text-decoration: none; }
.offis-insight__title { margin: 0 0 var(--wp--preset--spacing--10); font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--h-4); line-height: 1.25; }
.offis-insight__title a { color: var(--wp--preset--color--secondary); text-decoration: none; }
.offis-insight__title a::after { content: ""; position: absolute; inset: 0; }
.offis-insight:hover .offis-insight__title a { color: var(--wp--preset--color--primary); }
.offis-insight__meta, .offis-insight .wp-block-post-date { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.offis-insights__list .offis-pagination { margin-top: var(--wp--preset--spacing--60); }
@media (max-width: 1023px) { .offis-insights__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 781px) {
	.offis-insight--featured { grid-template-columns: 1fr; gap: var(--wp--preset--spacing--30); }
	.offis-insights__grid { grid-template-columns: 1fr; }
}

/* Article */
.offis-article__head h1 { margin: var(--wp--preset--spacing--10) 0 var(--wp--preset--spacing--30); }
.offis-article__head .wp-block-post-terms a { color: var(--wp--preset--color--primary); text-decoration: none; }
.offis-article__meta { gap: var(--wp--preset--spacing--20); color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.offis-article__meta .wp-block-post-date { margin: 0; }
.offis-article__meta .wp-block-post-date::after { content: "·"; margin-left: var(--wp--preset--spacing--20); }
.offis-article__image img { width: 100%; }
.offis-article__body { font-size: var(--wp--preset--font-size--lead); line-height: 1.7; }
.offis-article__body h2 { margin-top: var(--wp--preset--spacing--60); font-size: var(--wp--preset--font-size--h-3); }
.offis-article__body h3 { margin-top: var(--wp--preset--spacing--50); font-size: var(--wp--preset--font-size--h-4); }
.offis-article__body blockquote { margin: var(--wp--preset--spacing--50) 0; }
.offis-article__body blockquote p { font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--h-3); line-height: 1.3; color: var(--wp--preset--color--secondary); }
.offis-article__body figure { margin: var(--wp--preset--spacing--50) 0; }
.offis-article__body figcaption { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.offis-article__cta { gap: var(--wp--preset--spacing--30); font-size: var(--wp--preset--font-size--body); }
.offis-article__cta p { margin: 0; }
.offis-article__related:empty { display: none; }
.offis-newsletter-band .offis-newsletter { min-width: min(100%, 420px); }
.offis-newsletter-band .offis-newsletter input[type="email"] { color: var(--wp--preset--color--text); background: var(--wp--preset--color--background); border-color: var(--wp--preset--color--border); }
.offis-newsletter-band .offis-newsletter input::placeholder { color: var(--wp--preset--color--muted); }
.offis-newsletter-band .offis-newsletter__error { color: var(--wp--preset--color--primary); }
.offis-newsletter-band h2 { margin: 0 0 var(--wp--preset--spacing--10); }
.offis-newsletter-band p { margin: 0; }

/* ═══════════════════════════════════════════════════════════════════════════
   Stage S7 — cookie notice. Reference: §9.8.
   ═══════════════════════════════════════════════════════════════════════════ */
.offis-cookie {
	position: fixed;
	left: var(--wp--preset--spacing--40);
	right: var(--wp--preset--spacing--40);
	bottom: var(--wp--preset--spacing--40);
	z-index: 70;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	max-width: 760px;
	margin: 0 auto;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--lg);
	background: var(--wp--preset--color--background);
	box-shadow: var(--wp--preset--shadow--raised);
	font-size: var(--wp--preset--font-size--small);
}
.offis-cookie[hidden], .offis-cookie-done .offis-cookie { display: none; }
.offis-cookie p { margin: 0; flex: 1 1 320px; }
.offis-cookie__actions { display: flex; gap: var(--wp--preset--spacing--10); }
.offis-cookie__btn { font: inherit; font-weight: 600; padding: 0.55rem 1rem; border-radius: var(--wp--custom--radius--sm); cursor: pointer; }
.offis-cookie__btn--decline { background: transparent; border: 1px solid var(--wp--preset--color--border); color: var(--wp--preset--color--secondary); }
.offis-cookie__btn--decline:hover { border-color: var(--wp--preset--color--secondary); }
.offis-cookie__btn--accept { border: 0; }
body:has(.offis-cookie:not([hidden])) .offis-whatsapp { bottom: 7rem; }
.offis-cookie-done .offis-whatsapp { bottom: 1.25rem; }
@media (max-width: 600px) { .offis-cookie { left: var(--wp--preset--spacing--20); right: var(--wp--preset--spacing--20); bottom: var(--wp--preset--spacing--20); } }

/* Links: underlined in running text (theme.json); standalone links (nav, cards, chips, buttons, headings) are not. */
a { text-underline-offset: 0.15em; text-decoration-thickness: 1px; }
.wp-block-navigation a, .wp-block-button a, .offis-chips a, .offis-chip, .is-style-eyebrow a, h1 a, h2 a, h3 a, h4 a,
.offis-card a, .offis-tile a, .offis-product-list a, .offis-mega__products a, .offis-mega__list a, .offis-mega__heading a, .offis-mega__tile a,
.offis-project-card a, .offis-insight a, .offis-audience__card a, .offis-solution-card a, .offis-hotspot, .offis-hotspots__link a,
.offis-footer__links a, .offis-footer .wp-block-social-link a, .offis-header__cart-link, .wp-block-post-terms a,
.offis-pdp__eyebrow a, .wp-block-post-title a, .offis-pagination a, .offis-tabs__tab { text-decoration: none; }
.offis-footer__links a:hover { text-decoration: underline; }
.woocommerce-breadcrumb a, .offis-section__head > p > a { text-decoration: underline; }

/* CLS: the rotator's prev/next buttons are added by JS; keep them out of the flow. */
.offis-announcement { position: relative; padding: 0 1.75rem; justify-content: center; }
.offis-announcement__btn { position: absolute; top: 50%; transform: translateY(-50%); }
.offis-announcement__btn--prev { left: 0; transform: translateY(-50%) rotate(180deg); }
.offis-announcement__btn--prev svg { transform: none; }
.offis-announcement__btn--next { right: 0; }
