/* KAGARI-BI's editorial system, adapted to RUTEN's regional cycle. */
.ruten-page { --accent: #4169ff; --accent-panel: #3150d6; overflow-wrap: anywhere; }
.ruten-page :is(section, h2, #main) { scroll-margin-top: 105px; }
.ruten-page :is(a, summary):focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
.ruten-page .site-header { padding-right: var(--pad); grid-template-columns: minmax(210px, 1fr) auto auto; }
.ruten-page .brand { gap: 10px; }
.ruten-page .brand > span { display: flex; flex-direction: column; line-height: 1.4; }
.ruten-page .brand small { font-family: var(--body); font-size: 12px; font-weight: 500; letter-spacing: .04em; }
.ruten-page .brand b { font-size: 26px; letter-spacing: .04em; }
.ruten-page .header-nav { gap: clamp(16px, 2vw, 32px); }
.ruten-page .header-nav a { white-space: nowrap; }
.ruten-page .header-cta { min-width: 132px; margin: 0 0 0 24px; padding: 15px 24px; align-self: center; border-radius: 40px; }
.ruten-page .hero { position: relative; min-height: calc(100vh - 84px); padding: clamp(56px, 7vw, 104px) var(--content-inset) clamp(48px, 6vw, 76px); grid-template-columns: minmax(0, 1.55fr) minmax(320px, .55fr); gap: clamp(42px, 6vw, 92px); }
.ruten-page .hero-copy { grid-column: 1; grid-row: 1; width: 100%; padding: 0; }
.ruten-page .hero-title { margin: 0; }
.ruten-page .hero-brand-type { display: block; margin-bottom: 0; font-size: clamp(14px, 1.2vw, 18px); letter-spacing: .14em; }
.ruten-page .hero-brand-name { display: block; width: fit-content; font: 400 clamp(88px, 13vw, 188px)/.88 var(--display); letter-spacing: -.035em; }
.ruten-page .hero-kicker { margin: 20px 0 38px; font-size: 13px; }
.ruten-page .hero-statement { max-width: none; margin: 48px 0 26px; font-size: clamp(34px, 4.2vw, 64px); line-height: 1.24; letter-spacing: -.045em; }
.ruten-page .hero-statement > span { display: block; white-space: normal; }
.ruten-page .hero-lead { max-width: 720px; margin: 0 0 16px; font-size: 16px; line-height: 2; }
.ruten-page .hero-actions { max-width: 100%; margin-top: 30px; gap: 12px; flex-wrap: wrap; }
.ruten-page .button { min-height: 56px; padding: 16px 23px; font-size: 14px; gap: 18px; text-align: left; }
.ruten-page .hero-index { top: 80px; right: var(--pad); opacity: .7; }
.ruten-hero-note { z-index: 1; position: relative; grid-column: 2; grid-row: 1; align-self: end; width: 100%; padding: 32px 25px 24px; margin-bottom: 0; background: var(--white); border: 1px solid var(--ink); }
.ruten-hero-note .tape { position: absolute; top: -16px; left: -1px; padding: 8px 14px; color: var(--white); background: var(--accent-panel); font-size: 12px; }
.ruten-hero-note > p { margin: 0 0 20px; font-size: 13px; }
.ruten-hero-note ol { padding: 0; margin: 0; list-style: none; }
.ruten-hero-note li { display: flex; align-items: baseline; gap: 18px; padding: 15px 0; border-top: 1px solid var(--line); }
.ruten-hero-note li span { color: var(--accent-panel); font: 500 22px/1.4 var(--display); }
.ruten-hero-note li strong { font-size: 14px; }
.ruten-hero-note > a { display: flex; justify-content: space-between; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--ink); font-size: 12px; text-decoration: none; gap: 8px; }
.ruten-page .ticker-group span { min-height: 110px; font-size: clamp(44px, 5.5vw, 88px); }
.ruten-page .section-pad { padding: clamp(76px, 8vw, 140px) var(--content-inset); border-bottom: 1px solid var(--line); }
.ruten-page h2 { margin: 22px 0 32px; font-size: clamp(32px, 4.2vw, 68px); font-weight: 500; line-height: 1.45; letter-spacing: -.045em; }
.ruten-page h3 { line-height: 1.6; letter-spacing: -.025em; }
.ruten-page .section-label { display: flex; align-items: center; gap: 12px; font-size: 13px; letter-spacing: .16em; }
.ruten-page .section-label::before { display: block; width: 36px; height: 1px; background: currentColor; content: ""; }
.ruten-page p { font-size: 16px; }
.ruten-page .ruten-note { margin: 28px 0 0; font-size: 13px; line-height: 2; color: #585855; }
.ruten-section-heading { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: 70px; align-items: end; margin-bottom: 60px; }
.ruten-section-heading h2 { margin-bottom: 0; }
.ruten-section-heading > p { margin: 0 0 8px; max-width: 460px; line-height: 2.1; color: #585855; }
.ruten-split { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 80px; align-items: start; }
.ruten-split h2 { margin-top: 22px; }
.ruten-prose { padding-top: 28px; }
.ruten-prose p { margin: 0 0 20px; line-height: 2.2; }
.ruten-concept { background: var(--white); }
.ruten-issues { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 58px; border-top: 1px solid var(--line); }
.ruten-issues article { padding: 28px 24px 0; border-right: 1px solid var(--line); }
.ruten-issues article:first-child { padding-left: 0; }
.ruten-issues article:last-child { border: 0; }
.ruten-issues .mono { color: var(--accent-panel); }
.ruten-issues h3 { margin: 14px 0; font-size: 19px; }
.ruten-issues p { margin: 0; font-size: 14px; color: #585855; }
.ruten-cycle-section { background: var(--paper); }
.ruten-cycle { position: relative; margin: 0; }
.cycle-nodes { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 76px 84px; padding: 0; margin: 0; list-style: none; }
.cycle-node { position: relative; min-width: 0; padding: 30px 34px; background: var(--white); border: 1px solid var(--line); }
.cycle-node-top { display: flex; align-items: center; gap: 15px; }
.cycle-node-top > .mono:not(.cycle-number) { font-size: 12px; }
.cycle-number { color: var(--accent-panel); font-size: 40px; letter-spacing: -.03em; }
.cycle-arrow { margin-left: auto; font-size: 36px; line-height: 1; color: var(--accent-panel); }
.cycle-node h3 { margin: 18px 0 14px; font-size: clamp(23px, 2.2vw, 34px); line-height: 1.5; }
.cycle-node p { margin: 0; line-height: 2; }
.cycle-tag { display: block; margin-top: 22px; padding-top: 15px; border-top: 1px solid var(--line); font-size: 12px; }
.node-two { background: var(--accent-panel); color: var(--white); border-color: var(--accent-panel); }
.node-two :is(.cycle-number, .cycle-arrow) { color: var(--white); }
.node-two .cycle-tag { border-color: rgba(255,255,255,.35); }
.node-three { grid-column: 2; grid-row: 2; }
.node-four { grid-column: 1; grid-row: 2; }
.cycle-node::after { position: absolute; z-index: 0; font: 400 48px/1 var(--body); color: var(--accent-panel); }
.node-one::after { content: "→"; right: -67px; top: 44%; }
.node-two::after { content: "↓"; bottom: -66px; left: 47%; }
.node-three::after { content: "←"; left: -67px; top: 44%; }
.node-four::after { content: "↑"; top: -65px; left: 47%; }
.cycle-center { position: absolute; z-index: 2; left: 50%; top: calc((100% - 120px) / 2); display: flex; align-items: center; flex-direction: column; justify-content: center; width: 160px; height: 160px; transform: translate(-50%, -50%); border: 1px solid var(--line); border-radius: 50%; background: var(--paper); }
.cycle-center strong { font: 600 30px/1.4 var(--display); }
.cycle-center span { font-size: 12px; }
.ruten-cycle figcaption { display: flex; flex-direction: column; gap: 12px; padding-top: 30px; text-align: center; }
.ruten-cycle figcaption strong { font-size: 15px; line-height: 2; }
.ruten-cycle figcaption > span { font-size: 12px; color: #585855; }
.ruten-money-note { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px 60px; margin-top: 55px; padding: 32px 0 0; border-top: 1px solid var(--ink); }
.ruten-money-note > .mono { grid-column: 1 / -1; color: var(--accent-panel); }
.ruten-money-note h3 { font-size: 24px; margin: 0; }
.ruten-money-note p { margin: 0; line-height: 2; }
.ruten-services { background: var(--white); }
.ruten-service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--ink); }
.ruten-service-grid article { display: flex; flex-direction: column; padding: 34px 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.ruten-service-grid article:first-child { padding-left: 0; }
.ruten-service-grid article:last-child { padding-right: 0; border-right: 0; }
.ruten-service-grid .service-number { color: var(--accent-panel); font-size: 13px; }
.ruten-service-grid h3 { font-size: clamp(23px, 2.4vw, 35px); margin: 38px 0 12px; }
.ruten-service-grid .service-summary { font-size: 16px; font-weight: 700; margin: 0 0 16px; }
.ruten-service-grid p { margin: 0 0 28px; font-size: 14px; line-height: 2.1; }
.ruten-service-grid ul { margin: auto 0 0; padding: 18px 0 0; list-style: none; border-top: 1px solid var(--line); }
.ruten-service-grid li { padding: 6px 0; font-size: 13px; }
.ruten-service-grid li::before { content: "+"; margin-right: 10px; color: var(--accent-panel); }
.ruten-outcomes { background: var(--accent-panel); color: var(--white); }
.ruten-outcomes > h2 { margin-bottom: 56px; }
.ruten-outcome-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; }
.ruten-outcome-grid article { border-top: 1px solid rgba(255,255,255,.5); padding-top: 24px; }
.ruten-outcome-grid h3 { margin: 28px 0; font-size: 30px; }
.ruten-outcome-grid ul { list-style: none; margin: 0; padding: 0; }
.ruten-outcome-grid li { display: flex; flex-direction: column; gap: 6px; padding: 20px 0; border-top: 1px solid rgba(255,255,255,.25); }
.ruten-outcome-grid strong { font-size: 18px; }
.ruten-outcome-grid li span { font-size: 14px; color: #eef0ff; }
.ruten-page .ruten-outcomes .ruten-note { color: #eef0ff; margin-top: 40px; max-width: 880px; }
.ruten-reinvestment { background: var(--paper); }
.ruten-invest-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.ruten-invest-grid article { min-width: 0; }
.ruten-building { display: grid; place-items: center; min-height: 230px; margin-bottom: 28px; background: var(--white); border: 1px solid var(--line); }
.ruten-building svg { width: 80%; max-width: 260px; fill: none; stroke: var(--ink); stroke-width: 2; stroke-linecap: square; stroke-linejoin: miter; }
.ruten-building .blue-stroke { stroke: var(--accent-panel); stroke-width: 3; }
.ruten-building svg.lucide { width: 96px; height: 96px; max-width: 40%; stroke: var(--accent-panel); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.ruten-invest-grid .mono { color: var(--accent-panel); font-size: 12px; }
.ruten-invest-grid h3 { font-size: 25px; margin: 18px 0; }
.ruten-invest-grid p { font-size: 14px; }
.ruten-invest-grid .invest-example { font-size: 12px; border-top: 1px solid var(--line); padding-top: 14px; color: #585855; }
.ruten-local { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: center; background: var(--white); }
.ruten-local h2 { font-size: clamp(30px, 3.4vw, 53px); }
.ruten-local > div > p { max-width: 570px; line-height: 2.2; }
.ruten-area-diagram { position: relative; padding: 42px 26px 24px; border: 2px dashed var(--accent-panel); border-radius: 38px; background: var(--paper); }
.area-label { position: absolute; top: -14px; left: 26px; padding: 0 10px; background: var(--white); color: var(--accent-panel); font-size: 12px; }
.area-path { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 12px; align-items: center; text-align: center; }
.area-path > span:not(.area-arrow) { font-size: 13px; }
.area-path b { font-size: 15px; }
.area-arrow { font-size: 28px; color: var(--accent-panel); }
.ruten-area-diagram > p { text-align: center; margin: 26px 0 0; padding-top: 22px; border-top: 1px solid var(--line); font-size: 13px; }
.ruten-model { background: var(--paper); }
.model-banner { padding: 35px 40px; background: var(--ink); color: var(--white); }
.model-banner > .mono { color: #bdcaff; font-size: 12px; }
.model-banner h3 { margin: 18px 0 0; font-size: clamp(24px, 3vw, 42px); line-height: 1.6; }
.ruten-story { padding: 0; margin: 28px 0 0; list-style: none; }
.ruten-story li { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 24px; padding: 30px 0; border-bottom: 1px solid var(--line); }
.ruten-story li > .mono { font-size: 38px; color: var(--accent-panel); }
.ruten-story h3 { margin: 0 0 12px; font-size: 22px; }
.ruten-story p { margin: 0; color: #585855; }
.ruten-process { background: var(--white); }
.ruten-process-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 0; margin: 0; list-style: none; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.ruten-process-grid li { padding: 30px; border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); }
.ruten-process-grid .mono { font-size: 15px; color: var(--accent-panel); }
.ruten-process-grid h3 { font-size: 23px; margin: 30px 0 16px; }
.ruten-process-grid p { margin: 0; font-size: 14px; }
.ruten-principles { background: var(--paper); }
.ruten-policy { margin: 32px 0 0; }
.ruten-policy > div { padding: 22px 0; border-top: 1px solid var(--line); }
.ruten-policy dt { font-weight: 700; font-size: 17px; }
.ruten-policy dd { margin: 8px 0 0; color: #585855; font-size: 14px; }
.ruten-faq { background: var(--white); }
.ruten-faq h2 { margin-bottom: 50px; }
.ruten-page .faq-list { width: 100%; max-width: none; }
.ruten-page .faq-list details { padding: 0; border: 0; border-top: 1px solid var(--line); }
.ruten-page .faq-list details:last-child { border-bottom: 1px solid var(--line); }
.ruten-page .faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 26px 0; cursor: pointer; font-size: 17px; font-weight: 600; list-style: none; }
.ruten-page .faq-list summary::-webkit-details-marker { display: none; }
.ruten-page .faq-list summary::after { content: none; }
.ruten-page .faq-list summary > span { flex-shrink: 0; color: var(--accent-panel); font-size: 24px; }
.ruten-page .faq-list details[open] summary > span { transform: rotate(45deg); }
.ruten-page .faq-list details > p { margin: 0; max-width: 970px; padding: 0 0 30px; font-size: 15px; line-height: 2.1; color: #585855; }
.ruten-message { position: relative; overflow: hidden; background: var(--paper); }
.ruten-message h2 { font-size: clamp(32px, 4.5vw, 72px); }
.ruten-message-copy { width: 62%; margin: 30px 0 110px auto; }
.ruten-message-copy p { font-size: 17px; line-height: 2.2; }
.ruten-page .ruten-wordmark { font: 400 clamp(130px, 24vw, 390px)/.9 var(--display); letter-spacing: -.04em; color: var(--accent-panel); opacity: .12; margin: 0 0 -0.1em; }
.ruten-page .ruten-contact { display: block; background: var(--accent-panel); color: var(--white); }
.ruten-contact .ruten-section-heading { margin-bottom: 38px; }
.ruten-contact .ruten-section-heading > p { color: #eef0ff; }
.ruten-contact-options { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 38px; }
.ruten-contact-options span { padding: 8px 15px; border: 1px solid rgba(255,255,255,.5); font-size: 13px; }
.ruten-page .ruten-contact > .button { display: flex; justify-content: space-between; width: 100%; padding: 28px 32px; min-height: 90px; font-size: 23px; background: var(--white); color: var(--ink); border-color: var(--white); }
.ruten-page .ruten-contact > .button:hover { color: var(--accent-panel); }
.ruten-page .ruten-contact-note { margin: 20px 0 0; font-size: 12px; color: #eef0ff; }
.ruten-page .site-footer { grid-template-columns: 1fr auto; gap: 30px; }
.ruten-page .site-footer > p { grid-column: 1; grid-row: 2; font-size: 13px; }
.ruten-page .site-footer .footer-nav { grid-column: 2; grid-row: 1 / 3; display: flex; flex-wrap: wrap; gap: 24px; max-width: 480px; }
.ruten-page .site-footer .brand { width: fit-content; }
.ruten-page .site-footer .footer-nav a { font-size: 13px; }
@media (min-width: 1001px) and (max-width: 1150px) {
  .ruten-page .header-nav { gap: 14px; }
  .ruten-page .header-nav a { font-size: 12px; }
  .ruten-page .brand small { max-width: 180px; }
  .ruten-page .header-cta { min-width: 105px; padding-inline: 18px; margin-left: 16px; }
}
@media (max-width: 1000px) {
  .ruten-page .site-header { grid-template-columns: minmax(0,1fr) auto; padding-inline: 24px; }
  .ruten-page .header-nav { display: none; }
  .ruten-page .hero { min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr); padding-top: 66px; }
  .ruten-page .hero-statement { max-width: none; font-size: clamp(38px, 6vw, 58px); }
  .ruten-page .hero-lead, .ruten-page .hero-actions { max-width: 100%; }
  .ruten-page .hero-brand-name { font-size: clamp(88px, 13vw, 188px); }
  .ruten-hero-note { grid-column: 1; grid-row: 2; max-width: 620px; margin-top: 30px; }
  .ruten-page .hero-index { top: 60px; right: 24px; }
  .ruten-section-heading { grid-template-columns: minmax(0,1fr); gap: 25px; margin-bottom: 42px; }
  .ruten-section-heading > p { max-width: 680px; }
  .ruten-split { grid-template-columns: minmax(0,1fr); gap: 0; }
  .ruten-prose { padding-top: 0; max-width: 740px; }
  .ruten-issues { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ruten-issues article { padding: 24px; border-bottom: 1px solid var(--line); }
  .ruten-issues article:nth-child(odd) { padding-left: 0; }
  .ruten-issues article:nth-child(even) { border-right: 0; }
  .ruten-issues article:last-child { border-bottom: 1px solid var(--line); }
  .cycle-nodes { gap: 58px 54px; }
  .cycle-node { padding: 23px; }
  .cycle-node h3 { font-size: 25px; }
  .cycle-node::after { font-size: 36px; }
  .node-one::after { right: -46px; }
  .node-two::after { bottom: -49px; }
  .node-three::after { left: -46px; }
  .node-four::after { top: -49px; }
  .cycle-center { width: 125px; height: 125px; }
  .cycle-center img { width: 32px; height: 32px; }
  .cycle-center strong { font-size: 25px; }
  .cycle-center span { max-width: 100px; text-align: center; font-size: 12px; }
  .cycle-node-top { flex-wrap: wrap; gap: 10px; }
  .cycle-node-top > .mono:not(.cycle-number) { font-size: 12px; }
  .cycle-arrow { display: none; }
  .ruten-service-grid article { padding: 26px 20px; }
  .ruten-service-grid h3 { font-size: 25px; }
  .ruten-service-grid .service-summary { font-size: 15px; }
  .ruten-outcome-grid { gap: 34px; }
  .ruten-invest-grid { gap: 24px; }
  .ruten-invest-grid h3 { font-size: 22px; }
  .ruten-building { min-height: 180px; }
  .ruten-local { grid-template-columns: minmax(0,1fr); gap: 30px; }
  .ruten-area-diagram { max-width: 680px; }
  .ruten-process-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ruten-message-copy { width: 85%; margin-bottom: 65px; }
}
@media (max-width: 600px) {
  .ruten-page { --pad: 20px; }
  .ruten-page :is(section,h2,#main) { scroll-margin-top: 95px; }
  .ruten-page .site-header { height: 80px; min-height: 80px; padding-inline: 18px; }
  .ruten-page .brand { padding: 0 10px 0 0; gap: 8px; }
  .ruten-page .brand img { width: 32px; height: 32px; }
  .ruten-page .brand small { max-width: 135px; font-size: 12px; letter-spacing: 0; }
  .ruten-page .brand b { font-size: 24px; }
  .ruten-page .header-cta { margin-left: 0; min-width: 82px; padding: 12px 13px; font-size: 12px; }
  .ruten-page .hero { padding-top: 48px; padding-bottom: 54px; gap: 24px; }
  .ruten-page .hero-brand-type { font-size: 13px; letter-spacing: .02em; }
  .ruten-page .hero-brand-name { font-size: clamp(76px, 25vw, 106px); letter-spacing: -.035em; }
  .ruten-page .hero-kicker { margin: 22px 0 36px; font-size: 12px; letter-spacing: .08em; }
  .ruten-page .hero-statement { font-size: clamp(30px, 7.8vw, 43px); line-height: 1.6; letter-spacing: -.06em; }
  .ruten-page .hero-lead { font-size: 14px; line-height: 2.1; }
  .ruten-page .desktop-break { display: none; }
  .ruten-page .hero-actions { display: grid; grid-template-columns: minmax(0,1fr); margin-top: 26px; }
  .ruten-page .button { justify-content: space-between; font-size: 13px; }
  .ruten-page .hero-index { display: none; }
  .ruten-hero-note { margin-top: 20px; padding: 30px 20px 20px; }
  .ruten-hero-note li { gap: 12px; }
  .ruten-hero-note li strong { font-size: 13px; }
  .ruten-page .ticker-group span { min-height: 80px; font-size: 40px; }
  .ruten-page .section-pad { padding-block: 64px; }
  .ruten-page h2 { font-size: clamp(29px, 7.3vw, 43px); margin-top: 20px; line-height: 1.6; letter-spacing: -.06em; }
  .ruten-page .section-label { font-size: 12px; letter-spacing: .1em; }
  .ruten-page .section-label::before { width: 23px; }
  .ruten-page p { font-size: 14px; }
  .ruten-issues { margin-top: 30px; }
  .ruten-issues article { padding: 22px 14px; }
  .ruten-issues h3 { font-size: 17px; }
  .ruten-issues p { font-size: 13px; }
  .ruten-issues .mono { font-size: 12px; }
  .ruten-section-heading { margin-bottom: 34px; }
  .cycle-center { position: static; transform: none; width: 100%; height: auto; min-height: 70px; border: 0; border-bottom: 2px solid var(--accent-panel); border-radius: 0; flex-direction: row; gap: 12px; padding-bottom: 18px; margin-bottom: 24px; }
  .cycle-center span { margin-left: auto; max-width: 110px; }
  .cycle-nodes { grid-template-columns: minmax(0,1fr); gap: 44px; }
  .cycle-node { padding: 23px; }
  .node-three, .node-four { grid-column: auto; grid-row: auto; }
  .cycle-node h3 { font-size: 25px; }
  .cycle-node-top > .mono:not(.cycle-number) { font-size: 12px; letter-spacing: .07em; }
  .cycle-node p { font-size: 14px; }
  .cycle-node::after { content: "↓"; top: auto; bottom: -38px; right: auto; left: calc(50% - 15px); font-size: 30px; }
  .node-four::after { content: none; }
  .cycle-number { font-size: 34px; }
  .cycle-tag { font-size: 12px; }
  .ruten-cycle figcaption { padding: 24px 0 0; text-align: left; }
  .ruten-cycle figcaption strong { font-size: 14px; padding-left: 17px; border-left: 3px solid var(--accent-panel); }
  .ruten-money-note { grid-template-columns: minmax(0,1fr); gap: 18px; margin-top: 32px; padding-top: 26px; }
  .ruten-money-note h3 { font-size: 22px; }
  .ruten-money-note > .mono { font-size: 12px; letter-spacing: .1em; }
  .ruten-service-grid { grid-template-columns: minmax(0,1fr); }
  .ruten-service-grid article, .ruten-service-grid article:first-child, .ruten-service-grid article:last-child { padding: 30px 0; border-right: 0; }
  .ruten-service-grid h3 { margin-top: 22px; font-size: 30px; }
  .ruten-service-grid ul { margin-top: 0; }
  .ruten-outcome-grid { grid-template-columns: minmax(0,1fr); gap: 44px; }
  .ruten-outcome-grid h3 { font-size: 28px; }
  .ruten-outcome-grid strong { font-size: 17px; }
  .ruten-outcome-grid li span { font-size: 13px; }
  .ruten-invest-grid { grid-template-columns: minmax(0,1fr); gap: 38px; }
  .ruten-building { min-height: 190px; margin-bottom: 20px; }
  .ruten-invest-grid h3 { font-size: 25px; }
  .ruten-area-diagram { padding: 38px 18px 20px; border-radius: 25px; }
  .area-label { font-size: 12px; left: 12px; padding: 0 5px; letter-spacing: .02em; }
  .area-path { grid-template-columns: minmax(0,1fr); gap: 4px; }
  .area-path > span:not(.area-arrow) { font-size: 14px; }
  .area-path b { font-size: 17px; }
  .area-arrow { transform: rotate(90deg); font-size: 25px; line-height: 1.4; }
  .model-banner { padding: 25px; }
  .model-banner h3 { font-size: 23px; }
  .ruten-story li { grid-template-columns: 35px minmax(0,1fr); gap: 15px; padding: 25px 0; }
  .ruten-story li > .mono { font-size: 28px; }
  .ruten-story h3 { font-size: 19px; }
  .ruten-process-grid { grid-template-columns: minmax(0,1fr); }
  .ruten-process-grid li { padding: 25px; }
  .ruten-process-grid h3 { font-size: 23px; margin: 18px 0 12px; }
  .ruten-policy dt { font-size: 16px; }
  .ruten-policy dd { font-size: 14px; }
  .ruten-page .faq-list summary { font-size: 15px; padding-block: 23px; gap: 18px; }
  .ruten-page .faq-list details > p { font-size: 14px; }
  .ruten-message-copy { width: 100%; margin: 24px 0 55px; }
  .ruten-message-copy p { font-size: 15px; }
  .ruten-page .ruten-contact > .button { padding: 24px 18px; font-size: 17px; }
  .ruten-contact-options { gap: 8px; margin-bottom: 28px; }
  .ruten-contact-options span { font-size: 12px; padding: 6px 12px; }
  .ruten-page .ruten-contact-note { font-size: 12px; }
  .ruten-page .site-footer { grid-template-columns: minmax(0,1fr); gap: 22px; }
  .ruten-page .site-footer > p { grid-row: auto; }
  .ruten-page .site-footer .footer-nav { grid-column: 1; grid-row: auto; gap: 18px 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .ruten-page { scroll-behavior: auto; }
  .ruten-page .ticker-track { animation: none; transform: none; }
}

.ruten-page .founder-vision { border-bottom: 0; background: var(--paper); color: var(--ink); }
.ruten-page .founder-vision-meta { display: flex; justify-content: space-between; gap: 24px; font-size: 12px; font-weight: 700; letter-spacing: .14em; }
.ruten-page .founder-vision-stage { margin-top: clamp(56px, 8vw, 112px); }
.ruten-page .founder-vision-english { display: flex; flex-direction: column; gap: clamp(12px, 1.5vw, 22px); margin: 0; color: #3159da; font: 400 clamp(62px, 7.5vw, 112px)/1.06 var(--display); letter-spacing: -.05em; }
.ruten-page .founder-vision-english span { display: block; }
.ruten-page .founder-vision-statement { width: min(100%, 1040px); margin: clamp(72px, 10vw, 150px) 0 0 auto; }
.ruten-page .founder-vision-statement h2 { margin: 0; font-size: clamp(48px, 4.8vw, 72px); font-weight: 500; letter-spacing: -.045em; line-height: 1.42; text-wrap: balance; }
.ruten-page .founder-vision-story { max-width: 1160px; margin: clamp(92px, 12vw, 170px) auto 0; }
.ruten-page .founder-vision-mission { max-width: 920px; margin: 0 auto; text-align: center; }
.ruten-page .founder-vision-mission p { margin: 0; font-size: clamp(28px, 3vw, 42px); font-weight: 500; line-height: 1.7; letter-spacing: -.025em; text-wrap: balance; }
.ruten-page .founder-vision-copy { max-width: 800px; margin: clamp(62px, 8vw, 112px) auto 0; }
.ruten-page .founder-vision-copy p { margin: 0 0 1.8em; font-size: clamp(16px, 1.15vw, 18px); line-height: 2.1; }
.ruten-page .founder-vision-copy p:last-child { margin-bottom: 0; }
@media (max-width: 900px) {
  .ruten-page .founder-vision-english { font-size: clamp(56px, 7vw, 76px); }
  .ruten-page .founder-vision-statement h2 { font-size: clamp(42px, 6vw, 64px); }
}
@media (max-width: 600px) {
  .ruten-page .founder-vision-meta { flex-direction: column; gap: 9px; }
  .ruten-page .founder-vision-stage { margin-top: 52px; }
  .ruten-page .founder-vision-english { gap: 14px; font-size: clamp(38px, 10vw, 58px); }
  .ruten-page .founder-vision-statement { width: 100%; margin-top: 76px; }
  .ruten-page .founder-vision-statement h2 { font-size: clamp(34px, 8.2vw, 48px); }
  .ruten-page .founder-vision-story { margin-top: 82px; }
  .ruten-page .founder-vision-mission p { font-size: clamp(24px, 6.2vw, 30px); }
  .ruten-page .founder-vision-copy { margin-top: 58px; }
  .ruten-page .founder-vision-copy p { font-size: 16px; line-height: 2; }
}
