/* One Rimo layout language. This layer owns shared rhythm across all 27 routes. */
:root {
  --layout-wide: 1320px;
  --layout-standard: 1200px;
  --layout-copy: 65ch;
  --layout-gutter: clamp(20px, 5.5vw, 80px);
  --space-1: 8px; --space-2: 16px; --space-3: 24px; --space-4: 32px;
  --space-5: 48px; --space-6: 64px; --space-7: 88px; --space-8: 112px;
  --layout-section: clamp(64px, 7vw, 104px);
  --layout-grid-gap: clamp(32px, 4vw, 64px);
  --layout-heading-gap: 32px;
  --frame-radius: 12px;
  --frame-shadow: 0 12px 32px #203c340c;
}
.ri-site {
  --ri-paper: #f5f2e9; --rp-paper: var(--ri-paper);
  --ri-forest: #203c34; --rp-forest: var(--ri-forest);
  --ri-white: #fffdf8; --ri-ink: #292e29; --ri-muted: #526157;
  --ri-sage: #e2e8d9; --rp-sage: #cbd8a9;
  --ri-coral: #ef8b75; --rp-coral: var(--ri-coral);
  --ri-line: #c7cec1; --ri-section: var(--layout-section);
  background: var(--ri-paper);
}
.ri-site :is(.ri-wrap,.mx-wrap) {width: min(calc(100% - var(--layout-gutter) * 2), var(--layout-wide)); max-width: var(--layout-wide); margin-inline: auto;}
.ri-site :is(.ri-section,.mx-section) {padding-block: var(--layout-section);}
.ri-site main :is(h1,h2,h3) {text-wrap: balance; overflow-wrap: normal;}
.ri-site main :is(h1,h2) br {display:initial!important;}
.ri-site main h1 {font-size: clamp(42px, 5.4vw, 76px); line-height: 1.04; letter-spacing: -.055em; font-weight: 500; max-width: 19ch; margin: 20px 0 28px;}
.ri-site main h2 {font-size: clamp(30px, 3.35vw, 48px); line-height: 1.12; letter-spacing: -.045em; font-weight: 500;}
.ri-site main h3 {font-size: clamp(22px, 2vw, 28px); line-height: 1.2; letter-spacing: -.025em;}
.ri-site main p {line-height: 1.65; text-wrap: pretty;}
.ri-site :is(.mx-copy,.ri-feature-hero)>p {max-width: var(--layout-copy);}
.ri-site :is(.mx-eyebrow,.ri-kicker) {font-size: 11px; line-height: 1.5; letter-spacing: .12em;}
.ri-site :is(.ri-caption,.mx-fine-print,.rp-demo-note,.rl-screen-source) {font-size: 13px; line-height: 1.55;}
.ri-site :is(.ri-feature-hero,.mx-hero,.mx-price-hero,.mx-switch-hero,.mx-compare-hero) {padding-block: var(--space-6); gap: var(--layout-grid-gap);}
.ri-site .ri-feature-hero {max-width: var(--layout-wide);}
.ri-site .ri-feature-hero h1 {max-width: 20ch;}
.ri-site .ri-feature-hero>p {max-width: 58ch; font-size: 19px;}
.ri-site :is(.seo-breadcrumbs,.mx-breadcrumb) {display:flex; flex-wrap:wrap; gap:10px; align-items:center; padding-top:24px; margin-bottom:0; font-size:13px; color:var(--ri-muted);}
.ri-site :is(.ri-heading,.mxp-section-heading,.mx-section-heading,.mx-commercial-heading) {gap:var(--layout-grid-gap); margin-bottom:var(--space-5); align-items:start;}
.ri-site :is(.ri-split,.ri-story,.ri-story.reverse,.mx-split,.mx-sector-split,.mxp-feature-split) {gap:var(--layout-grid-gap);}
.ri-site :is(.ri-actions,.mxp-actions,.mx-sector-actions,.mx-commercial-actions) {display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin-top:24px;}
.ri-site :is(.ri-button,.mx-btn) {min-height:48px; padding:13px 22px; border-radius:7px; font-size:14px; line-height:1.4; display:inline-flex; gap:18px; justify-content:center; align-items:center; text-align:center; box-shadow:none;}
.ri-site :is(.ri-link,.mx-text-link,.mxp-text-link,.mx-sector-text-link) {min-height:44px; display:inline-flex; align-items:center; gap:12px; line-height:1.4;}
.ri-site :is(.ri-industry-grid>a,.mx-next-links>a) {display:flex; flex-direction:column; align-items:start;}
.ri-site .ri-industry-grid>a>.ri-link {margin-top:auto;}
.ri-site :is(.ri-industry-grid h3,.mx-next-links h3) {min-height:0;}
.ri-site .ri-industry-grid>a>p {margin-bottom:16px;}

/* Tactile section actions: a coral invitation, an arrow with a little curiosity. */
.ri-site main .rl-round-link {position:relative; isolation:isolate; display:inline-flex; align-items:center; justify-content:space-between; gap:14px; width:fit-content; max-width:100%; min-width:0; min-height:56px; padding:8px 9px 8px 20px; border:2px solid #203c34; border-radius:999px; background:#efad95; color:#203c34; font:700 14px/1.35 Arial,sans-serif; text-decoration:none; box-shadow:0 4px 0 #203c34; vertical-align:middle; transform:translateY(0); transition:transform 180ms cubic-bezier(.2,.8,.3,1.2),box-shadow 180ms ease,background-color 180ms ease;}
.ri-site .rl-round-link .rl-round-label {min-width:0; color:inherit; text-align:left; transition:transform 180ms ease;}
.ri-site .rl-round-link .rl-round-arrow {display:grid; place-items:center; flex:0 0 36px; width:36px; height:36px; padding:0; margin:0; border:0; border-radius:50%; background:#203c34; color:#fffdf8; font:400 25px/1 Arial,sans-serif; transition:transform 220ms cubic-bezier(.2,.8,.3,1.3);}
.ri-site .rl-round-nudge {position:absolute; bottom:7px; left:20px; width:max-content; max-width:calc(100% - 72px); padding:0; color:inherit; font:500 10px/1.3 Arial,sans-serif; text-align:left; pointer-events:none; opacity:0; visibility:hidden; transform:translateY(4px); transition:opacity 160ms ease,transform 160ms ease,visibility 160ms;}
.ri-site main .rl-round-link:focus-visible {background:#f6bba4; transform:translateY(-2px); box-shadow:0 6px 0 #203c34; text-decoration:none;}
.ri-site main .rl-round-link:focus-visible .rl-round-arrow {transform:rotate(45deg);}
.ri-site main .rl-round-link:focus-visible .rl-round-nudge,.ri-site .ri-industry-grid>a:focus-visible .rl-round-nudge {visibility:visible; opacity:1; transform:translateY(0);}
.ri-site main .rl-round-link:focus-visible .rl-round-label,.ri-site .ri-industry-grid>a:focus-visible .rl-round-label {transform:translateY(-7px);}
.ri-site main .rl-round-link:active {transform:translateY(3px); box-shadow:0 1px 0 #203c34;}
.ri-site main p+.rl-round-link {margin-top:8px;}
.ri-site .ri-jobs .rl-round-link {background:#c7e0ef; color:var(--ri-blue); border-color:var(--ri-blue); box-shadow:0 4px 0 var(--ri-blue);}
.ri-site .ri-jobs .rl-round-arrow {background:var(--ri-blue);}
.ri-site .ri-industry-grid>a {padding:22px; border:1px solid #203c3429; border-radius:24px; background:#fbfaf5; transition:border-color 160ms ease;}
.ri-site .ri-industry-grid>a:hover {border-color:#203c3466; text-decoration:none;}
.ri-site .ri-industry-grid>a>p {margin-bottom:24px;}
.ri-site .ri-industry-grid>a .rl-round-link {font-size:13px; gap:10px; padding-left:15px;}
.ri-site .ri-industry-grid>a .rl-round-nudge {left:15px;}
.ri-site .ri-industry-grid>a:focus-visible .rl-round-arrow {transform:rotate(45deg);}
@media (hover:hover) and (pointer:fine) {
  .ri-site main .rl-round-link:hover,.ri-site .ri-industry-grid>a:hover .rl-round-link {background:#f6bba4; transform:translateY(-3px) rotate(-2deg); box-shadow:0 7px 0 #203c34; text-decoration:none;}
  .ri-site main .rl-round-link:hover .rl-round-arrow,.ri-site .ri-industry-grid>a:hover .rl-round-arrow {transform:rotate(45deg);}
  .ri-site main .rl-round-link:hover .rl-round-nudge,.ri-site .ri-industry-grid>a:hover .rl-round-nudge {visibility:visible; opacity:1; transform:translateY(0);}
  .ri-site main .rl-round-link:hover .rl-round-label,.ri-site .ri-industry-grid>a:hover .rl-round-label {transform:translateY(-7px);}
  .ri-site .ri-jobs .rl-round-link:hover {background:#d9ecf7; box-shadow:0 7px 0 var(--ri-blue);}
}
@keyframes rimo-curious-arrow {0%,100%{transform:rotate(0)} 30%{transform:rotate(-18deg) scale(1.07)} 65%{transform:rotate(12deg)}}
@keyframes rimo-button-hello {0%,100%{transform:translateY(0) rotate(0)} 35%{transform:translateY(-6px) rotate(-2deg)} 65%{transform:translateY(-2px) rotate(1deg)}}
.ri-site main .rl-round-link:active,.ri-site .ri-industry-grid>a:active .rl-round-link {transform:translateY(3px); box-shadow:0 1px 0 #203c34;}
@media (prefers-reduced-motion:no-preference) {
  .ri-site .rl-round-link.is-noticed {animation:rimo-button-hello 850ms ease-out 1;}
  .ri-site .rl-round-link.is-noticed .rl-round-arrow {animation:rimo-curious-arrow 700ms ease-out 1;}
  .ri-site .rl-round-link:is(:hover,:focus-visible),.ri-site .ri-industry-grid>a:is(:hover,:focus-visible) .rl-round-link {animation:none;}
}
@media (prefers-reduced-motion:reduce) {
  .ri-site main .rl-round-link,.ri-site .ri-industry-grid>a .rl-round-link,.ri-site .rl-round-link .rl-round-arrow {transform:none!important;}
}
.ri-site :is(.ri-footer-top,.ri-footer-bottom) {gap:32px;}
.ri-site .ri-footer h2 {font-family:Arial,sans-serif; font-size:13px; line-height:1.4; letter-spacing:.07em;}
.ri-site .ri-footer-top p {font-size:19px; line-height:1.5;}
.ri-site .ri-footer a {min-height:32px; line-height:1.5;}
.ri-site .ri-footer-bottom {padding-block:32px;}
.ri-site .ri-footer-bottom p,.ri-site .ri-disclosure {font-size:12px; line-height:1.7; max-width:90ch;}
.ri-site .ri-header a[aria-current=page] {text-decoration:underline; text-underline-offset:6px;}
.ri-site .ri-menu:has(a[aria-current=page])>summary {color:var(--ri-forest); text-decoration:underline; text-underline-offset:6px;}
.ri-site .ri-header nav {gap:clamp(16px,1.6vw,28px);}
.ri-site .ri-nav-jobs {display:inline-flex;}
.ri-site :focus-visible {outline:3px solid #a5412c; outline-offset:5px;}
.ri-site :is(.rp-morning,.ri-end,.rp-money,.mx-dark) :focus-visible {outline-color:#fffdf8;}

/* A frame is an image, not a mock browser. Never crop or stretch product evidence. */
.ri-site figure.rl-screen {display:block; width:100%; min-width:0; padding:0; margin:0; border:1px solid var(--ri-line); border-radius:var(--frame-radius); background:var(--ri-white); box-shadow:var(--frame-shadow); overflow:hidden; transform:none;}
.ri-site figure.rl-screen>img {display:block; width:100%; height:auto; max-height:none; aspect-ratio:auto; object-fit:contain; border:0; border-radius:0; transform:none; padding:0;}
.ri-site figure.rl-screen>figcaption {display:flex; align-items:center; justify-content:space-between; flex-wrap:nowrap; gap:16px; padding:12px 20px; min-height:56px; margin:0; background:var(--ri-white); border:0; color:var(--ri-forest); font:600 13px/1.45 Arial,sans-serif;}
.ri-site figure.rl-screen>figcaption>span {min-width:0;}
.ri-site figure.rl-screen button {flex-shrink:0; min-height:36px; border:0; padding:8px 0 8px 12px; background:transparent; color:var(--ri-forest); font:600 13px/1.4 Arial,sans-serif; cursor:pointer;}
.ri-site figure.rl-screen .rl-screen-source {display:block; margin:0; padding:10px 20px; color:var(--ri-muted); font:400 12px/1.5 Arial,sans-serif; background:var(--ri-white); border-top:1px solid var(--ri-line);}
.ri-site .ri-work .rl-screen {border-width:1px;}
.ri-site .rl-product-opening {padding-block:0 var(--layout-section);}
.ri-site .rl-product-heading {display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 32px; align-items:baseline; margin-bottom:24px;}
.ri-site .rl-product-heading p {margin:0; font-size:14px; color:var(--ri-muted);}
.ri-site .rl-product-heading em {font-style:normal;}
.ri-site .rl-annotation,.ri-site .rp-handnote {font:italic 22px/1.45 Georgia,serif; letter-spacing:-.02em; max-width:38ch;}
.ri-site .rp-shot-note {margin:24px 0 12px; text-align:right; max-width:none;}
.ri-site .ri-hero-art>span:not(.rp-orbit-traveller) {position:absolute; left:0; right:0; top:auto; bottom:-40px; margin:0; text-align:center;}
.ri-site .ri-hero-art {align-content:center; margin-bottom:40px;}
.ri-site .rp-morning-top {align-items:center; gap:32px;}
.ri-site .rp-morning-top .rp-handnote {margin:0;}

/* A page-specific desk note introduces the story. Product proof gets a proper wide view below. */
.ri-site .rl-editorial-hero {grid-template-columns:1.2fr .8fr; align-items:center;}
.ri-site .rl-desk-note {background:var(--ri-forest); color:var(--ri-white); border-radius:var(--frame-radius); padding:clamp(28px,3.5vw,48px); position:relative; min-width:0;}
.ri-site .rl-desk-note>img {display:block; margin-bottom:32px; background:var(--ri-paper); padding:8px; border-radius:50%;}
.ri-site .rl-desk-note h2 {color:var(--ri-white); font:italic clamp(28px,2.6vw,38px)/1.15 Georgia,serif; letter-spacing:-.035em; margin:0 0 32px;}
.ri-site .rl-desk-note dl {margin:0;}
.ri-site .rl-desk-note dl>div {border-top:1px solid #ffffff38; padding-block:18px;}
.ri-site .rl-desk-note dt {font-weight:700; font-size:14px; margin-bottom:8px; color:var(--ri-white);}
.ri-site .rl-desk-note dd {margin:0; color:#e2e8d9; font-size:15px; line-height:1.65;}
.ri-site .rl-desk-note .rl-annotation {color:#d4e0b4; font-size:19px; margin:24px 0 0;}
.ri-site .rl-feature-chapter {grid-template-columns:1fr;}
.ri-site .rl-feature-chapter>div {max-width:var(--layout-copy);}
.ri-site .rl-feature-chapter .rl-screen {max-width:none;}
.ri-site .mxp-section-heading h2 {max-width:20ch;}
.ri-site .rl-detail-list {margin-top:24px;}
.ri-site .ri-detail {padding-block:16px;}
.ri-site .ri-detail summary {min-height:36px; display:list-item; line-height:1.5; padding-right:16px;}
.ri-site .ri-detail p {max-width:var(--layout-copy); font-size:16px; line-height:1.65;}
.ri-site :is(.rp-depth,.rl-disclosure) {border-top:1px solid var(--ri-line); border-bottom:1px solid var(--ri-line); margin:0;}
.ri-site :is(.rp-depth,.rl-disclosure)>summary {min-height:88px; padding-block:28px; cursor:pointer; font-size:18px; line-height:1.5; font-weight:600;}
.ri-site :is(.rp-depth,.rl-disclosure)>summary>span {float:right; margin-left:16px;}
.ri-site .mx-training-course {display:flex; flex-direction:column; gap:12px;}
.ri-site .mx-training-course>p {font-size:16px; margin-top:0;}
.ri-site .mx-training-course .ri-course-icon {margin-bottom:12px;}
.ri-site .mx-training-course> :is(a,button) {margin-top:auto;}
.ri-site .mx-training-catalog {gap:24px;}
.ri-site .mx-industry-panel {padding-block:var(--space-6); border-bottom:1px solid var(--ri-line);}
.ri-site .mx-industry-panel .ri-sector-scene {max-width:360px;}
.ri-site .mx-industry-story h2 {max-width:20ch;}
.ri-site :is(.mx-implementation-layout,.mx-service-timeline,.mx-migration-path) {gap:var(--space-4);}
.ri-site :is(.mx-service-timeline li,.mx-migration-path li) {box-shadow:none; border-color:var(--ri-line);}
.ri-site :is(.mx-collaboration-map,.mx-division-map) {border-radius:var(--frame-radius); box-shadow:none;}
.ri-site :is(.mx-price-proposal,.mx-evaluation-note,.mxc-contact-panel,.mx-access-map) {border-radius:var(--frame-radius); box-shadow:none;}
.ri-site .mx-price-proposal {border:1px solid var(--ri-line); background:var(--ri-white);}
.ri-site .mx-proposal-head img {width:48px; height:48px; object-fit:contain;}
.ri-site .mx-proposal-head {gap:24px;}
.ri-site .mx-price-proposal h2 {font-size:38px;}
.ri-site .mx-proposal-part h2>span {font:italic 24px/1.3 Georgia,serif;}
.ri-site .mx-evaluation-note {background:var(--ri-sage); padding:32px; transform:none;}
.ri-site .mx-evaluation-note li {padding-block:18px;}
.ri-site .mx-evaluation-note li strong {font-weight:500; font-size:20px; line-height:1.4;}
.ri-site .mx-architecture-connected img {width:88px; height:88px; padding:14px; border-radius:50%; background:var(--ri-paper); object-fit:contain; margin:24px auto;}
.ri-site .mxc-contact-panel {background:var(--ri-forest); padding:40px;}
.ri-site .mxc-panel-heading img {width:48px; height:48px; object-fit:contain; padding:8px; border-radius:50%; background:var(--ri-paper);}
.ri-site .mxc-contact-method a {font-size:clamp(19px,2vw,26px); overflow-wrap:anywhere;}
.ri-site .mx-demo-layout {padding-block:64px; gap:var(--space-6);}
.ri-site .demo-intro h1 {font-size:clamp(42px,4.5vw,64px);}
.ri-site .demo-intro .mx-demo-duration {margin-block:24px 32px;}
.ri-site .mx-demo-agenda {margin-bottom:32px;}
.ri-site .mx-demo-agenda h2 {font-size:25px;}
.ri-site .mx-demo-agenda h3 {font-size:20px;}
.ri-site .mx-release-hero {padding-block:64px 48px; gap:48px;}
.ri-site .mx-release-hero h1 {margin-bottom:0;}
.ri-site .mx-release-post {border:1px solid var(--ri-line); border-radius:var(--frame-radius); overflow:hidden; box-shadow:none;}
.ri-site .mx-release-post-copy {background:var(--ri-forest); padding:40px; color:var(--ri-white);}
.ri-site .mx-release-post-copy :is(h2,p,time,span) {color:var(--ri-white);}
.ri-site .mx-release-post-image img {object-fit:contain; height:auto; width:100%;}
.ri-site .mx-release-post-image {background:var(--ri-sage);}
.ri-site .mx-release-next {padding-block:64px; gap:32px;}
.ri-site .mx-release-article {max-width:var(--layout-standard);}
.ri-site .mx-release-article section {margin-block:64px;}
.ri-site [data-rimo-tone=operational] h1 {max-width:22ch;}
.ri-site .legal-main {max-width:840px; width:min(calc(100% - var(--layout-gutter)*2),840px); margin-inline:auto; padding-block:64px 88px;}
.ri-site .legal-main h1 {font-size:clamp(42px,5vw,68px);}
.ri-site .legal-main h2 {font-size:28px; margin:40px 0 16px;}
.ri-site .legal-main :is(p,li) {font-size:17px; line-height:1.8; max-width:var(--layout-copy);}
.ri-site .mx-access-map {padding:32px; border:1px solid var(--ri-line); background:var(--ri-white);}
.ri-site .mx-access-boundary {background:var(--ri-forest); padding:24px;}
.ri-site .mx-security-chapter {padding-block:32px;}
.ri-site .ri-end {padding-block:var(--layout-section);}
.ri-site .ri-end h2 {max-width:20ch;}
.ri-site main:not(.ri-home) .ri-end h2 {font-size:clamp(36px,4.1vw,58px); max-width:22ch;}
.ri-site .ri-end p {max-width:56ch;}

@media (max-width:1100px) and (min-width:961px) {
  .ri-site .ri-header .ri-wrap {width:calc(100% - 48px);}
  .ri-site .ri-header nav {gap:14px;}
  .ri-site .ri-header nav .ri-button {padding-inline:12px; font-size:11px;}
}
@media (max-width:960px) {
  .ri-site .ri-header nav {padding-inline:var(--layout-gutter);}
  .ri-site .ri-header nav.is-open {gap:8px;}
  .ri-site .ri-header nav.is-open>.ri-nav-jobs {display:flex; color:var(--ri-blue);}
  .ri-site .ri-menu summary {min-height:44px; display:flex; align-items:center;}
  .ri-site .rl-editorial-hero {grid-template-columns:1fr 1fr; align-items:start;}
  .ri-site .rl-desk-note {padding:28px;}
  .ri-site .mx-demo-layout {grid-template-columns:1fr;}
  .ri-site :is(.mx-price-hero,.mx-compare-hero,.mx-switch-hero) {grid-template-columns:1fr; align-items:start;}
  .ri-site .mx-demo-value {position:static;}
}
@media (max-width:760px) {
  :root {--layout-gutter:20px; --layout-heading-gap:24px; --layout-grid-gap:32px;}
  .ri-site main h1 {font-size:44px; max-width:20ch;}
  .ri-site main h2 {font-size:34px;}
  .ri-site main h3 {font-size:24px;}
  .ri-site :is(.ri-feature-hero,.mx-hero,.mx-price-hero,.mx-switch-hero,.mx-compare-hero) {padding-block:40px 48px;}
  .ri-site .rl-editorial-hero {grid-template-columns:1fr;}
  .ri-site .rl-desk-note {padding:28px;}
  .ri-site .rl-desk-note>img {margin-bottom:24px;}
  .ri-site .rl-product-opening {padding-bottom:64px;}
  .ri-site figure.rl-screen>figcaption {padding:8px 12px; gap:12px; font-size:12px;}
  .ri-site figure.rl-screen .rl-screen-source {padding:10px 12px; font-size:11px;}
  .ri-site figure.rl-screen button {min-height:44px; font-size:12px;}
  .ri-site .rl-product-heading {margin-bottom:20px;}
  .ri-site .rl-product-heading p {font-size:13px;}
  .ri-site .rp-morning-top {align-items:start; gap:16px;}
  .ri-site .rp-morning-top .rp-handnote {font-size:19px;}
  .ri-site .rp-shot-note {text-align:left; font-size:19px;}
  .ri-site .ri-footer-top {gap:32px 24px;}
  .ri-site .ri-footer a {min-height:36px;}
  .ri-site :is(.rp-depth,.rl-disclosure)>summary {font-size:16px; min-height:76px; padding-block:24px;}
  .ri-site .mxc-contact-panel,.ri-site .mx-evaluation-note,.ri-site .mx-access-map {padding:24px;}
  .ri-site .mx-release-post-copy {padding:28px;}
  .ri-site .mx-release-hero {padding-block:40px; gap:24px;}
  .ri-site .mx-demo-layout {padding-block:40px; gap:40px;}
  .ri-site .ri-end .ri-split {gap:32px;}
  .ri-site .ri-feature-hero + .rp-demo {padding-top:32px;}
  .ri-site .legal-main :is(p,li) {font-size:16px;}
}
@media (prefers-reduced-motion:reduce) {
  .ri-site * {scroll-behavior:auto!important; animation:none!important; transition:none!important;}
}
