/* ACCRISE reference edition: architectural planes, editorial reveals, quiet feedback. */
.r2-scene { position: relative; isolation: isolate; }
.r2-plan { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; color: #58798b; opacity: .095; }
.r2-plan svg { position: absolute; width: 75%; height: 100%; right: -12%; top: 0; }
.r2-plan path { fill: none; stroke: currentColor; stroke-width: 1; vector-effect: non-scaling-stroke; }
.dark-top > .r2-plan { z-index: 1; color: #bcd5e3; opacity: .11; width: 49%; }
.dark-top > .r2-plan svg { width: 100%; right: 0; }
.hero-copy { position: relative; z-index: 2; }
#about > .r2-plan svg, #challenges > .r2-plan svg, #contacts > .r2-plan svg { right: auto; left: -18%; }
#services > .r2-plan { inset: 0 -4%; }
#services > .r2-plan svg { height: 650px; top: 25px; }
#results > .r2-plan { opacity: .12; }
.footer > .r2-plan { color: #bcd5e3; }
.reference-service-card, .reference-role-cards article, .reference-problem-cards article, .insight-grid article { position: relative; transition: box-shadow .35s, border-color .35s, background-color .35s, transform .35s; }
.reference-service-card::after { content: ''; position: absolute; left: 0; top: 25px; bottom: 25px; width: 3px; background: #6c8fa1; transform: scaleY(0); transform-origin: top; transition: transform .4s; }
.reference-service-card:focus-within::after { transform: scaleY(1); }
.trust-card { transition: box-shadow .4s; }
.trust-card > div { transition: transform .5s; }
.trust-card::after { content: ''; position: absolute; inset: 15px; border: 1px solid currentColor; opacity: 0; pointer-events: none; transition: opacity .4s; }
.trust-card > img { transition: transform 1s ease; }
.reference-role-cards article { border-top: 2px solid #c4bfb3; }
.reference-problem-cards article { border-bottom: 2px solid #c4bfb3; }
.problem-question { transition: color .35s; }
.sector-list > span { transition: background-color .3s,border-color .3s; }
.steps { gap: 24px; }
.steps article { position: relative; padding: 24px; border: 1px solid #b8c7ce; background: #ffffff6b; transition: background-color .35s,border-color .35s; }
.steps article::before, .steps article::after { display: none; }
.steps article > span { display: inline-block; background: transparent; color: #536e7d; border-bottom: 2px solid #b1c3cd; padding-bottom: 10px; transition: color .35s,border-color .35s; }
.steps article h3 { margin-top: 22px; }
.confidential { transition: border-color .35s; }
.button, .card-detail-link, .phone, .footer a, .header nav a, .mega-toggle { transition: color .25s,background-color .25s,box-shadow .25s; }
.button > span, .card-detail-link > span, .insight-grid a > span { display: inline-flex; transition: transform .3s; }
.insight-art { overflow: hidden; }
.insight-art img { transition: transform .9s ease; }
.consult-form input, .consult-form select { transition: border-color .25s,box-shadow .25s,background-color .25s; }
.consult-form input:focus, .consult-form select:focus { border-color: #58798b; box-shadow: 0 0 0 3px #58798b16; background: #fff; outline: none; }
:where(a,button):focus-visible { outline: 2px solid #6a90a4; outline-offset: 5px; }
@media(hover:hover) and (pointer:fine) {
 .reference-service-card:hover { transform: translateY(-3px); }
 .reference-service-card:hover::after { transform: scaleY(1); }
 .reference-role-cards article:hover { border-top-color: #58798b; background: #f5f9fb; }
 .reference-problem-cards article:hover { border-bottom-color: #58798b; box-shadow: 0 10px 25px #101e2813; }
 .reference-problem-cards article:hover .problem-question { color: #101e28; }
 .trust-card:hover { box-shadow: 0 12px 28px #101e2823; }
 .trust-card:hover > img { transform: scale(1.045); }
 .trust-card:hover > div { transform: translateY(-3px); }
 .trust-card:hover::after { opacity: .22; }
 .sector-list > span:hover { background: #d9e6ed; border-color: #8ba5b4; }
 .steps article:hover { background: #fff; border-color: #6e8b9b; }
 .steps article:hover > span { color: #101e28; border-color: #58798b; }
 .insight-grid article:hover { transform: translateY(-3px); }
 .insight-grid article:hover .insight-art img { transform: scale(1.05); }
 .button:hover { box-shadow: 0 5px 18px #101e2820; }
 .button:hover > span, .card-detail-link:hover > span, .insight-grid a:hover > span { transform: translate(3px,-2px); }
 .phone:hover, .footer a:hover, .header nav a:hover { color: #7393a3; }
}
@media(prefers-reduced-motion:no-preference) {
 .r2-arrived { animation: r2-rise .75s cubic-bezier(.2,.65,.25,1) var(--arrival-delay,0ms) backwards; }
 .r2-arrived[data-arrival=fade] { animation-name: r2-fade; animation-duration: .95s; }
 .r2-arrived[data-arrival=left] { animation-name: r2-left; }
 .r2-arrived[data-arrival=right] { animation-name: r2-right; }
 .r2-arrived[data-arrival=settle] { animation-name: r2-settle; }
 .r2-arrived[data-arrival=photo] { animation-name: r2-photo; animation-duration: 1s; }
 .r2-drawn > .r2-plan path { stroke-dasharray: 1; animation: r2-draw 3.8s cubic-bezier(.25,.6,.3,1) both; }
 .insight-grid article.r2-arrived .insight-art path[pathLength] { stroke-dasharray: 1; animation: r2-draw 1.9s .25s both; }
 @keyframes r2-rise { from { opacity: 0; translate: 0 18px; } to { opacity: 1; translate: 0 0; } }
 @keyframes r2-fade { from { opacity: 0; } to { opacity: 1; } }
 @keyframes r2-left { from { opacity: 0; translate: -18px 0; } to { opacity: 1; translate: 0 0; } }
 @keyframes r2-right { from { opacity: 0; translate: 18px 0; } to { opacity: 1; translate: 0 0; } }
 @keyframes r2-settle { from { opacity: 0; scale: .98; } to { opacity: 1; scale: 1; } }
 @keyframes r2-photo { from { opacity: 0; clip-path: inset(0 0 7% 0); } to { opacity: 1; clip-path: inset(0); } }
 @keyframes r2-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
}
@media(max-width:800px) {
 .r2-plan { opacity: .065; }
 .r2-plan svg { width: 100%; }
 .steps { grid-template-columns: 1fr; }
 .steps article { padding: 24px; }
 .dark-top > .r2-plan { width: 100%; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior: auto !important; }
 *, *::before, *::after { animation: none !important; transition: none !important; }
 .trust-card:hover > img, .trust-card:hover > div, .reference-service-card:hover, .insight-grid article:hover, .insight-grid article:hover img { transform: none; }
}
@media print { .r2-plan { display: none; } [data-arrival] { animation: none !important; } }
@media(prefers-reduced-motion:no-preference) {
 .steps article.r2-arrived:nth-child(4) { animation-delay: 300ms; }
 .mega-menu:not([hidden]), dialog[open] { animation: r2-rise .3s ease backwards; }
 .reference-trust-grid .trust-card.r2-arrived img, .reference-result-cards .trust-card.r2-arrived img { animation: r2-image-settle 1.3s ease backwards; }
 @keyframes r2-image-settle { from { transform: scale(1.045); } to { transform: scale(1); } }
}
