/* Ruiz site redesign 2026-11-03. Rules are scoped by phase body classes: .rsr-p1 foundation, .rsr-p2 Experience + Home, .rsr-p3 interior.
   `:is(..., #rsr-x)` lifts specificity to beat the page-specific !important layers without touching them. */
:root {
  --rsr-ink:#191A18; --rsr-paper:#F8F7F3; --rsr-cream:#F0EFE9; --rsr-sand:#E9E7DF; --rsr-orange:#D17139; --rsr-rust:#A84D21;
  --rsr-soft:#E7B58F; --rsr-rule:#191A18; --rsr-rule-light:#CCCBC5; --rsr-body:#373832; --rsr-on-dark:#F2EEE6; --rsr-on-dark-2:#CFCAC0;
  --rsr-serif:"Ruiz Newsreader", Georgia, "Times New Roman", serif;
  --rsr-display:clamp(2.75rem, 1.35rem + 5vw, 6rem);
  --rsr-section:clamp(2.125rem, 1.3rem + 2.5vw, 3.5rem);
  --rsr-card:clamp(1.4rem, 1.15rem + .75vw, 2.05rem);
}

/* ===================== PHASE 1: foundation ===================== */

/* 1. One editorial serif for every headline. */
.rsr-p1 :is(h1, h2, h3, .ruiz-display, .ruiz-h2, .ruiz-h3, .ruiz-recognition-title, .ruiz-card-label, #rsr-x):not(.rr-desk *):not(.ruiz-global-header *):not(.ruiz-global-footer *):not(.ruiz-case-label) {
  font-family:var(--rsr-serif) !important; font-weight:400 !important; font-optical-sizing:auto; font-synthesis:none;
}
.rsr-p1 .rr-desk { --serif:"Ruiz Newsreader", Georgia, "Times New Roman", serif; }
.rsr-p1 :is(h1, h2, h3, #rsr-x) em, .rsr-p1 :is(h1, h2, #rsr-x) i { font-style:italic; }

/* 2. One type scale: display (heroes), section heads, card titles. */
.rsr-p1 :is(.ruiz-page h1, .ruiz-display, #rsr-x):not(.ruiz-consultation-title-hidden) {
  font-size:var(--rsr-display) !important; line-height:1.02 !important; letter-spacing:-.028em !important; max-width:18ch;
}
.rsr-p1 :is(.ruiz-h2, .ruiz-recognition-title, .ruiz-art-recognition-title, h2.wp-block-heading, #rsr-x) {
  font-size:var(--rsr-section) !important; line-height:1.06 !important; letter-spacing:-.022em !important;
}
.rsr-p1 :is(.ruiz-h3, .ruiz-approach-band h2, .ruiz-approach-band .ruiz-h2, .ruiz-portfolio-interactive h3, #rsr-x) {
  font-size:var(--rsr-card) !important; line-height:1.15 !important; letter-spacing:-.012em !important;
}
.rsr-p1 :is(h2[data-rsr-case], .ruiz-detail-4f6dc7a9, #rsr-x) { font-size:var(--rsr-card) !important; line-height:1.15 !important; max-width:30ch; }
/* Long statement headlines (Approach) keep the display size but get a wider measure. */
.rsr-p1.page-id-125 :is(.ruiz-approach-story > h1, #rsr-x) { max-width:22ch !important; font-size:clamp(2.5rem, 1.3rem + 3.6vw, 4.6rem) !important; letter-spacing:-.03em !important; }
.rsr-p1 .ruiz-page :is(h1, h2, h3) { text-wrap:balance; }
/* Privacy Policy: readable column with gutters; its subheads use the card size. */
.rsr-p1.page-id-3 :is(.wp-block-post-content, #rsr-x) { box-sizing:border-box; max-width:calc(46rem + 2 * clamp(1.25rem, 5vw, 4.5rem)) !important; margin:0 auto !important; padding:clamp(3rem, 6vw, 5rem) clamp(1.25rem, 5vw, 4.5rem) clamp(4rem, 7vw, 6rem) !important; color:var(--rsr-body); line-height:1.75; }
.rsr-p1.page-id-3 :is(.wp-block-post-content h2.wp-block-heading, #rsr-x) { font-size:var(--rsr-card) !important; margin:2.5rem 0 .75rem !important; color:var(--rsr-ink); }
.rsr-p1.page-id-125 :is(.ruiz-approach-workflow > .ruiz-approach-band, #rsr-x)::before { position:static !important; margin:0 0 1.25rem !important; }

/* 3. Shared editorial rows (services + industries): numbered, thin black rules, small uppercase labels. */
.rsr-p1 .ruiz-editorial-directory { counter-reset:rsr-row; column-gap:clamp(2rem, 5vw, 4.5rem) !important; border-top:1px solid var(--rsr-rule); }
.rsr-p1 .ruiz-editorial-directory > .ruiz-stack { gap:0 !important; }
.rsr-p1 :is(.ruiz-editorial-directory .ruiz-card-surface, #rsr-x) {
  counter-increment:rsr-row; position:relative; display:grid !important; grid-template-columns:3.25rem minmax(0,1fr) auto 1.25rem; align-items:baseline; gap:0 1rem !important;
  min-height:0 !important; padding:1.15rem 0 1.2rem !important; margin:0 !important; border:0 !important; border-bottom:1px solid var(--rsr-rule) !important; border-radius:0 !important;
  background:transparent !important; background-image:none !important; box-shadow:none !important; color:var(--rsr-ink) !important; transition:color .18s ease;
}
.rsr-p1 :is(.ruiz-editorial-directory .ruiz-card-surface, #rsr-x)::before { content:none !important; display:none !important; }
.rsr-p1 .ruiz-editorial-directory .ruiz-card-surface > .rsr-row-num {
  grid-column:1; grid-row:1; font:700 .6875rem/1.4 "Ruiz Manrope Local", Arial, sans-serif; letter-spacing:.16em; color:var(--rsr-rust); transform:translateY(-.2em);
}
.rsr-p1 .ruiz-editorial-directory .ruiz-card-surface > .ruiz-card-label { grid-column:2; grid-row:1; }
.rsr-p1 .ruiz-editorial-directory .ruiz-card-surface > .rsr-row-kind { grid-column:3; grid-row:1; }
.rsr-p1 .ruiz-editorial-directory .ruiz-card-surface > .rsr-row-arrow { grid-column:4; grid-row:1; }
.rsr-p1 .ruiz-editorial-directory .ruiz-card-surface::after { content:none !important; }
.rsr-p1 :is(.ruiz-editorial-directory .ruiz-card-label, #rsr-x) { font-size:clamp(1.3rem, 1.1rem + .55vw, 1.7rem) !important; line-height:1.2 !important; letter-spacing:-.01em !important; }
.rsr-p1 .rsr-row-kind { font:700 .6875rem/1.4 "Ruiz Manrope Local", Arial, sans-serif; letter-spacing:.16em; text-transform:uppercase; color:#6A645C; white-space:nowrap; }
.rsr-p1 .rsr-row-arrow { font:400 1.1rem/1 var(--rsr-serif); color:var(--rsr-rust); justify-self:end; transition:transform .18s ease; }
.rsr-p1 .ruiz-editorial-directory .ruiz-card-surface:is(:hover, :focus-visible) { color:var(--rsr-rust) !important; }
.rsr-p1 .ruiz-editorial-directory .ruiz-card-surface:is(:hover, :focus-visible) .rsr-row-arrow { transform:translateX(4px); }
@media (max-width:767px) {
  .rsr-p1 .ruiz-editorial-directory { display:block !important; }
  .rsr-p1 :is(.ruiz-editorial-directory .ruiz-card-surface, #rsr-x) { grid-template-columns:2.5rem minmax(0,1fr) 1rem; padding:1rem 0 !important; }
  .rsr-p1 .ruiz-editorial-directory .ruiz-card-surface > .rsr-row-kind { grid-column:2; grid-row:2; margin-top:.3rem; }
  .rsr-p1 .ruiz-editorial-directory .ruiz-card-surface > .rsr-row-arrow { grid-column:3; grid-row:1; }
  .rsr-p1 .ruiz-editorial-directory > .ruiz-stack + .ruiz-stack > .ruiz-card-surface:first-child { border-top:0 !important; }
}
@media (prefers-reduced-motion:reduce) { .rsr-p1 .rsr-row-arrow, .rsr-p1 .ruiz-editorial-directory .ruiz-card-surface { transition:none; } }

/* Editorial rows everywhere: no row numbers; the rows themselves carry more weight. */
.rsr-p1 .ruiz-editorial-directory { border-top:2px solid var(--rsr-ink); margin-top:2.5rem !important; }
.rsr-p1 .ruiz-editorial-directory .ruiz-card-surface > .rsr-row-num { display:none; }
.rsr-p1 :is(.ruiz-editorial-directory .ruiz-card-surface, #rsr-x) {
  grid-template-columns:minmax(0,1fr) auto 2.5rem; gap:0 1.25rem !important; align-items:center;
  padding:1.5rem 1rem 1.5rem 1.25rem !important; transition:background-color .22s ease, color .18s ease, box-shadow .22s ease;
}
.rsr-p1 .ruiz-editorial-directory .ruiz-card-surface > .ruiz-card-label { grid-column:1; }
.rsr-p1 .ruiz-editorial-directory .ruiz-card-surface > .rsr-row-kind { grid-column:2; }
.rsr-p1 .ruiz-editorial-directory .ruiz-card-surface > .rsr-row-arrow { grid-column:3; }
.rsr-p1 :is(.ruiz-editorial-directory .ruiz-card-label, #rsr-x) { font-size:clamp(1.45rem, 1.15rem + .8vw, 2rem) !important; line-height:1.15 !important; letter-spacing:-.015em !important; }
.rsr-p1 .ruiz-editorial-directory .rsr-row-arrow {
  display:grid; place-items:center; width:2.5rem; height:2.5rem; border:1px solid var(--rsr-ink); border-radius:50%;
  font-size:1rem; color:var(--rsr-ink); transition:background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}
.rsr-p1 .ruiz-editorial-directory .ruiz-card-surface:is(:hover, :focus-visible) {
  background-color:var(--rsr-cream) !important; box-shadow:inset 4px 0 0 var(--rsr-orange) !important; color:var(--rsr-ink) !important;
}
.rsr-p1 .ruiz-editorial-directory .ruiz-card-surface:is(:hover, :focus-visible) .ruiz-card-label { color:var(--rsr-rust); }
.rsr-p1 .ruiz-editorial-directory .ruiz-card-surface:is(:hover, :focus-visible) .rsr-row-arrow { background:var(--rsr-orange); border-color:var(--rsr-orange); color:var(--rsr-ink); transform:translateX(3px); }
@media (max-width:767px) {
  .rsr-p1 :is(.ruiz-editorial-directory .ruiz-card-surface, #rsr-x) { grid-template-columns:minmax(0,1fr) 2.25rem; padding:1.25rem .5rem 1.25rem .75rem !important; }
  .rsr-p1 .ruiz-editorial-directory .ruiz-card-surface > .ruiz-card-label { grid-column:1; grid-row:1; }
  .rsr-p1 .ruiz-editorial-directory .ruiz-card-surface > .rsr-row-kind { grid-column:1; grid-row:2; margin-top:.35rem; }
  .rsr-p1 .ruiz-editorial-directory .ruiz-card-surface > .rsr-row-arrow { grid-column:2; grid-row:1 / span 2; width:2.25rem; height:2.25rem; }
}
@media (prefers-reduced-motion:reduce) { .rsr-p1 .ruiz-editorial-directory :is(.ruiz-card-surface, .rsr-row-arrow) { transition:none; transform:none !important; } }

/* 4. At most two orange buttons per screen: in-content buttons are outline; the hero and closing CTA stay orange. */
.rsr-p1 :is(.ruiz-page .ruiz-button, #rsr-x) { background:transparent !important; border:1px solid var(--rsr-ink) !important; color:var(--rsr-ink) !important; }
.rsr-p1 :is(.ruiz-page .ruiz-button, #rsr-x):is(:hover, :focus-visible) { background:var(--rsr-ink) !important; color:var(--rsr-paper) !important; }
.rsr-p1 :is(.ruiz-art-hero .ruiz-button, .ruiz-detail-55f74b4f .ruiz-button, #rsr-x) { background:var(--rsr-orange) !important; border-color:var(--rsr-orange) !important; color:var(--rsr-ink) !important; }
.rsr-p1 :is(.ruiz-art-hero .ruiz-button, .ruiz-detail-55f74b4f .ruiz-button, #rsr-x):is(:hover, :focus-visible) { background:var(--rsr-ink) !important; border-color:var(--rsr-ink) !important; color:#fff !important; }
.rsr-p1 .rsr-text-link { display:inline-flex; gap:.4em; align-items:baseline; color:var(--rsr-ink); font-weight:600; font-size:.9375rem; text-decoration:none; border-bottom:1px solid var(--rsr-orange); padding-bottom:.15em; }
.rsr-p1 .rsr-text-link:is(:hover, :focus-visible) { color:var(--rsr-rust); }

/* 5. Floating Free Consultation button: hidden on the consultation page; never covers content on mobile. */
.rsr-p1.page-id-127 .ruiz-global-consultation { display:none !important; }
.rsr-p1 .ruiz-global-consultation { transition:opacity .2s ease, transform .2s ease, background-color .16s ease, color .16s ease; }
@media (max-width:767px) {
  .rsr-p1:not(.page-id-127) .ruiz-global-footer { padding-bottom:96px !important; }
  .rsr-p1 .ruiz-global-consultation { min-height:44px !important; padding:10px 16px !important; font-size:13px !important; }
  .rsr-p1 .ruiz-global-consultation:is(.rsr-cta-away, .rsr-cta-reading) { opacity:0; transform:translateY(140%); pointer-events:none; }
  .rsr-p1 .ruiz-global-consultation:focus-visible { opacity:1 !important; transform:none !important; pointer-events:auto !important; }
}

/* ===================== PHASE 2: Experience & Case Studies + Homepage ===================== */

/* Homepage hero: one sentence-like headline; photo is a full, unfaded part of the hero. */
.rsr-p2 .rsr-hero-line { grid-column:1 / -1; width:100%; max-width:13.5em; margin:2rem 0 0; font-size:var(--rsr-display); line-height:1.02; font-family:var(--rsr-serif); }
.rsr-p2 :is(.rsr-hero-line h1, #rsr-x) { display:inline !important; max-width:none !important; margin:0 !important; font-size:var(--rsr-display) !important; position:static !important; top:auto !important; }
.rsr-p2 .rsr-hero-line h1 br { display:none; }
.rsr-p2 .rsr-hero-line h1 span { font-style:normal !important; font-size:inherit !important; display:inline !important; }
.rsr-p2 :is(.rsr-hero-line .rsr-hero-continue, #rsr-x) {
  display:inline !important; max-width:none !important; margin:0 !important; font-size:var(--rsr-display) !important; line-height:1.02 !important; letter-spacing:-.028em !important;
  font-style:italic !important; color:var(--rsr-rust) !important;
}
.rsr-p2 .ruiz-art-hero.elementor-element-a782e61 { display:grid !important; grid-template-columns:minmax(0,1fr) auto !important; align-items:end !important; row-gap:2rem !important; padding-block:3.5rem 0 !important; }
.rsr-p2 :is(.ruiz-art-hero > .elementor-element-6c5ac348, #rsr-x) { position:static !important; left:auto !important; top:auto !important; width:auto !important; grid-column:1 / -1; margin:0 !important; }
.rsr-p2 :is(.ruiz-art-hero.ruiz-hero-media-integrated, #rsr-x) { height:auto !important; min-height:0 !important; overflow:visible !important; }
.rsr-p2 :is(.ruiz-art-hero.ruiz-hero-media-integrated > .elementor-element-49a28c04, #rsr-x) {
  position:relative !important; inset:auto !important; grid-column:1 / -1; width:auto !important; min-height:0 !important; height:clamp(300px, 34vw, 540px) !important;
  margin:1rem calc(-1 * clamp(1.25rem, 5vw, 4.5rem)) 0 !important; overflow:hidden;
}
.rsr-p2 .ruiz-art-hero.ruiz-hero-media-integrated > .elementor-element-49a28c04::after { content:none !important; display:none !important; }
.rsr-p2.home .elementor-element-49a28c04 > img[data-interaction-id="36b09c26"] { height:100% !important; aspect-ratio:auto !important; }
@media (max-width:1199px) {
  .rsr-p2.home :is(.elementor-element-49a28c04, #rsr-x) { height:clamp(260px, 62vw, 480px) !important; overflow:hidden; padding:0 !important; margin:0 !important; }
  .rsr-p2.home :is(.elementor-element-49a28c04 > img[data-interaction-id="36b09c26"], #rsr-x) { width:100% !important; height:100% !important; max-width:none !important; object-fit:cover !important; border-radius:0 !important; }
  .rsr-p2 :is(.ruiz-art-hero.elementor-element-a782e61, #rsr-x) { padding-block:2.5rem 2.25rem !important; }
}
@media (max-width:767px) { .rsr-p2 .rsr-hero-line { margin-top:.5rem; } }

/* One strong dark band in the upper half: intro + client logos (larger, single-color cream). */
.rsr-p2 :is([data-rsr-band="top"], [data-rsr-band="logos"], #rsr-x) { background:var(--rsr-ink) !important; color:var(--rsr-on-dark) !important; }
.rsr-p2 [data-rsr-band="top"] { padding-block:clamp(4rem, 7vw, 6.5rem) clamp(2rem, 3vw, 3rem) !important; }
.rsr-p2 [data-rsr-band="top"] .ruiz-eyebrow { color:var(--rsr-soft) !important; }
.rsr-p2 :is([data-rsr-band="top"] .ruiz-lead, #rsr-x) { color:var(--rsr-on-dark) !important; }
.rsr-p2 [data-rsr-band="logos"] { padding-block:0 clamp(3.5rem, 6vw, 5.5rem) !important; }
.rsr-p2 [data-rsr-band="logos"] .ra-team-experience { margin:0 !important; }
.rsr-p2 [data-rsr-band="logos"] .ra-team-experience::before { background:var(--rsr-ink) !important; }
.rsr-p2 [data-rsr-band="logos"] .ra-logo-marquee { height:128px !important; }
.rsr-p2 [data-rsr-band="logos"] .ra-brand-logo { height:118px !important; width:min(calc(var(--ra-logo-width,15rem) * 1.3 + 1.2rem), 84vw) !important; }
.rsr-p2 [data-rsr-band="logos"] .ra-brand-logo img {
  max-width:min(calc(var(--ra-logo-width,15rem) * 1.3), calc(100% - 10px), 62vw) !important; max-height:min(calc(var(--ra-logo-height,5rem) * 1.3), calc(100% - 10px), 84px) !important;
  filter:brightness(0) invert(94%) sepia(8%) !important; opacity:.92 !important;
}
.rsr-p2 [data-rsr-band="logos"] .ra-team-experience__toggle { color:var(--rsr-on-dark-2); }
@media (max-width:767px) {
  .rsr-p2 [data-rsr-band="logos"] .ra-logo-marquee { height:92px !important; }
  .rsr-p2 [data-rsr-band="logos"] .ra-brand-logo { height:86px !important; }
  .rsr-p2 [data-rsr-band="logos"] .ra-brand-logo img { max-height:min(calc(var(--ra-logo-height,4.4rem) * 1.2), calc(100% - 8px), 60px) !important; }
}

/* "A body of work": award marks directly on black, single color; headline set wide so it holds two lines. */
.rsr-p2 :is(.ruiz-art-recognition, #rsr-x) { grid-template-columns:1fr !important; gap:3rem !important; padding:clamp(2.5rem, 5vw, 4.5rem) !important; isolation:isolate; }
.rsr-p2 .ruiz-art-recognition > .ruiz-recognition-intro { display:grid !important; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); column-gap:clamp(2rem, 4vw, 4rem); row-gap:1rem; align-items:start; }
.rsr-p2 .ruiz-art-recognition > .ruiz-recognition-intro > h2 { grid-row:1 / span 2; max-width:none !important; }
.rsr-p2 :is(.ruiz-art-logo-spread, #rsr-x) {
  background:transparent !important; padding:2.75rem 0 0 !important; border-top:1px solid rgba(248,247,243,.18);
  display:flex !important; flex-wrap:wrap; justify-content:center; align-items:center; gap:2.25rem clamp(2rem, 4.5vw, 4.5rem) !important;
}
.rsr-p2 :is(.ruiz-art-logo-spread .ruiz-recognition-tile, #rsr-x) { background:transparent !important; border:0 !important; flex:0 0 auto; width:auto !important; min-height:0 !important; padding:0 !important; }
.rsr-p2 :is(.ruiz-art-logo-spread .ruiz-recognition-logo, #rsr-x) { filter:brightness(0) invert(94%) sepia(8%); width:auto !important; height:clamp(48px, 5vw, 72px) !important; max-width:220px !important; }
.rsr-p2 :is(.ruiz-art-logo-spread img[src*="chicago-film-festival"], #rsr-x) { filter:grayscale(1) brightness(.96); mix-blend-mode:screen; }
.rsr-p2 :is(.ruiz-art-logo-spread img[src*="credential-giff"], #rsr-x) { filter:invert(1) grayscale(1) brightness(.96); mix-blend-mode:screen; }
@media (max-width:900px) {
  .rsr-p2 .ruiz-art-recognition > .ruiz-recognition-intro { grid-template-columns:1fr; }
  .rsr-p2 .ruiz-art-recognition > .ruiz-recognition-intro > h2 { grid-row:auto; }
}

/* Team collage -> tidy grid of portraits. */
.rsr-p2 .rsr-team-grid { flex:1 1 0; min-width:0; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:clamp(.5rem, 1vw, .875rem); }
.rsr-p2 .rsr-team-cell { margin:0; aspect-ratio:1; overflow:hidden; background:var(--rsr-cream); }
.rsr-p2 .rsr-team-photo { display:block; width:100%; height:100%; object-fit:cover; }
@media (max-width:767px) { .rsr-p2 .rsr-team-grid { grid-template-columns:repeat(3, minmax(0,1fr)); width:100%; margin-top:1.5rem; } }

/* Closing call to action: large phone and email. */
.rsr-p2 :is([data-rsr-cta], #rsr-x) {
  font-family:var(--rsr-serif) !important; font-size:clamp(1.625rem, 1rem + 1.9vw, 2.625rem) !important; line-height:1.28 !important; letter-spacing:-.015em; max-width:32ch !important; color:var(--rsr-body) !important;
}
.rsr-p2 .rsr-cta-big { color:var(--rsr-ink); text-decoration:none; border-bottom:2px solid var(--rsr-orange); white-space:nowrap; }
@media (max-width:480px) { .rsr-p2 .rsr-cta-big[href^="mailto:"] { white-space:normal; overflow-wrap:anywhere; } }
.rsr-p2 .rsr-cta-big:is(:hover, :focus-visible) { color:var(--rsr-rust); }
.rsr-p2 .ruiz-detail-55f74b4f .ruiz-detail-126244f1 { flex:1.4 1 0 !important; }

/* Experience & Case Studies: featured case studies first. */
.rsr-p2 .rsr-featured { padding-block:clamp(2rem, 4vw, 3.5rem) clamp(4rem, 7vw, 6rem); }
.rsr-p2 .rsr-featured-head { display:flex; flex-direction:column; gap:1rem; margin-bottom:clamp(2rem, 4vw, 3.25rem); padding-top:2rem; border-top:1px solid var(--rsr-rule); }
.rsr-p2 .rsr-featured-head .ruiz-eyebrow { font-weight:700; font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; margin:0; color:var(--rsr-rust); }
.rsr-p2 .rsr-featured-head h2 { margin:0; max-width:22ch; }
.rsr-p2 .rsr-case-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:clamp(2.5rem, 4vw, 4rem) clamp(1.5rem, 3vw, 3rem); }
.rsr-p2 .rsr-case-card { display:flex; flex-direction:column; gap:.85rem; min-width:0; }
.rsr-p2 .rsr-case-card--lead { grid-column:1 / -1; }
.rsr-p2 .rsr-case-media { display:block; aspect-ratio:16 / 9; overflow:hidden; background:var(--rsr-cream); }
@media (min-width:768px) {
  .rsr-p2 .rsr-case-card--lead { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); grid-template-rows:auto auto auto 1fr; column-gap:clamp(1.5rem, 4vw, 3.5rem); row-gap:.85rem; align-content:start; }
  .rsr-p2 .rsr-case-card--lead > * { grid-column:2; }
  .rsr-p2 .rsr-case-card--lead > .rsr-case-media { grid-column:1; grid-row:1 / -1; aspect-ratio:16 / 10; align-self:start; }
}
.rsr-p2 .rsr-case-img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.rsr-p2 .rsr-case-card:hover .rsr-case-img { transform:scale(1.025); }
.rsr-p2 .rsr-case-meta { display:flex; flex-wrap:wrap; gap:.25rem .9rem; margin:.4rem 0 0; font:700 .6875rem/1.5 "Ruiz Manrope Local", Arial, sans-serif; letter-spacing:.14em; text-transform:uppercase; color:var(--rsr-rust); }
.rsr-p2 .rsr-case-meta span + span { color:#6A645C; }
.rsr-p2 :is(.rsr-case-title, #rsr-x) { margin:0; font-size:var(--rsr-card) !important; line-height:1.15 !important; }
.rsr-p2 .rsr-case-title a { color:var(--rsr-ink); text-decoration:none; }
.rsr-p2 .rsr-case-title a:is(:hover, :focus-visible) { color:var(--rsr-rust); }
.rsr-p2 .rsr-case-result { margin:0; font-family:var(--rsr-serif); font-style:italic; font-size:1.1875rem; line-height:1.45; color:var(--rsr-body); max-width:46ch; }
.rsr-p2 .rsr-case-card--lead :is(.rsr-case-title, #rsr-x) { font-size:var(--rsr-section) !important; line-height:1.06 !important; }
.rsr-p2 .rsr-case-card .rsr-text-link { align-self:flex-start; margin-top:.25rem; }
.rsr-p2 .rsr-case-card--lead .rsr-text-link { justify-self:start; }
@media (max-width:767px) {
  .rsr-p2 .rsr-case-grid { grid-template-columns:1fr; }
  .rsr-p2 .rsr-case-card--lead :is(.rsr-case-title, #rsr-x) { font-size:var(--rsr-card) !important; }
}
@media (prefers-reduced-motion:reduce) { .rsr-p2 .rsr-case-img { transition:none; } }
.rsr-p2.page-id-123 [data-rsr-band="logos-exp"] { margin-bottom:clamp(2rem, 4vw, 3.5rem); }

/* ===================== PHASE 3: interior pages ===================== */

/* Industry/service heroes: the page's one dark band. */
.rsr-p3 :is([data-rsr-band="hero"], #rsr-x) { background:var(--rsr-ink) !important; color:var(--rsr-on-dark) !important; padding-block:clamp(4rem, 7vw, 6.5rem) clamp(3.5rem, 6vw, 5.5rem) !important; }
.rsr-p3 :is([data-rsr-band="hero"] h1, [data-rsr-band="hero"] .ruiz-lead, #rsr-x) { color:var(--rsr-on-dark) !important; }
.rsr-p3 :is([data-rsr-band="hero"] .ruiz-lead, #rsr-x) { font-family:var(--rsr-serif) !important; font-style:italic; color:var(--rsr-soft) !important; font-size:clamp(1.375rem, 1.05rem + 1.1vw, 2.125rem) !important; line-height:1.25 !important; max-width:34ch !important; }
.rsr-p3 [data-rsr-band="hero"] .ruiz-eyebrow { color:var(--rsr-soft) !important; }
.rsr-p3 [data-rsr-band="hero"] h1 { max-width:16ch; }

/* Result line pulled out as a large highlighted sentence. */
.rsr-p3 .rsr-result-lead {
  display:block; margin:0 0 .9rem; padding-left:1.1rem; border-left:3px solid var(--rsr-orange);
  font-family:var(--rsr-serif); font-style:italic; font-size:clamp(1.375rem, 1.1rem + .9vw, 1.875rem); line-height:1.3; letter-spacing:-.01em; color:var(--rsr-ink);
}

/* Image-less case studies: typographic panel in the image slot. */
.rsr-p3 .rsr-case-type {
  display:flex; flex-direction:column; justify-content:space-between; gap:2.5rem; min-height:clamp(200px, 22vw, 320px); margin:1.5rem 0;
  align-self:stretch; width:100%; box-sizing:border-box; grid-column:1 / -1;
  padding:clamp(1.5rem, 3vw, 2.5rem); background:var(--rsr-orange); color:var(--rsr-ink);
}
.rsr-p3 .rsr-case-type-kicker { font:700 .6875rem/1.4 "Ruiz Manrope Local", Arial, sans-serif; letter-spacing:.16em; text-transform:uppercase; }
.rsr-p3 .rsr-case-type-label { font-family:var(--rsr-serif); font-style:italic; font-size:clamp(2rem, 1.2rem + 2.8vw, 3.75rem); line-height:1.02; letter-spacing:-.025em; max-width:18ch; }
/* Hide the panel where the case already has an image (the image sits between eyebrow and title only when present). */

/* Related links (3-4) replace the full grid. */
.rsr-p3 .rsr-related { display:block !important; max-width:56rem; }
.rsr-p3 .rsr-related-all { margin-top:1.75rem; }

/* Team: big stat numbers; consistent backgrounds; larger portraits. */
.rsr-p3 .rsr-stat-num { display:block; margin-bottom:.35rem; font-family:var(--rsr-serif); font-size:clamp(3rem, 1.2rem + 3.4vw, 4.75rem); line-height:.95; letter-spacing:-.035em; color:var(--rsr-rust); }
.rsr-p3.page-id-121 :is(.ruiz-detail-a7c71c69, #rsr-x) { background:transparent !important; }
.rsr-p3.page-id-121 :is(.ruiz-detail-a6149a7b, #rsr-x) { gap:clamp(2rem, 5vw, 4.5rem) !important; padding-top:clamp(2.5rem, 4vw, 3.5rem); border-top:1px solid var(--rsr-rule-light); }
.rsr-p3.page-id-121 :is(img.ruiz-detail-9bf9ebcb, #rsr-x) { width:42% !important; max-width:34rem !important; aspect-ratio:1 !important; object-fit:cover !important; background:var(--rsr-cream); }
.rsr-p3.page-id-121 .ruiz-detail-a7c71c69 + .ruiz-section, .rsr-p3.page-id-121 .ruiz-section + .ruiz-detail-a7c71c69 { padding-top:0 !important; }
@media (max-width:767px) { .rsr-p3.page-id-121 :is(img.ruiz-detail-9bf9ebcb, #rsr-x) { width:100% !important; max-width:none !important; } }

/* Approach: cream text directly on black in the audience band. */
.rsr-p3.page-id-125 :is(.ruiz-approach-support > .ruiz-approach-band, #rsr-x) { background:transparent !important; border-top:1px solid rgba(248,247,243,.28) !important; padding:1.5rem 0 0 !important; min-height:0 !important; }
.rsr-p3.page-id-125 :is(.ruiz-approach-support > .ruiz-approach-band h2, #rsr-x) { color:var(--rsr-on-dark) !important; }
.rsr-p3.page-id-125 :is(.ruiz-approach-support > .ruiz-approach-band > p:first-of-type, #rsr-x) { color:var(--rsr-soft) !important; }
.rsr-p3.page-id-125 :is(.ruiz-approach-support > .ruiz-approach-band > p:last-of-type, #rsr-x) { color:var(--rsr-on-dark-2) !important; }
.rsr-p3.page-id-125 :is(.ruiz-approach-support, #rsr-x) { column-gap:clamp(1.5rem, 3vw, 3rem) !important; }

/* Contact: form first, email secondary, no empty space above fields, wide inputs, large phone. */
.rsr-p3 .rsr-form-lead { margin:1.5rem 0 0 !important; padding:clamp(1.25rem, 2.5vw, 2rem) !important; max-width:none !important; background:#fff; border:1px solid #E4DFD5; }
.rsr-p3 :is(.rsr-form-lead > h2.wp-block-heading, #rsr-x) { font-size:var(--rsr-card) !important; margin:0 0 .4rem !important; }
.rsr-p3 .rsr-form-lead form br { display:none !important; }
.rsr-p3 .rsr-form-lead > p.wp-block-paragraph { margin:0 0 1.25rem !important; font-size:.9375rem; color:var(--rsr-body); }
.rsr-p3 .rsr-form-lead > * { max-width:none !important; margin-left:0 !important; margin-right:0 !important; }
.rsr-p3 .rsr-form-lead .contact-form-submission:not(.submission-success) { display:none !important; }
.rsr-p3 .rsr-form-lead :is(.jetpack-contact-form-container, form, .wp-block-jetpack-contact-form) { padding:0 !important; margin:0 !important; background:transparent !important; box-shadow:none !important; border:0 !important; max-width:none !important; width:100% !important; }
.rsr-p3 .rsr-form-lead :is(.jetpack-contact-form-container, form) > p:empty, .rsr-p3 .rsr-form-lead form p:empty { display:none !important; }
.rsr-p3 .rsr-form-lead .wp-block-jetpack-contact-form { gap:1.1rem !important; row-gap:1.1rem !important; }
.rsr-p3 .rsr-form-lead :is(input[type="text"], input[type="email"], input[type="tel"], textarea, #rsr-x) { width:100% !important; max-width:none !important; box-sizing:border-box; }
.rsr-p3 .rsr-form-lead :is(.grunion-field-wrap, .grunion-field-text-wrap, .grunion-field-email-wrap, .grunion-field-name-wrap, .grunion-field-textarea-wrap) { flex-basis:100% !important; max-width:100% !important; width:100% !important; }
.rsr-p3.page-id-127 :is([data-rsr-secondary], #rsr-x) { margin-top:1.75rem; background:transparent !important; border:1px solid var(--rsr-ink) !important; color:var(--rsr-ink) !important; }
.rsr-p3.page-id-127 :is(.ruiz-contact-intro-row, #rsr-x) { align-items:flex-start !important; }
.rsr-p3.page-id-127 :is(.ruiz-contact-direct, #rsr-x) { position:sticky; top:1.5rem; }
.rsr-p3.page-id-127 :is(.ruiz-contact-direct .ruiz-detail-29d3cb53, #rsr-x) { font-family:var(--rsr-serif) !important; font-size:clamp(2.25rem, 1.5rem + 2.2vw, 3.25rem) !important; line-height:1.05 !important; letter-spacing:-.02em; }
.rsr-p3.page-id-127 .ruiz-contact-direct .ruiz-detail-92e2323c { font-size:1.125rem !important; }
.rsr-p3.page-id-127 .ruiz-contact-direct a { color:var(--rsr-on-dark) !important; }
.rsr-p3.page-id-127 .elementor-element-63661d0c { padding-top:clamp(2.5rem, 5vw, 4rem) !important; }
@media (max-width:767px) { .rsr-p3.page-id-127 :is(.ruiz-contact-direct, #rsr-x) { position:static; } }

/* Privacy Policy H1. */
.rsr-p3 .rsr-privacy-title { font-size:var(--rsr-display) !important; margin:0 0 2rem !important; }
