/* Shared structure. Page-specific proportions are preserved in styles/pages. */
:root{--e-global-color-primary:#000;--e-global-color-secondary:#54595f;--e-global-color-text:#7a7a7a;--e-global-color-accent:#000;--e-global-typography-text-font-family:'Roboto';--e-global-typography-text-font-weight:400}
.elementor-section.elementor-section-boxed>.elementor-container{max-width:1140px}
.elementor-widget:not(:last-child){margin-block-end:20px}
.elementor-element{--widgets-spacing:20px 20px}
.elementor img{height:auto;max-width:100%;border:none;border-radius:0;box-shadow:none}
.elementor-widget-image{text-align:center}
.elementor-widget-image img{vertical-align:middle;display:inline-block}
.elementor-spacer-inner{height:var(--spacer-size,50px)}
.elementor-icon-wrapper{text-align:center}
.elementor-icon{display:inline-block;line-height:1;transition:all .3s;color:#69727d;font-size:50px;text-align:center}
.elementor-icon svg{width:1em;height:1em;position:relative;display:block}
.elementor-widget-icon .elementor-widget-container{line-height:0}
.elementor-widget__width-initial{max-width:100%}
.home .wrapper{background:url('/assets/2024/03/LR12_Matthias_Sanktjohanser_09-scaled.jpg') center top/cover no-repeat}
.home,.home .wrapper,.home .content,.home .content .container{background-color:transparent!important}
.q_logo img{height:100%;width:auto;max-width:none}
.header_inner_left{position:relative;z-index:2}
/* Keep the original centered underline: left:50% pairs with translateX(-50%). */
.page_header nav .menu-text{position:relative}
.page_header nav.mobile_menu .menu-text:before{content:'';position:absolute;bottom:-4px;left:50%;transform:translateX(-50%);height:1px;width:0;background:currentColor;transition:width .3s ease}
.page_header nav.mobile_menu a[aria-current=page] .menu-text:before,.page_header nav.mobile_menu a:hover .menu-text:before,.page_header nav.mobile_menu a:focus-visible .menu-text:before{width:100%}
.menu-animation-underline nav.main_menu a:focus-visible .menu-text:before{width:100%}
.mobile_menu_button{padding:0;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.mobile_menu_button:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.mobile_menu_button .menu-bars{display:block;position:relative;width:22px;height:2px;border:0;background:currentColor;transition:background .2s}
.mobile_menu_button .menu-bars:before,.mobile_menu_button .menu-bars:after{content:'';position:absolute;left:0;width:100%;height:2px;background:currentColor;transition:transform .2s;transform:translateY(-7px)}
.mobile_menu_button .menu-bars:after{transform:translateY(7px)}
.mobile_menu_button[aria-expanded=true] .menu-bars{background:transparent}
.mobile_menu_button[aria-expanded=true] .menu-bars:before{transform:rotate(45deg)}
.mobile_menu_button[aria-expanded=true] .menu-bars:after{transform:rotate(-45deg)}
.footer_top a.contact-link{font-weight:400;color:#373737}
.footer_top a.contact-link:hover{color:#757575}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 10px 10px}
.project-card{position:relative;display:block;aspect-ratio:1;overflow:hidden}
.project-card>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s}
.project-overlay{position:absolute;inset:0;background:rgb(79 79 79);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;opacity:0;transition:opacity .4s;color:white}
.project-overlay h3,.project-overlay h6{color:#fff}.project-overlay h3{line-height:1.25}.project-overlay h6{font-size:13px;line-height:1.5;margin-top:8px}.project-category{font:italic 13px/22px 'DM Sans',sans-serif;margin-top:8px}
.project-card:hover .project-overlay,.project-card:focus-visible .project-overlay{opacity:1}
.project-card:hover>img{transform:scale(1.02)}
.contact-form input,.contact-form textarea{box-sizing:border-box;width:100%;padding:13px 17px;margin:5px 0 0;border:1px solid #e5e5e5;background:#fff;color:#373737;font:16px/22px 'DM Sans',sans-serif;border-radius:0}
.contact-form textarea{resize:vertical}.contact-form p{margin-bottom:10px}.contact-form input:focus,.contact-form textarea:focus{border-color:#1d1d1d;outline:0}
.contact-form button{background:#1d1d1d;color:#fff;border:2px solid #1d1d1d;padding:0 36px;height:50px;font:600 13px 'Montserrat',sans-serif;cursor:pointer;transition:background .2s,color .2s}
.contact-form button:hover{background:white;color:#1d1d1d}.form-status{margin-top:20px!important}
.skip-link{position:fixed;top:5px;left:5px;transform:translateY(-150%);z-index:9999;padding:8px;background:white}.skip-link:focus{transform:none}
@media(max-width:1024px){.elementor-section.elementor-section-boxed>.elementor-container{max-width:1024px}}
@media(max-width:1000px){
  .q_logo a{height:65px!important}
  .q_logo img.normal{position:relative!important;top:0!important}
  .page_header{--menu-background:#fff;--header-gutter:45px}
  .page_header.light{--menu-background:#a4b6c8}
  .page_header .header_bottom{min-height:100px}
  .mobile_menu_button{position:relative;height:100px;min-width:44px;align-items:center;display:flex!important}
  .page_header nav.mobile_menu{position:fixed;inset:0;float:none;width:100%;height:100vh;height:100dvh;box-sizing:border-box;padding:120px max(30px,env(safe-area-inset-right)) max(40px,env(safe-area-inset-bottom)) max(30px,env(safe-area-inset-left));background:var(--menu-background);overflow-y:auto;overscroll-behavior:contain;display:flex!important;align-items:center;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .2s,visibility .2s}
  .page_header nav.mobile_menu.is-open{visibility:visible;opacity:1;pointer-events:auto}
  .page_header nav.mobile_menu>ul{width:100%;margin:auto!important}
  .page_header nav.mobile_menu ul li{border:0;text-align:center}
  .page_header nav.mobile_menu ul li a{padding:18px 0;font-size:clamp(26px,5vw,40px);line-height:1.3;color:#1d1d1d}
  .page_header.is-menu-open .header_inner_left{position:fixed!important;top:0;left:var(--header-gutter)!important;right:var(--header-gutter);height:100px;z-index:101}
  .page_header.is-menu-open .header_inner_left:before{content:'';position:absolute;top:0;bottom:0;left:calc(-1 * var(--header-gutter));right:calc(-1 * var(--header-gutter));background:var(--menu-background);pointer-events:none}
  html.mobile-menu-open,html.mobile-menu-open body{overflow:hidden}
}
@media(max-width:480px){.page_header{--header-gutter:25px}}
@media(max-width:420px){.page_header{--header-gutter:15px}}
@media(max-width:767px){.elementor-section.elementor-section-boxed>.elementor-container{max-width:767px}}
@media(max-width:600px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-overlay{padding:10px}.project-overlay h3{font-size:18px}.project-overlay h6,.project-category{display:none}}
@media(max-width:480px){.portfolio-grid{grid-template-columns:minmax(0,1fr)}}
@keyframes wobble-top{16.65%{transform:skew(-12deg)}33.3%{transform:skew(10deg)}49.95%{transform:skew(-6deg)}66.6%{transform:skew(4deg)}83.25%{transform:skew(-2deg)}100%{transform:skew(0)}}
.elementor-animation-wobble-top:hover{transform-origin:0 100%;animation:wobble-top 1s ease-in-out}

.q_logo a{visibility:visible!important}
.main_menu .menu-text{position:relative}
.home .elementor-element-6790982 .elementor-widget-container{line-height:1.12}
/* Measurements from the live page. */
.portfolio-grid{padding:0 0 10px}
@media(min-width:1001px){.page-id-76 .default_template_holder{padding-top:20px}}
@media(min-width:481px) and (max-width:1000px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.contact-form>p{font:18px/23px 'Montserrat',sans-serif!important;margin:0!important}
.contact-form input,.contact-form textarea{display:block;font:13.3333px/18px 'Montserrat',sans-serif;padding:10px 17px;height:42px;border:1px solid #999;margin:0 0 15px;background:#fff}
.contact-form textarea{height:214px;padding:15px 17px;margin-bottom:21px}
.contact-form button{height:41px;box-sizing:border-box;padding:0 22px;font:600 12px/37px 'Montserrat',sans-serif;letter-spacing:2px;text-transform:uppercase}
@media(max-width:1000px){.q_logo img.normal{top:0!important}}

@media(max-width:1000px){
  .page_header .header_bottom{background:transparent}
  .page_header.light .q_logo img.normal{opacity:0!important}
  .page_header.light .q_logo img.light{display:block!important;opacity:1}
  .page_header.light .mobile_menu_button .menu-bars,.page_header.light nav.mobile_menu ul li a{color:#fff}
  .page_header.light nav.mobile_menu ul li{border-color:rgb(255 255 255 / 25%)}
  .page_header:not(.light) .mobile_menu_button .menu-bars{color:#1d1d1d}
}
