/* Elementor owns the layout and responsive typography. These rules cover only
   theme integration, shared accessibility, and the dynamic MRB widgets. */
.site-header:has(>.elementor){padding:0;display:block}
.site-footer:has(>.elementor){padding:0;margin:0}
.site-menu:has(>.elementor){padding:0}
.site-header>.elementor,.site-footer>.elementor,.site-menu>.elementor{width:100%}
/* Keep the menu reachable without pinning an opaque header over the page. */
.site-header .elementor-widget-mrb-menu-toggle{min-width:48px;min-height:48px}
.site-header .menu-toggle,.site-menu .menu-toggle{position:fixed;top:calc(28px + var(--mrb-menu-admin-offset,0px));right:clamp(24px,3.4vw,64px);z-index:2;background:transparent;border-radius:50%;box-shadow:none;color:#f8f5f1}
.admin-bar{--mrb-menu-admin-offset:32px}
@media(max-width:1024px){.site-header .menu-toggle,.site-menu .menu-toggle{right:32px}}
@media(max-width:782px){.admin-bar{--mrb-menu-admin-offset:46px}}
@media(max-width:767px){.site-header .menu-toggle,.site-menu .menu-toggle{top:calc(max(20px,env(safe-area-inset-top)) + var(--mrb-menu-admin-offset,0px));right:max(18px,env(safe-area-inset-right))}}
.elementor-editor-active .site-header .menu-toggle{position:static}
.mrb-elementor-page .elementor-widget-text-editor p:last-child{margin-bottom:0}
.mrb-elementor-page .elementor-widget-text-editor p+p{margin-top:1em}
.mrb-elementor-page .elementor-widget-image img{display:block}
.elementor-widget-mrb-portfolio,.elementor-widget-mrb-contact,.elementor-widget-mrb-project-navigation{width:100%}
/* Project names and arrows flank a precisely centred nine-square overview icon. */
.project-nav.mrb-project-nav{grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);gap:clamp(12px,3vw,44px);width:100%;margin:0 auto;font-size:clamp(12px,1.65vw,24px);font-weight:300;line-height:1.4}
.mrb-project-nav>.mrb-project-previous,.mrb-project-nav>.mrb-project-next{display:flex;align-items:center;gap:clamp(10px,2vw,30px);min-width:0;min-height:48px;padding-block:8px}
.mrb-project-nav>.mrb-project-next{justify-content:flex-end;text-align:right}
.mrb-project-nav .mrb-project-name{overflow-wrap:anywhere}
.mrb-project-nav svg{width:32px;height:20px;flex:0 0 auto}
.mrb-project-nav .mrb-project-previous svg{transform:rotate(180deg)}
.mrb-project-nav>.all-projects{display:grid;place-items:center;width:64px;min-height:64px;padding:10px;justify-self:center}
.mrb-project-nav .grid-icon{width:42px;height:42px;gap:6px}
.mrb-project-nav .grid-icon i{border-radius:1px}
.mrb-project-nav>a:hover .mrb-project-name{text-decoration:underline;text-underline-offset:6px}
.mrb-project-nav .is-disabled{opacity:.6;cursor:default}
.project-page .mrb-project-nav{margin-top:85px}
@media(max-width:767px){
 .project-nav.mrb-project-nav{grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);gap:12px}
 .mrb-project-nav>.all-projects{width:44px;min-height:48px;padding:8px}
 .mrb-project-nav .grid-icon{width:28px;height:28px;gap:4px}
 .mrb-project-nav svg{width:20px;height:18px}
}
.elementor-widget-mrb-portfolio .project-card .card-photo img{width:100%;height:100%;object-fit:cover}
.elementor-widget-mrb-contact .contact-form{padding-top:0}
.contact-form .upload-field{margin-top:34px}
.contact-form .optional-label{font-size:12px;white-space:nowrap}
.contact-form input[type=file]{border:1px dashed #686662;padding:14px;width:100%;font-size:13px;min-height:64px;cursor:pointer}
.contact-form input[type=file]::file-selector-button{font:inherit;background:#161616;border:1px solid #88847e;color:#f8f5f1;padding:10px 12px;margin-right:12px;cursor:pointer}
.contact-form input[type=file]:hover{border-color:#d4d0ca}
.contact-form .upload-help{font-size:12px;line-height:1.6;color:#bcb9b5;margin-top:10px}
.contact-form .upload-status{font-size:13px;line-height:1.6;margin-top:8px;overflow-wrap:anywhere}
.contact-form .upload-status.error{color:#ffb8ae}
.contact-form .upload-clear{font-size:13px;text-decoration:underline;text-underline-offset:4px;padding:8px 0;min-height:40px}
.contact-form .upload-clear[hidden]{display:none}
.el-hero{max-height:1050px}
.el-team img{filter:grayscale(1)}
.el-gallery .elementor-widget-image,.el-gallery .elementor-widget-image .elementor-widget-container,.el-gallery .elementor-widget-image a{height:100%;display:block}
.el-gallery .elementor-widget-image img{width:100%;height:100%;object-fit:cover}
/* Standalone Image widgets do not enqueue the carousel widget's arrow styles. */
body.single-mrb_project .elementor-lightbox .elementor-swiper-button{
 position:absolute;top:50%;transform:translateY(-50%);z-index:5;
 display:flex;align-items:center;justify-content:center;width:44px;height:64px;padding:0;
 color:#fff;cursor:pointer;text-shadow:0 1px 5px #000;
}
body.single-mrb_project .elementor-lightbox .elementor-swiper-button-next{right:12px;left:auto}
body.single-mrb_project .elementor-lightbox .elementor-swiper-button-prev{left:12px;right:auto}
body.single-mrb_project .elementor-lightbox .elementor-swiper-button svg{width:26px;height:26px;fill:currentColor;filter:drop-shadow(0 1px 4px #000)}
.el-vertical-divider{width:1px!important;align-self:center!important;flex-shrink:0;background:#5d5b57}
.elementor a:hover{text-decoration-thickness:1px;text-underline-offset:5px}
.el-menu-links .elementor-heading-title a:hover,.el-legal a:hover{text-decoration:underline}
.el-socials .elementor-social-icon{background:transparent!important}
.el-footer-copy a{overflow-wrap:anywhere}
.el-more .elementor-button{padding:12px 0;background:transparent;color:#f8f5f1}
.el-more .elementor-button:hover{background:transparent;text-decoration:underline}
/* Centre the complete two-column desktop menu, keeping its header at the top. */
@media(min-width:768px){
 .site-menu>.elementor{position:relative;min-height:100vh;min-height:100svh}
 .site-menu>.elementor>.e-con:first-of-type{position:absolute;top:0;left:0;right:0;z-index:1}
 .site-menu>.elementor>.e-con:has(.el-menu-links){min-height:100vh;min-height:100svh;justify-content:center;padding-block:130px!important}
 .site-menu .e-con-inner:has(.el-menu-links){max-width:960px;margin-inline:auto;justify-content:center;padding-block:0!important}
 .site-menu .e-con:has(>.el-menu-links){align-items:center}
}
@media(max-width:767px){.el-featured-grid .project-grid{grid-template-columns:1fr}.el-hero{max-height:750px}.el-gallery .elementor-widget-image img{min-height:200px}}

/* No enhancement class = the original complete, editable list of steps. */
.mrb-approach-scroll.is-scroll-ready{
 position:relative;display:block!important;height:var(--approach-scroll-height,100vh);
 min-height:0!important;padding-top:0!important;padding-bottom:0!important;overflow:visible!important;
}
.mrb-approach-scroll.is-scroll-ready>.mrb-approach-pin{
 position:sticky;top:var(--approach-top,0px);display:flex;flex-direction:column;
 height:calc(100vh - var(--approach-top,0px));height:calc(100svh - var(--approach-top,0px));
 min-height:0!important;max-height:none;justify-content:flex-start;gap:0;
 padding-top:60px;padding-bottom:45px;box-sizing:border-box;
}
.is-scroll-ready .mrb-approach-heading{margin:0!important;flex:0 0 auto;width:100%}
.is-scroll-ready .mrb-approach-stage{
 position:relative;display:block!important;align-self:center;flex:0 0 auto;gap:0!important;
 width:min(100%,580px)!important;height:var(--approach-stage-height);min-height:0;
 margin:auto 0!important;padding:0!important;overflow:hidden;
}
.is-scroll-ready .mrb-approach-stage>.el-vertical-divider{display:none!important}
.is-scroll-ready .mrb-approach-step{
 position:absolute!important;top:0;left:0;width:100%!important;min-height:0!important;
 margin:0!important;opacity:var(--approach-opacity,0);
 transform:translate3d(0,var(--approach-shift,14px),0);
 transition:none!important;pointer-events:none;will-change:opacity,transform;
}
.is-scroll-ready .mrb-approach-step.is-readable{pointer-events:auto}
@media(max-width:767px){
 .mrb-approach-scroll.is-scroll-ready>.mrb-approach-pin{padding-top:32px;padding-bottom:24px}
}
@media print{
 .mrb-approach-scroll.is-scroll-ready{height:auto!important}
 .mrb-approach-scroll.is-scroll-ready>.mrb-approach-pin{position:static;height:auto;display:block}
 .is-scroll-ready .mrb-approach-stage{display:flex!important;gap:40px!important;height:auto;overflow:visible}
 .is-scroll-ready .mrb-approach-step{position:static!important;opacity:1!important;transform:none!important;will-change:auto}
}
