/*
 * Farkam theme styles that theme.json presets cannot express.
 * Loaded on the front end and in the editor (add_editor_style).
 * Colours, fonts and sizes come from var(--wp--preset--…) so Global Styles
 * changes flow through. Front-page hero styles live in hero.css.
 */

/* ==========================================================================
   1. Base
   ========================================================================== */

html {
	scroll-behavior: smooth;
}

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-wrap: break-word;
}

:where(h1, h2, h3, h4, h5, h6) {
	letter-spacing: 0;
}

/* Latin-only fragments (phone numbers, code, credits) stay LTR. */
[dir="ltr"],
.is-ltr {
	direction: ltr;
	unicode-bidi: isolate;
}

/* Focus ring: visible on navy and cream grounds. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
	box-shadow: 0 0 0 5px color-mix(in srgb, var(--wp--preset--color--base) 60%, transparent);
	border-radius: 4px;
}

/* Links on dark grounds hover to the gold accent. */
:where(
	.has-base-background-color,
	.has-base-deep-background-color,
	.has-surface-background-color
) a:where(:not(.wp-element-button)):hover {
	color: var(--wp--preset--color--accent);
}

.screen-reader-text:not(:focus):not(:active) {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* Skip link (added by core for block themes). */
.skip-link.screen-reader-text:focus {
	z-index: 100000;
	padding: 12px 20px;
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
	font-weight: 800;
}

/* Section labels and headings. */
.snrtech-eyebrow {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	line-height: 1.6;
}

.snrtech-section-head {
	max-width: 760px;
}

.snrtech-section-head > * {
	margin: 0;
}

.snrtech-section-title {
	line-height: 1.3;
}

/* "همه مقالات" style arrow link. */
.snrtech-arrow-link a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	color: var(--wp--preset--color--accent-ink);
	font-weight: 700;
}

.snrtech-arrow-link svg {
	flex: none;
}

/* Icons drawn with CSS masks: set --snrtech-icon on the element. */
.snrtech-icon-team { --snrtech-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M3 19c0-3.3 2.7-5.5 6-5.5s6 2.2 6 5.5'/%3E%3Cpath d='M16 5.2a3 3 0 0 1 0 5.6M18 13.8c1.8.6 3 2.4 3 5.2'/%3E%3C/svg%3E"); }
.snrtech-icon-mountain { --snrtech-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 20 L9 8 L13 14 L16 10 L22 20 Z'/%3E%3Cpath d='M7.6 10.4 L9 8 L10.6 10.4'/%3E%3C/svg%3E"); }
.snrtech-icon-document { --snrtech-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h9l4 4v14H6z'/%3E%3Cpath d='M15 3v4h4'/%3E%3Cpath d='M9 13l2 2 4-4'/%3E%3C/svg%3E"); }
.snrtech-icon-target { --snrtech-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Ccircle cx='12' cy='12' r='4.5'/%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3C/svg%3E"); }
.snrtech-icon-lock { --snrtech-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='10.5' width='14' height='10' rx='2'/%3E%3Cpath d='M8 10.5V7.5a4 4 0 0 1 8 0v3'/%3E%3Cpath d='M12 14.5v2.5'/%3E%3C/svg%3E"); }
.snrtech-icon-phone { --snrtech-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M6.6 3.5h3l1.5 4-2 1.3a11 11 0 0 0 6.1 6.1l1.3-2 4 1.5v3a2 2 0 0 1-2.2 2A17 17 0 0 1 4.5 5.7a2 2 0 0 1 2.1-2.2z'/%3E%3C/svg%3E"); }
.snrtech-icon-pin { --snrtech-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }

/* ==========================================================================
   2. Buttons
   ========================================================================== */

.wp-block-button__link.wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	box-sizing: border-box;
	text-align: center;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

/* Outline: a hairline pill in the current text colour. */
.wp-block-button.is-style-outline > .wp-block-button__link {
	padding-top: 12px;
	padding-bottom: 12px;
	border: 1px solid currentColor;
	background: transparent;
	color: var(--wp--preset--color--ink);
	font-weight: 700;
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--cream);
}

:where(.has-base-background-color, .has-base-deep-background-color, .has-surface-background-color) .wp-block-button.is-style-outline > .wp-block-button__link {
	border-color: color-mix(in srgb, var(--wp--preset--color--contrast) 40%, transparent);
	color: var(--wp--preset--color--contrast);
}

:where(.has-base-background-color, .has-base-deep-background-color, .has-surface-background-color) .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--on-accent);
}

/* Dark: navy pill on light sections. */
.wp-block-button.is-style-dark > .wp-block-button__link {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}

.wp-block-button.is-style-dark > .wp-block-button__link:hover {
	background: var(--wp--preset--color--slate);
	color: var(--wp--preset--color--contrast);
}

/* ==========================================================================
   3. Header
   ========================================================================== */

.snrtech-header__row {
	align-items: center;
}

.snrtech-brand {
	flex: 0 1 auto;
	min-width: 0;
	margin: 0;
}

.snrtech-brand a {
	display: flex;
	align-items: center;
	gap: 12px;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

.snrtech-brand a:hover {
	color: var(--wp--preset--color--contrast);
}

.snrtech-brand__logo {
	display: block;
	flex: none;
	width: 56px;
	height: 56px;
}

.snrtech-brand__text {
	display: flex;
	flex-direction: column;
	line-height: 1.2;
}

.snrtech-brand__name {
	font-size: 22px;
	font-weight: 900;
}

.snrtech-brand__latin {
	color: var(--wp--preset--color--muted);
	font-size: 11px;
	letter-spacing: 3px;
}

.snrtech-brand--footer .snrtech-brand__logo {
	width: 88px;
	height: 88px;
}

.snrtech-brand--footer .snrtech-brand__name {
	font-size: 24px;
}

.snrtech-header__actions {
	flex: none;
}

.snrtech-header__phone {
	margin: 0;
}

.snrtech-header__phone a {
	color: inherit;
}

.snrtech-header-cta .wp-block-button__link.wp-element-button {
	min-height: 44px;
}

/* Primary navigation. */
.snrtech-primary-nav {
	flex: 1 1 auto;
}

.snrtech-primary-nav .wp-block-navigation__container {
	row-gap: 4px;
}

.snrtech-primary-nav .wp-block-navigation-item__content {
	padding: 10px 0;
	color: var(--wp--preset--color--contrast);
}

.snrtech-primary-nav .wp-block-navigation-item__content:hover,
.snrtech-primary-nav .current-menu-item > .wp-block-navigation-item__content,
.snrtech-primary-nav .wp-block-navigation-item__content[aria-current="page"] {
	color: var(--wp--preset--color--accent);
}

/* Menu toggle and close buttons: 48px round touch targets. */
.snrtech-primary-nav .wp-block-navigation__responsive-container-open,
.snrtech-primary-nav .wp-block-navigation__responsive-container-close {
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 30%, transparent);
	border-radius: 999px;
	color: var(--wp--preset--color--contrast);
}

.snrtech-primary-nav .wp-block-navigation__responsive-container-close {
	top: 16px;
	left: 16px;
	right: auto;
}

/* Mobile overlay menu. */
.snrtech-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 24px 20px;
}

.snrtech-primary-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 72px;
}

.snrtech-primary-nav .is-menu-open .wp-block-navigation__container {
	width: 100%;
	align-items: stretch !important;
	gap: 0;
}

.snrtech-primary-nav .is-menu-open .wp-block-navigation-item {
	width: 100%;
	border-top: 1px solid var(--wp--preset--color--line);
}

.snrtech-primary-nav .is-menu-open .wp-block-navigation-item__content {
	display: flex;
	align-items: center;
	min-height: 56px;
	padding: 0;
	font-size: var(--wp--preset--font-size--large);
}

/* Below 900px the menu collapses to the toggle (core switches only at 600px). */
@media (min-width: 600px) and (max-width: 900px) {
	.snrtech-primary-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.snrtech-primary-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}

@media (max-width: 900px) {
	.snrtech-header__row {
		padding-top: 16px !important;
		padding-bottom: 16px !important;
	}

	.snrtech-primary-nav {
		flex: none;
		order: 3;
	}

	.snrtech-header__phone {
		display: none;
	}
}

@media (max-width: 480px) {
	.snrtech-header-cta.wp-block-buttons {
		display: none;
	}

	.snrtech-brand__logo {
		width: 44px;
		height: 44px;
	}
}

/* ==========================================================================
   4. Front-page sections
   ========================================================================== */

/* Areas strip. */
.snrtech-areas__title {
	flex: none;
	margin: 0;
	line-height: 1.6;
}

.snrtech-areas__list {
	flex: 1 1 600px;
}

.snrtech-area {
	margin: 0;
	padding: 10px 22px;
	border-radius: 999px;
	background: var(--wp--preset--color--chip);
	font-weight: 700;
	line-height: 1.6;
}

.snrtech-area--more {
	border: 1px dashed color-mix(in srgb, var(--wp--preset--color--contrast) 35%, transparent);
	background: transparent;
	color: var(--wp--preset--color--muted-light);
	font-weight: 400;
}

/* Services: tab bar. */
.snrtech-tabs {
	display: flex;
	flex-wrap: wrap;
	align-self: flex-start;
	gap: 10px;
	width: fit-content;
	max-width: 100%;
	box-sizing: border-box;
	padding: 8px;
	border-radius: 999px;
	background: var(--wp--preset--color--base);
}

.snrtech-services > .snrtech-tabs {
	margin-inline-start: 0 !important;
	margin-inline-end: auto !important;
}

.snrtech-tabs[hidden] {
	display: none;
}

.snrtech-tabs [role="tab"] {
	min-height: 48px;
	padding: 0 26px;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 25%, transparent);
	border-radius: 999px;
	background: transparent;
	color: var(--wp--preset--color--contrast);
	font-family: inherit;
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.snrtech-tabs [role="tab"]:hover {
	border-color: var(--wp--preset--color--accent);
}

.snrtech-tabs [role="tab"][aria-selected="true"] {
	border-color: var(--wp--preset--color--accent);
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
}

/* Services: stage card + panels. */
.snrtech-svc {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
	gap: 40px;
	align-items: stretch;
}

.snrtech-svc > * {
	margin: 0 !important;
}

.snrtech-svc__stage {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 460px;
	box-sizing: border-box;
	padding: 40px;
	overflow: hidden;
	border-radius: 28px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}

.snrtech-svc__rings {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.snrtech-svc__viewer {
	position: absolute;
	inset: 0;
	z-index: 1;
}

.snrtech-svc__viewer canvas {
	display: block;
	width: 100%;
	height: 100%;
	cursor: grab;
	touch-action: pan-y;
}

.snrtech-svc__viewer canvas.is-dragging {
	cursor: grabbing;
}

.snrtech-svc__num,
.snrtech-svc__caption,
.snrtech-svc__status {
	position: relative;
	z-index: 2;
	pointer-events: none;
}

.snrtech-svc__num {
	color: var(--wp--preset--color--accent);
	font-size: 120px;
	font-weight: 900;
	line-height: 1;
}

.snrtech-svc__caption {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.snrtech-svc__step {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.snrtech-svc__label {
	font-size: 26px;
	font-weight: 800;
}

.snrtech-svc__status {
	position: absolute;
	left: 40px;
	bottom: 40px;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--x-small);
}

/* Without the tab script the stage only frames the panels. */
.snrtech-services:not(.has-tabs) .snrtech-svc__num,
.snrtech-services:not(.has-tabs) .snrtech-svc__caption {
	visibility: hidden;
}

.snrtech-svc__panels {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 48px;
}

.snrtech-svc__panel {
	padding: 8px 0;
}

.snrtech-svc__panel[hidden] {
	display: none !important;
}

.snrtech-svc__panel > * {
	margin: 0;
}

.snrtech-svc__panel:focus-visible {
	outline-offset: 8px;
}

/* Check-mark list (service points). */
.snrtech-checklist {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.snrtech-checklist li {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--wp--preset--color--line-light);
	font-size: var(--wp--preset--font-size--body-lg);
	font-weight: 500;
}

.snrtech-checklist li::before {
	content: "";
	flex: none;
	width: 22px;
	height: 22px;
	margin-top: 5px;
	background: var(--wp--preset--color--accent-ink);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5 L10 17 L19 7'/%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='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5 L10 17 L19 7'/%3E%3C/svg%3E") center / contain no-repeat;
}

@media (max-width: 640px) {
	.snrtech-tabs {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
		width: 100%;
		border-radius: 24px;
	}

	.snrtech-tabs [role="tab"] {
		width: 100%;
		padding: 0 10px;
		font-size: var(--wp--preset--font-size--body-sm);
	}

	.snrtech-svc__stage {
		min-height: 340px;
		padding: 28px;
	}

	.snrtech-svc__num {
		font-size: 72px;
	}

	.snrtech-svc__status {
		left: 28px;
		bottom: 28px;
	}
}

/* Process steps. */
.snrtech-steps > * {
	margin: 0;
}

.snrtech-step {
	border-radius: 22px;
}

.snrtech-step > * {
	margin: 0;
}

.snrtech-step__num {
	font-weight: 800;
}

.snrtech-step__title {
	font-size: var(--wp--preset--font-size--xx-large) !important;
	line-height: 1.5;
}

/* Contour lines on dark sections (why us, 404). */
.snrtech-contours {
	position: relative;
	overflow: hidden;
}

.snrtech-contours::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 900' preserveAspectRatio='xMidYMid slice'%3E%3Cg fill='none' stroke='rgba(242,239,232,0.07)' stroke-width='1.2'%3E%3Cpath d='M-50 200 C200 120 380 260 620 180 C860 100 1040 240 1500 150'/%3E%3Cpath d='M-50 260 C200 180 380 320 620 240 C860 160 1040 300 1500 210'/%3E%3Cpath d='M-50 320 C200 240 380 380 620 300 C860 220 1040 360 1500 270'/%3E%3Cpath d='M-50 640 C220 560 420 700 700 610 C960 530 1140 680 1500 590'/%3E%3Cpath d='M-50 700 C220 620 420 760 700 670 C960 590 1140 740 1500 650'/%3E%3Cpath d='M-50 760 C220 680 420 820 700 730 C960 650 1140 800 1500 710'/%3E%3Cellipse cx='1180' cy='430' rx='180' ry='110'/%3E%3Cellipse cx='1180' cy='430' rx='120' ry='70'/%3E%3Cellipse cx='1180' cy='430' rx='60' ry='34'/%3E%3C/g%3E%3C/svg%3E") center / cover no-repeat;
	pointer-events: none;
}

.snrtech-contours > * {
	position: relative;
}

/* Why us: feature cards and figures. */
.snrtech-features > *,
.snrtech-stats > * {
	margin: 0;
}

.snrtech-feature {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
	border-radius: 22px;
	background: color-mix(in srgb, var(--wp--preset--color--contrast) 5%, transparent);
}

.snrtech-feature::before,
.snrtech-visit__card-title::before {
	content: "";
	flex: none;
	width: 36px;
	height: 36px;
	background: var(--wp--preset--color--accent);
	-webkit-mask: var(--snrtech-icon) center / contain no-repeat;
	mask: var(--snrtech-icon) center / contain no-repeat;
}

.snrtech-feature > * {
	margin: 0;
}

.snrtech-feature h3 {
	line-height: 1.5;
}

.snrtech-stat > * {
	margin: 0;
}

.snrtech-stat__value {
	font-size: clamp(40px, 4vw, 56px);
	font-weight: 900;
	line-height: 1.2;
}

/* Visit. */
.snrtech-visit__grid {
	align-items: center;
}

.snrtech-visit__grid > * {
	margin: 0;
}

.snrtech-visit__card {
	border-radius: 28px;
}

.snrtech-visit__card > * {
	margin: 0;
}

.snrtech-visit__card-title {
	display: flex;
	align-items: center;
	gap: 14px;
}

.snrtech-visit__card-title::before {
	width: 40px;
	height: 40px;
}

.snrtech-visit__step {
	padding: 18px 0;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 14%, transparent);
}

.snrtech-visit__step > *,
.snrtech-visit__step p {
	margin: 0;
}

.snrtech-visit__num {
	font-weight: 900;
}

/* Testimonial quote (core/quote, style "testimonial"). */
.wp-block-quote.is-style-testimonial {
	display: flex;
	flex-direction: column;
	gap: 28px;
	margin-bottom: 0;
	padding: clamp(32px, 5vw, 56px);
	border: 0;
	border-radius: 28px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}

.wp-block-quote.is-style-testimonial::before {
	content: "";
	width: 44px;
	height: 44px;
	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='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M10 7H6a2 2 0 0 0-2 2v4h5v5H4M20 7h-4a2 2 0 0 0-2 2v4h5v5h-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='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M10 7H6a2 2 0 0 0-2 2v4h5v5H4M20 7h-4a2 2 0 0 0-2 2v4h5v5h-5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wp-block-quote.is-style-testimonial p {
	max-width: 980px;
	margin: 0;
	font-size: clamp(20px, 2.2vw, 28px);
	font-weight: 500;
	line-height: 1.8;
}

.wp-block-quote.is-style-testimonial cite {
	position: relative;
	display: block;
	min-height: 52px;
	padding-inline-start: 68px;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	font-style: normal;
	line-height: 1.6;
}

.wp-block-quote.is-style-testimonial cite::first-line {
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 800;
}

.wp-block-quote.is-style-testimonial cite::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	top: 0;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--wp--preset--color--slate);
}

/* Call to action band with hills. */
.snrtech-cta {
	position: relative;
	overflow: hidden;
}

.snrtech-cta > :not(.snrtech-cta__hills) {
	position: relative;
	z-index: 1;
}

.snrtech-cta h2 {
	line-height: 1.3;
}

.snrtech-cta p {
	max-width: 620px;
	margin-inline: auto;
}

.snrtech-cta__hills {
	position: absolute;
	inset-inline: 0;
	bottom: 0;
	display: block;
	width: 100%;
	max-width: none !important;
	height: 200px;
	margin: 0 !important;
}

/* ==========================================================================
   5. Post cards
   ========================================================================== */

.snrtech-post-grid {
	margin: 0;
	padding: 0;
	list-style: none;
}

.snrtech-card {
	position: relative;
	height: 100%;
	margin: 0;
	color: var(--wp--preset--color--ink);
}

.snrtech-card > *,
.snrtech-card__body > * {
	margin: 0;
}

.snrtech-card--boxed {
	box-sizing: border-box;
	padding: 14px 14px 24px;
	border-radius: 22px;
	background: var(--wp--preset--color--cream-light);
}

.snrtech-card--boxed .snrtech-card__body {
	padding: 0 10px;
}

.snrtech-card__media {
	position: relative;
	overflow: hidden;
	border-radius: 22px;
}

.snrtech-card--boxed .snrtech-card__media {
	border-radius: 16px;
}

.snrtech-card__media > * {
	margin: 0;
}

.snrtech-card__media img {
	transition: transform 0.4s ease;
}

.snrtech-card:hover .snrtech-card__media img {
	transform: scale(1.03);
}

/* Category chip over the image. */
.snrtech-card__cat {
	position: absolute;
	top: 16px;
	inset-inline-start: 16px;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.8;
}

.snrtech-card__cat a {
	padding: 2px 12px;
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}

.snrtech-card__cat a:hover {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
}

.snrtech-card__cat .wp-block-post-terms__separator {
	display: none;
}

.snrtech-card__meta > * {
	margin: 0;
}

.snrtech-card__title {
	line-height: 1.5;
}

.snrtech-card__title a {
	color: inherit;
}

/* The title link covers the whole card. */
.snrtech-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.snrtech-card__title a:hover {
	color: var(--wp--preset--color--accent-ink);
}

.snrtech-card__excerpt .wp-block-post-excerpt__excerpt {
	margin: 0;
}

/* Featured-image fallback (inc/front-page.php): a sand tone with contour lines. */
.snrtech-thumb--empty {
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 200' preserveAspectRatio='xMidYMid slice'%3E%3Cg fill='none' stroke='rgba(14,26,36,0.18)' stroke-width='1.2'%3E%3Cpath d='M-10 150 C60 120 110 160 170 130 C230 100 260 125 330 110'/%3E%3Cpath d='M-10 170 C60 140 110 180 170 150 C230 120 260 145 330 130'/%3E%3Cpath d='M-10 130 C60 100 110 140 170 110 C230 80 260 105 330 90'/%3E%3Cellipse cx='240' cy='60' rx='50' ry='28'/%3E%3Cellipse cx='240' cy='60' rx='26' ry='14'/%3E%3C/g%3E%3C/svg%3E") center / cover no-repeat,
		#cfc7b6;
}

.wp-block-post:nth-child(4n + 2) .snrtech-thumb--empty { background-color: #bfc6c9; }
.wp-block-post:nth-child(4n + 3) .snrtech-thumb--empty { background-color: #d6cdbb; }
.wp-block-post:nth-child(4n + 4) .snrtech-thumb--empty { background-color: #c9cfc4; }

/* ==========================================================================
   6. Footer
   ========================================================================== */

.snrtech-footer__grid > * {
	margin: 0;
}

.snrtech-footer__col > *,
.snrtech-footer__grid p {
	margin: 0;
}

.snrtech-footer__heading {
	margin: 0 0 6px !important;
}

.snrtech-footer a {
	color: inherit;
}

.snrtech-footer__bar p {
	margin: 0;
}

.snrtech-footer__bar a {
	color: var(--wp--preset--color--contrast);
}

.snrtech-footer__credits {
	margin: 0;
	color: var(--wp--preset--color--muted);
	font-size: 11px !important;
	line-height: 1.8;
	text-align: left;
}

.snrtech-footer__credits a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ==========================================================================
   7. Page heroes, listings, theme blocks
   ========================================================================== */

.snrtech-page-hero > * {
	margin-block: 0;
}

.snrtech-page-hero__title {
	max-width: 820px;
	line-height: 1.35;
}

.snrtech-page-hero__intro {
	max-width: 640px;
}

.snrtech-page-hero__intro p {
	margin: 0;
}

.snrtech-page-hero .wp-block-post-excerpt__excerpt {
	margin: 0;
}

/* Breadcrumbs (snrtech/breadcrumbs). */
.wp-block-snrtech-breadcrumbs {
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.8;
	color: var(--wp--preset--color--muted);
}

.wp-block-snrtech-breadcrumbs__list {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.wp-block-snrtech-breadcrumbs__item {
	display: inline-flex;
	gap: 8px;
	margin: 0;
}

.wp-block-snrtech-breadcrumbs a {
	color: var(--wp--preset--color--muted-light);
}

.wp-block-snrtech-breadcrumbs a:hover,
.wp-block-snrtech-breadcrumbs__current {
	color: var(--wp--preset--color--accent);
}

/* Copy link (snrtech/copy-link). */
.wp-block-snrtech-copy-link {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 16px;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}

.wp-block-snrtech-copy-link__button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	margin: 0;
	padding: 0 18px;
	border: 1px solid var(--wp--preset--color--line-strong);
	border-radius: 999px;
	background: none;
	color: var(--wp--preset--color--ink);
	font: inherit;
	cursor: pointer;
}

.wp-block-snrtech-copy-link__button:hover {
	border-color: var(--wp--preset--color--ink);
}

.wp-block-snrtech-copy-link__status {
	color: var(--wp--preset--color--accent-ink);
}

.wp-block-snrtech-copy-link__status:empty {
	display: none;
}

/* Category chips: core/categories, block style "chips". */
.wp-block-categories.is-style-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.wp-block-categories.is-style-chips .cat-item {
	margin: 0;
}

.wp-block-categories.is-style-chips .cat-item a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	box-sizing: border-box;
	padding: 0 20px;
	border: 1px solid var(--wp--preset--color--line-strong);
	border-radius: 999px;
	color: var(--wp--preset--color--ink);
	font-size: var(--wp--preset--font-size--body-sm);
	font-weight: 700;
	line-height: 1.4;
}

.wp-block-categories.is-style-chips .cat-item a:hover {
	border-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--ink);
}

.wp-block-categories.is-style-chips .current-cat > a,
.wp-block-categories.is-style-chips .current-cat > a:hover {
	border-color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--cream);
}

/* Pagination: round buttons. */
.wp-block-query-pagination.snrtech-pagination {
	justify-content: center;
	gap: 8px;
	margin-top: 40px;
}

.snrtech-pagination .wp-block-query-pagination-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
}

.snrtech-pagination .page-numbers,
.wp-block-query-pagination.snrtech-pagination > .wp-block-query-pagination-previous,
.wp-block-query-pagination.snrtech-pagination > .wp-block-query-pagination-next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 48px;
	min-height: 48px;
	box-sizing: border-box;
	margin: 0;
	border: 1px solid var(--wp--preset--color--line-light);
	border-radius: 999px;
	color: var(--wp--preset--color--ink);
	font-weight: 700;
	line-height: 1;
}

.wp-block-query-pagination.snrtech-pagination > .wp-block-query-pagination-previous,
.wp-block-query-pagination.snrtech-pagination > .wp-block-query-pagination-next {
	padding: 0 20px;
}

.snrtech-pagination a.page-numbers:hover,
.wp-block-query-pagination.snrtech-pagination > a:hover {
	border-color: var(--wp--preset--color--ink);
}

.snrtech-pagination .page-numbers.current {
	border-color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--cream);
}

.snrtech-pagination .page-numbers.dots {
	min-width: 24px;
	border-color: transparent;
}

/* Featured (sticky) post on the blog index. */
.snrtech-featured .wp-block-post-template {
	margin: 0;
	padding: 0;
	list-style: none;
}

.snrtech-featured__card {
	position: relative;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr));
	margin: 0;
	padding: 0;
	overflow: hidden;
	border-radius: 28px;
}

.snrtech-featured__media {
	position: relative;
	min-height: 300px;
	margin: 0;
	background: var(--wp--preset--color--slate);
}

.snrtech-featured__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.snrtech-featured__media.snrtech-thumb--empty {
	aspect-ratio: auto !important;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 400' preserveAspectRatio='xMidYMid slice'%3E%3Cg fill='none' stroke='rgba(200,162,102,0.35)' stroke-width='1.4'%3E%3Cpath d='M-20 300 C120 240 220 320 340 260 C460 200 520 250 620 220'/%3E%3Cpath d='M-20 340 C120 280 220 360 340 300 C460 240 520 290 620 260'/%3E%3Cpath d='M-20 260 C120 200 220 280 340 220 C460 160 520 210 620 180'/%3E%3C/g%3E%3Cpath d='M0 400 L0 330 L180 250 L300 120 L330 100 L360 122 L470 240 L600 300 L600 400 Z' fill='%23132638'/%3E%3Cpath d='M270 150 L300 120 L330 100 L360 122 L392 156 L370 150 L350 166 L330 148 L310 166 L290 150 Z' fill='%23EDEAE2'/%3E%3C/svg%3E") center bottom / cover no-repeat,
		var(--wp--preset--color--slate);
}

.snrtech-featured__body > * {
	margin: 0;
}

.snrtech-featured__meta > * {
	margin: 0;
}

.snrtech-featured__cat a {
	padding: 2px 12px;
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
	font-weight: 700;
}

.snrtech-featured__cat .wp-block-post-terms__separator {
	display: none;
}

.snrtech-featured__title {
	line-height: 1.45;
}

.snrtech-featured__title a {
	color: inherit;
}

.snrtech-featured__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.snrtech-featured__cat {
	position: relative;
	z-index: 2;
}

.snrtech-featured .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.wp-block-read-more.snrtech-read-more {
	align-self: flex-start;
	color: var(--wp--preset--color--accent);
	font-weight: 700;
}

.wp-block-read-more.snrtech-read-more:hover {
	color: var(--wp--preset--color--contrast);
}

/* Search form (core/search, class snrtech-search) on dark heroes. */
.wp-block-search.snrtech-search {
	width: 100%;
	max-width: 480px;
	margin: 0;
}

.snrtech-search .wp-block-search__inside-wrapper {
	padding: 4px;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 25%, transparent);
	border-radius: 999px;
	background: color-mix(in srgb, var(--wp--preset--color--contrast) 6%, transparent);
}

.snrtech-search .wp-block-search__input {
	min-width: 0;
	min-height: 48px;
	margin: 0;
	padding: 0 18px;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--contrast);
	font-family: inherit;
	font-size: var(--wp--preset--font-size--body-sm);
}

.snrtech-search .wp-block-search__input::placeholder {
	color: var(--wp--preset--color--muted);
	opacity: 1;
}

.snrtech-search .wp-block-search__button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
}

.snrtech-search .wp-block-search__button svg {
	width: 22px;
	height: 22px;
	fill: currentColor;
}

/* Search inside light sections (no-results message). */
:where(.has-cream-background-color, .has-sand-background-color) .snrtech-search .wp-block-search__inside-wrapper {
	border-color: var(--wp--preset--color--line-strong);
	background: var(--wp--preset--color--cream-light);
}

:where(.has-cream-background-color, .has-sand-background-color) .snrtech-search .wp-block-search__input {
	color: var(--wp--preset--color--ink);
}

:where(.has-cream-background-color, .has-sand-background-color) .snrtech-search .wp-block-search__input::placeholder {
	color: var(--wp--preset--color--ink-muted);
}

.snrtech-no-results > * {
	margin: 0;
}

/* ==========================================================================
   8. Single post
   ========================================================================== */

.snrtech-post-header > * {
	margin-block: 0;
}

.snrtech-post-header__title {
	line-height: 1.4;
}

.snrtech-post-header__meta {
	align-items: center;
}

.snrtech-post-header__meta > * {
	margin: 0;
}

.snrtech-byline {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--wp--preset--color--contrast);
	font-weight: 700;
}

.snrtech-byline::before {
	content: "";
	width: 36px;
	height: 36px;
	background: url("../images/logo.webp") center / contain no-repeat;
}

/* Featured image hangs from the dark header with rounded bottom corners. */
.snrtech-single__media.wp-block-post-featured-image {
	margin-top: 0 !important;
	overflow: hidden;
	border-radius: 0 0 28px 28px;
	background: var(--wp--preset--color--slate);
}

.snrtech-single__media.snrtech-thumb--empty {
	aspect-ratio: 21 / 9 !important;
	min-height: 220px;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1080 460' preserveAspectRatio='xMidYMax slice'%3E%3Crect width='1080' height='460' fill='%230E1A24'/%3E%3Cg fill='none' stroke='rgba(200,162,102,0.28)' stroke-width='1.3'%3E%3Cpath d='M-20 120 C180 70 340 160 540 100 C740 40 880 130 1100 80'/%3E%3Cpath d='M-20 160 C180 110 340 200 540 140 C740 80 880 170 1100 120'/%3E%3C/g%3E%3Cpath d='M0 460 L0 360 L220 300 L420 220 L520 120 L560 96 L600 120 L720 240 L900 300 L1080 280 L1080 460 Z' fill='%231D3247'/%3E%3Cpath d='M488 152 L520 120 L560 96 L600 120 L634 156 L612 150 L592 166 L570 148 L550 168 L528 152 L508 162 Z' fill='%23EDEAE2'/%3E%3Cpath d='M0 460 L0 410 L300 380 L620 420 L900 390 L1080 410 L1080 460 Z' fill='%23132638'/%3E%3C/svg%3E") center bottom / cover no-repeat,
		var(--wp--preset--color--base);
}

.snrtech-single__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Long-form content (post content). */
.prose {
	padding-top: var(--wp--preset--spacing--70);
	padding-bottom: 0;
	color: var(--wp--preset--color--ink-body);
	font-size: 18px;
	line-height: 2.1;
}

.prose > p:first-child {
	color: var(--wp--preset--color--ink);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 500;
	line-height: 2;
}

.prose :where(h2, h3, h4) {
	color: var(--wp--preset--color--ink);
	line-height: 1.5;
}

.prose > :where(h2, h3, h4) {
	margin-block-start: 48px;
}

.prose h2 {
	font-size: var(--wp--preset--font-size--heading-sm);
	font-weight: 400;
}

.prose h3 {
	font-size: var(--wp--preset--font-size--xx-large);
}

.prose :where(ul, ol) {
	padding-inline-start: 24px;
}

.prose li + li {
	margin-top: 8px;
}

.prose a:where(:not(.wp-element-button)) {
	color: var(--wp--preset--color--accent-ink);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 5px;
}

.prose a:where(:not(.wp-element-button)):hover {
	color: var(--wp--preset--color--ink);
}

.prose .wp-block-quote {
	margin-block: 40px;
	padding: 8px 0;
	padding-inline-start: 28px;
	border: 0;
	border-inline-start: 3px solid var(--wp--preset--color--accent);
	color: var(--wp--preset--color--ink);
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 700;
	line-height: 1.8;
}

.prose .wp-block-quote > * {
	margin: 0;
}

.prose .wp-block-quote cite {
	display: block;
	margin-top: 12px;
	color: var(--wp--preset--color--ink-muted);
	font-size: var(--wp--preset--font-size--body-sm);
	font-style: normal;
	font-weight: 500;
}

/* Code stays left-to-right and scrolls inside its own box. */
.prose pre,
.prose .wp-block-code {
	max-width: 100%;
	overflow-x: auto;
	direction: ltr;
	text-align: left;
	border: 0;
	border-radius: 14px;
}

.prose pre code,
.prose .wp-block-code code {
	display: block;
	direction: ltr;
	white-space: pre;
	overflow-wrap: normal;
	word-break: normal;
	font-family: var(--wp--preset--font-family--jetbrains-mono);
}

.prose :where(p, li) code {
	padding: 2px 6px;
	background: var(--wp--preset--color--sand);
	font-family: var(--wp--preset--font-family--jetbrains-mono);
	font-size: 0.85em;
	direction: ltr;
	unicode-bidi: isolate;
}

/* Tags + copy link row. */
.snrtech-single__after {
	padding-bottom: var(--wp--preset--spacing--70);
}

.snrtech-single__after > * {
	margin: 0;
}

.snrtech-share-row {
	align-items: center;
	padding: 24px 0;
	border-top: 1px solid var(--wp--preset--color--line-light);
	border-bottom: 1px solid var(--wp--preset--color--line-light);
}

.snrtech-share-row > * {
	margin: 0;
}

/* Tag chips under the article. */
.snrtech-tag-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
}

.snrtech-tag-chips a {
	padding: 6px 16px;
	border: 1px solid var(--wp--preset--color--line-strong);
	border-radius: 999px;
	color: var(--wp--preset--color--ink);
}

.snrtech-tag-chips a:hover {
	border-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--ink);
}

.snrtech-tag-chips .wp-block-post-terms__separator {
	display: none;
}

/* Article call to action. */
.snrtech-post-cta {
	align-items: center;
	border-radius: 28px;
}

.snrtech-post-cta__text {
	flex: 1 1 320px;
}

.snrtech-post-cta__text > *,
.snrtech-post-cta > * {
	margin: 0;
}

/* Related posts header. */
.snrtech-related h2 {
	margin: 0;
}

/* ==========================================================================
   9. Pages: page body, contact, 404
   ========================================================================== */

.snrtech-page-intro {
	margin: 0;
}

.snrtech-page-body {
	padding-top: var(--wp--preset--spacing--80);
	padding-bottom: var(--wp--preset--spacing--80);
	font-size: 18px;
	line-height: 2.1;
}

.snrtech-page-body a:where(:not(.wp-element-button)) {
	color: var(--wp--preset--color--accent-ink);
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* Contact cards. */
.snrtech-contact__grid {
	align-items: stretch;
}

.snrtech-contact__grid > * {
	margin: 0;
}

.snrtech-contact-card,
.snrtech-contact-directions {
	border-radius: 22px;
}

.snrtech-contact-card {
	position: relative;
	padding-inline-start: 78px !important;
}

.snrtech-contact-card::before {
	content: "";
	position: absolute;
	top: 28px;
	inset-inline-start: 28px;
	width: 32px;
	height: 32px;
	background: var(--wp--preset--color--accent-ink);
	-webkit-mask: var(--snrtech-icon) center / contain no-repeat;
	mask: var(--snrtech-icon) center / contain no-repeat;
}

.snrtech-contact-card > *,
.snrtech-contact-directions > * {
	margin: 0;
}

.snrtech-contact-card__value a {
	color: inherit;
}

.snrtech-contact-card__value a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.snrtech-contact-card:has(a:hover) {
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--line-strong);
}

/* Embedded Google Map; the illustration shows while the iframe loads. */
.snrtech-map-card {
	position: relative;
	display: block;
	min-height: 480px;
	overflow: hidden;
	border-radius: 28px;
	background: var(--wp--preset--color--sand);
}

.snrtech-map-card svg,
.snrtech-map-card iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.snrtech-map-card iframe {
	border: 0;
}

@media (max-width: 640px) {
	.snrtech-map-card {
		min-height: 320px;
	}
}

/* 404. */
.snrtech-not-found .wp-block-group > * {
	margin: 0;
}

/* ==========================================================================
   10. Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
	}
}

/* Note box inside articles (a Group with the class snrtech-note). */
.prose .snrtech-note {
	margin-block: 32px;
	font-size: var(--wp--preset--font-size--body-lg);
}

.prose .snrtech-note > * {
	margin-block: 0 10px;
}

.prose .snrtech-note > :last-child {
	margin-bottom: 0;
	color: var(--wp--preset--color--ink-muted);
	font-size: var(--wp--preset--font-size--body-sm);
}

/* Header, main and footer sit flush (no root block gap between them). */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}
