/* Exact EPS geometry and colours. No inversion, tint, matte or redraw. */
.nk-wordmark{display:inline-flex;align-items:center;vertical-align:middle;flex-shrink:0;max-width:100%;line-height:0;background:none!important;padding:0;border:0;box-shadow:none}
.nk-wordmark img[data-brand-variant]{display:block;height:auto!important;aspect-ratio:898.0787/139.4191;object-fit:contain;filter:none!important;opacity:1!important;background:none!important;border:0!important;border-radius:0!important;padding:0!important;box-shadow:none!important;transform:none!important}
.nk-wordmark img[data-brand-variant=reverse]{display:none!important}
:root[data-theme=dark] .nk-wordmark img[data-brand-variant=primary]{display:none!important}
:root[data-theme=dark] .nk-wordmark img[data-brand-variant=reverse]{display:block!important}
/* Reserve the real wordmark width: the tablet navigation must not squeeze it. */
.hp-header .hp-wrap>a:first-child{flex-shrink:0}
@media(min-width:761px) and (max-width:1100px){
 .hp-header .hp-desktop-nav{display:none}
 .hp-header .hp-mobile-menu{display:block}
 .hp-header .hp-wrap>a:first-child{flex:0 0 140px;margin-right:auto}
 .hp-header .nk-wordmark img.hp-logo{width:140px!important;max-width:none}
 .hp-header .hp-mobile-menu summary{width:44px;height:44px;padding:0;display:grid;place-items:center;border-radius:10px}
}
@media(max-width:760px){
 .hp-header .hp-wrap{gap:8px}
 .hp-header .hp-wrap>a:first-child{flex:0 0 100px;min-width:100px}
 .hp-header .nk-wordmark img.hp-logo{width:100px!important}
 .hp-header .approved-header-cta{padding-inline:8px;font-size:13px}
 .nv-client-v3 .nv-chapter-heading>:is(h1,h2){min-width:0;overflow-wrap:anywhere;font-size:32px;line-height:1.08}
 .nv-client-v3 .nv-chapter-heading>span{flex-shrink:0}
}
@media(max-width:380px){.hp-header .hp-wrap{gap:6px}.hp-header .hp-wrap>a:first-child{flex-basis:88px;min-width:88px}.hp-header .nk-wordmark img.hp-logo{width:88px!important}}
@media(max-width:380px){.hp-header .hp-wrap{width:calc(100% - 32px)}}
@media(max-width:350px){.hp-header .hp-wrap>.approved-header-cta{display:none}}
/* Whole entry supplies contrast for the eight official white wordmarks.
   This is the content context, never a backing rectangle around a logo. */
.nv-client-v3 .nv-client[data-nekon-dark-context]{background:#004223!important;color:#fff;padding:26px;border-radius:12px;--ink:#fff;--muted:#e0eae3;--green:#78c051}
.nv-client-v3 .nv-client[data-nekon-dark-context] h3{color:#fff}
.nv-client-v3 .nv-client[data-nekon-dark-context] .nv-client-description{color:#e0eae3}
.nv-client-v3 .nv-client[data-nekon-dark-context] .nv-official{color:#78c051}
.nv-client-v3 .nv-client[data-nekon-dark-context] a:focus-visible{outline-color:#78c051}
.nv-client[data-nekon-typeset-fallback] .nv-client-content{padding-top:0}
.nv-section .nv-logo-link{background:none!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.nv-section .nv-logo-link img{background:none!important;padding:0!important;border:0!important;filter:none!important}
/* Owner-supplied office imagery: one calm editorial insert, fully CMS editable. */
.cms-custom-block[data-cms-block=new-office-location]{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);column-gap:56px;align-items:start}
.cms-custom-block[data-cms-block=new-office-location] h2{grid-column:1;grid-row:1;margin-bottom:24px}
.cms-custom-block[data-cms-block=new-office-location] p{grid-column:1;grid-row:2;font-size:20px;line-height:1.55}
.cms-custom-block[data-cms-block=new-office-location] img{grid-column:2;grid-row:1 / span 2;width:100%;max-height:680px;object-fit:contain;object-position:top;border-radius:12px}
@media(max-width:1000px){.cms-custom-block[data-cms-block=new-office-location]{display:block}.cms-custom-block[data-cms-block=new-office-location] img{margin-top:28px;max-height:640px}}
/* All six office views retain their own proportions and can be edited in CMS. */
.cms-office-gallery .pr-lead{max-width:760px}
.cms-office-gallery .office-gallery-grid{columns:3;column-gap:24px;margin-top:40px}
.cms-office-gallery figure{break-inside:avoid;margin:0 0 32px;page-break-inside:avoid}
.cms-office-gallery .office-gallery-photo{display:block;border-radius:12px;overflow:hidden;background:var(--surface,#f3f5f2);line-height:0}
.cms-office-gallery img{display:block;width:100%;height:auto!important;max-height:none!important;object-fit:contain}
.cms-office-gallery .office-gallery-photo:focus-visible{outline:3px solid var(--green,#26783c);outline-offset:5px}
.cms-office-gallery figcaption{margin-top:12px;font-size:16px;line-height:1.45;color:var(--muted,#606760)}
@media(max-width:1100px){.cms-office-gallery .office-gallery-grid{columns:2;column-gap:20px}}
@media(max-width:600px){.cms-office-gallery .office-gallery-grid{columns:1;margin-top:28px}.cms-office-gallery figure{margin-bottom:28px}}
.nv-client-v3 .nv-client[data-nekon-light-context]{background:#eef4ee!important;color:#102015;padding:26px;border-radius:12px;--ink:#102015;--muted:#4d584d;--green:#26783c}
.nv-client-v3 .nv-client[data-nekon-light-context] h3{color:#102015}
.nv-client-v3 .nv-client[data-nekon-light-context] .nv-client-description{color:#4d584d}
.nv-client-v3 .nv-client[data-nekon-light-context] .nv-official{color:#26783c}
:root[data-theme=dark] .nv-client[data-nekon-monochrome-positive] .nv-brand-mark img{filter:invert(1)!important}
.nv-client-v3 .nv-client[data-nekon-typeset-fallback] h3{font-size:clamp(25px,2.1vw,34px);line-height:1.16;max-width:28ch;text-wrap:balance;overflow-wrap:anywhere}
/* Original Webuild SVG, with no extra image or homepage-container plate. */
.hp-logo-grid .hp-photo[data-webuild-container="1"],:root[data-theme=dark] .hp-logo-grid .hp-photo[data-webuild-container="1"]{background:transparent!important;background-image:none!important;padding:0!important;border:0!important;border-radius:0!important}
img[data-official-webuild="1"]{background:transparent!important;background-image:none!important;padding:0!important;filter:none!important;object-fit:contain}
/* Lighter action green, derived from the brand's #26783c. White text contrast:
   normal 4.786:1, hover 4.657:1, pressed 5.477:1. Original marks stay exact. */
:root,:root[data-theme=dark]{--action-bg:#2d8244;--action-text:#fff;--release-action:#2d8244;--button-bg:#2d8244;--button-hover:#2f8446;--button-pressed:#26783c;--button-text:#fff}
:root .hp-button,:root .button:not(.secondary),:root .nv-button,:root .nekon-chat-launch{background:var(--button-bg)!important;color:var(--button-text)!important;border-color:transparent}
@media(hover:hover){:root .hp-button:hover,:root .button:not(.secondary):hover,:root .nv-button:hover,:root .nekon-chat-launch:hover{background:var(--button-hover)!important;color:var(--button-text)!important}}
:root .hp-button:active,:root .button:not(.secondary):active,:root .nv-button:active,:root .nekon-chat-launch:active{background:var(--button-pressed)!important;color:var(--button-text)!important}
:root .s25-filters button[aria-pressed=true],:root .n25-tabs button[aria-selected=true],:root .nv-category-buttons button[aria-pressed=true]{background:var(--button-bg)!important;color:var(--button-text)!important}
:root .hp-button:disabled,:root .button:not(.secondary):disabled,:root .nv-button:disabled{opacity:1;cursor:not-allowed}
/* One state change, one reveal. The browser's default cross-fade is disabled. */
:root[data-theme-transition=circle]::view-transition{pointer-events:none}
:root[data-theme-transition=circle]::view-transition-group(root){animation:none}
:root[data-theme-transition=circle]::view-transition-image-pair(root){isolation:auto;pointer-events:none}
:root[data-theme-transition=circle]::view-transition-old(root),:root[data-theme-transition=circle]::view-transition-new(root){animation:none;mix-blend-mode:normal;pointer-events:none}
:root[data-theme-transition=circle]::view-transition-old(root){z-index:1}
:root[data-theme-transition=circle]::view-transition-new(root){z-index:2}
:root[data-theme-transition=fallback] :is(body,header,main,footer,.hp-button,.button,.nv-button){transition:background-color 150ms ease,color 150ms ease,border-color 150ms ease!important}
@media(prefers-reduced-motion:reduce){:root[data-theme-transition]::view-transition-group(root){animation:none}:root[data-theme-transition=fallback] :is(body,header,main,footer,.hp-button,.button,.nv-button){transition:none!important}}
