/*
Theme Name: Right Recruit
Theme URI: https://rightrecruit.com
Author: Right Recruit
Description: Custom theme for Right Recruit, built from the Right Recruit Figma design. Includes the Home, About, Services, Clients, Career, Contact, HR Services, Flexi Staffing, Training and Blog layouts, a working inquiry form, newsletter sign-up, job listings and automatic page setup on activation.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: right-recruit
*/

/* ==========================================================================
   Tokens
   ========================================================================== */
:root {
	--rr-navy: #121623;
	--rr-orange: #cd450d;
	--rr-orange-dark: #b23b0a;
	--rr-gray: #d2d2d2;
	--rr-white: #ffffff;
	--rr-line: rgba(210, 210, 210, 0.1);
	--rr-orange-soft: rgba(205, 69, 13, 0.1);
	--rr-font: "Celias", "Outfit", "Helvetica Neue", Arial, sans-serif;
	--rr-container: 1350px;
	--rr-gutter: clamp(20px, 5.3vw, 80px);
	--rr-section-y: clamp(64px, 6.6vw, 100px);
	--rr-radius: 20px;
}

@font-face {
	font-family: "Outfit";
	src: url("assets/fonts/outfit-latin-400-normal.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Outfit";
	src: url("assets/fonts/outfit-latin-500-normal.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Outfit";
	src: url("assets/fonts/outfit-latin-700-normal.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/* ==========================================================================
   Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--rr-navy);
	color: var(--rr-white);
	font-family: var(--rr-font);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: color .2s ease, opacity .2s ease; }
a:hover { color: var(--rr-orange); }
p { margin: 0; }
h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: 700; line-height: 1.1; }
ul { margin: 0; padding: 0; list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--rr-orange); outline-offset: 3px; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute; width: 1px; word-wrap: normal !important;
}
.screen-reader-text:focus {
	background: var(--rr-white); color: var(--rr-navy); clip: auto; clip-path: none;
	display: block; height: auto; left: 8px; top: 8px; padding: 12px 20px; width: auto; z-index: 100000;
}

.rr-container { width: 100%; max-width: calc(var(--rr-container) + 2 * var(--rr-gutter)); margin: 0 auto; padding-inline: var(--rr-gutter); }
.rr-section { padding-block: var(--rr-section-y); position: relative; overflow: hidden; }
.rr-section + .rr-section, .rr-sep { border-top: 1px solid var(--rr-line); }
.rr-glow {
	background:
		radial-gradient(50% 50% at 50% 50%, rgba(205, 69, 13, .22) 0%, rgba(205, 69, 13, 0) 100%),
		var(--rr-navy);
}

/* ==========================================================================
   Typography helpers
   ========================================================================== */
.rr-eyebrow {
	display: inline-block;
	color: var(--rr-orange);
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .02em;
	line-height: normal;
}
.rr-eyebrow--wide { letter-spacing: 1.5px; }
.rr-eyebrow--white { color: var(--rr-white); }
.rr-h2 { font-size: clamp(32px, 3.2vw, 48px); line-height: 1.1; }
.rr-h2--40 { font-size: clamp(30px, 2.65vw, 40px); line-height: normal; }
.rr-lead { color: var(--rr-gray); font-size: 16px; line-height: 1.6; }
.rr-header-block { display: flex; flex-direction: column; gap: 16px; align-items: center; text-align: center; margin-bottom: 64px; }
.rr-header-block--left { align-items: flex-start; text-align: left; }
.rr-header-block .rr-lead { max-width: 900px; }
.rr-muted { color: var(--rr-gray); }

/* ==========================================================================
   Buttons
   ========================================================================== */
.rr-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	background: var(--rr-orange);
	color: var(--rr-white);
	border: 0;
	border-radius: 999px;
	padding: 12px 24px;
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	line-height: normal;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.rr-btn:hover, .rr-btn:focus-visible { background: var(--rr-orange-dark); color: var(--rr-white); transform: translateY(-1px); }
.rr-btn--lg { padding: 16px 36px; font-size: 16px; letter-spacing: .5px; }
.rr-btn--xl { padding: 18px 36px; font-size: 16px; }
.rr-btn--block { width: 100%; }
.rr-btn--shadow { box-shadow: 0 10px 12px rgba(0, 0, 0, .2); }

.rr-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--rr-orange);
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	line-height: normal;
}
.rr-link svg { width: 16px; height: 16px; transition: transform .2s ease; }
.rr-link:hover { color: var(--rr-white); }
.rr-link:hover svg { transform: translateX(3px); }

.rr-badge {
	display: inline-flex;
	align-items: center;
	background: var(--rr-orange-soft);
	color: var(--rr-orange);
	border-radius: 100px;
	padding: 4px 10px;
	font-size: 12px;
	font-weight: 700;
	line-height: normal;
	white-space: nowrap;
}
.rr-badge--upper { text-transform: uppercase; padding: 4px 12px; }
.rr-badge--outline { border: 1px solid rgba(205, 69, 13, .2); padding: 8px 14px; text-transform: uppercase; border-radius: 999px; }

/* ==========================================================================
   Header
   ========================================================================== */
.rr-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--rr-navy);
	border-bottom: 1px solid var(--rr-line);
}
.home .rr-header { border-bottom-color: transparent; }
.admin-bar .rr-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .rr-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .rr-header { top: 0; } }

.rr-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: 119px;
	padding: 10px 60px;
	max-width: 1510px;
	margin: 0 auto;
}
.rr-brand { display: flex; align-items: center; flex-shrink: 0; }
.rr-brand img { width: 127px; height: 99px; object-fit: contain; object-position: bottom; }
.rr-brand .custom-logo { width: auto; max-height: 99px; }

.rr-nav { display: flex; align-items: center; }
.rr-nav ul { display: flex; align-items: center; gap: 48px; }
.rr-nav li { position: relative; }
.rr-nav a {
	display: block;
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	line-height: normal;
	color: var(--rr-white);
	padding: 8px 0;
	white-space: nowrap;
}
.rr-nav a:hover,
.rr-nav .current-menu-item > a,
.rr-nav .current_page_item > a,
.rr-nav .current-menu-ancestor > a,
.rr-nav .current_page_ancestor > a,
.rr-nav .current-page-ancestor > a { color: var(--rr-orange); }

.rr-nav .menu-item-has-children > a { display: inline-flex; align-items: center; gap: 6px; }
.rr-nav .menu-item-has-children > a::after {
	content: "";
	width: 6px; height: 6px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
}
.rr-nav .sub-menu {
	position: absolute;
	top: 100%;
	left: -20px;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	min-width: 220px;
	padding: 10px;
	background: var(--rr-navy);
	border: 1px solid var(--rr-line);
	border-radius: 14px;
	box-shadow: 0 18px 40px rgba(0, 0, 0, .35);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.rr-nav li:hover > .sub-menu,
.rr-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.rr-nav .sub-menu a { padding: 10px 12px; border-radius: 8px; font-size: 13px; }
.rr-nav .sub-menu a:hover { background: var(--rr-orange-soft); }

.rr-header__cta { flex-shrink: 0; height: 42px; padding: 12px 24px; font-size: 13px; }
.rr-menu-toggle {
	display: none;
	background: transparent;
	border: 1px solid var(--rr-line);
	border-radius: 12px;
	width: 46px; height: 46px;
	align-items: center; justify-content: center;
	cursor: pointer;
	color: var(--rr-white);
}
.rr-menu-toggle svg { width: 24px; height: 24px; }
.rr-menu-toggle .rr-icon-close { display: none; }
.rr-nav-open .rr-menu-toggle .rr-icon-open { display: none; }
.rr-nav-open .rr-menu-toggle .rr-icon-close { display: block; }
.rr-nav .rr-nav__cta { display: none; }

/* ==========================================================================
   Heroes
   ========================================================================== */
.rr-hero {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	min-height: 334px;
	background-color: var(--rr-navy);
	background-size: cover;
	background-position: center;
}
.rr-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(18, 22, 35, .8) 0%, rgba(18, 22, 35, .2) 50%, rgba(18, 22, 35, 0) 87%);
	pointer-events: none;
}
.rr-hero__content { position: relative; z-index: 1; padding-block: 56px; }
.rr-hero__title { font-size: clamp(36px, 3.7vw, 56px); line-height: 1.05; max-width: 900px; }
.rr-hero__text { font-size: 18px; line-height: 1.6; max-width: 650px; margin-top: 18px; }
.rr-hero--tall { min-height: 360px; }
.rr-hero--tall .rr-hero__title { text-shadow: 0 6px 18px rgba(0, 0, 0, .25); }

/* Home hero */
.rr-hero--home { min-height: 668px; align-items: stretch; }
.rr-hero--home .rr-hero__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-top: 60px;
	padding-bottom: 160px;
}
.rr-hero--home .rr-hero__title { font-size: clamp(52px, 6.4vw, 96px); max-width: 6em; }
.rr-hero--home .rr-hero__text { margin-top: 18px; transition: opacity .35s ease; }
.rr-hero--home .rr-btn { align-self: flex-start; margin-top: 18px; }
.rr-hero-slider {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	z-index: 2;
	display: flex;
	gap: 24px;
	padding: 0 60px 20px;
	max-width: 1510px;
	margin: 0 auto;
}
.rr-hero-slider button {
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-items: flex-start;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	text-align: left;
	color: var(--rr-white);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .5px;
	min-height: 60px;
}
.rr-hero-slider button span:last-child { opacity: .8; transition: opacity .2s ease; }
.rr-hero-slider .rr-track { position: relative; display: block; width: 100%; height: 1px; background: rgba(255, 255, 255, .25); margin-top: 1px; }
.rr-hero-slider .rr-track i { position: absolute; left: 0; top: -1px; height: 3px; width: 0; background: var(--rr-orange); }
.rr-hero-slider .is-active span:last-child { opacity: 1; }
.rr-hero-slider .is-active .rr-track i { animation: rr-progress var(--rr-slide-ms, 6000ms) linear forwards; }
.rr-hero-slider.is-paused .is-active .rr-track i { animation-play-state: paused; }
.rr-hero-slider.is-static .is-active .rr-track i { animation: none; width: 100%; }
@keyframes rr-progress { from { width: 0; } to { width: 100%; } }

/* ==========================================================================
   Trusted by strip
   ========================================================================== */
.rr-trusted { padding: 38px var(--rr-gutter); text-align: center; background: var(--rr-navy); }
.rr-trusted__label { font-family: Inter, var(--rr-font); font-size: 11px; font-weight: 700; color: var(--rr-orange); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 32px; }
.rr-trusted__row { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 20px 56px; }
.rr-trusted__item { display: inline-flex; align-items: center; gap: 8px; color: rgba(210, 210, 210, .87); font-family: Inter, var(--rr-font); font-size: 18px; font-weight: 700; line-height: 22px; }
.rr-trusted__item svg { width: 18px; height: 18px; }
.rr-trusted__sep { width: 1px; height: 16px; background: rgba(210, 210, 210, .2); }

/* ==========================================================================
   Cards
   ========================================================================== */
.rr-grid { display: grid; gap: 48px; }
.rr-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rr-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.rr-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.rr-grid--gap32 { gap: 32px; }
.rr-grid--gap24 { gap: 24px; }

.rr-card {
	background: var(--rr-navy);
	border: 1px solid var(--rr-line);
	border-radius: var(--rr-radius);
	overflow: hidden;
	transition: border-color .25s ease, transform .25s ease;
}
.rr-card:hover { border-color: rgba(205, 69, 13, .45); }
.rr-card--pad { padding: 32px; display: flex; flex-direction: column; gap: 16px; }
.rr-card--r16 { border-radius: 16px; }
.rr-card--r24 { border-radius: 24px; }

/* Image service card */
.rr-svc-card { display: flex; flex-direction: column; gap: 40px; padding-bottom: 40px; height: 100%; }
.rr-svc-card__img { position: relative; height: 260px; overflow: hidden; }
.rr-svc-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.rr-svc-card:hover .rr-svc-card__img img { transform: scale(1.04); }
.rr-svc-card__body { display: flex; flex-direction: column; gap: 16px; padding: 0 28px; }
.rr-svc-card__title { font-size: 30px; line-height: 1.2; }
.rr-svc-card__desc { color: var(--rr-gray); font-size: 15px; line-height: 1.7; }
.rr-svc-card .rr-link { padding-top: 4px; }
.rr-bullets { display: flex; flex-direction: column; gap: 12px; }
.rr-bullets li { display: flex; align-items: center; gap: 12px; color: var(--rr-gray); font-size: 14px; line-height: normal; }
.rr-bullets li::before { content: ""; flex: 0 0 6px; height: 6px; border-radius: 99px; background: var(--rr-orange); }

/* Icon tiles */
.rr-icon-tile {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px; height: 56px;
	border-radius: 16px;
	background: var(--rr-orange-soft);
	color: var(--rr-orange);
	flex-shrink: 0;
}
.rr-icon-tile svg { width: 28px; height: 28px; }
.rr-icon-tile--sm svg { width: 22px; height: 22px; }
.rr-icon-tile--solid { background: var(--rr-orange); color: var(--rr-white); border-radius: 12px; }
.rr-icon-tile--lg { width: 72px; height: 72px; }
.rr-icon-tile--lg svg { width: 36px; height: 36px; }
.rr-icon-tile--48 { width: 48px; height: 48px; border-radius: 12px; }
.rr-icon-tile--48 svg { width: 20px; height: 20px; }

.rr-feature__title { font-size: 18px; line-height: 1.3; }
.rr-feature__title--20 { font-size: 20px; line-height: normal; }
.rr-feature__text { color: var(--rr-gray); font-size: 14px; line-height: 1.6; }
.rr-feature__text--15 { font-size: 15px; line-height: 1.7; }

/* White role / step cards */
.rr-white-card {
	background: var(--rr-white);
	color: var(--rr-navy);
	border-radius: 16px;
	padding: 32px;
	box-shadow: 0 8px 24px -8px rgba(0, 0, 0, .07), 0 8px 12px rgba(0, 0, 0, .07);
	transition: transform .25s ease, box-shadow .25s ease;
}
.rr-white-card:hover { transform: translateY(-4px); box-shadow: 0 18px 30px rgba(0, 0, 0, .18); }
.rr-role-card { display: flex; gap: 16px; align-items: flex-start; }
.rr-role-card h3 { font-size: 20px; line-height: normal; margin-bottom: 8px; }
.rr-role-card p { font-size: 14px; line-height: 1.6; }
.rr-step-card { display: flex; flex-direction: column; gap: 16px; }
.rr-step-card__head { display: flex; gap: 16px; align-items: center; min-height: 56px; }
.rr-step-card__head h3 { font-size: 20px; line-height: normal; }
.rr-step-card__head p { font-size: 14px; line-height: 1.6; margin-top: 4px; }
.rr-step-card > p { font-size: 14px; line-height: 1.6; }

/* Numbered step cards */
.rr-num { color: var(--rr-orange); font-size: 48px; font-weight: 700; line-height: normal; }
.rr-num--40 { font-size: 40px; }
.rr-num-card { padding: 32px; display: flex; flex-direction: column; gap: 24px; }
.rr-num-card h3 { font-size: 20px; line-height: normal; }
.rr-num-card p { color: var(--rr-gray); font-size: 14px; line-height: 1.6; margin-top: 12px; }

/* ==========================================================================
   Home sections
   ========================================================================== */
.rr-intro { display: grid; grid-template-columns: 425px minmax(0, 1fr); gap: 32px; margin-bottom: 64px; }
.rr-intro .rr-eyebrow { padding-top: 16px; }
.rr-intro__pitch { font-size: clamp(24px, 2.4vw, 36px); line-height: 1.3; font-weight: 400; }

.rr-about-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; align-items: center; }
.rr-about-row__text { display: flex; flex-direction: column; gap: 24px; align-items: flex-start; }
.rr-about-row__text h2 { font-size: clamp(34px, 3.2vw, 48px); line-height: 1.1; }
.rr-about-row__text p { color: var(--rr-gray); font-size: 16px; line-height: 1.7; }
.rr-about-row__img { border-radius: 16px; overflow: hidden; }
.rr-about-row__img img { width: 100%; height: 520px; object-fit: cover; }

.rr-serve { padding-block: clamp(72px, 8vw, 120px); }
.rr-serve .rr-header-block .rr-eyebrow { width: 100%; }
.rr-center { display: flex; justify-content: center; margin-top: 64px; }

.rr-mission {
	position: relative;
	min-height: 668px;
	display: flex;
	align-items: center;
	background-color: var(--rr-orange);
	background-size: cover;
	background-position: center;
	overflow: hidden;
}
.rr-mission::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18, 22, 35, .8) 0%, rgba(18, 22, 35, 0) 100%); }
.rr-mission .rr-container { position: relative; }
.rr-glass {
	width: 100%;
	max-width: 564px;
	min-height: 384px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 24px;
	padding: 48px;
	border-radius: 28px;
	background: rgba(255, 255, 255, .18);
	border: 1px solid rgba(255, 255, 255, .22);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	box-shadow: 0 18px 22px rgba(0, 0, 0, .15);
}
.rr-glass h2 { font-size: clamp(26px, 2.2vw, 32px); line-height: 1.2; }
.rr-glass p { font-size: 16px; line-height: 1.6; opacity: .82; max-width: 430px; }
.rr-dots { display: flex; gap: 10px; }
.rr-dots span { width: 10px; height: 10px; border-radius: 50%; background: rgba(255, 255, 255, .45); }
.rr-dots span:first-child { background: var(--rr-white); }

.rr-roles { padding-block: clamp(80px, 9.3vw, 140px); }
.rr-roles .rr-header-block h2 { font-size: clamp(34px, 3.2vw, 48px); line-height: normal; }
.rr-roles .rr-header-block { gap: 24px; }
.rr-roles__orb {
	position: absolute; right: -180px; top: -120px; width: 420px; height: 420px; opacity: .18; pointer-events: none;
	background: radial-gradient(50% 50% at 50% 50%, var(--rr-orange) 0%, rgba(205, 69, 13, 0) 100%);
}

.rr-stories { background: var(--rr-gray); color: var(--rr-navy); padding-block: 80px; }
.rr-stories .rr-eyebrow { color: var(--rr-navy); letter-spacing: 2px; }
.rr-stories .rr-header-block { margin-bottom: 48px; }
.rr-quote { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 24px; margin-bottom: 48px; }
.rr-quote__mark { font-size: 96px; line-height: 1; font-weight: 700; height: 72px; }
.rr-quote blockquote { margin: 0; max-width: 980px; font-size: clamp(22px, 2.1vw, 32px); line-height: 1.25; font-weight: 400; transition: opacity .3s ease; }
.rr-photos { display: flex; align-items: center; justify-content: center; gap: 16px; }
.rr-photos__thumb { width: 96px; height: 120px; border-radius: 16px; overflow: hidden; flex-shrink: 0; }
.rr-photos__thumb img { width: 100%; height: 100%; object-fit: cover; }
.rr-photos__active { display: flex; flex-direction: column; align-items: center; gap: 12px; flex-shrink: 0; }
.rr-photos__active img { width: 280px; height: 280px; border-radius: 16px; object-fit: cover; }
.rr-photos__name { font-weight: 700; font-size: 16px; line-height: normal; text-align: center; }
.rr-photos__role { font-weight: 700; font-size: 12px; text-transform: uppercase; text-align: center; margin-top: 2px; }

.rr-stats {
	position: relative;
	min-height: 520px;
	display: flex;
	align-items: center;
	background-color: var(--rr-navy);
	background-size: cover;
	background-position: center;
	text-align: center;
}
.rr-stats::before { content: ""; position: absolute; inset: 0; background: rgba(18, 22, 35, .85); }
.rr-stats .rr-container { position: relative; }
.rr-stats__title { font-size: clamp(28px, 2.65vw, 40px); font-weight: 400; line-height: normal; margin-bottom: 48px; }
.rr-stats__row { display: flex; justify-content: center; flex-wrap: wrap; gap: 32px; }
.rr-stat { width: 280px; display: flex; flex-direction: column; gap: 8px; align-items: center; }
.rr-stats--wide .rr-stat { width: 320px; }
.rr-stat__num { font-size: clamp(52px, 4.8vw, 72px); font-weight: 700; line-height: normal; }
.rr-stat__num em { font-style: normal; color: var(--rr-orange); }
.rr-stat__label { color: var(--rr-gray); font-size: 14px; font-weight: 700; text-transform: uppercase; }
.rr-stats--short { min-height: 420px; }

/* Blog cards */
.rr-blogs { padding-block: clamp(72px, 8vw, 120px); }
.rr-blog-card { display: flex; flex-direction: column; height: 100%; border-radius: 16px; }
.rr-blog-card__img { display: block; height: 220px; overflow: hidden; position: relative; }
.rr-blog-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.rr-blog-card:hover .rr-blog-card__img img { transform: scale(1.05); }
.rr-blog-card__body { display: flex; flex-direction: column; gap: 24px; padding: 24px 24px 32px; flex: 1; }
.rr-blog-card__meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.rr-blog-card__meta time { color: var(--rr-gray); font-size: 13px; white-space: nowrap; }
.rr-blog-card__title { font-size: 18px; line-height: 1.3; }
.rr-blog-card__title a:hover { color: var(--rr-orange); }
.rr-blog-card__excerpt { color: var(--rr-gray); font-size: 14px; line-height: 1.5; margin-top: 8px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.rr-blog-card .rr-link { margin-top: auto; }

/* ==========================================================================
   CTA band + footer
   ========================================================================== */
.rr-cta {
	background: linear-gradient(90deg, var(--rr-gray) 0%, var(--rr-gray) 50%, var(--rr-orange) 100%);
	color: var(--rr-navy);
	min-height: 412px;
	display: flex;
	align-items: center;
	text-align: center;
	padding-block: 80px;
}
.rr-cta__inner { display: flex; flex-direction: column; align-items: center; gap: 32px; }
.rr-cta__title { font-size: clamp(36px, 4.3vw, 64px); line-height: 1.1; max-width: 1200px; }
.rr-cta__text { font-size: 18px; line-height: 1.6; max-width: 960px; }

.rr-footer {
	border-top: 1px solid #1f3a14;
	background:
		radial-gradient(50% 50% at 50% 50%, rgba(205, 69, 13, .15) 0%, rgba(205, 69, 13, 0) 100%),
		var(--rr-navy);
	padding-block: 60px;
}
.rr-footer__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 48px; margin-bottom: 64px; }
.rr-footer__brand { max-width: 330px; display: flex; flex-direction: column; gap: 16px; }
.rr-footer__brand img { width: 124px; height: 85px; object-fit: contain; object-position: left; }
.rr-footer__brand p { color: var(--rr-gray); font-size: 13px; line-height: 1.6; }
.rr-footer__cols { display: flex; gap: 80px; }
.rr-footer__col h2 { font-size: 12px; text-transform: uppercase; line-height: normal; margin-bottom: 16px; }
.rr-footer__col ul { display: flex; flex-direction: column; gap: 12px; }
.rr-footer__col a { color: var(--rr-gray); font-size: 14px; line-height: normal; }
.rr-footer__col a:hover { color: var(--rr-orange); }
.rr-footer__bottom { display: flex; justify-content: space-between; align-items: center; gap: 24px; color: var(--rr-gray); font-size: 12px; }
.rr-social { display: flex; align-items: center; gap: 24px; opacity: .75; }
.rr-social a { display: inline-flex; color: var(--rr-white); }
.rr-social a:hover { color: var(--rr-orange); opacity: 1; }
.rr-social svg { width: 16px; height: 16px; }

/* ==========================================================================
   Services page
   ========================================================================== */
.rr-svc-row { display: flex; align-items: center; gap: 40px; padding: 32px; border-radius: 16px; }
.rr-svc-row__body { flex: 1; min-width: 0; }
.rr-svc-row__body h3 { font-size: clamp(24px, 2vw, 30px); line-height: 1.2; margin-bottom: 8px; }
.rr-svc-row__body p { color: var(--rr-gray); font-size: 15px; line-height: 1.7; max-width: 800px; }
.rr-stack { display: flex; flex-direction: column; gap: 32px; }
.rr-stack--24 { gap: 24px; }

/* Clients page */
.rr-study { padding: 40px; display: flex; flex-direction: column; gap: 24px; align-items: flex-start; border-radius: 24px; }
.rr-study__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; flex-wrap: wrap; }
.rr-lockup { display: flex; align-items: center; gap: 10px; }
.rr-lockup__mark { width: 28px; height: 28px; border-radius: 8px; background: var(--rr-orange); color: var(--rr-white); font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.rr-lockup__name { color: var(--rr-orange); text-transform: uppercase; font-weight: 700; line-height: normal; }
.rr-lockup__name span { display: block; font-size: 12px; }
.rr-lockup__name small { display: block; font-size: 10px; opacity: .75; }
.rr-study .rr-badge { font-size: 13px; padding: 6px 16px; border-radius: 999px; }
.rr-study h3 { font-size: clamp(24px, 2vw, 30px); line-height: 1.2; }
.rr-study p { color: var(--rr-gray); font-size: 15px; line-height: 1.7; }
.rr-model { padding: 32px; display: flex; flex-direction: column; gap: 20px; }
.rr-model h3 { font-size: 22px; line-height: normal; }
.rr-model__meta { display: flex; flex-direction: column; gap: 8px; font-size: 13px; line-height: normal; }
.rr-model__meta strong { color: var(--rr-orange); text-transform: uppercase; }
.rr-model__meta span { color: var(--rr-gray); }
.rr-model > p { color: var(--rr-gray); font-size: 14px; line-height: 1.6; }

/* Career page */
.rr-job { display: flex; align-items: center; gap: 40px; padding: 32px; border-radius: 20px; }
.rr-job__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.rr-job__title { font-size: 24px; line-height: normal; }
.rr-job__desc { color: var(--rr-gray); font-size: 14px; line-height: 1.5; }
.rr-job__meta { display: flex; flex-wrap: wrap; gap: 8px 24px; color: #c7c9d1; font-size: 14px; line-height: normal; }
.rr-job .rr-btn { padding: 14px 24px 14px 28px; }
.rr-journey { background-size: cover; background-position: center; }
.rr-milestone {
	background: rgba(18, 22, 35, .96);
	border: 1.5px solid rgba(205, 69, 13, .45);
	border-radius: 20px;
	padding: 32px;
	display: flex;
	flex-direction: column;
	gap: 20px;
	box-shadow: 0 12px 28px rgba(0, 0, 0, .15);
}
.rr-milestone h3 { font-size: 20px; line-height: normal; }
.rr-milestone p { color: var(--rr-gray); font-size: 14px; line-height: 1.6; }

/* Contact page */
.rr-contact-grid { display: grid; grid-template-columns: minmax(0, 760px) minmax(0, 1fr); gap: 64px; align-items: start; }
.rr-form-card { padding: 48px; border-radius: 24px; display: flex; flex-direction: column; gap: 32px; }
.rr-form-card h2 { font-size: 32px; line-height: normal; }
.rr-form { display: flex; flex-direction: column; gap: 24px; }
.rr-form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.rr-field { display: flex; flex-direction: column; gap: 8px; }
.rr-field label { color: var(--rr-gray); font-size: 14px; font-weight: 700; line-height: normal; }
.rr-field input,
.rr-field select,
.rr-field textarea {
	width: 100%;
	background: transparent;
	border: 1px solid var(--rr-line);
	border-radius: 8px;
	padding: 15px 16px;
	color: var(--rr-white);
	font-size: 14px;
	line-height: normal;
	transition: border-color .2s ease, background-color .2s ease;
}
.rr-field select {
	appearance: none;
	-webkit-appearance: none;
	background-image: linear-gradient(45deg, transparent 50%, var(--rr-gray) 50%), linear-gradient(135deg, var(--rr-gray) 50%, transparent 50%);
	background-position: calc(100% - 22px) 50%, calc(100% - 17px) 50%;
	background-size: 5px 5px;
	background-repeat: no-repeat;
	padding-right: 44px;
}
.rr-field select option { background: var(--rr-navy); color: var(--rr-white); }
.rr-field textarea { min-height: 120px; resize: vertical; }
.rr-field input::placeholder, .rr-field textarea::placeholder { color: var(--rr-gray); opacity: 1; }
.rr-field input:focus, .rr-field select:focus, .rr-field textarea:focus { outline: none; border-color: var(--rr-orange); background: rgba(205, 69, 13, .04); }
.rr-field--invalid input, .rr-field--invalid select, .rr-field--invalid textarea { border-color: #ff6b4a; }
.rr-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.rr-notice { border-radius: 12px; padding: 14px 18px; font-size: 14px; line-height: 1.5; }
.rr-notice--ok { background: rgba(46, 160, 67, .14); border: 1px solid rgba(46, 160, 67, .45); color: #b6f0c1; }
.rr-notice--err { background: rgba(255, 107, 74, .12); border: 1px solid rgba(255, 107, 74, .45); color: #ffc7b9; }
.rr-contact-info { display: flex; flex-direction: column; gap: 48px; }
.rr-contact-info h2 { font-size: clamp(30px, 2.65vw, 40px); line-height: normal; max-width: 360px; }
.rr-contact-info > div > p { color: var(--rr-gray); font-size: 16px; line-height: 1.6; margin-top: 32px; max-width: 360px; }
.rr-detail { display: flex; align-items: center; gap: 16px; padding-block: 24px; }
.rr-detail strong { display: block; font-size: 14px; text-transform: uppercase; line-height: normal; }
.rr-detail span, .rr-detail a { display: block; color: var(--rr-gray); font-size: 16px; line-height: normal; margin-top: 4px; }
.rr-detail a:hover { color: var(--rr-orange); }
.rr-office { padding: 32px; display: flex; flex-direction: column; gap: 16px; line-height: normal; }
.rr-office h3 { font-size: 22px; }
.rr-office__addr { color: var(--rr-gray); font-size: 14px; }
.rr-office__phone { color: var(--rr-orange); font-weight: 700; font-size: 14px; }
.rr-office__tag { color: var(--rr-gray); font-weight: 700; font-size: 13px; text-transform: uppercase; }
.rr-office-img { position: relative; height: 420px; border-radius: 24px; overflow: hidden; margin-top: 64px; }
.rr-office-img img { width: 100%; height: 100%; object-fit: cover; }
.rr-faq { padding: 32px; border-radius: 16px; display: flex; flex-direction: column; gap: 16px; }
.rr-faq h3 { font-size: 20px; line-height: normal; }
.rr-faq p { color: var(--rr-gray); font-size: 14px; line-height: 1.6; }

/* Blog page */
.rr-featured { display: grid; grid-template-columns: 560px minmax(0, 1fr); gap: 48px; align-items: center; padding: 40px; border-radius: 24px; }
.rr-featured__img { display: block; height: 380px; border-radius: 16px; overflow: hidden; }
.rr-featured__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.rr-featured:hover .rr-featured__img img { transform: scale(1.03); }
.rr-featured__body { display: flex; flex-direction: column; gap: 24px; }
.rr-featured__body h3 { font-size: clamp(26px, 2.4vw, 36px); line-height: 1.2; }
.rr-featured__body p { color: var(--rr-gray); font-size: 16px; line-height: 1.6; }
.rr-blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.rr-newsletter {
	text-align: center;
	border: 1px solid var(--rr-line);
	border-radius: 24px 24px 0 0;
	padding-block: 100px;
}
.rr-newsletter h2 { font-size: 32px; line-height: normal; }
.rr-newsletter > .rr-container > p { color: var(--rr-gray); max-width: 800px; margin: 16px auto 48px; }
.rr-subscribe { display: flex; gap: 16px; max-width: 600px; margin: 0 auto; }
.rr-subscribe__field { flex: 1; display: flex; align-items: center; gap: 10px; background: var(--rr-white); border-radius: 999px; padding: 0 16px 0 28px; }
.rr-subscribe__field svg { width: 18px; height: 18px; color: #6a6a6a; flex-shrink: 0; }
.rr-subscribe__field input { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--rr-navy); font-size: 14px; padding: 16px 0; }
.rr-subscribe__field input::placeholder { color: #6a6a6a; }
.rr-subscribe__field input:focus { outline: none; }
.rr-subscribe .rr-btn { padding: 14px 28px; }
.rr-newsletter .rr-notice { max-width: 600px; margin: 0 auto 24px; text-align: left; }

.rr-pagination { margin-top: 56px; display: flex; justify-content: center; }
.rr-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.rr-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 14px; border: 1px solid var(--rr-line); border-radius: 999px; color: var(--rr-gray); font-weight: 700; font-size: 14px; }
.rr-pagination .page-numbers.current, .rr-pagination a.page-numbers:hover { background: var(--rr-orange); border-color: var(--rr-orange); color: var(--rr-white); }

/* Single post / generic content */
.rr-article { max-width: 820px; margin: 0 auto; }
.rr-article__meta { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; margin-bottom: 24px; color: var(--rr-gray); font-size: 14px; }
.rr-article__img { border-radius: 20px; overflow: hidden; margin-bottom: 48px; }
.rr-article__img img { width: 100%; max-height: 520px; object-fit: cover; }
.rr-prose { color: var(--rr-gray); font-size: 17px; line-height: 1.8; }
.rr-prose > * + * { margin-top: 1.2em; }
.rr-prose h2, .rr-prose h3, .rr-prose h4 { color: var(--rr-white); line-height: 1.25; margin-top: 1.8em; }
.rr-prose h2 { font-size: 30px; }
.rr-prose h3 { font-size: 24px; }
.rr-prose a { color: var(--rr-orange); text-decoration: underline; text-underline-offset: 3px; }
.rr-prose a:hover { color: var(--rr-white); }
.rr-prose ul, .rr-prose ol { padding-left: 1.3em; }
.rr-prose ul { list-style: disc; }
.rr-prose li + li { margin-top: .4em; }
.rr-prose li::marker { color: var(--rr-orange); }
.rr-prose blockquote { margin-left: 0; padding: 8px 0 8px 24px; border-left: 3px solid var(--rr-orange); color: var(--rr-white); font-size: 20px; }
.rr-prose img { border-radius: 14px; }
.rr-prose figure { margin-inline: 0; }
.rr-prose figcaption { font-size: 13px; color: var(--rr-gray); margin-top: 8px; }
.rr-prose table { width: 100%; border-collapse: collapse; }
.rr-prose th, .rr-prose td { border: 1px solid var(--rr-line); padding: 10px 12px; text-align: left; }
.rr-prose .alignwide { max-width: 1100px; }
.rr-prose .wp-block-button__link { background: var(--rr-orange); color: #fff; border-radius: 999px; text-decoration: none; font-weight: 700; }
.rr-post-nav { display: flex; justify-content: space-between; gap: 24px; margin-top: 64px; padding-top: 32px; border-top: 1px solid var(--rr-line); }
.rr-post-nav a { display: flex; flex-direction: column; gap: 6px; max-width: 48%; font-weight: 700; }
.rr-post-nav span { color: var(--rr-orange); font-size: 12px; text-transform: uppercase; }
.rr-post-nav .next { text-align: right; margin-left: auto; }
.rr-search-form { display: flex; gap: 12px; max-width: 520px; }
.rr-search-form input { flex: 1; background: transparent; border: 1px solid var(--rr-line); border-radius: 999px; padding: 12px 20px; color: #fff; }
.rr-empty { text-align: center; color: var(--rr-gray); }

/* Comments */
.rr-comments { max-width: 820px; margin: 64px auto 0; }
.rr-comments h2 { font-size: 24px; margin-bottom: 24px; }
.rr-comments ol { list-style: none; padding: 0; }
.rr-comments .comment-body { border: 1px solid var(--rr-line); border-radius: 16px; padding: 20px; margin-bottom: 16px; color: var(--rr-gray); }
.rr-comments .comment-author { color: #fff; font-weight: 700; }
.rr-comments input[type="text"], .rr-comments input[type="email"], .rr-comments input[type="url"], .rr-comments textarea { width: 100%; background: transparent; border: 1px solid var(--rr-line); border-radius: 8px; padding: 12px 14px; color: #fff; }
.rr-comments .comment-form { display: flex; flex-direction: column; gap: 16px; color: var(--rr-gray); font-size: 14px; }
.rr-comments .comment-form p { margin: 0; }
.rr-comments .comment-form label { display: block; margin-bottom: 6px; font-weight: 700; }
.rr-comments .comment-reply-title { font-size: 22px; color: #fff; }
.rr-comments .submit { background: var(--rr-orange); border: 0; border-radius: 999px; color: #fff; padding: 12px 24px; font-weight: 700; text-transform: uppercase; cursor: pointer; }

/* Reveal on scroll (only when JS is running) */
.rr-js .rr-reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.rr-js .rr-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.rr-js .rr-reveal { opacity: 1; transform: none; transition: none; }
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1280px) {
	.rr-header__inner { padding-inline: 32px; }
	.rr-nav ul { gap: 30px; }
	.rr-hero-slider { padding-inline: 32px; }
	.rr-featured { grid-template-columns: 1fr 1fr; }
	.rr-footer__cols { gap: 56px; }
}

@media (max-width: 1100px) {
	.rr-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rr-grid--3, .rr-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
	.rr-intro { grid-template-columns: 1fr; gap: 16px; }
	.rr-intro .rr-eyebrow { padding-top: 0; }
	.rr-contact-grid { grid-template-columns: 1fr; }
	.rr-photos__thumb:nth-child(1), .rr-photos__thumb:nth-child(9) { display: none; }
}

@media (max-width: 960px) {
	.rr-header__inner { min-height: 84px; padding: 8px 20px; }
	.rr-brand img { width: 88px; height: 68px; }
	.rr-header__cta { display: none; }
	.rr-menu-toggle { display: inline-flex; }
	.rr-nav {
		position: fixed;
		inset: 84px 0 0 0;
		overflow-y: auto;
		flex-direction: column;
		align-items: stretch;
		background: var(--rr-navy);
		border-top: 1px solid var(--rr-line);
		border-bottom: 1px solid var(--rr-line);
		padding: 16px 20px 28px;
		opacity: 0;
		visibility: hidden;
		transform: translateY(-8px);
		transition: opacity .2s ease, transform .2s ease, visibility .2s;
	}
	.admin-bar .rr-nav { top: calc(84px + 46px); }
	.rr-nav-open .rr-nav { opacity: 1; visibility: visible; transform: none; }
	.rr-nav ul { flex-direction: column; align-items: stretch; gap: 0; }
	.rr-nav li { border-bottom: 1px solid var(--rr-line); }
	.rr-nav a { padding: 16px 0; font-size: 15px; }
	.rr-nav .sub-menu {
		position: static; opacity: 1; visibility: visible; transform: none;
		background: transparent; border: 0; box-shadow: none; padding: 0 0 12px 14px; min-width: 0;
	}
	.rr-nav .sub-menu li { border: 0; }
	.rr-nav .sub-menu a { padding: 10px 0; }
	.rr-nav .menu-item-has-children > a::after { display: none; }
	.rr-nav .rr-nav__cta { display: flex; margin-top: 24px; padding: 14px 24px; font-size: 14px; color: var(--rr-white); }

	.rr-hero--home { min-height: 600px; }
	.rr-hero-slider { gap: 14px; padding-inline: 20px; }
	.rr-hero-slider button { font-size: 12px; }
	.rr-about-row { grid-template-columns: 1fr; gap: 40px; }
	.rr-about-row__img img { height: 380px; }
	.rr-svc-row, .rr-job { flex-direction: column; align-items: flex-start; gap: 24px; }
	.rr-featured { grid-template-columns: 1fr; padding: 24px; gap: 32px; }
	.rr-featured__img { height: 300px; }
	.rr-grid--2 { grid-template-columns: 1fr; }
	.rr-footer__top { flex-direction: column; }
	.rr-photos__thumb:nth-child(2), .rr-photos__thumb:nth-child(8) { display: none; }
	.rr-mission { min-height: 560px; }
}

@media (max-width: 700px) {
	.rr-grid--3, .rr-grid--4, .rr-blog-grid { grid-template-columns: 1fr; gap: 24px; }
	.rr-hero { min-height: 300px; }
	.rr-hero__text { font-size: 16px; }
	.rr-hero--home .rr-hero__content { padding-bottom: 150px; }
	.rr-hero-slider { flex-wrap: wrap; row-gap: 4px; }
	.rr-hero-slider button { flex: 1 1 calc(50% - 14px); min-height: 48px; gap: 8px; }
	.rr-header-block { margin-bottom: 40px; }
	.rr-form-card { padding: 28px 20px; }
	.rr-form__row { grid-template-columns: 1fr; }
	.rr-glass { padding: 32px 24px; min-height: 0; }
	.rr-trusted__sep { display: none; }
	.rr-trusted__row { gap: 18px 32px; }
	.rr-photos { gap: 10px; }
	.rr-photos__thumb { display: none; }
	.rr-photos__active img { width: 220px; height: 220px; }
	.rr-svc-card__title { font-size: 26px; }
	.rr-subscribe { flex-direction: column; }
	.rr-subscribe .rr-btn { width: 100%; }
	.rr-footer__cols { flex-wrap: wrap; gap: 40px 56px; }
	.rr-footer__bottom { flex-direction: column-reverse; align-items: flex-start; }
	.rr-study, .rr-svc-row, .rr-job, .rr-card--pad, .rr-model, .rr-office, .rr-faq, .rr-num-card, .rr-milestone, .rr-white-card { padding: 24px; }
	.rr-office-img { height: 260px; margin-top: 40px; }
	.rr-stats { min-height: 0; padding-block: 72px; }
	.rr-cta { min-height: 0; }
	.rr-cta__text { font-size: 16px; }
	.rr-btn--lg { padding: 15px 28px; }
}
