/* ==========================================================================
   HanMi Precision — industrial B2B design system
   Graphite / paper white / industrial orange · Archivo + Inter + IBM Plex Mono
   Breakpoints: 1080 / 960 / 768 / 520
   ========================================================================== */

:root {
	/* Colors */
	--rf-ink: #14161a;
	--rf-ink-2: #1b1e24;
	--rf-graphite: #2f353a;
	--rf-steel: #5c6670;
	--rf-mist: #e8e9eb;
	--rf-paper: #f6f6f4;
	--rf-line: #d9dbde;
	--rf-line-dark: rgba(255, 255, 255, 0.14);
	--rf-accent: #d9622b;
	--rf-accent-deep: #b34e1d;
	--rf-accent-soft: rgba(217, 98, 43, 0.08);
	--rf-white: #ffffff;

	/* Typography */
	--rf-font-display: "Archivo", "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", sans-serif;
	--rf-font-body: "Inter", "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", sans-serif;
	--rf-font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, "PingFang SC", monospace;

	/* Type scale */
	--rf-fs-hero: clamp(2.4rem, 5.6vw, 4.6rem);
	--rf-fs-h2: clamp(1.7rem, 3.2vw, 2.6rem);
	--rf-fs-h3: clamp(1.15rem, 1.8vw, 1.4rem);
	--rf-fs-body: 1rem;
	--rf-fs-sm: 0.875rem;
	--rf-fs-xs: 0.78rem;

	/* Spacing */
	--rf-section-pad: clamp(72px, 9vw, 128px);
	--rf-container: 1280px;
	--rf-gutter: clamp(20px, 4vw, 48px);

	/* Misc */
	--rf-radius: 3px;
	--rf-header-h: 76px;
	--rf-topbar-h: 40px;
	--rf-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* ---------- Reset / Base ---------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--rf-font-body);
	font-size: var(--rf-fs-body);
	line-height: 1.65;
	color: var(--rf-graphite);
	background: var(--rf-paper);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

img, svg, iframe { max-width: 100%; display: block; }
img { height: auto; }

h1, h2, h3, h4 {
	font-family: var(--rf-font-display);
	color: var(--rf-ink);
	line-height: 1.12;
	letter-spacing: -0.02em;
	margin: 0 0 0.6em;
	font-weight: 700;
}

p { margin: 0 0 1.2em; }

a { color: var(--rf-accent-deep); text-decoration: none; transition: color 0.25s var(--rf-ease); }
a:hover { color: var(--rf-accent); }

ul, ol { margin: 0; padding: 0; }
li { list-style: none; }

::selection { background: var(--rf-accent); color: #fff; }

/* ---------- Utilities ---------- */
.rf-container {
	width: 100%;
	max-width: var(--rf-container);
	margin: 0 auto;
	padding: 0 var(--rf-gutter);
}

.rf-mono {
	font-family: var(--rf-font-mono);
	font-size: 0.82em;
	letter-spacing: 0.04em;
}

.rf-sr-only, .screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.rf-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 10000;
	background: var(--rf-ink);
	color: #fff;
	padding: 12px 20px;
}
.rf-skip-link:focus { left: 8px; top: 8px; }

:focus-visible {
	outline: 2px solid var(--rf-accent);
	outline-offset: 3px;
}

/* Scroll reveal */
.reveal {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity 0.7s var(--rf-ease), transform 0.7s var(--rf-ease);
	transition-delay: calc(var(--rf-delay, 0) * 90ms);
}
.reveal[data-delay="1"] { --rf-delay: 1; }
.reveal[data-delay="2"] { --rf-delay: 2; }
.reveal[data-delay="3"] { --rf-delay: 3; }
.reveal[data-delay="4"] { --rf-delay: 4; }
.reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.reveal { opacity: 1; transform: none; transition: none; }
	.rf-form__submit.is-loading::after { animation: none; }
}

/* ---------- Buttons ---------- */
.rf-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.55em;
	font-family: var(--rf-font-display);
	font-weight: 600;
	font-size: 0.9rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 0.85em 1.6em;
	border-radius: var(--rf-radius);
	border: 1.5px solid transparent;
	cursor: pointer;
	transition: all 0.25s var(--rf-ease);
	text-decoration: none;
	line-height: 1;
}
.rf-btn .rf-icon { flex: none; transition: transform 0.25s var(--rf-ease); }
.rf-btn:hover .rf-icon { transform: translateX(3px); }

.rf-btn--accent { background: var(--rf-accent); color: #fff; border-color: var(--rf-accent); }
.rf-btn--accent:hover { background: var(--rf-accent-deep); border-color: var(--rf-accent-deep); color: #fff; }

.rf-btn--ghost { background: rgba(255, 255, 255, 0.06); color: #fff; border-color: rgba(255, 255, 255, 0.45); backdrop-filter: blur(4px); }
.rf-btn--ghost:hover { border-color: #fff; color: #fff; background: rgba(255, 255, 255, 0.12); }

.rf-btn--outline { background: transparent; color: var(--rf-ink); border-color: var(--rf-line); }
.rf-btn--outline:hover { border-color: var(--rf-accent); color: var(--rf-accent-deep); }

.rf-btn--lg { padding: 1.05em 2em; font-size: 0.95rem; }

/* ---------- Top contact bar + header ---------- */
.rf-header {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 900;
}
.rf-topbar {
	height: var(--rf-topbar-h);
	background: rgba(10, 11, 13, 0.92);
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	overflow: hidden;
	transition: height 0.35s var(--rf-ease);
}
.rf-topbar__inner {
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
.rf-topbar__contact { display: flex; align-items: center; gap: 22px; min-width: 0; }
.rf-topbar__item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--rf-font-mono);
	font-size: 0.74rem;
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.72);
	white-space: nowrap;
}
.rf-topbar__item:hover { color: #fff; }
.rf-topbar__item .rf-icon { color: var(--rf-accent); flex: none; }
.rf-topbar__social { display: flex; align-items: center; gap: 10px; flex: none; }
/* Shared social icon button - identical look in topbar and footer */
.rf-social-link {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 99px;
	background: rgba(255, 255, 255, 0.05);
	color: rgba(255, 255, 255, 0.78);
	transition: all 0.25s var(--rf-ease);
}
.rf-social-link:hover {
	background: var(--rf-accent);
	border-color: var(--rf-accent);
	color: #fff;
}
.rf-social-link .rf-icon { display: block; }
@media (max-width: 768px) {
	/* Comfortable touch target on phones */
	.rf-social-link { width: 44px; height: 44px; }
}
.rf-header__inner {
	height: var(--rf-header-h);
	background: linear-gradient(180deg, rgba(10, 11, 13, 0.82), rgba(10, 11, 13, 0.55) 70%, transparent);
	transition: background 0.35s var(--rf-ease), box-shadow 0.35s var(--rf-ease), height 0.35s var(--rf-ease);
}
.rf-header.is-scrolled .rf-header__inner,
.rf-header.is-solid .rf-header__inner {
	background: rgba(16, 18, 22, 0.94);
	backdrop-filter: blur(12px);
	box-shadow: 0 1px 0 var(--rf-line-dark);
	height: 64px;
}
.rf-header.is-scrolled .rf-topbar,
.rf-header.is-solid .rf-topbar { height: 0; border-bottom-color: transparent; }
.rf-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}
.rf-header__brand { display: flex; align-items: center; flex: none; }
.rf-header__logo { width: 200px; height: auto; }

.rf-header__nav { flex: 1; display: flex; justify-content: center; }
.rf-nav { display: flex; align-items: center; gap: clamp(18px, 2.6vw, 36px); }
.rf-nav__item { position: relative; }
.rf-nav__link {
	display: inline-block;
	font-family: var(--rf-font-display);
	font-size: 0.86rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.82);
	padding: 6px 0;
	position: relative;
}
.rf-nav__link::after {
	content: "";
	position: absolute;
	left: 0; bottom: 0;
	width: 100%; height: 2px;
	background: var(--rf-accent);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s var(--rf-ease);
}
.rf-nav__link:hover { color: #fff; }
.rf-nav__link:hover::after { transform: scaleX(1); }
.rf-nav .current-menu-item > .rf-nav__link { color: #fff; }
.rf-nav .current-menu-item > .rf-nav__link::after { transform: scaleX(1); }
/* header.php marks the active item with `is-current` (rf_menu_item_is_current);
   keep the WP class as well so a real nav menu still highlights. */
.rf-nav .is-current > .rf-nav__link { color: #fff; }
.rf-nav .is-current > .rf-nav__link::after { transform: scaleX(1); }

.rf-header__actions { display: flex; align-items: center; gap: 16px; flex: none; }
.rf-header__cta { padding: 0.7em 1.25em; font-size: 0.8rem; }

.rf-header__burger {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 44px; height: 44px;
	padding: 10px 9px;
	background: none;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: var(--rf-radius);
	cursor: pointer;
}
.rf-header__burger span {
	display: block;
	height: 2px;
	background: #fff;
	transition: all 0.3s var(--rf-ease);
}
.rf-header__burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.rf-header__burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.rf-header__burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---------- Side quick-nav rail ---------- */
.rf-rail {
	position: fixed;
	right: 18px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 850;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.rf-rail__btn {
	position: relative;
	width: 46px; height: 46px;
	display: grid;
	place-items: center;
	background: rgba(16, 18, 22, 0.92);
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: var(--rf-radius);
	cursor: pointer;
	transition: all 0.3s var(--rf-ease);
	box-shadow: 0 10px 30px -12px rgba(0, 0, 0, 0.4);
}
.rf-rail__btn:hover { background: var(--rf-accent); border-color: var(--rf-accent); }
.rf-rail__btn--inquiry { background: var(--rf-accent); border-color: var(--rf-accent); }
.rf-rail__btn--inquiry:hover { background: var(--rf-accent-deep); border-color: var(--rf-accent-deep); }
.rf-rail__label {
	position: absolute;
	right: calc(100% + 10px);
	top: 50%;
	transform: translateY(-50%);
	white-space: nowrap;
	font-family: var(--rf-font-display);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #fff;
	background: var(--rf-ink);
	border: 1px solid var(--rf-line-dark);
	border-radius: var(--rf-radius);
	padding: 6px 10px;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.25s var(--rf-ease);
}
.rf-rail__btn:hover .rf-rail__label { opacity: 1; }

/* ---------- Mobile drawer ---------- */
.rf-drawer { position: fixed; inset: 0; z-index: 950; visibility: hidden; pointer-events: none; }
.rf-drawer.is-open { visibility: visible; pointer-events: auto; }
.rf-drawer__panel {
	position: absolute;
	top: 0; right: 0;
	width: min(400px, 88vw);
	height: 100%;
	background: var(--rf-ink);
	padding: 26px 30px;
	display: flex;
	flex-direction: column;
	transform: translateX(100%);
	transition: transform 0.45s var(--rf-ease);
	overflow-y: auto;
}
.rf-drawer.is-open .rf-drawer__panel { transform: none; }
.rf-drawer__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(8, 9, 11, 0.6);
	opacity: 0;
	transition: opacity 0.35s var(--rf-ease);
}
.rf-drawer.is-open .rf-drawer__backdrop { opacity: 1; }
.rf-drawer__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 36px; }
.rf-drawer__close {
	background: none;
	border: 1px solid rgba(255, 255, 255, 0.3);
	color: #fff;
	width: 40px; height: 40px;
	border-radius: 50%;
	font-size: 20px;
	cursor: pointer;
	line-height: 1;
}
.rf-drawer__nav ul { display: flex; flex-direction: column; }
.rf-drawer__nav li { border-bottom: 1px solid var(--rf-line-dark); }
.rf-drawer__nav a {
	display: flex;
	align-items: baseline;
	gap: 14px;
	font-family: var(--rf-font-display);
	font-size: 1.5rem;
	font-weight: 700;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	padding: 16px 0;
}
.rf-drawer__nav a:hover { color: var(--rf-accent); }
.rf-drawer__index {
	font-family: var(--rf-font-mono);
	font-size: 0.72rem;
	color: var(--rf-accent);
	letter-spacing: 0.1em;
}
.rf-drawer__foot { margin-top: auto; padding-top: 32px; display: flex; flex-direction: column; gap: 16px; }
.rf-drawer__cta { justify-content: center; }
.rf-drawer__phone, .rf-drawer__mail { font-family: var(--rf-font-mono); font-size: 0.9rem; color: rgba(255, 255, 255, 0.8); }
.rf-drawer__phone:hover, .rf-drawer__mail:hover { color: var(--rf-accent); }

/* ---------- Hero ---------- */
.rf-hero {
	position: relative;
	min-height: 100svh;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	background: var(--rf-ink);
	overflow: hidden;
	padding-top: calc(var(--rf-header-h) + var(--rf-topbar-h));
}
.rf-hero__media { position: absolute; inset: 0; overflow: hidden; }
.rf-hero__img,
.rf-hero__media picture,
.rf-hero__media source {
	display: block;
}
.rf-hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	/* object-fit keeps the banner covering the section at any aspect ratio -
	   no letterboxing, no distortion, desktop and mobile alike */
	object-fit: cover;
	object-position: center;
	filter: saturate(0.9) contrast(1.05);
}
.rf-hero__scrim {
	position: absolute;
	inset: 0;
	z-index: 3;
	/* Heavy enough that text stays legible over ANY photo - the previous
	   0.28 mid-stop let bright machine lights punch through the headline */
	background:
		linear-gradient(180deg, rgba(13, 14, 17, 0.7) 0%, rgba(13, 14, 17, 0.45) 40%, rgba(13, 14, 17, 0.93) 100%),
		linear-gradient(90deg, rgba(13, 14, 17, 0.65) 0%, transparent 68%);
}
.rf-hero__inner {
	position: relative;
	padding-bottom: clamp(80px, 12vh, 140px);
}
.rf-hero__badge {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--rf-font-mono);
	font-size: 0.78rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #fff;
	background: rgba(13, 14, 17, 0.45);
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 99px;
	padding: 0.55em 1.1em;
	margin: 0 0 28px;
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
}
	background: rgba(13, 14, 17, 0.35);
	backdrop-filter: blur(6px);
}
.rf-hero__badge-dot {
	width: 7px; height: 7px;
	border-radius: 50%;
	background: var(--rf-accent);
	box-shadow: 0 0 0 4px rgba(217, 98, 43, 0.25);
	animation: rf-pulse 2.4s infinite;
}
@keyframes rf-pulse {
	0%, 100% { box-shadow: 0 0 0 4px rgba(217, 98, 43, 0.25); }
	50% { box-shadow: 0 0 0 8px rgba(217, 98, 43, 0.08); }
}
.rf-hero__title {
	font-size: var(--rf-fs-hero);
	font-weight: 800;
	text-transform: uppercase;
	color: #fff;
	max-width: 15ch;
	margin: 0 0 22px;
	/* Tight dark shadow first (edge definition over bright photo areas),
	   wide soft one second (separation from the busy factory background) */
	text-shadow: 0 2px 6px rgba(0, 0, 0, 0.55), 0 8px 32px rgba(0, 0, 0, 0.5);
}
.rf-hero__subtitle {
	font-size: clamp(1rem, 1.6vw, 1.2rem);
	font-weight: 500;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.92);
	max-width: 56ch;
	margin: 0 0 36px;
	text-shadow: 0 1px 5px rgba(0, 0, 0, 0.6);
}
.rf-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }

.rf-hero__stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-top: 1px solid rgba(255, 255, 255, 0.22);
	margin-top: clamp(48px, 7vh, 84px);
}
.rf-hero__stat {
	padding: 22px 26px 0;
	border-left: 1px solid rgba(255, 255, 255, 0.14);
}
.rf-hero__stat:first-child { border-left: none; padding-left: 0; }
.rf-hero__stat-number {
	display: block;
	font-family: var(--rf-font-display);
	font-size: clamp(1.7rem, 3vw, 2.8rem);
	font-weight: 800;
	/* Pure white over the darkened photo - brand orange (#d9622b) sat at ~3.5:1
	   contrast here and dissolved into the banner; white clears WCAG AA large
	   text with a wide margin. A soft dark shadow keeps the glyphs crisp where
	   the photo has bright highlights. nowrap stops values like "±0.005 mm"
	   from wrapping once the larger size lands. */
	color: #fff;
	line-height: 1.1;
	letter-spacing: -0.01em;
	white-space: nowrap;
	text-shadow: 0 2px 10px rgba(0, 0, 0, 0.55), 0 0 2px rgba(0, 0, 0, 0.35);
}
.rf-hero__stat-label {
	display: block;
	margin-top: 10px;
	font-size: 0.8rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.88);
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
}

.rf-hero__scroll {
	position: absolute;
	right: var(--rf-gutter);
	bottom: clamp(80px, 12vh, 140px);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	color: rgba(255, 255, 255, 0.6);
}
.rf-hero__scroll:hover { color: #fff; }
.rf-hero__scroll-line {
	width: 1px; height: 56px;
	background: linear-gradient(180deg, var(--rf-accent), transparent);
	animation: rf-scroll-hint 2s var(--rf-ease) infinite;
}
@keyframes rf-scroll-hint {
	0% { transform: scaleY(0); transform-origin: top; }
	50% { transform: scaleY(1); transform-origin: top; }
	51% { transform-origin: bottom; }
	100% { transform: scaleY(0); transform-origin: bottom; }
}
.rf-hero__scroll-text {
	font-family: var(--rf-font-mono);
	font-size: 0.66rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	writing-mode: vertical-rl;
}

/* ---------- Trust bar ---------- */
.rf-trust {
	background: var(--rf-ink);
	border-top: 1px solid var(--rf-line-dark);
	padding: 26px 0;
}
.rf-trust__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	flex-wrap: wrap;
}
.rf-trust__label, .rf-trust__markets {
	font-family: var(--rf-font-mono);
	font-size: 0.74rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.55);
	margin: 0;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.rf-trust__markets .rf-icon { color: var(--rf-accent); }
.rf-trust__certs { display: flex; gap: 34px; flex-wrap: wrap; }
.rf-trust__cert {
	font-family: var(--rf-font-display);
	color: rgba(255, 255, 255, 0.9);
	font-size: 1rem;
	letter-spacing: 0.06em;
	display: flex;
	align-items: baseline;
	gap: 2px;
}
.rf-trust__cert span { font-family: var(--rf-font-mono); font-size: 0.7rem; color: var(--rf-accent); }

/* ---------- Sections ---------- */
.rf-section { padding: var(--rf-section-pad) 0; }
.rf-section + .rf-section { padding-top: 0; }
.rf-hero + .rf-trust + .rf-section { padding-top: var(--rf-section-pad); }

.rf-section-head { max-width: 760px; margin-bottom: clamp(40px, 5vw, 64px); }
.rf-section-head--center { margin-left: auto; margin-right: auto; text-align: center; }
.rf-section-head__label {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--rf-font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rf-steel);
	margin: 0 0 16px;
}
.rf-section-head--center .rf-section-head__label { justify-content: center; }
.rf-section-head__label-text { position: relative; }
.rf-section-head__title {
	font-size: var(--rf-fs-h2);
	text-transform: uppercase;
	margin: 0 0 16px;
}
.rf-section-head__desc {
	font-size: 1.02rem;
	color: var(--rf-steel);
	margin: 0;
	max-width: 62ch;
}
.rf-section-head--center .rf-section-head__desc { margin: 0 auto; }

/* Homepage five section heads: red-marked label = biggest tier + bold,
   green-marked title = smaller tier + regular weight.
   Scoped to the front page: WordPress adds body.home, the static preview uses body.rf-home. */
.home .rf-section-head__label,
.rf-home .rf-section-head__label {
	font-size: clamp(1.6rem, 1.3rem + 1.4vw, 2.5rem);
	font-weight: 700;
	white-space: nowrap;
}
.home .rf-section-head__title,
.rf-home .rf-section-head__title { font-size: clamp(1.4rem, 1.1rem + 1.3vw, 2rem); font-weight: 400; }
.home .rf-section-head__desc,
.rf-home .rf-section-head__desc,
.home .rf-about-preview__desc,
.rf-home .rf-about-preview__desc { font-size: 0.9rem; }
/* Keep the one-line label inside narrow phones */
@media (max-width: 520px) {
	.rf-home .rf-section-head__label { font-size: 1.25rem; letter-spacing: 0.1em; }
	.home .rf-section-head__label { font-size: 1.25rem; letter-spacing: 0.1em; }
}

.rf-section-head-row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 32px;
}
.rf-section-head-row .rf-section-head { margin-bottom: clamp(40px, 5vw, 64px); }

/* ---------- Core capabilities ---------- */
.rf-cap-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: var(--rf-line);
	border: 1px solid var(--rf-line);
}
.rf-cap-card {
	background: var(--rf-white);
	display: flex;
	flex-direction: column;
	transition: background 0.3s var(--rf-ease);
}
.rf-cap-card:hover { background: #fdfdfc; }
.rf-cap-card__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--rf-ink); }
.rf-cap-card__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	filter: saturate(0.85);
	transition: transform 0.6s var(--rf-ease);
}
.rf-cap-card:hover .rf-cap-card__media img { transform: scale(1.05); }
.rf-cap-card__icon {
	position: absolute;
	left: 18px; bottom: 18px;
	width: 52px; height: 52px;
	display: grid;
	place-items: center;
	background: rgba(13, 14, 17, 0.72);
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: var(--rf-radius);
	color: var(--rf-accent);
	backdrop-filter: blur(4px);
}
.rf-cap-card__body { padding: 26px 28px 30px; }
.rf-cap-card__title {
	font-size: var(--rf-fs-h3);
	text-transform: uppercase;
	margin: 0 0 6px;
}
.rf-cap-card__stat {
	font-family: var(--rf-font-mono);
	font-size: 0.76rem;
	letter-spacing: 0.08em;
	color: var(--rf-accent-deep);
	margin: 0 0 12px;
	text-transform: uppercase;
}
.rf-cap-card__desc { font-size: var(--rf-fs-sm); color: var(--rf-steel); }
.rf-cap-card__desc p { margin: 0 0 0.8em; }
.rf-cap-card__desc p:last-child { margin-bottom: 0; }

/* ---------- Product filter ---------- */
.rf-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 40px;
	padding-bottom: 32px;
	border-bottom: 1px solid var(--rf-line);
}
.rf-filter__btn {
	font-family: var(--rf-font-display);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--rf-steel);
	background: transparent;
	border: 1px solid var(--rf-line);
	border-radius: 99px;
	padding: 0.6em 1.15em;
	cursor: pointer;
	transition: all 0.25s var(--rf-ease);
}
.rf-filter__btn:hover { border-color: var(--rf-accent); color: var(--rf-accent-deep); }
.rf-filter__btn.is-active { background: var(--rf-ink); border-color: var(--rf-ink); color: #fff; }

/* ---------- Product grid / cards ---------- */
.rf-product-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}
.rf-product-card {
	background: var(--rf-white);
	border: 1px solid var(--rf-line);
	display: flex;
	flex-direction: column;
	transition: border-color 0.3s var(--rf-ease), box-shadow 0.3s var(--rf-ease), transform 0.3s var(--rf-ease);
}
.rf-product-card:hover {
	border-color: var(--rf-ink);
	box-shadow: 0 18px 40px -24px rgba(20, 22, 26, 0.25);
	transform: translateY(-3px);
}
.rf-product-card.is-hidden { display: none; }
.rf-product-card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--rf-mist);
}
.rf-product-card__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	filter: saturate(0.88);
	transition: transform 0.6s var(--rf-ease);
}
.rf-product-card:hover .rf-product-card__media img { transform: scale(1.06); }
.rf-product-card__view {
	position: absolute;
	left: 14px; bottom: 14px;
	font-family: var(--rf-font-mono);
	font-size: 0.68rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #fff;
	background: rgba(13, 14, 17, 0.78);
	padding: 0.5em 0.9em;
	border-radius: 99px;
	opacity: 0;
	transform: translateY(6px);
	transition: all 0.3s var(--rf-ease);
}
.rf-product-card:hover .rf-product-card__view { opacity: 1; transform: none; }
.rf-product-card__body { padding: 22px 24px 26px; display: flex; flex-direction: column; flex: 1; }
.rf-product-card__cat {
	font-family: var(--rf-font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--rf-accent-deep);
	margin: 0 0 10px;
}
.rf-product-card__title {
	font-size: 1.08rem;
	text-transform: uppercase;
	letter-spacing: -0.01em;
	margin: 0 0 10px;
	line-height: 1.25;
}
.rf-product-card__title a { color: var(--rf-ink); }
.rf-product-card__title a:hover { color: var(--rf-accent-deep); }
.rf-product-card__excerpt {
	font-size: var(--rf-fs-sm);
	color: var(--rf-steel);
	margin: 0 0 14px;
	flex: 1;
}
.rf-product-card__meta {
	font-family: var(--rf-font-mono);
	font-size: 0.74rem;
	color: var(--rf-graphite);
	border-top: 1px solid var(--rf-line);
	padding-top: 12px;
	margin: 0;
}
.rf-product-card__meta span { color: var(--rf-steel); letter-spacing: 0.1em; text-transform: uppercase; }

.rf-products__foot { text-align: center; margin-top: clamp(40px, 5vw, 56px); }

/* ---------- Process ---------- */
.rf-process { background: var(--rf-white); border-block: 1px solid var(--rf-line); }
.rf-process__list {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 1px;
	background: var(--rf-line);
	border: 1px solid var(--rf-line);
}
.rf-process__item {
	background: var(--rf-white);
	padding: 34px 26px 38px;
	position: relative;
}
.rf-process__item::after {
	content: "";
	position: absolute;
	top: 0; left: 0;
	width: 100%; height: 3px;
	background: var(--rf-accent);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.4s var(--rf-ease);
}
.rf-process__item:hover::after { transform: scaleX(1); }
.rf-process__num {
	display: block;
	font-size: 1.9rem;
	font-weight: 500;
	color: var(--rf-mist);
	line-height: 1;
	margin-bottom: 18px;
	transition: color 0.3s var(--rf-ease);
}
.rf-process__item:hover .rf-process__num { color: var(--rf-accent); }
.rf-process__title {
	font-size: 1rem;
	text-transform: uppercase;
	margin: 0 0 10px;
}
.rf-process__desc { font-size: var(--rf-fs-sm); color: var(--rf-steel); margin: 0; }

/* ---------- About preview ---------- */
.rf-about-preview__inner {
	display: grid;
	grid-template-columns: 5fr 6fr;
	gap: clamp(40px, 6vw, 90px);
	align-items: center;
}
.rf-about-preview__media { position: relative; }
.rf-about-preview__media img {
	width: 100%;
	aspect-ratio: 4 / 3.4;
	object-fit: cover;
	filter: saturate(0.85) contrast(1.03);
}
.rf-about-preview__media::before {
	content: "";
	position: absolute;
	inset: 14px -14px -14px 14px;
	border: 1px solid var(--rf-accent);
	z-index: -1;
}
.rf-about-preview__badge {
	position: absolute;
	left: 0; bottom: 0;
	background: var(--rf-ink);
	color: #fff;
	font-size: 0.68rem;
	letter-spacing: 0.16em;
	padding: 0.7em 1.1em;
}
.rf-about-preview__desc { font-size: 1.02rem; margin-bottom: 26px; }
.rf-about-preview__points { display: flex; flex-direction: column; gap: 14px; margin-bottom: 34px; }
.rf-about-preview__points li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: var(--rf-fs-sm);
	color: var(--rf-graphite);
	font-weight: 500;
}
.rf-about-preview__points .rf-icon { color: var(--rf-accent); flex: none; margin-top: 3px; }

/* ---------- Industries ---------- */
.rf-industries__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: var(--rf-line);
	border: 1px solid var(--rf-line);
}
.rf-industry {
	background: var(--rf-paper);
	padding: 38px 32px 42px;
	transition: background 0.3s var(--rf-ease);
}
.rf-industry:hover { background: var(--rf-white); }
.rf-industry__icon {
	display: inline-grid;
	place-items: center;
	width: 56px; height: 56px;
	border: 1px solid var(--rf-line);
	border-radius: var(--rf-radius);
	color: var(--rf-accent);
	margin-bottom: 22px;
	background: var(--rf-white);
	transition: all 0.3s var(--rf-ease);
}
.rf-industry:hover .rf-industry__icon { background: var(--rf-ink); border-color: var(--rf-ink); }
.rf-industry__title {
	font-size: 1.05rem;
	text-transform: uppercase;
	margin: 0 0 8px;
}
.rf-industry__desc { font-size: var(--rf-fs-sm); color: var(--rf-steel); margin: 0; }

/* ---------- CTA ---------- */
.rf-cta {
	position: relative;
	background: var(--rf-ink);
	overflow: hidden;
}
.rf-cta__bg {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(60% 90% at 85% 20%, rgba(217, 98, 43, 0.22), transparent 60%),
		repeating-linear-gradient(-55deg, transparent 0 38px, rgba(255, 255, 255, 0.025) 38px 39px);
}
.rf-cta__inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(32px, 6vw, 80px);
	padding: clamp(64px, 8vw, 110px) var(--rf-gutter);
}
.rf-cta__title {
	font-size: var(--rf-fs-h2);
	text-transform: uppercase;
	color: #fff;
	max-width: 22ch;
	margin: 0;
}
.rf-cta__desc { color: rgba(255, 255, 255, 0.7); margin: 16px 0 0; max-width: 52ch; }
.rf-cta__actions { flex: none; text-align: center; }
.rf-cta__note {
	font-family: var(--rf-font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.1em;
	color: rgba(255, 255, 255, 0.55);
	margin: 16px 0 0;
	text-transform: uppercase;
}

/* ---------- Page hero band ---------- */
.rf-page-hero {
	background:
		linear-gradient(180deg, var(--rf-ink) 0%, var(--rf-ink-2) 100%);
	color: #fff;
	padding: calc(var(--rf-header-h) + var(--rf-topbar-h) + clamp(56px, 7vw, 92px)) 0 clamp(56px, 7vw, 92px);
	position: relative;
	overflow: hidden;
}
.rf-page-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(-55deg, transparent 0 38px, rgba(255, 255, 255, 0.022) 38px 39px);
	pointer-events: none;
}
.rf-page-hero__label {
	font-family: var(--rf-font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--rf-accent);
	margin: 0 0 14px;
}
.rf-page-hero__title {
	font-size: clamp(1.9rem, 4vw, 3.2rem);
	text-transform: uppercase;
	color: #fff;
	max-width: 24ch;
	margin: 0 0 18px;
}
.rf-page-hero__desc {
	color: rgba(255, 255, 255, 0.72);
	max-width: 64ch;
	font-size: 1.02rem;
	margin: 0;
}
.rf-page-hero--split .rf-page-hero__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(36px, 6vw, 72px);
	align-items: center;
}
.rf-page-hero__media { position: relative; }
.rf-page-hero__media img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	filter: saturate(0.85);
	border: 1px solid rgba(255, 255, 255, 0.12);
}

/* ---------- Breadcrumb ---------- */
.rf-breadcrumb {
	font-family: var(--rf-font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin: 0 0 26px;
	color: rgba(255, 255, 255, 0.5);
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.rf-breadcrumb a { color: rgba(255, 255, 255, 0.72); }
.rf-breadcrumb a:hover { color: var(--rf-accent); }
.rf-breadcrumb__sep { color: var(--rf-accent); }

/* ---------- About page ---------- */
.rf-about__stats { background: var(--rf-white); border-block: 1px solid var(--rf-line); }
.rf-about__stats-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px;
}
.rf-about__stat { border-left: 2px solid var(--rf-accent); padding-left: 20px; }
.rf-about__stat-number {
	display: block;
	font-size: clamp(1.7rem, 3vw, 2.4rem);
	font-weight: 700;
	color: var(--rf-ink);
	line-height: 1;
}
.rf-about__stat-label {
	display: block;
	margin-top: 8px;
	font-size: 0.76rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--rf-steel);
}
.rf-about__intro {
	display: grid;
	grid-template-columns: 7fr 4fr;
	gap: clamp(40px, 6vw, 80px);
	align-items: start;
}
.rf-about__intro-text .rf-section-head { margin-bottom: 28px; }
.rf-about__intro-text .rf-page__content { font-size: 1rem; }
.rf-about__intro-text .rf-page__content p { margin-bottom: 1.4em; }
.rf-about__aside-card {
	background: var(--rf-ink);
	color: rgba(255, 255, 255, 0.85);
	padding: 30px 30px 34px;
	position: sticky;
	top: calc(var(--rf-header-h) + 24px);
}
.rf-about__aside-card h3 {
	color: #fff;
	font-size: 1rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin: 0 0 20px;
}
.rf-about__certs li {
	padding: 14px 0;
	border-bottom: 1px solid var(--rf-line-dark);
	display: flex;
	flex-direction: column;
	gap: 3px;
}
.rf-about__certs li:last-child { border-bottom: none; }
.rf-about__certs strong { font-family: var(--rf-font-display); color: #fff; font-size: 1rem; letter-spacing: 0.04em; }
.rf-about__certs span { font-size: 0.8rem; color: rgba(255, 255, 255, 0.55); }

.rf-equip__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 22px;
}
.rf-equip__item {
	background: var(--rf-white);
	border: 1px solid var(--rf-line);
	transition: border-color 0.3s var(--rf-ease);
}
.rf-equip__item:hover { border-color: var(--rf-ink); }
.rf-equip__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; filter: saturate(0.85); }
.rf-equip__body { padding: 20px 22px 24px; }
.rf-equip__icon { color: var(--rf-accent); display: inline-block; margin-bottom: 12px; }
.rf-equip__title { font-size: 0.98rem; text-transform: uppercase; margin: 0 0 6px; }
.rf-equip__stat { color: var(--rf-accent-deep); margin: 0 0 8px; font-size: 0.74rem; }
.rf-equip__desc { font-size: var(--rf-fs-sm); color: var(--rf-steel); }
.rf-equip__desc p { margin: 0; }

.rf-cases__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.rf-case {
	border: 1px solid var(--rf-line);
	background: var(--rf-white);
	padding: 30px 30px 34px;
	position: relative;
	overflow: hidden;
}
.rf-case::before {
	content: "";
	position: absolute;
	top: 0; left: 0;
	width: 44px; height: 3px;
	background: var(--rf-accent);
}
.rf-case__industry {
	font-size: 0.7rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--rf-steel);
	margin: 0 0 14px;
}
.rf-case__title { font-size: 1.1rem; text-transform: uppercase; margin: 0 0 12px; }
.rf-case__desc { font-size: var(--rf-fs-sm); color: var(--rf-steel); margin: 0; }

.rf-about__markets { background: var(--rf-white); border-block: 1px solid var(--rf-line); }
.rf-markets__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px;
	max-width: 980px;
	margin: 0 auto;
}
.rf-market__region {
	font-family: var(--rf-font-display);
	font-weight: 700;
	text-transform: uppercase;
	font-size: 0.92rem;
	margin: 0 0 12px;
	color: var(--rf-ink);
}
.rf-market__bar {
	height: 5px;
	background: var(--rf-mist);
	border-radius: 99px;
	overflow: hidden;
}
.rf-market__bar span {
	display: block;
	height: 100%;
	background: var(--rf-accent);
	border-radius: 99px;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 1s var(--rf-ease);
}
.rf-market__bar.is-visible span { transform: scaleX(1); }
.rf-market__share { color: var(--rf-steel); margin: 10px 0 0; }

/* ---------- Contact page ---------- */
.rf-contact-cards {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 1px;
	background: var(--rf-line);
	border: 1px solid var(--rf-line);
}
.rf-contact-card {
	background: var(--rf-white);
	padding: 28px 26px 30px;
	transition: background 0.3s var(--rf-ease);
}
.rf-contact-card:hover { background: #fdfdfc; }
.rf-contact-card__icon {
	display: inline-grid;
	place-items: center;
	width: 46px; height: 46px;
	border-radius: var(--rf-radius);
	background: var(--rf-accent-soft);
	color: var(--rf-accent-deep);
	margin-bottom: 18px;
}
.rf-contact-card__label {
	font-family: var(--rf-font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--rf-steel);
	margin: 0 0 8px;
}
.rf-contact-card__value {
	font-size: 0.95rem;
	font-weight: 500;
	color: var(--rf-ink);
	line-height: 1.5;
	margin: 0;
	word-break: break-word;
}
a.rf-contact-card__value:hover { color: var(--rf-accent-deep); }

.rf-contact-page__map-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	margin-bottom: 24px;
}
.rf-contact-page__map-title {
	font-size: var(--rf-fs-h3);
	text-transform: uppercase;
	margin: 0;
}
.rf-contact-page__map-note {
	font-size: var(--rf-fs-sm);
	color: var(--rf-steel);
	margin: 0;
}
.rf-contact-page__map {
	border: 1px solid var(--rf-line);
	background: var(--rf-white);
	line-height: 0;
	filter: saturate(0.8);
}
.rf-contact-page__map iframe { display: block; }

.rf-contact-page__form-section { background: var(--rf-white); border-block: 1px solid var(--rf-line); }
.rf-contact-page__form-inner { max-width: 860px; margin: 0 auto; }
.rf-contact-page__form-title {
	font-size: var(--rf-fs-h2);
	text-transform: uppercase;
	margin: 0 0 10px;
}
.rf-contact-page__form-desc { color: var(--rf-steel); margin: 0 0 36px; }

/* ---------- Inquiry page ---------- */
.rf-inquiry-page__grid {
	display: grid;
	grid-template-columns: 7fr 4fr;
	gap: clamp(36px, 5vw, 64px);
	align-items: start;
}
.rf-inquiry-page__form-wrap { min-width: 0; }
.rf-inquiry-aside__card {
	border: 1px solid var(--rf-line);
	background: var(--rf-white);
	padding: 28px 28px 32px;
	margin-bottom: 24px;
}
.rf-inquiry-aside__card--dark { background: var(--rf-ink); border-color: var(--rf-ink); color: rgba(255, 255, 255, 0.85); }
.rf-inquiry-aside__title {
	font-size: 1rem;
	text-transform: uppercase;
	margin: 0 0 18px;
	letter-spacing: 0.06em;
}
.rf-inquiry-aside__card--dark .rf-inquiry-aside__title { color: #fff; }
.rf-inquiry-aside__steps { display: flex; flex-direction: column; gap: 16px; counter-reset: rf-step; }
.rf-inquiry-aside__steps li {
	position: relative;
	padding-left: 40px;
	font-size: var(--rf-fs-sm);
	color: var(--rf-steel);
	counter-increment: rf-step;
}
.rf-inquiry-aside__steps li::before {
	content: counter(rf-step, decimal-leading-zero);
	position: absolute;
	left: 0; top: 1px;
	font-family: var(--rf-font-mono);
	font-size: 0.8rem;
	color: var(--rf-accent);
	border: 1px solid var(--rf-line);
	border-radius: 50%;
	width: 26px; height: 26px;
	display: grid;
	place-items: center;
}
.rf-inquiry-aside__direct { margin: 0 0 6px; }
.rf-inquiry-aside__direct a {
	font-family: var(--rf-font-mono);
	font-size: 1rem;
	color: #fff;
}
.rf-inquiry-aside__direct a:hover { color: var(--rf-accent); }
.rf-inquiry-aside__hours { color: rgba(255, 255, 255, 0.55); font-size: 0.74rem; margin: 14px 0 0; }

/* ---------- FAQ page ---------- */
.rf-faq-page__inner { max-width: 860px; margin: 0 auto; }
.rf-faq { display: flex; flex-direction: column; gap: 14px; }
.rf-faq__item {
	border: 1px solid var(--rf-line);
	background: var(--rf-white);
}
.rf-faq__q {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 20px 24px;
	cursor: pointer;
	list-style: none;
	font-family: var(--rf-font-display);
	font-weight: 700;
	font-size: 1.02rem;
	color: var(--rf-ink);
}
.rf-faq__q::-webkit-details-marker { display: none; }
.rf-faq__num { color: var(--rf-accent); font-size: 0.8rem; flex: none; }
.rf-faq__title { flex: 1; }
.rf-faq__mark {
	position: relative;
	width: 18px; height: 18px;
	flex: none;
}
.rf-faq__mark::before, .rf-faq__mark::after {
	content: "";
	position: absolute;
	background: var(--rf-steel);
	transition: transform 0.3s var(--rf-ease);
}
.rf-faq__mark::before { top: 8px; left: 0; width: 100%; height: 2px; }
.rf-faq__mark::after { left: 8px; top: 0; height: 100%; width: 2px; }
.rf-faq__item[open] .rf-faq__mark::after { transform: rotate(90deg); }
.rf-faq__item[open] .rf-faq__mark::before { background: var(--rf-accent); }
.rf-faq__a {
	padding: 0 24px 22px 62px;
	color: var(--rf-steel);
	font-size: var(--rf-fs-sm);
}
.rf-faq__a p { margin: 0 0 0.8em; }
.rf-faq__a p:last-child { margin-bottom: 0; }
.rf-faq-page__cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
	background: var(--rf-ink);
	margin-top: 40px;
	padding: 26px 30px;
}
.rf-faq-page__cta p { color: #fff; font-family: var(--rf-font-display); text-transform: uppercase; letter-spacing: 0.06em; margin: 0; }

/* ---------- Product detail ---------- */
.rf-single-product__main { padding-top: clamp(32px, 4vw, 56px); }
.rf-single-product__main .rf-breadcrumb { color: var(--rf-steel); }
.rf-single-product__main .rf-breadcrumb a { color: var(--rf-steel); }
.rf-single-product__main .rf-breadcrumb a:hover { color: var(--rf-accent); }
.rf-single-product__grid {
	display: grid;
	grid-template-columns: 6fr 5fr;
	gap: clamp(36px, 5vw, 72px);
	align-items: start;
}
.rf-product-gallery__main {
	border: 1px solid var(--rf-line);
	background: var(--rf-white);
	aspect-ratio: 16 / 10;
	overflow: hidden;
}
.rf-product-gallery__main img {
	width: 100%; height: 100%;
	object-fit: cover;
	filter: saturate(0.9);
}
.rf-product-gallery__thumbs {
	display: flex;
	gap: 10px;
	margin-top: 12px;
	flex-wrap: wrap;
}
.rf-product-gallery__thumb {
	width: 84px; height: 64px;
	padding: 0;
	border: 2px solid var(--rf-line);
	background: var(--rf-mist);
	cursor: pointer;
	overflow: hidden;
	transition: border-color 0.25s var(--rf-ease);
}
.rf-product-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.rf-product-gallery__thumb.is-active, .rf-product-gallery__thumb:hover { border-color: var(--rf-accent); }

.rf-single-product__cat {
	font-size: 0.72rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--rf-accent-deep);
	margin: 0 0 12px;
}
.rf-single-product__title {
	font-size: clamp(1.6rem, 3vw, 2.3rem);
	text-transform: uppercase;
	margin: 0 0 16px;
}
.rf-single-product__lead {
	font-size: 1.05rem;
	color: var(--rf-steel);
	margin: 0 0 28px;
}
.rf-spec-list {
	margin: 0 0 32px;
	border-top: 1px solid var(--rf-line);
}
.rf-spec-list__row {
	display: grid;
	grid-template-columns: 160px 1fr;
	gap: 16px;
	padding: 13px 0;
	border-bottom: 1px solid var(--rf-line);
}
.rf-spec-list__label {
	font-family: var(--rf-font-mono);
	font-size: 0.76rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--rf-steel);
	margin: 0;
}
.rf-spec-list__value {
	margin: 0;
	font-weight: 500;
	color: var(--rf-ink);
	font-size: 0.95rem;
}

.rf-single-product__body { padding-top: 0; }
.rf-single-product__body-grid {
	display: grid;
	grid-template-columns: 7fr 4fr;
	gap: clamp(40px, 6vw, 80px);
	align-items: start;
}
.rf-single-product__h2 {
	font-size: var(--rf-fs-h3);
	text-transform: uppercase;
	margin: 0 0 20px;
}
.rf-feature-list { display: flex; flex-direction: column; gap: 12px; margin-bottom: 40px; }
.rf-feature-list li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: var(--rf-fs-sm);
	color: var(--rf-graphite);
}
.rf-feature-list .rf-icon { color: var(--rf-accent); flex: none; margin-top: 3px; }
.rf-single-product__prose h2, .rf-single-product__prose h3 { font-size: var(--rf-fs-h3); text-transform: uppercase; }
.rf-single-product__prose p { margin-bottom: 1.3em; }

.rf-spec-table-wrap {
	border: 1px solid var(--rf-line);
	background: var(--rf-white);
	padding: 26px 28px 28px;
	position: sticky;
	top: calc(var(--rf-header-h) + 24px);
}
.rf-spec-table__title {
	font-size: 1rem;
	text-transform: uppercase;
	margin: 0 0 16px;
	letter-spacing: 0.06em;
}
.rf-spec-table { width: 100%; border-collapse: collapse; }
.rf-spec-table th, .rf-spec-table td {
	text-align: left;
	padding: 11px 0;
	border-bottom: 1px solid var(--rf-line);
	font-size: var(--rf-fs-sm);
	vertical-align: top;
}
.rf-spec-table th { font-weight: 500; color: var(--rf-steel); width: 52%; padding-right: 14px; }
.rf-spec-table td { font-weight: 500; color: var(--rf-ink); }
.rf-spec-table tr:last-child th, .rf-spec-table tr:last-child td { border-bottom: none; }

.rf-single-product__cta { padding-top: 0; }
.rf-single-product__cta-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	flex-wrap: wrap;
	background: var(--rf-ink);
	padding: clamp(36px, 5vw, 56px);
	position: relative;
	overflow: hidden;
}
.rf-single-product__cta-inner::after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(50% 80% at 90% 10%, rgba(217, 98, 43, 0.18), transparent 65%);
}
.rf-single-product__cta-title {
	color: #fff;
	font-size: var(--rf-fs-h3);
	text-transform: uppercase;
	margin: 0 0 8px;
	position: relative;
}
.rf-single-product__cta-desc { color: rgba(255, 255, 255, 0.7); margin: 0; max-width: 56ch; position: relative; }
.rf-single-product__cta-inner .rf-btn { position: relative; flex: none; }
.rf-single-product__related { padding-top: 0; }
.rf-single-product__related-title {
	font-size: var(--rf-fs-h3);
	text-transform: uppercase;
	margin: 0 0 28px;
}

/* ---------- Form ---------- */
.rf-form__lead {
	font-size: 1rem;
	color: var(--rf-steel);
	margin: 0 0 28px;
}
.rf-form__honeypot {
	position: absolute !important;
	left: -9999px;
	width: 1px; height: 1px;
	overflow: hidden;
}
.rf-form__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px 24px;
}
.rf-form__field { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.rf-form__field--full { grid-column: 1 / -1; }
.rf-form__field label {
	font-family: var(--rf-font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--rf-graphite);
	font-weight: 500;
}
.rf-form__req { color: var(--rf-accent); }
.rf-form__opt { color: var(--rf-steel); font-weight: 400; letter-spacing: 0.04em; text-transform: none; }
.rf-form__field input[type="text"],
.rf-form__field input[type="email"],
.rf-form__field input[type="tel"],
.rf-form__field input[type="url"],
.rf-form__field select,
.rf-form__field textarea {
	width: 100%;
	font-family: var(--rf-font-body);
	font-size: 0.95rem;
	color: var(--rf-ink);
	background: var(--rf-paper);
	border: 1px solid var(--rf-line);
	border-radius: var(--rf-radius);
	padding: 0.8em 1em;
	transition: border-color 0.25s var(--rf-ease), background 0.25s var(--rf-ease);
	-webkit-appearance: none;
	appearance: none;
}
.rf-form__field select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235c6670' stroke-width='1.6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 36px;
}
.rf-form__field input:focus,
.rf-form__field select:focus,
.rf-form__field textarea:focus {
	outline: none;
	border-color: var(--rf-accent);
	background: var(--rf-white);
}
.rf-form__field input.is-invalid,
.rf-form__field select.is-invalid,
.rf-form__field textarea.is-invalid { border-color: #c0392b; }
.rf-form__field textarea { resize: vertical; min-height: 120px; }
.rf-form__field input::placeholder,
.rf-form__field textarea::placeholder { color: #a6adb5; }

.rf-form__file { display: flex; flex-direction: column; gap: 8px; }
.rf-form__file input[type="file"] {
	font-family: var(--rf-font-mono);
	font-size: 0.8rem;
	border: 1px dashed var(--rf-line);
	border-radius: var(--rf-radius);
	padding: 14px;
	background: var(--rf-paper);
	width: 100%;
	cursor: pointer;
}
.rf-form__file input[type="file"]::file-selector-button {
	font-family: var(--rf-font-display);
	font-weight: 600;
	font-size: 0.78rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	background: var(--rf-ink);
	color: #fff;
	border: none;
	border-radius: var(--rf-radius);
	padding: 0.6em 1.1em;
	margin-right: 12px;
	cursor: pointer;
}
.rf-form__file-hint { font-size: 0.76rem; color: var(--rf-steel); }

.rf-form__foot {
	display: flex;
	align-items: center;
	gap: 24px;
	flex-wrap: wrap;
	margin-top: 32px;
	padding-top: 28px;
	border-top: 1px solid var(--rf-line);
}
.rf-form__submit { position: relative; }
/* Sending state: the button is disabled from JS as well, the ring simply makes
   the wait visible instead of leaving the visitor guessing whether it worked. */
.rf-form__submit.is-loading { pointer-events: none; opacity: 0.85; }
.rf-form__submit.is-loading::after {
	content: '';
	position: absolute;
	right: 14px;
	top: 50%;
	width: 16px;
	height: 16px;
	margin-top: -8px;
	border: 2px solid currentColor;
	border-top-color: transparent;
	border-radius: 50%;
	opacity: 0.9;
	animation: rf-spin 0.7s linear infinite;
}
.rf-form__submit.is-loading .rf-form__submit-text { padding-right: 26px; }
@keyframes rf-spin { to { transform: rotate(360deg); } }

/* iOS Safari zooms the viewport whenever a focused control is smaller than
   16px, and never zooms back out - a classic mobile bug. Keep text inputs,
   selects and textareas at 16px on touch-sized screens. */
@media (max-width: 768px) {
	.rf-form__field input,
	.rf-form__field select,
	.rf-form__field textarea { font-size: 16px; }
}
.rf-form__status {
	font-size: var(--rf-fs-sm);
	margin: 0;
	flex: 1;
	min-width: 240px;
}
.rf-form__status.is-success { color: #2e7d32; font-weight: 500; }
.rf-form__status.is-error { color: #c0392b; font-weight: 500; }

/* ---------- Post list / pagination ---------- */
.rf-post-list { display: flex; flex-direction: column; gap: 28px; }
.rf-post-item { border-bottom: 1px solid var(--rf-line); padding-bottom: 24px; }
.rf-post-item__title { font-size: var(--rf-fs-h3); text-transform: uppercase; margin: 0 0 8px; }
.rf-post-item__meta { color: var(--rf-steel); margin: 0 0 12px; font-size: 0.74rem; }
.rf-post-item__excerpt { color: var(--rf-steel); margin: 0; }
.rf-post-item__excerpt p { margin: 0; }

.rf-pagination { display: flex; justify-content: center; gap: 8px; margin-top: 48px; }
.rf-pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 44px; height: 44px;
	border: 1px solid var(--rf-line);
	background: var(--rf-white);
	font-family: var(--rf-font-mono);
	font-size: 0.85rem;
	color: var(--rf-graphite);
	padding: 0 10px;
}
.rf-pagination .page-numbers.current { background: var(--rf-ink); border-color: var(--rf-ink); color: #fff; }
.rf-pagination .page-numbers:hover { border-color: var(--rf-accent); color: var(--rf-accent-deep); }

.rf-empty {
	text-align: center;
	padding: 60px 0;
	color: var(--rf-steel);
	font-size: 1.05rem;
}

/* ---------- Footer ---------- */
.rf-footer {
	background: var(--rf-ink);
	color: rgba(255, 255, 255, 0.72);
	padding: clamp(56px, 7vw, 88px) 0 0;
}
.rf-footer__grid {
	display: grid;
	grid-template-columns: 5fr 2.4fr 2.4fr 3fr;
	gap: clamp(32px, 5vw, 64px);
	padding-bottom: clamp(44px, 5vw, 64px);
	border-bottom: 1px solid var(--rf-line-dark);
}
.rf-footer__logo { width: 200px; margin-bottom: 22px; }
.rf-footer__tagline { font-size: var(--rf-fs-sm); line-height: 1.7; max-width: 40ch; }
.rf-footer__social { display: flex; gap: 10px; flex-wrap: wrap; }
/* Footer reuses the shared .rf-social-link look - only the border tone differs
   against the dark footer surface */
.rf-footer__social .rf-social-link { border-color: var(--rf-line-dark); }
.rf-footer__title {
	color: #fff;
	font-size: 0.82rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	margin: 0 0 22px;
	font-family: var(--rf-font-mono);
	font-weight: 500;
}
.rf-footer__links { display: flex; flex-direction: column; gap: 12px; }
.rf-footer__links a { color: rgba(255, 255, 255, 0.66); font-size: var(--rf-fs-sm); }
.rf-footer__links a:hover { color: var(--rf-accent); padding-left: 4px; }
.rf-footer__links a { transition: color 0.25s var(--rf-ease), padding-left 0.25s var(--rf-ease); }
.rf-footer__contact { display: flex; flex-direction: column; gap: 16px; }
.rf-footer__contact li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: var(--rf-fs-sm);
	line-height: 1.6;
}
.rf-footer__contact .rf-icon { color: var(--rf-accent); flex: none; margin-top: 4px; }
.rf-footer__contact a { color: rgba(255, 255, 255, 0.66); }
.rf-footer__contact a:hover { color: var(--rf-accent); }
.rf-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
	padding: 22px 0 26px;
}
.rf-footer__copy {
	font-family: var(--rf-font-mono);
	font-size: 0.74rem;
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.45);
	margin: 0;
}


/* ---------- 404 ---------- */
.rf-404__inner {
	text-align: center;
	padding: clamp(80px, 12vw, 160px) 0;
}
.rf-404__code {
	font-size: clamp(5rem, 14vw, 10rem);
	font-weight: 500;
	color: var(--rf-mist);
	line-height: 1;
	margin: 0 0 20px;
}
.rf-404__title { text-transform: uppercase; margin: 0 0 14px; }
.rf-404__desc { color: var(--rf-steel); margin: 0 0 36px; }

/* ---------- Default page ---------- */
.rf-page { padding-bottom: clamp(56px, 7vw, 96px); }
.rf-page__head { padding-top: clamp(24px, 3vw, 40px); margin-bottom: 28px; }
.rf-page__title {
	font-size: clamp(1.7rem, 3.4vw, 2.6rem);
	text-transform: uppercase;
	margin: 0;
}
.rf-page .rf-breadcrumb { color: var(--rf-steel); }
.rf-page .rf-breadcrumb a { color: var(--rf-steel); }
.rf-page .rf-breadcrumb a:hover { color: var(--rf-accent); }
.rf-page__content { font-size: 1.02rem; }
.rf-page__content h2, .rf-page__content h3 { font-size: var(--rf-fs-h3); text-transform: uppercase; }
.rf-page__content p { margin-bottom: 1.3em; }
.rf-page__content a { text-decoration: underline; text-underline-offset: 3px; }
/* Single post: featured image above the body copy */
.rf-single-post__media { margin: 0 0 28px; }
.rf-single-post__media img { width: 100%; height: auto; border-radius: var(--rf-radius); }
.rf-single-post .rf-page__head .rf-post-item__meta { margin-bottom: 10px; }

.rf-main { display: block; min-height: 40vh; }

/* Anchor scroll offset for the fixed header */
.rf-section[id], .rf-hero[id], #capabilities, #products, #industries, #rf-inquiry, #rf-about, #rf-contact-page, #rf-inquiry-page, #rf-faq, #rf-single-product { scroll-margin-top: 84px; }

/* ==========================================================================
   Responsive: 1080 / 960 / 768 / 520
   ========================================================================== */

@media (max-width: 1080px) {
	.rf-cap-grid, .rf-product-grid, .rf-industries__grid, .rf-cases__grid { grid-template-columns: repeat(2, 1fr); }
	.rf-equip__grid { grid-template-columns: repeat(2, 1fr); }
	.rf-process__list { grid-template-columns: repeat(3, 1fr); }
	.rf-contact-cards { grid-template-columns: repeat(3, 1fr); }
	.rf-footer__grid { grid-template-columns: 1fr 1fr; }
	.rf-about-preview__inner, .rf-about__intro, .rf-single-product__grid, .rf-single-product__body-grid, .rf-inquiry-page__grid { grid-template-columns: 1fr; }
	.rf-about__intro-aside { max-width: 420px; }
	.rf-spec-table-wrap { position: static; }
	.rf-page-hero--split .rf-page-hero__inner { grid-template-columns: 1fr; }
	.rf-page-hero__media { max-width: 640px; }
}

/* Wide-laptop squeeze zone: the desktop nav used to stay untouched down to
   960px, where logo + six links + long CTA started colliding. Shrink the
   fixed-width pieces first... */
@media (max-width: 1279px) {
	.rf-header__logo { width: 160px; }
	.rf-header__inner { gap: 18px; }
	.rf-nav { gap: 22px; }
	.rf-nav__link { font-size: 0.8rem; letter-spacing: 0.06em; }
	.rf-header__cta { padding: 0.65em 1.05em; font-size: 0.76rem; }
	.rf-topbar__contact { gap: 16px; }
	.rf-topbar__item { font-size: 0.7rem; }
}

/* ...then hand over to the burger earlier than before, so 961-1080px windows
   get the drawer instead of an over-packed navbar. */
@media (max-width: 1080px) {
	.rf-header__nav { display: none; }
	.rf-header__burger { display: flex; }
	.rf-header__cta { display: none; }
}

@media (max-width: 960px) {
	:root { --rf-header-h: 64px; --rf-topbar-h: 36px; }
	.rf-header__nav { display: none; }
	.rf-header__burger { display: flex; }
	.rf-header__cta { display: none; }
	.rf-hero__scroll { display: none; }
	.rf-cta__inner { flex-direction: column; align-items: flex-start; }
	.rf-about__stats-grid, .rf-markets__grid { grid-template-columns: repeat(2, 1fr); gap: 32px; }
	.rf-hero__stats { grid-template-columns: repeat(2, 1fr); }
	.rf-hero__stat:nth-child(3) { border-left: none; padding-left: 0; }
	.rf-hero__stat { border-top: 1px solid rgba(255, 255, 255, 0.1); }
	.rf-hero__stat:nth-child(-n+2) { border-top: none; }
}

@media (max-width: 768px) {
	.rf-cap-grid, .rf-product-grid, .rf-industries__grid, .rf-cases__grid, .rf-equip__grid { grid-template-columns: 1fr; }
	.rf-process__list { grid-template-columns: 1fr; }
	.rf-contact-cards { grid-template-columns: 1fr; }
	.rf-form__grid { grid-template-columns: 1fr; }
	.rf-section-head-row { flex-direction: column; align-items: flex-start; gap: 8px; }
	.rf-trust__inner { flex-direction: column; align-items: flex-start; gap: 16px; }
	.rf-single-product__cta-inner { flex-direction: column; align-items: flex-start; }
	.rf-faq__q { padding: 18px; font-size: 0.95rem; }
	.rf-faq__a { padding: 0 18px 20px 18px; }
	.rf-about-preview__media::before { display: none; }
	.rf-footer__grid { grid-template-columns: 1fr; gap: 40px; }
	.rf-footer__bottom { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 520px) {
	.rf-hero { min-height: 92svh; }
	.rf-hero__actions .rf-btn { width: 100%; justify-content: center; }
	/* Half-width cells: shrink the digits so "±0.005 mm" keeps its nowrap */
	.rf-hero__stat { padding: 16px 14px 0; min-width: 0; }
	.rf-hero__stat-number { font-size: 1.5rem; }
	.rf-hero__stat-label { font-size: 0.72rem; letter-spacing: 0.1em; }
	.rf-about__stats-grid, .rf-markets__grid { grid-template-columns: 1fr; }
	.rf-hero__stats { grid-template-columns: 1fr 1fr; }
	.rf-filter__btn { font-size: 0.74rem; padding: 0.55em 0.95em; }
	.rf-form__foot { flex-direction: column; align-items: stretch; }
	.rf-form__foot .rf-btn { justify-content: center; }
}

/* ---------- Print ---------- */
@media print {
	.rf-header, .rf-drawer, .rf-footer, .rf-rail, .rf-cta, .rf-hero__scroll { display: none !important; }
	body { background: #fff; }
}

/* ---------- Responsive: top bar / rail ---------- */
@media (max-width: 768px) {
	.rf-rail {
		top: auto;
		bottom: 0;
		right: 0;
		left: 0;
		transform: none;
		flex-direction: row;
		gap: 0;
		background: rgba(16, 18, 22, 0.96);
		backdrop-filter: blur(12px);
		border-top: 1px solid var(--rf-line-dark);
		padding: 8px 8px calc(8px + env(safe-area-inset-bottom, 0px));
	}
	.rf-rail__btn {
		flex: 1;
		width: auto;
		height: 46px;
		background: none;
		border: none;
		box-shadow: none;
		border-radius: 0;
	}
	.rf-rail__btn--inquiry { background: none; }
	.rf-rail__label { display: none; }
	.rf-footer { padding-bottom: 84px; }
}
@media (max-width: 560px) {
	.rf-topbar__text--mail { display: none; }
}

/* ---------- Footer legal row ---------- */
/* Base look of the "Cookie settings" control, shared by the footer and the legal
   pages; the footer variant below only overrides the colour. */
.rf-consent-link {
	font: inherit;
	font-family: var(--rf-font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.04em;
	color: var(--rf-steel);
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 3px;
	transition: color 0.2s var(--rf-ease);
}
.rf-consent-link:hover { color: var(--rf-accent); }
.rf-consent-link:focus-visible { outline: 2px solid var(--rf-accent); outline-offset: 3px; }

.rf-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.rf-footer__legal a,
.rf-footer__legal .rf-consent-link {
	font-family: var(--rf-font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.5);
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	text-decoration: none;
	transition: color 0.2s var(--rf-ease);
}
.rf-footer__legal a:hover,
.rf-footer__legal .rf-consent-link:hover {
	color: var(--rf-accent);
	text-decoration: underline;
}

/* ---------- Consent banner ---------- */
.rf-consent {
	position: fixed;
	inset: auto 0 0 0;
	/* Below the mobile drawer (950) and the skip link, above the header (900)
	   and the side rail (850) so the banner never covers open navigation. */
	z-index: 940;
	padding: 0 var(--rf-gutter) calc(18px + env(safe-area-inset-bottom, 0px));
	pointer-events: none;
}
.rf-consent[hidden] { display: none; }
.rf-consent__inner {
	pointer-events: auto;
	max-width: var(--rf-container);
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	background: var(--rf-ink);
	color: rgba(255, 255, 255, 0.8);
	border: 1px solid var(--rf-line-dark);
	border-radius: var(--rf-radius);
	box-shadow: 0 18px 44px rgba(0, 0, 0, 0.28);
	padding: 20px 24px;
}
.rf-consent__title {
	margin: 0 0 4px;
	font-family: var(--rf-font-display);
	font-size: 1rem;
	letter-spacing: 0.02em;
	color: #fff;
	text-transform: none;
}
.rf-consent__desc {
	margin: 0;
	font-size: 0.84rem;
	line-height: 1.6;
	max-width: 72ch;
}
.rf-consent__desc a { color: var(--rf-accent); text-decoration: underline; }
.rf-consent__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.rf-consent__btn { padding: 0.7em 1.3em; font-size: 0.8rem; }
html.rf-consent-open { scroll-padding-bottom: 140px; }

/* ---------- Map consent facade ---------- */
/* .rf-contact-page__map keeps line-height:0 to kill the inline gap under the
   iframe; the facade resets it so its text cannot collapse. */
.rf-contact-page__map { position: relative; min-height: 460px; background: var(--rf-paper); }
.rf-map__facade {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	text-align: center;
	line-height: normal;
	padding: 32px;
	border: 1px dashed var(--rf-line);
	background:
		linear-gradient(0deg, rgba(20, 22, 26, 0.02), rgba(20, 22, 26, 0.02)),
		repeating-linear-gradient(45deg, transparent 0 14px, rgba(20, 22, 26, 0.035) 14px 28px);
}
.rf-map__pin { color: var(--rf-accent); }
.rf-map__note { margin: 0; max-width: 52ch; font-size: 0.86rem; line-height: 1.6; color: var(--rf-steel); }
.rf-map__load { margin-top: 4px; }
.rf-map__frame { display: block; width: 100%; height: 460px; border: 0; }

/* ---------- Legal pages ---------- */
/* Matches the wrapper emitted by page-legal.php: post_class( 'rf-page rf-legal' ) */
.rf-legal__body { max-width: 76ch; }
.rf-legal__body h2 { margin: 40px 0 12px; font-size: var(--rf-fs-h3); text-transform: none; }
.rf-legal__body h3 { margin: 28px 0 10px; font-size: 1.05rem; text-transform: none; }
.rf-legal__body p, .rf-legal__body li { font-size: 0.95rem; line-height: 1.75; color: var(--rf-graphite); }
.rf-legal__body ul { padding-left: 1.2em; }
.rf-legal__body li + li { margin-top: 6px; }
.rf-legal__updated { margin: 0 0 28px; font-size: 0.76rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--rf-steel); }
.rf-legal__contact {
	margin-top: 44px;
	padding: 24px 26px;
	border-left: 3px solid var(--rf-accent);
	background: var(--rf-paper);
}
.rf-legal__contact h2 { margin: 0 0 10px; font-size: 1.05rem; text-transform: none; }
.rf-legal__contact p { margin: 0 0 6px; font-size: 0.9rem; line-height: 1.7; color: var(--rf-graphite); }
.rf-legal__contact .rf-consent-link { display: inline-block; margin-top: 12px; }

/* ---------- Form consent checkbox ---------- */
.rf-form__consent {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 4px 0 6px;
	font-size: 0.84rem;
	line-height: 1.6;
	color: var(--rf-graphite);
}
.rf-form__consent input { margin-top: 3px; flex: none; }
.rf-form__consent a { color: var(--rf-accent-deep); text-decoration: underline; }
.rf-form__consent.is-invalid { color: var(--rf-accent-deep); }
.rf-form__captcha { margin: 6px 0 8px; min-height: 0; }

@media (max-width: 860px) {
	.rf-consent__inner { flex-direction: column; align-items: flex-start; gap: 16px; }
	.rf-consent__actions { width: 100%; }
	.rf-consent__actions .rf-btn { flex: 1; justify-content: center; }
	.rf-map__facade, .rf-contact-page__map { min-height: 360px; }
	.rf-map__frame { height: 360px; }
}

/* Below 768px the side rail becomes a fixed bottom action bar (~62px tall); the
   consent banner has to sit above it instead of covering it. */
@media (max-width: 768px) {
	.rf-consent { padding-bottom: calc(74px + env(safe-area-inset-bottom, 0px)); }
}
