/* Rehybrid design system. Graphite + battery green.
   NOTE: Hestia sets html font-size to 10px (62.5%), so do NOT use rem here - sizes are in px/em. */
:root {
	--rh-bg: #0e1214;
	--rh-surface: #161d20;
	--rh-line: #263036;
	--rh-text: #e8eef0;
	--rh-muted: #9aa7ad;
	--rh-paper: #f3f6f4;
	--rh-ink: #11181b;
	--rh-ink-muted: #51606a;
	--rh-accent: #7ec347;
	--rh-accent-ink: #0b1a05;
	--rh-radius: 14px;
	--rh-head: "IBM Plex Sans Condensed", "IBM Plex Sans", system-ui, sans-serif;
	--rh-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}

body,
body.home { font-family: var(--rh-body); }

/* ---- Navbar: light, because the logo lettering is black ---- */
.navbar.navbar-default,
.navbar.navbar-transparent,
.navbar.navbar-not-transparent {
	background: #fff !important;
	box-shadow: 0 1px 0 #dde5e1 !important;
	padding: 5.6px 0;
}
.navbar .navbar-brand img { max-height: 46px; width: auto; }
.navbar .navbar-nav > li > a { color: var(--rh-ink) !important; font-family: var(--rh-body); font-weight: 500; text-transform: none; letter-spacing: 0; font-size: 15.2px; }
.navbar .navbar-nav > li > a:hover,
.navbar .navbar-nav > li.active > a { color: #4d8f1d !important; background: transparent !important; }
.navbar .hestia-title-tagline-wrap { display: none; }
/* Hestia hides the logo in the scrolled navbar state; keep it visible. */
.navbar.hestia_right.navbar-scroll-point .title-logo-wrapper,
.navbar .title-logo-wrapper { display: flex !important; }
.navbar .navbar-brand { padding: 5.6px 15px; }
@media (min-width: 992px) {
	.navbar.hestia_right > .container { flex-direction: row; flex-wrap: nowrap; align-items: center; }
	.navbar .header-sidebar-wrapper { display: none; }
	.navbar.hestia_right .navbar-header { flex: 0 0 auto; max-width: none; }
	.navbar.hestia_right .navbar-collapse { flex: 1 1 0; min-width: 0; width: 0 !important; margin: 0; padding: 0; display: flex !important; justify-content: flex-end; }
	.navbar.hestia_right .navbar-nav { width: auto; max-width: 100%; flex-wrap: wrap; justify-content: flex-end; align-items: center; margin: 0 0 0 auto; }
}
.navbar .navbar-toggle .icon-bar { background: var(--rh-ink) !important; }

/* ---- Home ---- */
.rh-home { font-family: var(--rh-body); color: var(--rh-text); background: var(--rh-bg); line-height: 1.6; }
.rh-home h1, .rh-home h2, .rh-home h3 { font-family: var(--rh-head); font-weight: 600; letter-spacing: -.01em; margin: 0; line-height: 1.1; }
.rh-wrap { width: min(1120px, 100% - 32px); margin-inline: auto; }
.rh-section { padding: clamp(56px, 9vw, 104px) 0; }
.rh-section--light { background: var(--rh-paper); color: var(--rh-ink); }
.rh-section--dark { background: var(--rh-bg); color: var(--rh-text); }
.rh-section h2 { font-size: clamp(32px, 4.5vw, 48px); margin-bottom: 8px; }
.rh-sub { color: var(--rh-ink-muted); font-size: 17.6px; max-width: 60ch; margin: 0 0 40px; }
.rh-section--dark .rh-sub { color: var(--rh-muted); }

/* Hero */
.rh-hero {
	position: relative;
	padding: clamp(120px, 18vw, 200px) 0 clamp(56px, 8vw, 96px);
	background:
		linear-gradient(180deg, rgba(14,18,20,.78) 0%, rgba(14,18,20,.92) 100%),
		var(--rh-hero) center / cover no-repeat;
}
.rh-kicker { color: var(--rh-accent); font-weight: 600; text-transform: uppercase; letter-spacing: .14em; font-size: 13.6px; margin: 0 0 16px; }
.rh-hero h1 { font-size: clamp(38.4px, 7vw, 73.6px); max-width: 16ch; color: #fff; }
.rh-lead { font-size: clamp(16.8px, 2vw, 20.8px); color: #c9d3d7; max-width: 56ch; margin: 20px 0 32px; }
.rh-cta { display: flex; flex-wrap: wrap; gap: 12px; }
.rh-btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 52px; padding: 0 25.6px; border-radius: 999px;
	font: 600 16px var(--rh-body); text-decoration: none !important;
	transition: transform .15s, background .15s, border-color .15s;
}
.rh-btn:hover { transform: translateY(-1px); }
.rh-btn--primary { background: var(--rh-accent); color: var(--rh-accent-ink) !important; }
.rh-btn--primary:hover { background: #93d65c; }
.rh-btn--ghost { border: 1.5px solid rgba(255,255,255,.35); color: #fff !important; }
.rh-btn--ghost:hover { border-color: var(--rh-accent); }
.rh-btn:focus-visible, .rh-model:focus-visible, .rh-contact-list a:focus-visible { outline: 3px solid var(--rh-accent); outline-offset: 3px; }

.rh-trust { list-style: none; margin: 48px 0 0; padding: 24px 0 0; border-top: 1px solid var(--rh-line); display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 16px 24px; }
.rh-trust li { color: #c9d3d7; font-size: 15.2px; padding-left: 25.6px; position: relative; }
.rh-trust li::before { content: ""; position: absolute; left: 0; top: .5em; width: 14.4px; height: 14.4px; border-radius: 50%; background: var(--rh-accent); box-shadow: 0 0 0 4px rgba(126,195,71,.18); }

/* Service cards */
.rh-grid { display: grid; gap: 20px; }
.rh-grid--services { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.rh-grid--models, .rh-grid--proof { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.rh-card { background: #fff; border: 1px solid #dde5e1; border-radius: var(--rh-radius); padding: 24px; position: relative; }
.rh-card h3 { font-size: 21.6px; margin: 4px 0 12px; }
.rh-card ul { margin: 0; padding: 0; list-style: none; }
.rh-card li { color: var(--rh-ink-muted); font-size: 15.2px; padding: 5.6px 0 5.6px 17.6px; position: relative; border-top: 1px solid #edf1ee; }
.rh-card li::before { content: ""; position: absolute; left: 0; top: .95em; width: 7.2px; height: 7.2px; border-radius: 50%; background: var(--rh-accent); }
.rh-num { font: 700 13.6px var(--rh-head); color: #4d8f1d; letter-spacing: .1em; }

/* Process */
.rh-steps { list-style: none; counter-reset: s; margin: 32px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 20px; }
.rh-steps li { counter-increment: s; background: var(--rh-surface); border: 1px solid var(--rh-line); border-radius: var(--rh-radius); padding: 22.4px; }
.rh-steps li::before { content: counter(s); display: block; font: 700 38.4px var(--rh-head); color: var(--rh-accent); margin-bottom: 6.4px; }
.rh-steps strong { display: block; font: 600 20px var(--rh-head); margin-bottom: 4.8px; }
.rh-steps span { color: var(--rh-muted); font-size: 15.2px; }

/* Models */
.rh-model { display: block; background: var(--rh-bg); color: var(--rh-text) !important; border-radius: var(--rh-radius); padding: 28px; text-decoration: none !important; border: 1px solid var(--rh-bg); transition: transform .15s, border-color .15s; }
.rh-model:hover { transform: translateY(-2px); border-color: var(--rh-accent); }
.rh-model h3 { font-size: 25.6px; color: #fff; margin-bottom: 9.6px; }
.rh-model p { color: var(--rh-muted); margin: 0 0 20px; }
.rh-more { color: var(--rh-accent); font-weight: 600; }

/* Contact */
.rh-contact { display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; align-items: start; }
.rh-contact-list { list-style: none; margin: 0; padding: 0; }
.rh-contact-list li { display: flex; justify-content: space-between; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--rh-line); }
.rh-contact-list span { color: var(--rh-muted); }
.rh-contact-list a, .rh-contact-list strong { color: #fff; font: 600 21.6px var(--rh-head); text-decoration: none; }
.rh-contact-list a:hover { color: var(--rh-accent); }

/* Draft markers (only rendered outside production) */
.rh-badge { display: inline-block; background: #ffd24a; color: #3a2b00; font: 700 12px var(--rh-body); padding: 4px 9.6px; border-radius: 6px; margin-bottom: 16px; letter-spacing: .04em; }
.rh-draft { outline: 2px dashed #ffd24a; outline-offset: -8px; }
.rh-draft-line strong { color: #ffd24a !important; }

@media (max-width: 767px) { .rh-contact { grid-template-columns: 1fr; gap: 24px; } }
/* ---- Inner pages ---- */
body:not(.home) { background: var(--rh-paper); }
.page-header.header-small {
	min-height: 0 !important;
	padding: 128px 0 48px !important;
	background:
		linear-gradient(180deg, rgba(14,18,20,.86), rgba(14,18,20,.96)),
		url("hero.webp") center / cover no-repeat !important;
}
.page-header .header-filter { display: none !important; }
.page-header .hestia-title {
	font-family: var(--rh-head) !important; font-weight: 600 !important; text-align: left;
	font-size: clamp(32px, 5vw, 51.2px) !important; line-height: 1.1 !important; letter-spacing: -.01em; color: #fff !important;
	margin: 0 !important; max-width: 22ch; padding-left: 0;
}
.page-header .text-center { text-align: left; }
.page-header > .container { padding-top: 0 !important; padding-bottom: 0 !important; }
@media (min-width: 992px) {
	/* align the title with the article column (col-md-8 offset-2) */
	.page-header .col-md-10.col-md-offset-1 { width: 66.666%; margin-left: 16.666%; }
}
.page-header .hestia-title::before { content: ""; display: block; width: 48px; height: 4px; border-radius: 2px; background: var(--rh-accent); margin-bottom: 16px; }
.main, .main.main-raised { background: var(--rh-paper) !important; box-shadow: none !important; margin: 0 !important; border-radius: 0 !important; }
.blog-post .section-text { padding: clamp(32px, 6vw, 64px) 0; }
.page-content-wrap { font-family: var(--rh-body); color: var(--rh-ink); font-size: 16.8px; line-height: 1.75; }
.page-content-wrap > * { max-width: 70ch; }
.page-content-wrap p { color: #2b373d; margin-bottom: 17.6px; font-size: 16.8px !important; line-height: 1.75 !important; }
.page-content-wrap > p:first-child { font-size: 19.2px !important; color: var(--rh-ink); }
.page-content-wrap h2, .page-content-wrap h3 { font-family: var(--rh-head); font-weight: 600; color: var(--rh-ink); letter-spacing: -.01em; line-height: 1.15; }
.page-content-wrap h2 { font-size: clamp(25.6px, 3vw, 33.6px); margin: 41.6px 0 16px; padding-top: 25.6px; border-top: 1px solid #d5ded9; }
.page-content-wrap > h2:first-of-type { border-top: 0; padding-top: 0; }
.page-content-wrap h3 { font-size: 21.6px; margin: 28.8px 0 9.6px; }
.page-content-wrap ul { list-style: none; padding: 0; margin: 0 0 22.4px; }
.page-content-wrap ul li { position: relative; padding: 7.2px 0 7.2px 24px; border-bottom: 1px solid #e4ebe7; color: #2b373d; }
.page-content-wrap ul li::before { content: ""; position: absolute; left: 0; top: 1.05em; width: 8.8px; height: 8.8px; border-radius: 50%; background: var(--rh-accent); }
.page-content-wrap hr { border: 0; border-top: 1px solid #d5ded9; margin: 32px 0; }
.page-content-wrap blockquote { margin: 25.6px 0; padding: 17.6px 22.4px; background: #fff; border: 1px solid #dde5e1; border-left: 4px solid var(--rh-accent); border-radius: 0 var(--rh-radius) var(--rh-radius) 0; }
.page-content-wrap blockquote p { margin: 0; }
.page-content-wrap a { color: #3d7a14; text-decoration: underline; text-underline-offset: 3px; }

/* ---- CTA band + footer ---- */
.rh-ctaband { background: var(--rh-accent); color: var(--rh-accent-ink); padding: clamp(32px, 6vw, 56px) 0; }
.rh-ctaband__inner { display: flex; flex-wrap: wrap; gap: 24px 32px; align-items: center; justify-content: space-between; }
.rh-ctaband h2 { font: 600 clamp(24px, 3vw, 35.2px)/1.15 var(--rh-head); margin: 0 0 6.4px; color: var(--rh-accent-ink); }
.rh-ctaband p { margin: 0; max-width: 55ch; color: #1d3a0b; }
.rh-ctaband .rh-btn--primary { background: var(--rh-bg); color: #fff !important; }
.rh-ctaband .rh-btn--primary:hover { background: #000; }
.rh-footer { background: var(--rh-bg); color: var(--rh-muted); padding: clamp(40px, 7vw, 72px) 0 24px; font-family: var(--rh-body); }
.rh-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 32px; }
.rh-footer__brand { font: 700 28.8px var(--rh-head); color: #fff; margin: 0 0 8px; }
.rh-footer__tag { max-width: 40ch; margin: 0; line-height: 1.6; }
.rh-footer h3 { font: 600 13.6px var(--rh-body); text-transform: uppercase; letter-spacing: .12em; color: var(--rh-accent); margin: 0 0 16px; }
.rh-footer ul { list-style: none; margin: 0; padding: 0; }
.rh-footer li { padding: 4.8px 0; }
.rh-footer a { color: #dbe4e7; text-decoration: none; }
.rh-footer a:hover { color: var(--rh-accent); }
.rh-footer__legal { margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--rh-line); font-size: 13.6px; }
@media (max-width: 767px) { .rh-footer__grid { grid-template-columns: 1fr; } .page-header.header-small { padding-top: 104px !important; } }

@media (prefers-reduced-motion: reduce) { .rh-btn, .rh-model { transition: none; } }
