/*
Theme Name: Redrock Factory
Author: Redrock Intelligence
Description: Original factory-manufacturing WordPress theme for Redrock Intelligence.
Version: 1.0.0
Text Domain: redrock-factory
*/

:root {
    --rr-red: #c8372c;
    --rr-red-dark: #8d2924;
    --rr-red-soft: #f5d3cd;
    --rr-graphite: #202326;
    --rr-graphite-deep: #17191b;
    --rr-graphite-mid: #3a3e42;
    --rr-ink: #24272a;
    --rr-warm: #f4f1eb;
    --rr-warm-deep: #e9e4db;
    --rr-paper: #fbfaf7;
    --rr-line: rgba(32, 35, 38, .16);
    --rr-line-light: rgba(255, 255, 255, .18);
    --rr-muted: #6f7476;
    --rr-max: 1440px;
    --rr-gutter: clamp(22px, 5vw, 80px);
    --rr-radius: 2px;
    --rr-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    --rr-sans: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
    --rr-display: "Arial Narrow", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
    --rr-shadow: 0 24px 60px rgba(24, 27, 29, .11);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--rr-paper); color: var(--rr-ink); font-family: var(--rr-sans); font-size: 16px; line-height: 1.7; text-rendering: optimizeLegibility; }
body.rr-menu-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
::selection { background: var(--rr-red); color: #fff; }

.rr-shell { width: min(calc(100% - (var(--rr-gutter) * 2)), var(--rr-max)); margin: 0 auto; }
.rr-section { padding: clamp(80px, 10vw, 160px) 0; position: relative; overflow: hidden; }
.rr-section--dark { background: var(--rr-graphite); color: #fff; }
.rr-section--warm { background: var(--rr-warm); }
.rr-section--light { background: var(--rr-paper); }
.rr-eyebrow { color: var(--rr-red); font: 600 11px/1.4 var(--rr-mono); letter-spacing: .12em; margin: 0 0 24px; text-transform: uppercase; }
.rr-section--dark .rr-eyebrow, .rr-text-link--light { color: #f5a198; }
.rr-eyebrow-dot { background: currentColor; border-radius: 50%; display: inline-block; height: 7px; margin: 0 9px 1px 0; width: 7px; }
.rr-section-heading h2, .rr-page-hero h1, .rr-single-hero h1, .rr-404 h1 { font-family: var(--rr-display); font-size: clamp(2.15rem, 4vw, 4.8rem); font-weight: 500; letter-spacing: -.055em; line-height: 1.08; margin: 0; max-width: 780px; }
.rr-section-heading--split { align-items: end; display: flex; gap: 8vw; justify-content: space-between; margin-bottom: clamp(48px, 7vw, 88px); }
.rr-section-heading--split > p { color: var(--rr-muted); font-size: 17px; margin: 0 0 4px; max-width: 360px; }
.rr-section--dark .rr-section-heading--split > p { color: rgba(255,255,255,.65); }
.rr-button { align-items: center; border: 1px solid transparent; display: inline-flex; font-size: 13px; font-weight: 600; gap: 30px; justify-content: space-between; letter-spacing: .02em; min-height: 54px; padding: 14px 18px 14px 20px; transition: background .25s ease, color .25s ease, border .25s ease, transform .25s ease; }
.rr-button:hover, .rr-button:focus-visible { transform: translateY(-2px); }
.rr-button--primary { background: var(--rr-red); color: #fff; }
.rr-button--primary:hover, .rr-button--primary:focus-visible { background: #e04b3e; }
.rr-button--light { background: #fff; color: var(--rr-graphite); }
.rr-button--light:hover, .rr-button--light:focus-visible { background: #f5c4bd; }
.rr-button--outline { border-color: var(--rr-line); color: var(--rr-ink); }
.rr-button--outline:hover, .rr-button--outline:focus-visible { border-color: var(--rr-red); color: var(--rr-red); }
.rr-text-link { align-items: center; border-bottom: 1px solid var(--rr-ink); display: inline-flex; font-size: 13px; font-weight: 600; gap: 28px; padding-bottom: 8px; transition: color .2s ease, border-color .2s ease, gap .2s ease; }
.rr-text-link:hover, .rr-text-link:focus-visible { border-color: var(--rr-red); color: var(--rr-red); gap: 36px; }
.rr-text-link--light { border-color: rgba(255,255,255,.45); }
.rr-text-link--light:hover, .rr-text-link--light:focus-visible { border-color: #fff; color: #fff; }
.rr-reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1); }
.rr-reveal.is-visible { opacity: 1; transform: none; }
.rr-reveal--delay-1 { transition-delay: .08s; }
.rr-reveal--delay-2 { transition-delay: .16s; }
.rr-reveal--delay-3 { transition-delay: .24s; }
.rr-reveal--delay-4 { transition-delay: .32s; }
.rr-skip-link { background: var(--rr-red); color: #fff; left: 18px; padding: 10px 14px; position: fixed; top: -100px; z-index: 1000; }
.rr-skip-link:focus { top: 18px; }

/* Header */
.rr-site-header { background: rgba(251,250,247,.94); border-bottom: 1px solid var(--rr-line); position: relative; z-index: 20; }
.rr-header-shell { align-items: center; display: flex; gap: clamp(22px, 3vw, 56px); justify-content: space-between; margin: auto; min-height: 84px; padding: 0 var(--rr-gutter); width: min(100%, 1600px); }
.rr-brand { align-items: center; display: inline-flex; flex: 0 0 auto; gap: 11px; }
.rr-brand-mark { height: 42px; width: 42px; }
.rr-brand-mark img { height: 100%; width: 100%; }
.rr-brand-type { display: flex; flex-direction: column; line-height: 1.15; }
.rr-brand-type strong { font-size: 15px; font-weight: 700; letter-spacing: .03em; }
.rr-brand-type small { color: var(--rr-muted); font: 9px/1.4 var(--rr-mono); letter-spacing: .1em; margin-top: 4px; text-transform: uppercase; }
.rr-primary-nav { flex: 1 1 auto; }
.rr-primary-nav ul { align-items: center; display: flex; gap: clamp(16px, 2.4vw, 42px); justify-content: center; list-style: none; margin: 0; padding: 0; }
.rr-primary-nav li a { align-items: center; color: var(--rr-muted); display: inline-flex; font-size: 13px; gap: 7px; padding: 30px 0; transition: color .2s ease; }
.rr-primary-nav li a:hover, .rr-primary-nav li.is-current a { color: var(--rr-red); }
.rr-nav-index { font: 10px var(--rr-mono); opacity: 0; transform: translate(-3px, 3px); transition: opacity .2s ease, transform .2s ease; }
.rr-primary-nav li a:hover .rr-nav-index, .rr-primary-nav li.is-current .rr-nav-index { opacity: 1; transform: none; }
.rr-header-actions { align-items: center; display: flex; flex: 0 0 auto; gap: 18px; }
.rr-language-switch { border-left: 1px solid var(--rr-line); color: var(--rr-muted); font: 11px var(--rr-mono); padding-left: 18px; }
.rr-language-switch:hover { color: var(--rr-red); }
.rr-header-cta { align-items: center; background: var(--rr-graphite); color: #fff; display: inline-flex; font-size: 12px; gap: 18px; min-height: 44px; padding: 10px 14px 10px 16px; transition: background .2s ease, transform .2s ease; }
.rr-header-cta:hover { background: var(--rr-red); transform: translateY(-2px); }
.rr-menu-toggle { background: transparent; border: 0; display: none; }

/* Hero */
.rr-hero { overflow: hidden; padding: clamp(76px, 10vw, 144px) 0 42px; position: relative; }
.rr-hero::before, .rr-page-hero::before, .rr-single-hero::before, .rr-404::before { background-image: linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px); background-size: 64px 64px; content: ""; inset: 0; opacity: .4; pointer-events: none; position: absolute; }
.rr-hero-grid { align-items: center; display: grid; gap: clamp(40px, 8vw, 140px); grid-template-columns: minmax(300px, .8fr) minmax(420px, 1.2fr); position: relative; z-index: 1; }
.rr-hero-copy { padding: 20px 0 50px; }
.rr-hero h1 { font-family: var(--rr-display); font-size: clamp(3.3rem, 7vw, 8.9rem); font-weight: 500; letter-spacing: -.08em; line-height: .94; margin: 0; max-width: 760px; white-space: normal; }
.rr-hero-intro { color: rgba(255,255,255,.67); font-size: clamp(15px, 1.4vw, 18px); line-height: 1.8; margin: 36px 0 0; max-width: 520px; }
.rr-hero-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 28px; margin-top: 42px; }
.rr-hero-meta { border-top: 1px solid var(--rr-line-light); color: rgba(255,255,255,.4); display: flex; font: 10px var(--rr-mono); gap: 30px; justify-content: space-between; letter-spacing: .05em; margin-top: 70px; max-width: 510px; padding-top: 14px; }
.rr-hero-visual { min-height: clamp(400px, 45vw, 690px); overflow: hidden; position: relative; }
.rr-hero-visual.has-image { align-items: center; display: flex; justify-content: center; }
.rr-hero-visual.has-image img { height: 100%; max-height: 690px; object-fit: cover; object-position: center; position: absolute; width: 100%; }
.rr-hero-visual.has-image::after { background: linear-gradient(125deg, rgba(32,35,38,.06), rgba(32,35,38,.35)); content: ""; inset: 0; position: absolute; }
.rr-hero-visual.is-constructed { background: #34383b; border: 1px solid rgba(255,255,255,.16); }
.rr-hero-visual.is-constructed::before { background: linear-gradient(128deg, transparent 0 49.8%, rgba(255,255,255,.2) 50%, transparent 50.4%), linear-gradient(35deg, transparent 0 49.7%, rgba(255,255,255,.12) 50%, transparent 50.4%); background-size: 180px 180px, 220px 220px; content: ""; inset: 0; opacity: .45; position: absolute; }
.rr-hero-drawing { inset: 7% 9%; position: absolute; transform: skewY(-3deg); }
.rr-drawing-grid { background: repeating-linear-gradient(90deg, transparent 0 49px, rgba(255,255,255,.12) 50px 51px), repeating-linear-gradient(0deg, transparent 0 49px, rgba(255,255,255,.12) 50px 51px); inset: 0; opacity: .45; position: absolute; transform: perspective(500px) rotateX(58deg) rotateZ(-9deg) translateY(35%); }
.rr-drawing-arm, .rr-drawing-body, .rr-drawing-panel, .rr-drawing-base { display: block; position: absolute; }
.rr-drawing-body { background: linear-gradient(135deg, #e9e4db 0 30%, #a8aca9 31% 58%, #5b6061 59%); height: 27%; left: 23%; top: 35%; transform: skewY(-12deg); width: 45%; }
.rr-drawing-body::after { border-color: transparent transparent rgba(32,35,38,.45) transparent; border-style: solid; border-width: 0 84px 40px 0; content: ""; position: absolute; right: 0; top: 0; }
.rr-drawing-panel { background: #17191b; border: 7px solid #686e70; height: 29%; left: 50%; top: 31%; transform: skewY(-11deg); width: 23%; }
.rr-drawing-panel::before { background: repeating-linear-gradient(0deg, #c8372c 0 5px, transparent 5px 22px); content: ""; inset: 16px; opacity: .8; position: absolute; }
.rr-drawing-arm { background: #8c9390; height: 10%; transform-origin: left center; width: 37%; }
.rr-drawing-arm--one { left: 42%; top: 31%; transform: rotate(-37deg); }
.rr-drawing-arm--two { left: 65%; top: 10%; transform: rotate(80deg); width: 26%; }
.rr-drawing-light { background: var(--rr-red); border-radius: 50%; box-shadow: 0 0 40px rgba(200,55,44,.8); height: 20px; left: 38%; position: absolute; top: 46%; width: 20px; }
.rr-drawing-base { background: #17191b; bottom: 12%; height: 17%; left: 10%; transform: skewY(-8deg); width: 80%; }
.rr-drawing-base::after { background: repeating-linear-gradient(90deg, rgba(255,255,255,.28) 0 3px, transparent 3px 45px); content: ""; inset: 24px 28px; position: absolute; }
.rr-drawing-code { bottom: 4%; color: rgba(255,255,255,.55); font: 10px var(--rr-mono); letter-spacing: .12em; position: absolute; right: 0; }
.rr-visual-tag { color: rgba(255,255,255,.55); font: 10px var(--rr-mono); letter-spacing: .1em; position: absolute; z-index: 2; }
.rr-visual-tag--top { left: 20px; top: 18px; }
.rr-visual-tag--bottom { bottom: 18px; right: 20px; }
.rr-hero-rule { align-items: center; color: rgba(255,255,255,.4); display: grid; font: 10px var(--rr-mono); gap: 18px; grid-template-columns: 1fr auto 1fr; letter-spacing: .08em; padding-top: 48px; position: relative; }
.rr-hero-rule span:first-child, .rr-hero-rule span:last-child { background: var(--rr-line-light); height: 1px; }

/* Intro, products, strengths */
.rr-intro-grid { display: grid; gap: 8vw; grid-template-columns: minmax(260px, 1fr) minmax(280px, .6fr); margin-bottom: clamp(48px, 7vw, 88px); }
.rr-intro-note { border-left: 1px solid var(--rr-red); margin-top: 8px; padding-left: 30px; }
.rr-intro-note p { color: var(--rr-muted); margin: 0 0 28px; max-width: 430px; }
.rr-product-grid { display: grid; gap: 26px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rr-product-card { background: #fff; border: 1px solid var(--rr-line); min-width: 0; transition: box-shadow .3s ease, transform .3s ease; }
.rr-product-card:hover { box-shadow: var(--rr-shadow); transform: translateY(-5px); }
.rr-product-card__media { background: #e7e4de; display: block; height: clamp(230px, 22vw, 330px); overflow: hidden; position: relative; }
.rr-product-card__media img { height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.8,.2,1); width: 100%; }
.rr-product-card:hover .rr-product-card__media img { transform: scale(1.04); }
.rr-card-media__placeholder { align-items: center; background: linear-gradient(135deg, #ddd9d1, #928f8c); color: rgba(32,35,38,.62); display: flex; font: 10px var(--rr-mono); inset: 0; justify-content: center; letter-spacing: .13em; position: absolute; text-transform: uppercase; }
.rr-card-media__placeholder::before { border: 1px solid rgba(32,35,38,.35); content: ""; height: 48%; position: absolute; transform: skewY(-12deg); width: 62%; }
.rr-card-media__placeholder span { position: relative; z-index: 1; }
.rr-card-corner { align-items: center; background: var(--rr-red); color: #fff; display: flex; font-size: 19px; height: 45px; justify-content: center; position: absolute; right: 0; top: 0; width: 45px; }
.rr-product-card__body { padding: 22px 24px 28px; }
.rr-card-kicker, .rr-news-card__meta { color: var(--rr-muted); display: flex; font: 10px var(--rr-mono); justify-content: space-between; letter-spacing: .07em; text-transform: uppercase; }
.rr-product-card h3, .rr-product-card h2 { font-family: var(--rr-display); font-size: clamp(1.5rem, 2vw, 2.3rem); font-weight: 500; letter-spacing: -.04em; line-height: 1.1; margin: 16px 0 0; }
.rr-product-card h3 a:hover, .rr-product-card h2 a:hover { color: var(--rr-red); }
.rr-card-model { color: var(--rr-red); font: 12px var(--rr-mono); margin: 9px 0 0; }
.rr-card-excerpt { color: var(--rr-muted); font-size: 13px; line-height: 1.7; margin: 18px 0 0; }
.rr-empty-panel { align-items: center; border: 1px dashed var(--rr-line); display: flex; gap: 36px; justify-content: space-between; min-height: 180px; padding: 38px; }
.rr-empty-panel p { color: var(--rr-muted); margin: 0; max-width: 650px; }
.rr-empty-panel--dark { border-color: var(--rr-line-light); }
.rr-empty-panel--dark p { color: rgba(255,255,255,.68); }
.rr-empty-panel--wide { min-height: 240px; }
.rr-strengths { padding-top: clamp(76px, 9vw, 130px); }
.rr-strength-grid { border-top: 1px solid var(--rr-line); display: grid; grid-template-columns: repeat(3, 1fr); }
.rr-strength { border-right: 1px solid var(--rr-line); min-height: 270px; padding: 26px 34px 34px 0; position: relative; }
.rr-strength + .rr-strength { padding-left: 34px; }
.rr-strength:last-child { border-right: 0; }
.rr-strength-number { color: var(--rr-red); display: block; font: 11px var(--rr-mono); letter-spacing: .1em; }
.rr-strength h3 { font-family: var(--rr-display); font-size: 27px; font-weight: 500; letter-spacing: -.04em; margin: 66px 0 14px; }
.rr-strength p { color: var(--rr-muted); font-size: 14px; margin: 0; max-width: 300px; }
.rr-strength-line { background: var(--rr-red); bottom: 0; display: block; height: 2px; left: 0; position: absolute; width: 24px; }
.rr-strength + .rr-strength .rr-strength-line { left: 34px; }

/* Solutions, process, news, case band */
.rr-solutions-section { background: var(--rr-graphite-deep); }
.rr-solution-list { border-top: 1px solid var(--rr-line-light); }
.rr-solution-row { align-items: center; border-bottom: 1px solid var(--rr-line-light); display: grid; gap: 24px; grid-template-columns: 74px 1.1fr 1fr 30px; min-height: 126px; transition: background .3s ease, padding .3s ease; }
.rr-solution-row:hover { background: rgba(255,255,255,.045); padding: 0 20px; }
.rr-solution-row__number, .rr-editorial-row__number { color: #f5a198; font: 11px var(--rr-mono); }
.rr-solution-row__title { font-family: var(--rr-display); font-size: clamp(1.45rem, 2.5vw, 2.6rem); letter-spacing: -.04em; }
.rr-solution-row__copy { color: rgba(255,255,255,.55); font-size: 13px; max-width: 330px; }
.rr-solution-row__arrow, .rr-editorial-row__arrow { color: #f5a198; font-size: 21px; text-align: right; }
.rr-process-layout { display: grid; gap: 10vw; grid-template-columns: .85fr 1fr; }
.rr-process-list { border-top: 1px solid var(--rr-line); }
.rr-process-step { align-items: start; border-bottom: 1px solid var(--rr-line); display: grid; gap: 28px; grid-template-columns: 54px 1fr; padding: 25px 0 28px; }
.rr-process-step__number { color: var(--rr-red); font: 11px var(--rr-mono); }
.rr-process-step h3 { font-family: var(--rr-display); font-size: 25px; font-weight: 500; letter-spacing: -.04em; margin: 0 0 7px; }
.rr-process-step p { color: var(--rr-muted); font-size: 14px; margin: 0; max-width: 500px; }
.rr-news-section { padding-bottom: clamp(80px, 9vw, 130px); }
.rr-news-grid { display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr); }
.rr-news-card { border-top: 2px solid var(--rr-ink); min-height: 310px; padding: 20px 22px 28px 0; position: relative; }
.rr-news-card__meta { margin-bottom: 54px; }
.rr-news-card h3, .rr-news-card h2 { font-family: var(--rr-display); font-size: clamp(1.4rem, 2.1vw, 2.3rem); font-weight: 500; letter-spacing: -.045em; line-height: 1.15; margin: 0; max-width: 360px; }
.rr-news-card h3 a:hover, .rr-news-card h2 a:hover { color: var(--rr-red); }
.rr-news-card p { color: var(--rr-muted); font-size: 13px; margin: 22px 0 0; max-width: 390px; }
.rr-card-arrow { bottom: 26px; color: var(--rr-red); font-size: 22px; position: absolute; right: 22px; }
.rr-case-band { background: var(--rr-red); color: #fff; padding: clamp(80px, 10vw, 145px) 0; }
.rr-case-band__inner { align-items: end; display: grid; gap: 10vw; grid-template-columns: 1fr .65fr; }
.rr-case-band .rr-eyebrow { color: #ffd5cf; }
.rr-case-band h2 { font-family: var(--rr-display); font-size: clamp(2.4rem, 4.5vw, 5.4rem); font-weight: 500; letter-spacing: -.065em; line-height: 1.04; margin: 0; max-width: 700px; }
.rr-case-band p:not(.rr-eyebrow) { color: rgba(255,255,255,.76); font-size: 16px; margin: 28px 0 32px; max-width: 550px; }
.rr-case-band .rr-text-link { border-color: rgba(255,255,255,.6); color: #fff; }
.rr-case-band .rr-text-link:hover { border-color: #fff; }
.rr-case-preview-grid { border-top: 1px solid rgba(255,255,255,.45); }
.rr-case-preview-grid a { align-items: center; border-bottom: 1px solid rgba(255,255,255,.45); display: flex; font-family: var(--rr-display); font-size: 20px; justify-content: space-between; min-height: 78px; transition: padding .2s ease; }
.rr-case-preview-grid a:hover { padding-left: 14px; }
.rr-case-stamp { align-items: center; border: 1px solid rgba(255,255,255,.58); display: flex; gap: 22px; justify-content: center; min-height: 230px; padding: 28px; transform: rotate(-4deg); }
.rr-case-stamp span { font: 700 clamp(3rem, 8vw, 7rem)/1 var(--rr-mono); letter-spacing: -.12em; }
.rr-case-stamp small { border-left: 1px solid rgba(255,255,255,.45); font: 10px/1.5 var(--rr-mono); max-width: 120px; padding-left: 20px; }

/* Generic pages */
.rr-page-hero { overflow: hidden; padding: clamp(90px, 11vw, 165px) 0 clamp(54px, 6vw, 88px); position: relative; }
.rr-page-hero__inner { align-items: end; display: flex; gap: 50px; justify-content: space-between; position: relative; z-index: 1; }
.rr-page-hero h1 { font-size: clamp(3rem, 7vw, 7.8rem); max-width: 900px; }
.rr-page-hero__copy { color: rgba(255,255,255,.66); font-size: 16px; margin: 28px 0 0; max-width: 580px; }
.rr-breadcrumb { align-items: center; color: rgba(255,255,255,.48); display: flex; flex: 0 0 auto; font: 10px var(--rr-mono); gap: 12px; letter-spacing: .08em; text-transform: uppercase; }
.rr-breadcrumb a:hover { color: #fff; }
.rr-content-list-page { max-width: 1180px; }
.rr-editorial-list { border-top: 1px solid var(--rr-line); }
.rr-editorial-row { align-items: center; border-bottom: 1px solid var(--rr-line); display: grid; gap: 28px; grid-template-columns: 70px 1fr 1.15fr 28px; min-height: 136px; transition: background .25s ease, padding .25s ease; }
.rr-editorial-row:hover { background: var(--rr-warm); padding: 0 18px; }
.rr-editorial-row__title { font-family: var(--rr-display); font-size: clamp(1.4rem, 2.6vw, 2.8rem); letter-spacing: -.05em; line-height: 1.1; }
.rr-editorial-row__copy, .rr-editorial-row__date { color: var(--rr-muted); font-size: 13px; }
.rr-editorial-row__date { font: 10px var(--rr-mono); text-align: right; }
.rr-case-list { display: grid; gap: 28px; grid-template-columns: repeat(2, 1fr); }
.rr-case-card { background: #fff; border: 1px solid var(--rr-line); }
.rr-case-card__media { display: block; height: clamp(240px, 28vw, 410px); overflow: hidden; position: relative; }
.rr-case-card__media img { height: 100%; object-fit: cover; width: 100%; }
.rr-case-card__body { padding: 28px 30px 34px; }
.rr-case-card__body .rr-eyebrow { margin-bottom: 16px; }
.rr-case-card h2 { font-family: var(--rr-display); font-size: clamp(1.7rem, 3vw, 3.3rem); font-weight: 500; letter-spacing: -.055em; line-height: 1.08; margin: 0; }
.rr-case-card h2 a:hover { color: var(--rr-red); }
.rr-case-card p:not(.rr-eyebrow) { color: var(--rr-muted); font-size: 14px; margin: 20px 0 0; }
.rr-empty-case { align-items: center; display: grid; gap: 8vw; grid-template-columns: .45fr 1fr; min-height: 400px; }
.rr-empty-case__mark { align-items: center; border: 1px solid var(--rr-red); color: var(--rr-red); display: flex; font: 700 clamp(4rem, 9vw, 9rem)/1 var(--rr-mono); height: min(25vw, 320px); justify-content: center; letter-spacing: -.16em; transform: rotate(-8deg); width: min(25vw, 320px); }
.rr-empty-case h2 { font-family: var(--rr-display); font-size: clamp(2rem, 4vw, 4rem); font-weight: 500; letter-spacing: -.06em; line-height: 1.08; margin: 0; max-width: 700px; }
.rr-empty-case p { color: var(--rr-muted); margin: 24px 0 28px; max-width: 620px; }
.rr-page-content-layout { display: grid; gap: 10vw; grid-template-columns: minmax(0, 1fr) minmax(240px, .5fr); }
.rr-prose { color: var(--rr-muted); font-size: 17px; line-height: 1.95; max-width: 800px; }
.rr-prose--wide { max-width: 930px; }
.rr-prose h2, .rr-prose h3 { color: var(--rr-ink); font-family: var(--rr-display); font-weight: 500; letter-spacing: -.04em; line-height: 1.2; }
.rr-prose h2 { font-size: clamp(1.8rem, 3vw, 3rem); margin: 1.8em 0 .6em; }
.rr-prose h3 { font-size: 1.4rem; margin: 1.6em 0 .45em; }
.rr-prose p { margin: 0 0 1.25em; }
.rr-prose a { border-bottom: 1px solid var(--rr-red); color: var(--rr-red); }
.rr-prose ul, .rr-prose ol { margin: 1em 0 1.5em; padding-left: 1.4em; }
.rr-side-note { border-top: 2px solid var(--rr-red); padding-top: 18px; }
.rr-side-note p:not(.rr-eyebrow) { color: var(--rr-muted); font-size: 14px; margin: 0; }
.rr-office-list { border-top: 1px solid var(--rr-line); }
.rr-office-list .rr-eyebrow { margin-top: 0; }
.rr-office-row { align-items: center; border-bottom: 1px solid var(--rr-line); display: flex; gap: 20px; justify-content: space-between; padding: 18px 0; }
.rr-office-row:hover strong { color: var(--rr-red); }
.rr-office-row strong, .rr-office-row small { display: block; }
.rr-office-row small { color: var(--rr-muted); font-size: 12px; margin-top: 5px; }
.rr-office-row > span:last-child { color: var(--rr-red); font-size: 20px; }
.rr-muted { color: var(--rr-muted); }
.rr-download-list { max-width: 1120px; }
.rr-download-row { align-items: center; border-bottom: 1px solid var(--rr-line); display: flex; gap: 50px; justify-content: space-between; padding: 34px 0; }
.rr-download-row:first-child { border-top: 1px solid var(--rr-line); }
.rr-download-row h2 { font-family: var(--rr-display); font-size: clamp(1.7rem, 3vw, 3rem); font-weight: 500; letter-spacing: -.055em; margin: 0; }
.rr-download-row p:not(.rr-eyebrow) { color: var(--rr-muted); font-size: 14px; margin: 10px 0 0; max-width: 650px; }

/* Contact and form */
.rr-contact-layout { display: grid; gap: 9vw; grid-template-columns: minmax(280px, .8fr) minmax(380px, 1.2fr); }
.rr-contact-copy h2 { font-family: var(--rr-display); font-size: clamp(2.5rem, 5vw, 5.6rem); font-weight: 500; letter-spacing: -.07em; line-height: 1.02; margin: 0 0 35px; }
.rr-contact-copy .rr-prose { font-size: 15px; }
.rr-contact-details { border-top: 1px solid var(--rr-line); margin: 52px 0 0; }
.rr-contact-details > div { border-bottom: 1px solid var(--rr-line); display: grid; gap: 22px; grid-template-columns: 80px 1fr; padding: 14px 0; }
.rr-contact-details dt { color: var(--rr-muted); font: 10px var(--rr-mono); letter-spacing: .08em; padding-top: 4px; text-transform: uppercase; }
.rr-contact-details dd { margin: 0; }
.rr-contact-details a:hover { color: var(--rr-red); }
.rr-contact-form-wrap { background: #fff; border: 1px solid var(--rr-line); box-shadow: 0 20px 60px rgba(32,35,38,.06); padding: clamp(26px, 4vw, 56px); }
.rr-form-heading { border-bottom: 1px solid var(--rr-line); margin-bottom: 28px; padding-bottom: 25px; }
.rr-form-heading .rr-eyebrow { margin-bottom: 10px; }
.rr-form-heading p:last-child { color: var(--rr-muted); font-size: 13px; margin: 0; }
.rr-form-grid { display: grid; gap: 19px 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rr-field { min-width: 0; }
.rr-field--wide { grid-column: 1 / -1; }
.rr-field label { color: var(--rr-ink); display: block; font-size: 12px; font-weight: 600; margin-bottom: 8px; }
.rr-field label span { color: var(--rr-red); margin-left: 4px; }
.rr-field input, .rr-field select, .rr-field textarea { background: var(--rr-paper); border: 1px solid var(--rr-line); border-radius: 0; color: var(--rr-ink); min-height: 49px; outline: none; padding: 11px 13px; transition: border .2s ease, box-shadow .2s ease; width: 100%; }
.rr-field textarea { min-height: 130px; resize: vertical; }
.rr-field input:focus, .rr-field select:focus, .rr-field textarea:focus { border-color: var(--rr-red); box-shadow: 0 0 0 3px rgba(200,55,44,.1); }
.rr-field input::placeholder, .rr-field textarea::placeholder { color: #9c9e9d; }
.rr-form-foot { align-items: center; display: flex; flex-wrap: wrap; gap: 20px 30px; justify-content: space-between; margin-top: 24px; }
.rr-consent { align-items: flex-start; color: var(--rr-muted); display: flex; font-size: 11px; gap: 9px; line-height: 1.5; max-width: 360px; }
.rr-consent input { accent-color: var(--rr-red); flex: 0 0 auto; margin-top: 3px; }
.rr-submit { border: 0; min-width: 164px; }
.rr-submit-loading { display: none; }
.rr-submit.is-loading .rr-submit-label, .rr-submit.is-loading .rr-button-arrow { display: none; }
.rr-submit.is-loading .rr-submit-loading { display: inline; }
.rr-submit:disabled { cursor: wait; opacity: .65; }
.rr-form-status { color: var(--rr-muted); font-size: 12px; margin: 18px 0 0; min-height: 1.5em; }
.rr-form-status.is-success { color: #2f6f4c; }
.rr-form-status.is-error { color: var(--rr-red-dark); }
.rr-honeypot { height: 1px !important; left: -10000px !important; opacity: 0 !important; position: absolute !important; top: auto !important; width: 1px !important; }

/* Single */
.rr-single-hero { overflow: hidden; padding: clamp(80px, 10vw, 145px) 0 60px; position: relative; }
.rr-single-hero__grid { align-items: center; display: grid; gap: 9vw; grid-template-columns: minmax(0, .9fr) minmax(380px, 1.1fr); position: relative; z-index: 1; }
.rr-single-hero__copy .rr-breadcrumb { margin-bottom: clamp(58px, 8vw, 110px); }
.rr-single-hero h1 { font-size: clamp(3rem, 6.5vw, 7.6rem); }
.rr-single-code { color: #f5a198; font: 12px var(--rr-mono); letter-spacing: .1em; margin: 22px 0 0; text-transform: uppercase; }
.rr-single-lede { color: rgba(255,255,255,.66); font-size: 16px; margin: 28px 0 0; max-width: 550px; }
.rr-single-hero__media { min-height: clamp(390px, 44vw, 620px); position: relative; }
.rr-single-hero__media.has-image { align-items: center; display: flex; justify-content: center; }
.rr-single-hero__media.has-image img { height: 100%; object-fit: cover; position: absolute; width: 100%; }
.rr-single-placeholder { background: linear-gradient(140deg, #4f5657, #26292b); inset: 0; overflow: hidden; position: absolute; }
.rr-single-placeholder::before { background: repeating-linear-gradient(90deg, transparent 0 49px, rgba(255,255,255,.12) 50px 51px), repeating-linear-gradient(0deg, transparent 0 49px, rgba(255,255,255,.12) 50px 51px); content: ""; inset: 0; opacity: .4; position: absolute; }
.rr-single-placeholder span { color: rgba(255,255,255,.75); font: clamp(2rem, 5vw, 5rem) var(--rr-mono); left: 13%; letter-spacing: -.1em; position: absolute; top: 17%; }
.rr-single-placeholder i, .rr-single-placeholder b { background: var(--rr-red); display: block; position: absolute; transform: skewY(-15deg); }
.rr-single-placeholder i { height: 38%; left: 25%; top: 34%; width: 51%; }
.rr-single-placeholder b { background: #e47769; height: 18%; right: 10%; top: 25%; width: 22%; }
.rr-single-layout { display: grid; gap: 9vw; grid-template-columns: minmax(0, 1fr) minmax(230px, .42fr); }
.rr-single-main { min-width: 0; }
.rr-single-content { margin-top: 70px; }
.rr-specs { border-bottom: 1px solid var(--rr-line); padding-bottom: 55px; }
.rr-specs .rr-section-heading h2 { font-size: clamp(2rem, 3.4vw, 4rem); }
.rr-spec-list { border-top: 1px solid var(--rr-line); margin: 34px 0 0; }
.rr-spec-list > div { border-bottom: 1px solid var(--rr-line); display: grid; gap: 20px; grid-template-columns: minmax(120px, .42fr) 1fr; padding: 14px 0; }
.rr-spec-list dt { color: var(--rr-muted); font-size: 13px; }
.rr-spec-list dd { font-family: var(--rr-mono); font-size: 13px; margin: 0; }
.rr-video-link { margin-top: 28px; }
.rr-single-aside { border-top: 2px solid var(--rr-red); padding-top: 18px; }
.rr-gallery { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; }
.rr-gallery .rr-eyebrow { grid-column: 1 / -1; margin: 0 0 2px; }
.rr-gallery figure { background: var(--rr-warm); margin: 0; overflow: hidden; }
.rr-gallery img { aspect-ratio: 1 / 1; object-fit: cover; width: 100%; }
.rr-aside-meta { border-top: 1px solid var(--rr-line); margin-top: 38px; padding-top: 17px; }
.rr-aside-meta .rr-eyebrow { margin-bottom: 12px; }
.rr-aside-meta p:not(.rr-eyebrow), .rr-aside-meta time { color: var(--rr-muted); display: block; font-size: 13px; margin: 6px 0; }
.rr-aside-meta a:hover { color: var(--rr-red); }
.rr-single-inquiry { background: var(--rr-warm); }
.rr-single-inquiry__grid { display: grid; gap: 9vw; grid-template-columns: minmax(260px, .75fr) minmax(380px, 1.25fr); }
.rr-single-inquiry h2 { font-family: var(--rr-display); font-size: clamp(2.2rem, 4vw, 4.5rem); font-weight: 500; letter-spacing: -.06em; line-height: 1.05; margin: 0; }
.rr-single-inquiry > .rr-shell > div:first-child > p:not(.rr-eyebrow) { color: var(--rr-muted); margin-top: 28px; max-width: 420px; }

/* 404 and footer */
.rr-404 { min-height: calc(100vh - 84px); overflow: hidden; padding: clamp(100px, 15vw, 220px) 0; position: relative; }
.rr-404__inner { position: relative; z-index: 1; }
.rr-error-code { color: #f5a198; font: 11px var(--rr-mono); letter-spacing: .12em; margin: 0 0 30px; }
.rr-404 h1 { font-size: clamp(3.2rem, 7vw, 8rem); max-width: 900px; }
.rr-404__copy { color: rgba(255,255,255,.65); font-size: 17px; margin: 28px 0 0; }
.rr-404-mark { align-items: center; border: 1px solid rgba(255,255,255,.35); bottom: 5vw; display: flex; height: min(22vw, 310px); justify-content: center; position: absolute; right: 4vw; transform: rotate(13deg); width: min(22vw, 310px); }
.rr-404-mark span { font: 700 clamp(4rem, 9vw, 9rem)/1 var(--rr-mono); letter-spacing: -.16em; }
.rr-404-mark i, .rr-404-mark b { background: var(--rr-red); height: 12px; position: absolute; transform: rotate(-45deg); width: 140px; }
.rr-404-mark i { right: -35px; top: 18%; }
.rr-404-mark b { bottom: 20%; left: -40px; opacity: .55; }
.rr-site-footer { background: var(--rr-graphite-deep); color: #fff; }
.rr-footer-shell { display: grid; gap: 10vw; grid-template-columns: minmax(280px, 1fr) minmax(340px, .8fr); margin: auto; padding: clamp(70px, 9vw, 130px) var(--rr-gutter); width: min(100%, 1600px); }
.rr-footer-lead .rr-eyebrow { color: #f5a198; }
.rr-footer-statement { font-family: var(--rr-display); font-size: clamp(2rem, 4vw, 4.5rem); letter-spacing: -.06em; line-height: 1.04; margin: 0 0 44px; max-width: 670px; }
.rr-footer-columns { display: grid; gap: 50px; grid-template-columns: 1fr 1fr; }
.rr-footer-label { color: #f5a198; font: 10px var(--rr-mono); letter-spacing: .1em; margin: 0 0 19px; text-transform: uppercase; }
.rr-footer-links, .rr-footer-contact { list-style: none; margin: 0; padding: 0; }
.rr-footer-links li { margin: 8px 0; }
.rr-footer-links a, .rr-footer-contact a, .rr-footer-contact li { color: rgba(255,255,255,.64); font-size: 13px; }
.rr-footer-links a:hover, .rr-footer-contact a:hover { color: #fff; }
.rr-footer-contact li { margin: 0 0 12px; }
.rr-footer-socials { display: flex; flex-wrap: wrap; gap: 15px; margin-top: 24px; }
.rr-footer-socials a { border-bottom: 1px solid rgba(255,255,255,.35); color: rgba(255,255,255,.64); font: 10px var(--rr-mono); padding-bottom: 4px; }
.rr-footer-socials a:hover { border-color: #fff; color: #fff; }
.rr-footer-bottom { border-top: 1px solid rgba(255,255,255,.14); }
.rr-footer-bottom__inner { align-items: center; color: rgba(255,255,255,.45); display: flex; font: 10px var(--rr-mono); gap: 26px; justify-content: space-between; letter-spacing: .05em; margin: auto; min-height: 64px; padding: 0 var(--rr-gutter); width: min(100%, 1600px); }
.rr-footer-bottom__inner a:hover { color: #fff; }
.rr-footer-code { color: rgba(255,255,255,.25); }

@media (max-width: 1080px) {
    .rr-primary-nav ul { gap: 18px; }
    .rr-primary-nav li a { font-size: 12px; }
    .rr-header-cta { gap: 10px; }
    .rr-hero-grid { gap: 5vw; grid-template-columns: minmax(280px, .85fr) minmax(360px, 1.15fr); }
    .rr-product-grid--home { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 820px) {
    .rr-header-shell { min-height: 72px; }
    .rr-menu-toggle { align-items: center; display: flex; gap: 10px; margin-left: auto; padding: 10px 0 10px 10px; }
    .rr-menu-toggle__label { color: var(--rr-muted); font: 10px var(--rr-mono); text-transform: uppercase; }
    .rr-menu-toggle__lines { display: grid; gap: 5px; }
    .rr-menu-toggle__lines i { background: var(--rr-ink); display: block; height: 1px; transition: transform .2s ease; width: 22px; }
    .rr-menu-open .rr-menu-toggle__lines i:first-child { transform: translateY(3px) rotate(45deg); }
    .rr-menu-open .rr-menu-toggle__lines i:last-child { transform: translateY(-3px) rotate(-45deg); }
    .rr-primary-nav { background: var(--rr-paper); display: none; left: 0; padding: 20px var(--rr-gutter) 32px; position: absolute; right: 0; top: 72px; }
    .rr-menu-open .rr-primary-nav { display: block; }
    .rr-primary-nav ul { align-items: stretch; display: grid; gap: 0; }
    .rr-primary-nav li { border-bottom: 1px solid var(--rr-line); }
    .rr-primary-nav li a { display: flex; justify-content: space-between; padding: 15px 0; width: 100%; }
    .rr-primary-nav li a .rr-nav-index { opacity: 1; transform: none; }
    .rr-header-actions { gap: 14px; }
    .rr-header-cta { display: none; }
    .rr-language-switch { border-left: 0; padding-left: 0; }
    .rr-hero-grid, .rr-single-hero__grid { grid-template-columns: 1fr; }
    .rr-hero-copy { padding-bottom: 0; }
    .rr-hero-visual { min-height: min(75vw, 540px); }
    .rr-hero-meta { margin-top: 46px; }
    .rr-section-heading--split { align-items: start; flex-direction: column; gap: 24px; }
    .rr-strength-grid, .rr-news-grid { grid-template-columns: 1fr; }
    .rr-strength { border-bottom: 1px solid var(--rr-line); border-right: 0; min-height: 210px; padding: 25px 0; }
    .rr-strength + .rr-strength { padding-left: 0; }
    .rr-strength:last-child { border-bottom: 0; }
    .rr-strength h3 { margin-top: 35px; }
    .rr-strength + .rr-strength .rr-strength-line { left: 0; }
    .rr-solution-row { grid-template-columns: 44px 1fr 28px; padding: 23px 0; }
    .rr-solution-row__copy { grid-column: 2 / -1; }
    .rr-process-layout, .rr-case-band__inner, .rr-page-content-layout, .rr-contact-layout, .rr-single-layout, .rr-single-inquiry__grid, .rr-footer-shell { grid-template-columns: 1fr; }
    .rr-process-layout { gap: 50px; }
    .rr-case-band__inner { gap: 55px; }
    .rr-case-stamp { max-width: 350px; }
    .rr-page-hero__inner { align-items: start; flex-direction: column; }
    .rr-page-hero__inner .rr-breadcrumb { margin-top: 30px; }
    .rr-editorial-row { gap: 18px; grid-template-columns: 50px 1fr 28px; padding: 22px 0; }
    .rr-editorial-row__copy { grid-column: 2 / -1; }
    .rr-editorial-row__date { display: none; }
    .rr-case-list { grid-template-columns: 1fr; }
    .rr-empty-case { gap: 52px; grid-template-columns: 1fr; }
    .rr-empty-case__mark { height: 180px; width: 180px; }
    .rr-footer-shell { gap: 70px; }
}

@media (max-width: 560px) {
    :root { --rr-gutter: 20px; }
    .rr-brand-mark { height: 38px; width: 38px; }
    .rr-brand-type strong { font-size: 13px; }
    .rr-brand-type small { font-size: 8px; }
    .rr-hero { padding-top: 70px; }
    .rr-hero h1 { font-size: clamp(3rem, 15vw, 5rem); }
    .rr-hero-intro { font-size: 15px; }
    .rr-hero-actions { align-items: stretch; flex-direction: column; }
    .rr-hero-actions .rr-button, .rr-hero-actions .rr-text-link { align-self: flex-start; }
    .rr-hero-visual { min-height: 320px; }
    .rr-hero-meta { align-items: start; flex-direction: column; gap: 8px; }
    .rr-hero-rule { font-size: 8px; gap: 8px; }
    .rr-product-grid, .rr-product-grid--home { grid-template-columns: 1fr; }
    .rr-product-card__media { height: 72vw; max-height: 350px; }
    .rr-empty-panel { align-items: start; flex-direction: column; gap: 22px; padding: 26px; }
    .rr-solution-row__title { font-size: 1.45rem; }
    .rr-solution-row__copy { font-size: 12px; }
    .rr-news-card { min-height: 280px; }
    .rr-contact-form-wrap { padding: 24px 18px; }
    .rr-form-grid { grid-template-columns: 1fr; }
    .rr-field--wide { grid-column: auto; }
    .rr-form-foot { align-items: stretch; flex-direction: column; }
    .rr-submit { align-self: flex-start; }
    .rr-download-row { align-items: start; flex-direction: column; gap: 24px; }
    .rr-single-hero__copy .rr-breadcrumb { margin-bottom: 55px; }
    .rr-single-hero__media { min-height: 320px; }
    .rr-single-layout { gap: 60px; }
    .rr-single-content { margin-top: 50px; }
    .rr-spec-list > div { grid-template-columns: 1fr; gap: 3px; }
    .rr-gallery { grid-template-columns: 1fr 1fr; }
    .rr-footer-columns { gap: 42px; grid-template-columns: 1fr 1fr; }
    .rr-footer-bottom__inner { align-items: start; flex-direction: column; gap: 8px; justify-content: center; padding-bottom: 18px; padding-top: 18px; }
    .rr-footer-code { display: none; }
    .rr-404-mark { height: 180px; right: 20px; top: 330px; width: 180px; }
    .rr-404__inner { padding-bottom: 250px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
    .rr-reveal { opacity: 1; transform: none; }
}

.rr-office-strip { padding-bottom: clamp(74px, 9vw, 130px); padding-top: clamp(74px, 9vw, 130px); }
.rr-office-strip__inner { align-items: end; display: grid; gap: 9vw; grid-template-columns: minmax(280px, .8fr) minmax(280px, .7fr); }
.rr-office-strip h2 { font-family: var(--rr-display); font-size: clamp(2.2rem, 4.4vw, 4.8rem); font-weight: 500; letter-spacing: -.06em; line-height: 1.05; margin: 0; max-width: 600px; }
.rr-office-strip p:not(.rr-eyebrow) { color: var(--rr-muted); font-size: 15px; margin: 24px 0 28px; max-width: 520px; }
.rr-office-strip__list { border-top: 1px solid var(--rr-line); }
.rr-office-strip__row { align-items: center; border-bottom: 1px solid var(--rr-line); display: flex; gap: 20px; justify-content: space-between; min-height: 88px; padding: 15px 0; }
.rr-office-strip__row:hover strong { color: var(--rr-red); }
.rr-office-strip__row strong, .rr-office-strip__row small { display: block; }
.rr-office-strip__row small { color: var(--rr-muted); font-size: 12px; margin-top: 3px; }
.rr-office-strip__row > span:last-child { color: var(--rr-red); font-size: 19px; }
.rr-office-strip__empty { border-bottom: 1px solid var(--rr-line); color: var(--rr-muted); display: flex; flex-wrap: wrap; font-size: 13px; gap: 16px 28px; justify-content: space-between; min-height: 88px; padding: 26px 0; }
.rr-office-strip__empty a { color: var(--rr-red); font-weight: 600; }

@media (max-width: 820px) {
    .rr-office-strip__inner { gap: 50px; grid-template-columns: 1fr; }
}
