/* Selected interaction family: 01 buttons, 02 decoding links, 07 drawn frames. */
:root { font-family: 'DM Sans', Arial, sans-serif; --onform-control-ink: #102148; --onform-control-ease: cubic-bezier(.16,1,.3,1); }
body,button,input,textarea,select { font-family: 'DM Sans', Arial, sans-serif; }
.architecture-hero__intro p { font-family: 'DM Sans', Arial, sans-serif; line-height: 1.35; letter-spacing: -.025em; }
body .onform-button { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: space-between; gap: 25px; min-height: 56px; padding: 15px 23px; border: 1px solid var(--blue); border-radius: 40px; background: var(--blue); color: #fff; font-size: 13px; line-height: 1.25; text-align: left; text-decoration: none; transition: color .4s,transform .55s var(--onform-control-ease); }
body .onform-button::before { content: ''; position: absolute; inset: 0; top: 0; z-index: -1; width: auto; height: auto; border-radius: 50% 50% 0 0; background: var(--onform-control-ink); transform: translateY(150%) scale(1.3); transition: transform .65s var(--onform-control-ease); }
body .onform-button:is(:hover,:focus-visible)::before { top: 0; transform: translateY(0) scale(1.3); }
body .onform-button > span:first-child { font: inherit; }
body .onform-button > span:last-child { display: inline-block; font: 21px/1 'DM Sans',Arial,sans-serif; transition: transform .65s var(--onform-control-ease); }
body .onform-button:is(:hover,:focus-visible) > span:last-child { transform: translate(3px,-3px); }
body .onform-button:active { transform: scale(.98); }
body .onform-button--outline { background: transparent; color: var(--blue); }
body .onform-button--outline::before { background: var(--blue); }
body .onform-button--outline:is(:hover,:focus-visible) { color: #fff; }
body .more-work .onform-button { color: #fff; border-color: #ffffff80; }
body .more-work .onform-button--outline::before { background: #fff; }
body .more-work .onform-button--outline:is(:hover,:focus-visible) { color: var(--blue); }
body[data-work-variant="reveal"] .work-row__view--plain.onform-button { position: relative; inset: auto; width: 116px; min-height: 48px; height: 48px; padding: 10px 18px; border-radius: 40px; border-color: currentColor; color: inherit; font-size: 13px; box-shadow: none; background: transparent; }
body[data-work-variant="reveal"] .work-row__view--plain.onform-button::before { background: #fff; }
body[data-work-variant="reveal"] .work-row:is(:hover,:focus-visible) .work-row__view--plain.onform-button { color: var(--blue); }
body[data-work-variant="reveal"] .work-row:is(:hover,:focus-visible) .work-row__view--plain.onform-button::before { transform: translateY(0) scale(1.3); }
body[data-work-variant="reveal"] .work-row:is(:hover,:focus-visible) .work-row__view--plain.onform-button > span:last-child { transform: translate(3px,-3px); }

.onform-text-link { position: relative; text-decoration: none; }
.onform-text-link::after { content: ''; position: absolute; inset: auto 0 4px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .6s var(--onform-control-ease); pointer-events: none; }
.onform-text-link:is(:hover,:focus-visible)::after { transform: scaleX(1); transform-origin: left; }
.onform-copy { white-space: nowrap; }
.onform-glyph { display: inline-block; white-space: pre; text-align: center; }
.onform-footer__email.onform-text-link { width: max-content; max-width: 100%; padding-bottom: 8px; }
.onform-footer__socials .onform-text-link { display: inline-flex; gap: 5px; padding: 8px 0; }
.onform-text-arrow { display: inline-block; transition: transform .6s var(--onform-control-ease); }
.onform-text-link:is(:hover,:focus-visible) .onform-text-arrow { transform: translate(3px,-3px); }

.onform-frame__border { position: absolute; inset: 0; z-index: 4; pointer-events: none; }
.onform-frame__border::before,.onform-frame__border::after { content: ''; position: absolute; inset: 0; border: 1px solid currentColor; opacity: .85; transition: clip-path .8s var(--onform-control-ease); }
.onform-frame__border::before { clip-path: inset(0 100% 100% 0); }
.onform-frame__border::after { clip-path: inset(100% 0 0 100%); }
.onform-frame:is(:hover,:focus-visible,:focus-within) > .onform-frame__border::before,.onform-frame:is(:hover,:focus-visible,:focus-within) > .onform-frame__border::after { clip-path: inset(0); }
/* White case-study surfaces need a blue drawing frame; keep the image
   controls and the white frames on coloured sections unchanged. */

/* Match Featured Work's complete image treatment, not only its frame colour. */
.case-image[data-onform-frame] > img { transition:transform .9s cubic-bezier(.16,1,.3,1); }
.case-image[data-onform-frame]:focus-visible > img { transform:scale(1.025); }
@media(hover:hover) and (pointer:fine) {
 .case-image[data-onform-frame]:hover > img { transform:scale(1.025); }
}
/* The homepage's drawn-frame pseudo-elements use content-box sizing. */
.case-image[data-onform-frame] > .onform-frame__border::before,
.case-image[data-onform-frame] > .onform-frame__border::after { box-sizing:content-box; }
:is(.case-hero,.case-gallery,.case-next) .onform-frame__border { color:var(--blue); }
/* Blue on white needs a stronger ink weight to read as clearly as white on blue. */
:is(.case-hero,.case-gallery,.case-next) .onform-frame__border::before,
:is(.case-hero,.case-gallery,.case-next) .onform-frame__border::after {
 border-width:1.5px;
 box-sizing:border-box;
 opacity:1;
}

@media(prefers-reduced-motion:reduce) {
 .case-image[data-onform-frame] > img { transition:none; }
 .case-image[data-onform-frame]:is(:hover,:focus-visible) > img { transform:none; }
}

.menu-gallery.onform-frame { color: #fff; }
.navigation.architectural-nav nav a.menu-panel .onform-text-link::after { display: none; }
.navigation.architectural-nav nav a.menu-panel .onform-glyph { text-align: left; }

.portfolio-view-cursor { display: none; }
@media(max-width:600px) {
  body[data-work-variant="reveal"] .work-row__view--plain.onform-button { width: 100px; min-height: 48px; }
}
@media(prefers-reduced-motion:reduce) {
  .onform-button,.onform-button::before,.onform-button > span,.onform-text-link::after,.onform-text-arrow,.onform-frame__border::before,.onform-frame__border::after { transition: none !important; }
}


.onform-footer__navigation a.onform-text-link:hover { text-decoration: none; }
.onform-footer__contact.onform-text-link { background: none; border: 0; border-radius: 0; padding: 12px 0; }
