/* REDANCHOR component extensions. Load after /homepage.css.
   The homepage owns foundation tokens, header, footer, buttons, photo cards,
   principles, processes, project proof, carousel controls and responsive scale.
   These additive primitives serve requirements absent from that library. */
.ra-surface{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);padding:var(--card-pad);min-width:0}
.ra-grid{display:grid;gap:20px;min-width:0}
.ra-grid>*{min-width:0}
/* RA-HERO-02 / RA-SPACE-01: approved v1.0 service contract refinement.
   Scoped shared modifiers; homepage foundations and dimensions are untouched. */
.ra-service-hero{align-items:start}
.ra-service-hero :is(h1,.ra-service-title){font-size:clamp(34px,4.2vw,60px);line-height:1.08;letter-spacing:-.035em;text-wrap:balance;max-width:20ch}
.ra-service-hero .section-subtitle{max-width:58ch}
.ra-service-page{--service-section-space:56px;--service-dense-space:48px}
.ra-service-page main>.section{padding-block:var(--service-section-space)}
.ra-service-page main>.section.ra-section-dense{padding-block:var(--service-dense-space)}
.ra-service-page main>.section+.section{padding-top:0}
.ra-service-page .container>.section-intro:last-child{margin-bottom:0}
/* RA-CARD-13 semantic H2 adapter. Exact effective homepage H3 values;
   the heading becomes a section heading without changing its appearance. */
.pathway-content .ra-pathway-heading{font-size:24px;line-height:1.2;letter-spacing:-.025em;margin-top:16px;text-wrap:balance}
@media(min-width:720px){
 .ra-service-page{--service-section-space:72px;--service-dense-space:56px}
 .pathway-content .ra-pathway-heading{font-size:28px}
 .ra-service-hero>.ra-photo{align-self:stretch;position:relative}
 .ra-service-hero>.ra-photo img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
}
@media(min-width:1100px){.ra-service-page{--service-section-space:80px;--service-dense-space:64px}.pathway-content .ra-pathway-heading{min-height:2.5em;font-size:30px;max-width:500px;text-wrap:pretty;overflow-wrap:break-word}}
@media(min-width:1100px) and (max-width:1279px){.pathway-content .ra-pathway-heading{font-size:28px}}
@media(max-width:719px){.ra-service-hero :is(h1,.ra-service-title){font-size:clamp(34px,8.7vw,40px)}.pathway-content .ra-pathway-heading{line-height:1.25;text-wrap:pretty}}
.ra-grid>:is(.service-tile,.sector-feature){grid-column:auto;grid-row:auto}
.ra-stack{display:grid;gap:24px}
/* Visual Batch 1: restrained Proof editorial refinements, scoped to /projects/.
   Shared reader, case content, controls and other service layouts are unchanged. */
.ra-work-page .section-intro>.eyebrow{margin-bottom:12px}
.ra-work-page .section-intro>.section-subtitle{margin-top:12px}
.ra-work-page #top .section-subtitle+.section-subtitle{margin-top:12px}
.ra-work-page #client-portfolio>.container>.ra-stack{gap:24px}
.ra-work-page #demo-manufacturing>.ra-stack{gap:16px}
.ra-work-page .work-portfolio-cards>article{display:flex;flex-direction:column;gap:16px;align-content:stretch}
.ra-work-page .work-portfolio-cards>article>.ra-stack{display:flex;flex-direction:column;flex:1;gap:16px}
.ra-work-page .work-portfolio-cards .eyebrow{margin-bottom:12px}
.ra-work-page .work-portfolio-cards h3{font-size:24px;line-height:1.25}
.ra-work-page #client-portfolio .live-metric{margin-top:0;padding-top:16px}
.ra-work-page #client-portfolio .live-metric>.ra-small{margin-bottom:12px}
.ra-work-page #client-portfolio .live-metric>:is(.ra-grid,.ra-stack){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ra-work-page #client-portfolio .work-portfolio-cards .live-metric{margin-top:auto}
.ra-work-page #client-portfolio .work-portfolio-cards .live-metric>:is(.ra-grid,.ra-stack){grid-template-columns:repeat(2,minmax(0,1fr))}
.ra-work-page #client-portfolio .metric-value{margin-top:0}
.ra-work-page #client-portfolio .metric-label{font-size:12px;line-height:1.5;margin-top:4px}
.ra-work-page .experience-panel .ra-row{grid-template-columns:24px minmax(0,1fr);gap:12px;padding-block:16px}
.ra-work-page .experience-panel .ra-row>span:first-child{padding-top:3px}
.ra-work-page .experience-panel .ra-row h4{font-size:17px;line-height:1.4;letter-spacing:-.02em}
.ra-work-page .experience-panel .ra-row p{margin-top:6px;line-height:1.6}
@media(min-width:720px){
 .ra-work-page .section-intro{margin-bottom:32px}
 .ra-work-page #client-portfolio>.container>.ra-stack{gap:32px}
 .ra-work-page .work-portfolio-cards .eyebrow{min-height:3em}
 .ra-work-page .work-portfolio-cards .ra-muted{font-size:15px;line-height:1.65}
}
@media(max-width:719px){
 .ra-work-page #client-portfolio .ra-number{font-size:26px}
 .ra-work-page .experience-panel>.ra-stack{gap:20px}
}
.ra-measure{max-width:62ch}
.ra-muted{color:var(--muted)}
.ra-small{font-size:13px;line-height:1.6;color:var(--muted)}
.ra-dark{background:var(--plum);color:#fff}
.ra-dark :is(h2,h3,h4){color:white}
.ra-dark :is(.ra-muted,.ra-small,.section-subtitle){color:#e0d2df}
.ra-dark.ra-surface{border-color:var(--dark-line)}
.ra-neutral{background:var(--soft)}
.ra-wrap-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:24px}
.ra-button:disabled,.ra-button[aria-disabled=true]{cursor:default;opacity:.55;transform:none}
.ra-button:disabled:hover{background:var(--soft);color:var(--muted);border-color:var(--line)}
.ra-rows{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.ra-row{display:grid;grid-template-columns:32px minmax(0,1fr);gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}
.ra-row>span:first-child{font-size:12px;font-weight:700;color:var(--red);font-variant-numeric:tabular-nums}
.ra-row strong{display:block;font-size:18px;font-weight:600;color:var(--plum)}
.ra-row p{margin-top:8px;color:var(--muted);font-size:14px}
.ra-key-values{margin:0;border-top:1px solid var(--line)}
.ra-key-values>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.ra-key-values dt{color:var(--muted);font-size:14px}.ra-key-values dd{margin:0;color:var(--plum);font-weight:600;font-size:14px}
.ra-selectable{width:100%;text-align:left;font:inherit;color:var(--ink);cursor:pointer;transition:transform .25s,border-color .25s}
.ra-selectable[aria-pressed=true]{border-color:var(--red)}
.ra-selectable strong{display:block;color:var(--plum);font-size:20px;font-weight:600}.ra-selectable small{display:block;margin-top:12px;color:var(--muted);font-size:14px}
/* RA-CAREERS-03 · curated opportunities selector, composed from approved surfaces and metadata rows. */
.career-master-detail{align-items:start;gap:24px}
.career-vacancy-list{display:grid;gap:12px;min-width:0}
.career-vacancy{display:grid;grid-template-columns:24px 96px minmax(0,1fr);gap:12px;align-items:center;width:100%;text-align:left;font:inherit;color:var(--ink);cursor:pointer;padding:18px 20px;transition:border-color .25s,transform .25s,background .25s}
.career-vacancy[aria-pressed=true]{border-color:var(--red);background:var(--soft)}
.career-vacancy-number{font-size:12px;font-weight:700;color:var(--red-ink);font-variant-numeric:tabular-nums;line-height:1.6}
.career-vacancy-photo{display:block;width:96px;height:84px;overflow:hidden;border-radius:var(--radius);background:var(--soft)}
.career-vacancy-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.career-vacancy-copy{display:grid;gap:5px;min-width:0}
.career-vacancy-copy strong{font-size:18px;font-weight:600;line-height:1.3;color:var(--plum)}
.career-vacancy-meta,.career-vacancy-type{font-size:13px;line-height:1.5;color:var(--muted)}
.career-vacancy-type{font-weight:600}
.career-detail{gap:20px;border-top:3px solid var(--red)}
.career-detail-head{border-bottom:1px solid var(--line);padding-bottom:20px}
.career-detail-head h3{margin-top:12px}
.career-detail-facts{border-top:0}
.career-detail-facts>div{padding:11px 0}
.career-detail h4{margin-bottom:8px}
.career-detail ul{margin:0;padding-left:20px;color:var(--muted)}
.career-detail li+li{margin-top:8px}
.career-detail .ra-wrap-actions{margin-top:0}
[hidden].career-detail{display:none}
@media(min-width:960px){.career-master-detail{grid-template-columns:minmax(0,.76fr) minmax(0,1fr)}.career-vacancy-list{max-height:408px;overflow-y:auto;overscroll-behavior:contain;padding-right:6px;scrollbar-width:thin}}
@media(max-width:959px){.career-master-detail{grid-template-columns:1fr}}
@media(max-width:719px){.career-vacancy{grid-template-columns:20px 84px minmax(0,1fr);gap:10px;padding:16px}.career-vacancy-photo{width:84px;height:84px}}
@media(hover:hover) and (pointer:fine){.career-vacancy:hover{transform:translateY(-3px);border-color:var(--red)}}
.ra-photo{overflow:hidden;border-radius:var(--radius);background:var(--soft);margin:0}
.ra-photo img{width:100%;height:100%;object-fit:cover;object-position:70% center;aspect-ratio:1.65}
.ra-photo figcaption{padding:12px 16px;color:var(--muted);font-size:13px;background:white;border:1px solid var(--line);border-top:0}
.ra-portrait img{aspect-ratio:4/5}.ra-wide img{aspect-ratio:2.3}
.ra-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.ra-field>label,.ra-field>legend{font-size:14px;font-weight:600;color:var(--plum)}
.ra-field :is(input:not([type=checkbox]):not([type=radio]),select,textarea){display:block;width:100%;min-width:0;min-height:48px;padding:12px;border:1px solid var(--line);border-radius:var(--button-radius);background:white;color:var(--ink);font:inherit;font-size:16px;line-height:1.5}
.ra-field textarea{min-height:128px;resize:vertical}
.ra-field input[type=file]{font-size:14px}
.ra-field input::file-selector-button{font:inherit;padding:6px 12px;background:var(--soft);border:1px solid var(--line);border-radius:var(--button-radius);margin-right:12px;color:var(--plum)}
.ra-field :is(input,select,textarea):focus-visible{outline:3px solid var(--red);outline-offset:3px}
.ra-field [aria-invalid=true]{border-color:var(--red)!important}
.ra-field .ra-error{color:var(--red-ink);font-size:13px}
.ra-fieldset{border:0;margin:0;padding:0;min-width:0}.ra-fieldset legend{font-size:14px;font-weight:600;margin-bottom:8px;color:var(--plum)}
.ra-choice{display:flex;align-items:center;gap:12px;min-height:44px;font-size:14px;color:var(--plum)}
.ra-choice input{width:18px;height:18px;accent-color:var(--red);flex:none}
.ra-filter-bar{display:grid;gap:16px;align-items:end}.ra-filter-meta{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:20px}
.ra-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.ra-tag{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:var(--button-radius);color:var(--plum);background:white;font:inherit;font-size:13px}
.ra-tag[aria-pressed=true]{border-color:var(--red)}
.ra-table-scroll{overflow:auto;border-block:1px solid var(--line);max-width:100%;scrollbar-width:thin}
.ra-table{border-collapse:collapse;width:100%;min-width:540px;text-align:left;font-size:14px}.ra-table caption{text-align:left;padding:16px 0;font-weight:600;color:var(--plum)}
.ra-table :is(th,td){padding:16px;border-bottom:1px solid var(--line);vertical-align:top}.ra-table th{font-weight:600;color:var(--plum);background:var(--soft)}.ra-table tr:last-child td{border-bottom:0}
.ra-tabs{display:flex;border-bottom:1px solid var(--line);overflow-x:auto;gap:8px;padding-bottom:0;scrollbar-width:thin}
.ra-tabs button{flex:none;min-height:48px;padding:12px 16px;font:inherit;font-size:14px;font-weight:600;color:var(--muted);border:0;border-bottom:2px solid transparent;background:transparent}
.ra-tabs button[aria-selected=true]{border-bottom-color:var(--red);color:var(--plum)}.ra-tab-panel{padding-top:24px}.ra-tab-panel[hidden]{display:none}
.ra-accordion{border-top:1px solid var(--line)}.ra-accordion details{border-bottom:1px solid var(--line)}
.ra-accordion summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px;padding:16px 0;color:var(--plum);font-size:16px;font-weight:600;list-style:none;cursor:pointer}
.ra-accordion summary::-webkit-details-marker{display:none}.ra-accordion summary::after{content:'+';flex:none;width:36px;height:36px;display:grid;place-items:center;font-weight:400;font-size:22px;border:1px solid var(--line);border-radius:50%;transition:transform .2s}
.ra-accordion details[open] summary::after{transform:rotate(45deg);color:var(--red)}.ra-accordion details>div{max-width:660px;color:var(--muted);padding:0 44px 24px 0}
.ra-message{padding:16px 20px;border:1px solid var(--line);border-left:3px solid var(--plum);border-radius:var(--button-radius);background:var(--soft);font-size:14px;color:var(--plum)}
.ra-message strong{display:block;margin-bottom:4px}.ra-message[data-state=error],.ra-message[data-state=warning]{border-left-color:var(--red)}
.ra-dialog{max-width:560px;width:calc(100% - 40px);max-height:85dvh;overflow:auto;padding:var(--card-pad);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);background:white}
.ra-dialog::backdrop{background:#281f2a99}.ra-dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.ra-dialog p{color:var(--muted);margin-top:16px}
.ra-dismiss{width:44px;height:44px;flex:none;border:1px solid var(--line);border-radius:var(--button-radius);background:white;color:var(--plum);font-size:24px}
.ra-drawer{inset:0 0 0 auto;margin:0;height:100dvh;max-height:100dvh;max-width:480px;border-radius:0;width:min(480px,100%);padding:var(--card-pad)}
.ra-calendar{max-width:430px}.ra-calendar-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.ra-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;text-align:center;margin-top:16px}
.ra-calendar-grid>span{font-size:12px;color:var(--muted);padding-block:8px}.ra-date{min-height:44px;border:1px solid transparent;background:white;font:inherit;font-size:14px;color:var(--plum);border-radius:var(--button-radius)}
.ra-date[aria-pressed=true]{border-color:var(--red)}.ra-date:disabled{color:var(--muted);text-decoration:line-through;background:var(--soft);cursor:default}
.ra-summary-total{display:flex;justify-content:space-between;gap:20px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line);font-weight:600;color:var(--plum)}
.ra-logo-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.ra-logo-strip>div{display:grid;place-items:center;min-height:100px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px;text-align:center;color:var(--plum);font-weight:600}
.ra-progress{display:flex;flex-wrap:wrap;gap:16px;list-style:none;padding:0;margin:0}.ra-progress li{display:flex;align-items:center;gap:8px;min-height:44px;font-size:13px;color:var(--muted)}.ra-progress li[aria-current=step]{font-weight:600;color:var(--plum)}.ra-progress span{color:var(--red);font-variant-numeric:tabular-nums}
.ra-reveal.is-entering{animation:ra-rise .5s var(--ease) both}@keyframes ra-rise{from{opacity:.65;transform:translateY(12px)}to{opacity:1;transform:none}}
.ra-operation-visual{display:block;width:100%;max-width:480px;height:auto;margin-top:20px}
.ra-operation-visual line{stroke:var(--line);stroke-width:1.5}.ra-operation-visual rect{fill:var(--soft);stroke:var(--plum);stroke-width:1}
.ra-operation-visual circle{fill:var(--red);transition:transform .5s var(--ease)}
.ra-operation-visual text{font-family:'Open Sans',Arial,sans-serif;font-size:13px;fill:var(--plum)}
.ra-operation-sample.is-previewing circle{transform:translateX(152px)}
.ra-gallery{display:grid;gap:16px}.ra-before-after{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ra-cta-visual{display:grid;gap:32px;align-items:center}.ra-cta-visual .ra-photo img{aspect-ratio:1.3}
@media(min-width:720px){.ra-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.ra-grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}.ra-filter-bar{grid-template-columns:2fr 1fr auto}.ra-logo-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.ra-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.ra-accordion summary{font-size:18px}.ra-cta-visual{grid-template-columns:1.1fr 1fr;gap:48px}}
@media(min-width:1100px){.ra-horizontal-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:24px}.ra-horizontal-steps li{grid-template-columns:1fr;gap:12px;padding-bottom:0}.ra-horizontal-steps li>span{grid-row:auto}.ra-horizontal-steps li::before{top:17px;left:48px;right:-12px;bottom:auto;width:auto;height:1px}.ra-horizontal-steps strong{font-size:17px}.ra-cta-visual{gap:64px}}
@media(max-width:719px){.ra-wrap-actions{flex-direction:column;align-items:stretch}.ra-wrap-actions>.ra-button{width:100%}.ra-key-values>div{grid-template-columns:1fr;gap:6px}.ra-filter-meta{flex-wrap:wrap}.ra-portrait img{aspect-ratio:1}.ra-grid-three{grid-template-columns:1fr}.ra-photo figcaption{padding-inline:12px}}

@media(prefers-reduced-motion:reduce){.ra-reveal.is-entering{animation:none}}
/* RA-CONTROL-02. Template refinement only; canonical geometry is inherited. */
.ra-control svg{display:block;width:16px;height:16px;fill:currentColor}
.ra-control .ra-direction-icon{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ra-control .ra-play-icon{display:none}
.ra-control[aria-pressed=true] .ra-pause-icon{display:none}
.ra-control[aria-pressed=true] .ra-play-icon{display:block}
.ra-control:active:before{background:var(--plum);transform:scale(.96)}
.ra-control:focus-visible{outline:3px solid var(--plum);outline-offset:3px}
.ra-control:disabled{color:var(--muted);cursor:default}
.ra-control:disabled:before{background:var(--soft);transform:none}
/* RA-STATE-01. One flat selection signal; focus is a separate plum ring.
   No shadows. Disabled/unavailable wins over selected and hover. */
:root{--selection-border:var(--red);--selection-hover-border:var(--plum);--selection-hover-surface:var(--soft);--selection-focus:var(--plum);--selection-disabled-ink:var(--muted);--selection-disabled-surface:var(--soft)}
:is(.ra-selectable,.ra-tag,.ra-date,.ra-tabs button,.client-list button){box-shadow:none;transition:border-color .2s,background .2s,color .2s}
.ra-date{border-color:var(--line)}
:is(.ra-selectable,.ra-tag,.ra-date)[aria-pressed=true]{border-color:var(--selection-border);background:var(--paper);color:var(--plum)}
.ra-tabs button[aria-selected=true]{border-bottom-color:var(--selection-border);background:transparent;color:var(--plum)}
.client-list button[aria-selected=true]{border-color:var(--selection-border);box-shadow:none;background:white}
:is(.ra-selectable,.ra-tag,.ra-date,.ra-tabs button,.client-list button):focus-visible{outline:3px solid var(--selection-focus);outline-offset:3px;position:relative;z-index:1}
:is(.ra-selectable,.ra-tag,.ra-date,.ra-tabs button,.client-list button):active:not(:disabled):not([aria-disabled=true]){background:var(--selection-hover-surface)}
@media(hover:hover) and (pointer:fine){
 :is(.ra-selectable,.ra-tag,.ra-date,.ra-tabs button,.client-list button):hover:not(:disabled):not([aria-disabled=true]){background:var(--selection-hover-surface);border-color:var(--selection-hover-border);transform:none;box-shadow:none}
 :is(.ra-selectable,.ra-tag,.ra-date,.client-list button):is([aria-pressed=true],[aria-selected=true]):hover{border-color:var(--selection-border)}
 .ra-tabs button[aria-selected=true]:hover{border-bottom-color:var(--selection-border)}
}
:is(.ra-selectable,.ra-tag,.ra-date,.ra-tabs button,.client-list button):is(:disabled,[aria-disabled=true],[data-unavailable]){background:var(--selection-disabled-surface);color:var(--selection-disabled-ink);border-color:var(--line);box-shadow:none;transform:none;cursor:default;opacity:1}
.ra-tabs button:is(:disabled,[aria-disabled=true],[data-unavailable]){border-bottom-color:transparent}
.ra-selectable:is(:disabled,[aria-disabled=true],[data-unavailable]) :is(strong,small){color:var(--selection-disabled-ink)}
.ra-control:disabled:hover:before{background:var(--soft);transform:none}
/* Give the separate focus outline room inside clipped tab scrollers. */
.ra-tabs{padding:6px;margin:-6px -6px 0;scroll-padding-inline:6px}
@media(prefers-reduced-motion:reduce){.ra-control:active:before{transform:none}}

/* RA-BRAND-01: mandatory inline Open Sans 700 brand emphasis.
   Contract adoption is explicit so frozen homepage/IFM routes stay untouched.
   Every future public page must adopt this contract on its body. */
[data-brand-contract="RA-BRAND-01"] .brand-name{font-weight:700}

/* Batch 4 F12: Projects' first case only; retain all tablet/mobile crops. */
@media(min-width:1100px){
 .ra-work-page #proof-panel-0 .ra-photo>img[src="/assets/projects/high-level.webp"]{object-position:70% 0%}
}
