/* Primitives — the class layer. Every component in this system renders these classes.
   Radius 0, no shadows, hover and press are colour changes only (120ms, no transforms). */

/* layout */
.ri-container{max-width:var(--ri-container);margin:0 auto;padding:0 var(--ri-pad-x)}
.ri-section{padding:var(--ri-pad-y) 0}
.ri-stack{display:grid;gap:var(--ri-space-5)}
.ri-measure{max-width:var(--ri-measure)}

/* type primitives */
.ri-hero{font-family:var(--ri-display);font-size:var(--ri-size-hero);font-weight:800;line-height:var(--ri-leading-hero);letter-spacing:var(--ri-track-hero)}
.ri-label{font-family:var(--ri-mono);font-size:var(--ri-size-label);font-weight:400;line-height:var(--ri-leading-label);letter-spacing:var(--ri-track-label);text-transform:uppercase;color:var(--ri-theme-accent,var(--ri-field-deep))}
.ri-label--muted{color:var(--ri-theme-fg-muted,var(--ri-grey))}
.ri-figure{font-family:var(--ri-mono);font-size:var(--ri-size-figure);font-variant-numeric:tabular-nums;letter-spacing:0}
.ri-figure--lg{font-family:var(--ri-display);font-weight:800;font-size:34px;letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.ri-caption{font-family:var(--ri-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ri-theme-fg-muted,var(--ri-grey))}
.ri-small{font-size:var(--ri-size-small);line-height:var(--ri-leading-small)}
.ri-dek{font-size:22px;line-height:1.42;letter-spacing:-.01em}
.ri-rule{height:1px;background:var(--ri-theme-rule,var(--ri-hairline));border:0;width:100%}

/* highlight box — once per page, never twice */
.ri-hl{background:var(--ri-field);color:var(--ri-on-field);padding:0 8px;margin-left:-8px;font-style:normal;box-decoration-break:clone;-webkit-box-decoration-break:clone}

/* fields — full-bleed blocks of flat colour. Never inset, never a card. */
.ri-field{background:var(--ri-field);color:var(--ri-on-field)}
.ri-field--graphite{background:var(--ri-graphite);color:var(--ri-chalk)}
[data-ri-theme].ri-field a,[data-ri-theme].ri-field--graphite a,.ri-field a,.ri-field--graphite a{color:currentColor}
/* The field type floor is a minimum, not a cap: headings keep their native 800/700/600. */
.ri-field :is(p,li,small,td,th,.ri-btn){font-weight:600}
.ri-field :is(p,li){font-size:max(var(--ri-size-on-field-min),1em)}
.ri-band{padding:var(--ri-space-7) 0}

/* buttons */
.ri-btn{display:inline-flex;align-items:center;gap:10px;padding:13px 22px;background:var(--ri-graphite);color:var(--ri-chalk);font-family:var(--ri-body);font-weight:600;font-size:15px;letter-spacing:-.01em;line-height:1.1;border:0;cursor:pointer;text-align:left;transition:background var(--ri-transition),color var(--ri-transition),border-color var(--ri-transition)}
.ri-btn:hover{background:var(--ri-field-deep);color:var(--ri-chalk)}
.ri-btn:active{background:var(--ri-graphite)}
.ri-btn--secondary{background:transparent;color:var(--ri-graphite);border:1px solid var(--ri-hairline)}
.ri-btn--secondary:hover{background:transparent;color:var(--ri-graphite);border-color:var(--ri-graphite)}
.ri-btn--secondary:active{background:var(--ri-bone)}
.ri-btn--hero{background:var(--ri-field);color:var(--ri-on-field);font-size:19px;padding:14px 24px;letter-spacing:-.02em}
.ri-btn--hero:hover,.ri-btn--hero:active{background:var(--ri-field-deep);color:var(--ri-on-field)}
.ri-btn--on-field{background:var(--ri-chalk);color:var(--ri-graphite)}
.ri-btn--on-field:hover{background:var(--ri-bone);color:var(--ri-graphite)}
.ri-btn--on-field:active{background:var(--ri-bone)}
.ri-btn[disabled],.ri-btn[aria-disabled="true"]{background:var(--ri-bone);color:var(--ri-grey);border-color:transparent;cursor:not-allowed}
.ri-btn[disabled]:hover,.ri-btn[aria-disabled="true"]:hover{background:var(--ri-bone);color:var(--ri-grey)}
[data-ri-theme="on-graphite"] .ri-btn--secondary,.ri-field--graphite .ri-btn--secondary{color:var(--ri-chalk);border-color:rgba(250,249,247,.28)}
[data-ri-theme="on-graphite"] .ri-btn--secondary:hover,.ri-field--graphite .ri-btn--secondary:hover{color:var(--ri-chalk);border-color:var(--ri-chalk)}

/* panels and groups — 2px joins; exactly one panel takes the field */
.ri-panel{background:var(--ri-bone);padding:var(--ri-space-5) var(--ri-space-5)}
.ri-panel--graphite{background:var(--ri-graphite);color:var(--ri-chalk)}
.ri-panel--inside-graphite{background:var(--ri-graphite-alt);color:var(--ri-chalk)}
.ri-panels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ri-gap-panel)}
.ri-panels--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.ri-panels--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ri-panels>*{background:var(--ri-graphite);color:var(--ri-chalk);padding:var(--ri-space-4) 18px}
.ri-panels>.is-field{background:var(--ri-field);color:var(--ri-on-field)}
.ri-panels__eyebrow{font-family:var(--ri-mono);font-size:var(--ri-size-label);letter-spacing:var(--ri-track-label);text-transform:uppercase;color:currentColor;opacity:.72;margin-bottom:8px}
.ri-panels__t{font-family:var(--ri-display);font-weight:600;font-size:19px;letter-spacing:-.02em;line-height:1.15}
.ri-panels__b{font-size:15px;line-height:1.38;margin-top:8px;opacity:.82}
.ri-panels>.is-field .ri-panels__eyebrow{opacity:1;font-size:12px}
.ri-panels>.is-field .ri-panels__b{font-size:var(--ri-size-on-field-min);font-weight:600;line-height:1.3;opacity:1}
.ri-panels>.is-bone .ri-panels__b{color:var(--ri-slate);opacity:1}
.ri-panels>.is-bone{background:var(--ri-bone);color:var(--ri-graphite)}
@media(max-width:820px){.ri-panels,.ri-panels--4{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* numeral panel — graphite block, field-colour number, chalk content */
.ri-split{display:grid;grid-template-columns:104px minmax(0,1fr);gap:var(--ri-gap-panel)}
.ri-split__n{background:var(--ri-graphite);color:var(--ri-field);font-family:var(--ri-display);font-weight:800;font-size:52px;line-height:.82;letter-spacing:-.055em;padding:var(--ri-space-4) 14px;display:flex;align-items:flex-end;font-variant-numeric:tabular-nums}
.ri-split__c{background:var(--ri-chalk);padding:var(--ri-space-4) 18px}
.ri-split--bone .ri-split__c{background:var(--ri-bone)}

/* nav band */
.ri-nav{background:var(--ri-graphite);color:var(--ri-chalk);min-height:var(--ri-nav-h);display:flex;align-items:center;justify-content:space-between;gap:var(--ri-space-5);padding:0 var(--ri-pad-x)}
.ri-nav__links{display:flex;align-items:center;gap:var(--ri-space-6)}
.ri-nav .ri-nav__link{font-family:var(--ri-body);font-size:15px;font-weight:600;letter-spacing:-.01em;color:rgba(250,249,247,.78)}
.ri-nav .ri-nav__link:hover,.ri-nav .ri-nav__link[aria-current="page"]{color:var(--ri-chalk)}
.ri-nav .ri-nav__cta{background:var(--ri-field);color:var(--ri-on-field);font-weight:600;font-size:19px;padding:11px 18px;letter-spacing:-.02em;display:inline-flex;align-items:center;transition:background var(--ri-transition)}
.ri-nav .ri-nav__cta:hover{background:var(--ri-field-deep);color:var(--ri-on-field)}

/* footer band */
.ri-footer{background:var(--ri-graphite);color:rgba(250,249,247,.72);padding:var(--ri-space-8) 0}
.ri-footer .ri-label{color:var(--ri-field)}
[data-ri-theme].ri-footer a,.ri-footer a{color:var(--ri-chalk)}
[data-ri-theme].ri-footer a:hover,.ri-footer a:hover{color:var(--ri-field)}

/* data */
.ri-bar{height:var(--ri-bar-h);background:var(--ri-track);width:100%}
.ri-bar>i{display:block;height:100%;background:var(--ri-field)}
.ri-index{display:grid;gap:10px}
.ri-index__row{display:grid;grid-template-columns:minmax(120px,190px) minmax(0,1fr) 44px;gap:var(--ri-space-4);align-items:center}
.ri-index__label{font-family:var(--ri-mono);font-size:12px;letter-spacing:.04em;color:var(--ri-theme-fg-dim,var(--ri-slate))}
.ri-index__fig{font-family:var(--ri-mono);font-size:12px;font-variant-numeric:tabular-nums;text-align:right}

/* table — bone header, hairline rows */
.ri-table{width:100%;border-collapse:collapse;font-size:var(--ri-size-small)}
.ri-table th{background:var(--ri-bone);font-family:var(--ri-mono);font-size:var(--ri-size-label);font-weight:400;letter-spacing:var(--ri-track-label);text-transform:uppercase;color:var(--ri-slate);text-align:left;padding:11px 14px}
.ri-table td{padding:13px 14px;border-top:1px solid var(--ri-hairline);color:var(--ri-slate);vertical-align:top}
.ri-table tbody tr:first-child td{border-top:0}
.ri-table td:first-child{color:var(--ri-graphite);font-weight:600}
.ri-table .ri-figure{color:var(--ri-graphite)}
.ri-table--numeric td:not(:first-child),.ri-table--numeric th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}

/* input */
.ri-input{display:block;width:100%;background:var(--ri-chalk);color:var(--ri-graphite);border:1px solid var(--ri-hairline);padding:12px 14px;font-size:16px;transition:border-color var(--ri-transition)}
.ri-input::placeholder{color:var(--ri-grey)}
.ri-input:hover{border-color:rgba(23,24,26,.32)}
.ri-input:focus{outline:var(--ri-focus-ring);outline-offset:0;border-color:var(--ri-field)}
.ri-input[disabled]{background:var(--ri-bone);color:var(--ri-grey)}
.ri-field-row{display:grid;gap:8px}
.ri-field-row__hint{font-size:var(--ri-size-small);color:var(--ri-grey)}
.ri-field-row__hint--error{color:var(--ri-field-deep)}

/* radio rows — questionnaire */
.ri-radio{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--ri-hairline);background:var(--ri-chalk);flex:none;cursor:pointer;transition:background var(--ri-transition),border-color var(--ri-transition)}
.ri-radio:hover{border-color:var(--ri-graphite)}
.ri-radio[aria-checked="true"]{background:var(--ri-graphite);border-color:var(--ri-graphite);color:var(--ri-chalk)}
.ri-radio[aria-checked="true"]::after{content:"";width:8px;height:8px;background:var(--ri-field)}

/* lockup — mark SVG plus live type. Never an <img> SVG: it falls back to Arial. */
.ri-lockup{display:flex;align-items:center;gap:20px}
.ri-lockup--stacked{display:block}
.ri-lockup__mark{flex:none;color:var(--ri-field)}
.ri-lockup--stacked .ri-lockup__text{margin-top:36px}
.ri-lockup__wm{font-family:var(--ri-display);font-weight:800;font-size:26px;letter-spacing:-.04em;line-height:.9;color:var(--ri-graphite)}
.ri-lockup__wm em{font-style:normal;color:var(--ri-field)}
.ri-lockup__desc{font-family:var(--ri-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ri-grey);margin-top:9px}
.ri-lockup--on-graphite .ri-lockup__wm{color:var(--ri-chalk)}
.ri-lockup--on-graphite .ri-lockup__desc{color:rgba(250,249,247,.6)}
.ri-lockup--on-field .ri-lockup__mark,.ri-lockup--on-field .ri-lockup__wm,.ri-lockup--on-field .ri-lockup__wm em{color:var(--ri-mark-on-field)}
.ri-lockup--on-field .ri-lockup__desc{color:var(--ri-on-field-dim)}

/* the one permitted shadow: a web modal overlay */
.ri-scrim{position:fixed;inset:0;background:var(--ri-scrim);display:grid;place-items:center;padding:var(--ri-space-5)}
.ri-overlay{background:var(--ri-chalk);box-shadow:var(--ri-elevation-overlay);max-width:520px;width:100%;padding:var(--ri-space-6)}

/* section header */
.ri-shd{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:44px;align-items:end}
.ri-shd--stack{grid-template-columns:minmax(0,1fr)}
@media(max-width:900px){.ri-shd{grid-template-columns:1fr;gap:20px}}

/* loop diagram — four stages that read as a cycle */
.ri-loop__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ri-gap-panel)}
.ri-loop__stage{background:var(--ri-graphite);color:var(--ri-chalk);padding:20px 22px;min-height:132px;display:grid;align-content:start;gap:8px}
.ri-loop__stage.is-field{background:var(--ri-field);color:var(--ri-on-field)}
.ri-loop__n{font-family:var(--ri-mono);font-size:var(--ri-size-label);letter-spacing:var(--ri-track-label);opacity:.7}
.ri-loop__t{font-family:var(--ri-display);font-weight:700;font-size:26px;letter-spacing:-.04em;line-height:1}
.ri-loop__b{font-size:15px;line-height:1.4;opacity:.84;font-weight:inherit}
.ri-loop__stage.is-field .ri-loop__b{font-size:19px;font-weight:600;line-height:1.3;opacity:1}
.ri-loop__chain{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:var(--ri-space-4);font-family:var(--ri-mono);font-size:var(--ri-size-label);letter-spacing:.1em;text-transform:uppercase;color:var(--ri-grey)}
.ri-loop__chain i{font-style:normal;color:var(--ri-field-deep);margin:0 8px}
.ri-loop__chain .is-return{color:var(--ri-field-deep)}
.ri-loop__caption{margin-top:var(--ri-space-4);font-size:15px;line-height:1.5;color:var(--ri-slate)}

/* scored questionnaire */
.ri-q__head,.ri-q__row{display:grid;grid-template-columns:minmax(0,1fr) repeat(4,84px);gap:var(--ri-space-4);align-items:center}
.ri-q__head{font-family:var(--ri-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ri-grey);padding-bottom:10px;border-bottom:1px solid var(--ri-hairline)}
.ri-q__head>span:not(:first-child),.ri-q__cell{text-align:center;justify-items:center;display:grid}
.ri-q__row{padding:14px 0;border-bottom:1px solid var(--ri-hairline)}
.ri-q__prompt{font-size:16px;line-height:1.4;max-width:32em}
.ri-q__result{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--ri-space-6);margin-top:var(--ri-gap-panel);padding:var(--ri-space-5) var(--ri-space-5)}
.ri-q__score{display:flex;align-items:baseline;gap:6px;margin-top:4px}
@media(max-width:760px){.ri-q__head,.ri-q__row{grid-template-columns:minmax(0,1fr) repeat(4,44px);gap:8px}.ri-q__result{grid-template-columns:1fr;gap:20px}}

/* footer band internals */
.ri-footer__top{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:var(--ri-space-8);align-items:start}
.ri-footer__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ri-space-6)}
.ri-footer__legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--ri-space-5);margin-top:var(--ri-space-8);padding-top:var(--ri-space-5);border-top:1px solid rgba(250,249,247,.18);font-family:var(--ri-mono);font-size:var(--ri-size-label);letter-spacing:.1em;text-transform:uppercase}
@media(max-width:900px){.ri-footer__top{grid-template-columns:1fr;gap:var(--ri-space-6)}.ri-footer__cols{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* article index card */
.ri-article{display:grid;gap:12px;align-content:start;padding:var(--ri-space-5) 0 var(--ri-space-5);border-top:1px solid var(--ri-hairline);color:var(--ri-graphite)}
.ri-article:hover{color:var(--ri-graphite)}
.ri-article__t{font-family:var(--ri-display);font-weight:700;font-size:26px;letter-spacing:-.04em;line-height:1.04;transition:color var(--ri-transition)}
.ri-article:hover .ri-article__t{color:var(--ri-field-deep)}
.ri-article__s{font-size:16px;line-height:1.45;color:var(--ri-slate)}
.ri-article__r{font-size:11px;letter-spacing:.06em;color:var(--ri-grey)}

/* pricing */
.ri-pricing__grid{display:grid;gap:var(--ri-gap-panel)}
.ri-pricing__col{background:var(--ri-bone);padding:var(--ri-space-5);display:flex;flex-direction:column;min-height:340px}
.ri-pricing__col.is-field{background:var(--ri-field);color:var(--ri-on-field)}
.ri-pricing__fig{font-family:var(--ri-display);font-weight:800;font-size:38px;letter-spacing:-.05em;margin-top:16px;font-variant-numeric:tabular-nums}
.ri-pricing__basis{font-family:var(--ri-mono);font-size:11px;letter-spacing:.06em;color:var(--ri-slate);margin-top:8px}
.ri-pricing__col.is-field .ri-pricing__basis{color:var(--ri-on-field-dim);font-size:var(--ri-size-on-field-min);letter-spacing:0}
.ri-pricing__list{display:grid;gap:10px;margin-top:var(--ri-space-5)}
.ri-pricing__list li{font-size:15px;line-height:1.4;color:var(--ri-slate);padding-left:14px;position:relative}
.ri-pricing__list li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:1px;background:var(--ri-grey)}
.ri-pricing__col.is-field .ri-pricing__list li{color:var(--ri-on-field);font-size:19px;font-weight:600;line-height:1.3;padding-left:16px}
.ri-pricing__col.is-field .ri-pricing__list li::before{background:var(--ri-on-field);top:.68em}
@media(max-width:900px){.ri-pricing__grid{grid-template-columns:1fr !important}}

/* square social card */
.ri-social{display:grid;grid-template-rows:auto 1fr auto;padding:6.5%;background:var(--ri-theme-bg);container-type:inline-size}
.ri-social__top{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.ri-social__statement{font-family:var(--ri-display);font-weight:800;letter-spacing:-.055em;line-height:.94;align-self:center;text-wrap:balance}
.ri-social__foot{font-family:var(--ri-mono);font-size:1.6cqw;letter-spacing:.14em;text-transform:uppercase}

/* document cover and interior page */
.ri-doc-cover{display:grid;grid-template-rows:auto 1fr auto;padding:9%;background:var(--ri-theme-bg);color:var(--ri-theme-fg);container-type:inline-size}
.ri-doc-cover__top{display:flex;align-items:center;justify-content:space-between;gap:24px}
.ri-doc-cover__t{font-family:var(--ri-display);font-weight:800;font-size:clamp(30px,10.2cqw,62px);letter-spacing:-.055em;line-height:.9;align-self:end;max-width:15ch}
.ri-doc-cover__meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ri-space-4);border-top:1px solid currentColor;padding-top:14px;opacity:.96}
.ri-doc-page{background:var(--ri-chalk);padding:8% 9%;display:grid;grid-template-rows:auto 1fr auto;gap:22px}
.ri-doc-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;border-bottom:var(--ri-doc-head-rule) solid var(--ri-graphite);padding-bottom:8px}
.ri-doc-body{display:grid;gap:14px;align-content:start}

/* document */
.ri-doc-foot{display:flex;justify-content:space-between;gap:var(--ri-space-5);font-family:var(--ri-mono);font-size:8.6pt;letter-spacing:.1em;text-transform:uppercase;color:var(--ri-grey);border-top:1px solid var(--ri-hairline);padding-top:8px}
