/* Ruty consumes the same frame, typography and rhythm as the homepage. */
body.ruty-gemini-page {
  --ruty-site-frame: min(calc(100% - 64px), var(--cnw-page-max, 1560px));
  --ruty-site-visual-frame: calc(100% - 48px);
  --ruty-site-section-space: clamp(72px, 6vw, 96px);
  --ruty-site-section-pad: calc(var(--ruty-site-section-space) / 2);
  --ruty-site-heading-gap: clamp(32px, 3.5vw, 56px);
  --ruty-site-card-title: clamp(22px, 1.45vw, 28px);
  font-family: "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
}

body.ruty-gemini-page :is(h1, h2, h3, p, a, button, span, strong, small) {
  font-family: "Inter Tight", "Helvetica Neue", Arial, sans-serif;
}

/* Shared horizontal frame. */
body.ruty-gemini-page .hero,
body.ruty-gemini-page .ruty-quick-explainer__shell,
body.ruty-gemini-page .ruty-editorial-feature__inner,
body.ruty-gemini-page .ruty-signal-cloud__inner,
body.ruty-gemini-page .ruty-decision-section > .container,
body.ruty-gemini-page .ruty-components-shell,
body.ruty-gemini-page .final-cta > .container {
  width: var(--ruty-site-frame) !important;
  max-width: var(--cnw-page-max, 1560px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Large product visuals sit close to the viewport edge, as they did originally. */
body.ruty-gemini-page .hero,
body.ruty-gemini-page .ruty-quick-explainer__shell,
body.ruty-gemini-page .ruty-editorial-feature__inner {
  width: var(--ruty-site-visual-frame) !important;
  max-width: none !important;
}

/* Architecture is an edge-to-edge grey band, not a card inside the page frame. */
body.ruty-gemini-page .ruty-platform-widget {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #e9e9e9 !important;
}

body.ruty-gemini-page .ruty-platform-widget__frame {
  display: block !important;
  width: 100% !important;
  min-height: 860px !important;
  border: 0 !important;
  background: #e9e9e9 !important;
}

/* Shared section rhythm. */
body.ruty-gemini-page .hero {
  padding: 8px 0 var(--ruty-site-section-space) !important;
}

body.ruty-gemini-page .hero > .container {
  width: 100% !important;
  max-width: none !important;
}

body.ruty-gemini-page .ruty-quick-explainer {
  padding: 0 0 var(--ruty-site-section-pad) !important;
}

body.ruty-gemini-page :is(
  .ruty-editorial-feature,
  .ruty-signal-cloud,
  .ruty-decision-section,
  .ruty-components,
  .final-cta
) {
  padding-top: var(--ruty-site-section-pad) !important;
  padding-bottom: var(--ruty-site-section-pad) !important;
}

body.ruty-gemini-page :is(.ruty-editorial-feature, .ruty-components) {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Editorial split: compact outer margin, balanced image and readable copy. */
body.ruty-gemini-page .ruty-editorial-feature__inner {
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr) !important;
  gap: clamp(48px, 4vw, 72px) !important;
  align-items: center !important;
}

body.ruty-gemini-page .ruty-editorial-feature__media {
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
}

body.ruty-gemini-page .ruty-editorial-feature__content {
  position: relative !important;
  z-index: 2 !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Display role: identical to the homepage section-title scale. */
body.ruty-gemini-page .hero h1,
body.ruty-gemini-page .ruty-quick-explainer h2,
body.ruty-gemini-page .ruty-signal-cloud h2,
body.ruty-gemini-page .ruty-decision-heading h2,
body.ruty-gemini-page .ruty-components-head h2,
body.ruty-gemini-page .final-cta h2 {
  font-family: "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
  font-size: var(--cnw-display-size) !important;
  font-weight: var(--cnw-display-weight) !important;
  line-height: var(--cnw-display-leading) !important;
  letter-spacing: var(--cnw-display-tracking) !important;
  text-transform: none !important;
  text-wrap: balance;
}

/* Editorial headlines are supporting copy, not hero-sized displays. */
body.ruty-gemini-page .ruty-editorial-feature h2 {
  width: 100% !important;
  max-width: none !important;
  font-family: "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
  font-size: clamp(36px, 2.35vw, 44px) !important;
  font-weight: 400 !important;
  line-height: 1.08 !important;
  letter-spacing: -.04em !important;
  text-transform: none !important;
  text-wrap: balance;
}

body.ruty-gemini-page .hero h1 {
  max-width: 20.5ch !important;
  color: #fff !important;
}

body.ruty-gemini-page :is(
  .ruty-quick-explainer h2,
  .ruty-decision-heading h2,
  .ruty-components-head h2
) {
  max-width: 20.5ch !important;
}

/* Lead and body roles. */
body.ruty-gemini-page .hero-copy > p,
body.ruty-gemini-page .ruty-quick-explainer__copy > p,
body.ruty-gemini-page .ruty-components-head > p {
  font-family: "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
  font-size: var(--cnw-lead-size) !important;
  font-weight: var(--cnw-lead-weight) !important;
  line-height: var(--cnw-lead-leading) !important;
  letter-spacing: var(--cnw-lead-tracking) !important;
}

body.ruty-gemini-page :is(
  .ruty-quick-card p,
  .ruty-decision-module p,
  .ruty-flow-node p
) {
  font-family: "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
  font-size: var(--cnw-body-size) !important;
  font-weight: var(--cnw-body-weight) !important;
  line-height: var(--cnw-body-leading) !important;
  letter-spacing: 0 !important;
}

/* Card-heading role: subordinate to section displays. */
body.ruty-gemini-page :is(
  .ruty-quick-card h3,
  .ruty-decision-module h3,
  .ruty-flow-node h3,
  .ruty-flow-output strong
) {
  font-family: "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
  font-size: var(--ruty-site-card-title) !important;
  font-weight: 400 !important;
  line-height: 1.16 !important;
  letter-spacing: -.025em !important;
  text-transform: none !important;
}

/* Eyebrows, metadata and controls. */
body.ruty-gemini-page :is(
  .ruty-editorial-feature__eyebrow,
  .ruty-components-head .cnw-eyebrow,
  .ruty-module-tag,
  .ruty-flow-index,
  .ruty-flow-node small,
  .ruty-flow-output > span,
  .ruty-flow-output small
) {
  font-family: "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
  font-size: var(--cnw-eyebrow-size) !important;
  font-weight: var(--cnw-eyebrow-weight) !important;
  line-height: var(--cnw-eyebrow-leading) !important;
  letter-spacing: var(--cnw-eyebrow-tracking) !important;
  text-transform: uppercase !important;
}

body.ruty-gemini-page :is(
  .hero .btn,
  .ruty-editorial-feature__cta,
  .home-scale-action,
  .final-cta .btn
) {
  font-family: "Inter Tight", "Helvetica Neue", Arial, sans-serif !important;
  font-size: var(--cnw-label-size) !important;
  font-weight: var(--cnw-label-weight) !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

body.ruty-gemini-page .ruty-quick-explainer__intro,
body.ruty-gemini-page .ruty-components-head {
  gap: var(--ruty-site-heading-gap) !important;
}

body.ruty-gemini-page .ruty-decision-heading {
  margin-bottom: var(--ruty-site-heading-gap) !important;
}

@media (max-width: 820px) {
  body.ruty-gemini-page {
    --ruty-site-frame: calc(100% - 32px);
    --ruty-site-visual-frame: calc(100% - 24px);
    --ruty-site-section-space: 64px;
    --ruty-site-heading-gap: 32px;
  }

  body.ruty-gemini-page .hero {
    width: var(--ruty-site-visual-frame) !important;
  }

  body.ruty-gemini-page .ruty-editorial-feature__inner {
    grid-template-columns: 1fr !important;
    gap: 38px !important;
  }

  body.ruty-gemini-page .ruty-editorial-feature h2 {
    font-size: clamp(32px, 9vw, 40px) !important;
  }
}
