/* Layout shared by the frontend and block editor. Tokens live in theme.json. */
:root{--qf-line:color-mix(in srgb,var(--wp--preset--color--ink) 20%,transparent);--qf-gutter:clamp(22px,4.5vw,80px)}
html{scroll-behavior:smooth;scroll-padding-top:calc(112px + var(--qf-admin-offset,0px))}body{margin:0}*{box-sizing:border-box}img{max-width:100%}a{text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}a:focus-visible,button:focus-visible{outline:3px solid currentColor;outline-offset:5px}p{margin:0}h1,h2,h3{margin:0;overflow-wrap:normal}figure{margin:0}section[id],footer[id]{scroll-margin-top:0}.wp-site-blocks{padding:0}.wp-site-blocks>*{margin-block-start:0}.wp-block-post-content>*{margin-block-start:0}.qf-wrap{width:100%;max-width:1600px;margin-inline:auto;padding-inline:var(--qf-gutter)}.qf-label{font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;line-height:1.5}.qf-small{font-size:16px;line-height:1.45}.qf-lead{font-size:clamp(23px,2.2vw,30px);line-height:1.4}/* The shell reserves space so shrinking the fixed header cannot move page content. */
.wp-site-blocks>header.wp-block-template-part{height:144px;position:relative;z-index:100}
.wp-site-blocks>header.wp-block-template-part .qf-header{position:fixed;inset-block-start:var(--qf-admin-offset,0px);inset-inline:0;max-width:none}
.qf-header{display:flex;justify-content:space-between;align-items:center;min-height:144px;padding-block:16px;padding-inline:max(var(--qf-gutter),calc((100vw - 1600px)/2 + var(--qf-gutter)));gap:32px;background:var(--wp--preset--color--paper);transition:min-height .18s ease,padding .18s ease,background-color .18s ease,box-shadow .18s ease}
.qf-header-is-compact .qf-header{min-height:92px;padding-block:6px;background:var(--wp--preset--color--sage);box-shadow:0 1px 0 var(--qf-line)}.qf-brand{width:205px;flex:none;transition:width .18s ease}.qf-logo{height:112px;overflow:hidden;width:205px;margin:0;transition:width .18s ease,height .18s ease}.qf-logo .custom-logo-link{display:block}.qf-logo img{display:block;width:205px;max-width:none;height:205px;margin-top:-40px;mix-blend-mode:multiply;transition:width .18s ease,height .18s ease,margin-top .18s ease}.qf-header-is-compact .qf-brand,.qf-header-is-compact .qf-logo{width:120px}.qf-header-is-compact .qf-logo{height:66px}.qf-header-is-compact .qf-logo img{width:120px;height:120px;margin-top:-25px}.qf-header nav{font-size:19px;font-weight:500}.qf-header .wp-block-navigation__container{gap:32px}.qf-nav-contact>a{border-bottom:1px solid currentColor;padding-block:8px}.qf-hero{padding-top:clamp(35px,6vw,90px);padding-bottom:45px}.qf-hero-title{font-size:clamp(46px,6.45vw,96px);line-height:1.13;letter-spacing:-.04em;margin-top:24px;max-width:1100px}.qf-hero-bottom{display:grid;grid-template-columns:1.2fr 1fr auto;gap:5%;align-items:end;margin-top:38px}.qf-intro{max-width:410px;font-size:18px;line-height:1.6}.wp-block-button__link{font-size:17px;font-weight:600;border-radius:0;padding:15px 21px;border:1px solid var(--wp--preset--color--ink);text-decoration:none;min-height:52px}.wp-block-button__link:hover{background:var(--wp--preset--color--aqua);color:var(--wp--preset--color--ink)}.wp-block-button.is-style-outline .wp-block-button__link{border:1px solid currentColor;padding:14px 20px}.qf-collage{display:grid;grid-template-columns:1.6fr .65fr .65fr;gap:18px;align-items:stretch;padding-block:24px 55px}.qf-collage .wp-block-image{position:relative;overflow:hidden;height:460px;min-width:0}/* Fill the frame even when Gutenberg saves inline image dimensions. */
.qf-collage .wp-block-image img{height:100%!important;width:100%!important;object-fit:cover;display:block}.qf-collage .qf-landscape img{object-position:center}.qf-collage figcaption{position:absolute;bottom:0;left:0;right:0;margin:0;padding:24px 20px 16px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.86));font-size:14px;line-height:1.5}.qf-collage-note{background:var(--wp--preset--color--aqua);padding:30px 24px;display:flex;flex-direction:column;justify-content:space-between;gap:35px}.qf-image-note{font-family:var(--wp--preset--font-family--besley);font-weight:700;font-size:clamp(24px,2.2vw,34px);letter-spacing:-.035em;line-height:1.25}.qf-clients{padding-block:26px 80px}.qf-client-list{font-size:clamp(18px,1.6vw,23px);line-height:1.85;margin-top:19px;max-width:1200px}.qf-services{background:var(--wp--preset--color--sage);padding-block:clamp(60px,7vw,105px)}.qf-service-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:10%}.qf-service-heading h2{margin:22px 0 30px}.qf-service-heading>p:not(.qf-label){max-width:380px}.qf-service-heading .wp-block-buttons{margin-top:32px}.qf-service-list{border-top:1px solid var(--qf-line)}.qf-service-row{display:grid;grid-template-columns:42px 1fr;gap:24px;padding-block:28px 30px;border-bottom:1px solid var(--qf-line);align-items:baseline}.qf-number{font-size:14px}.qf-service-copy h3{font-size:clamp(23px,2.15vw,30px);line-height:1.3}.qf-service-copy p{margin-top:15px;max-width:580px}.qf-work{padding-block:clamp(70px,8vw,120px)}.qf-section-head,.qf-visual-heading{display:flex;justify-content:space-between;align-items:end;gap:55px}.qf-section-head h2,.qf-visual-heading h2{margin-top:22px}.qf-section-intro{max-width:365px}.qf-work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 24px;align-items:start;margin-top:55px}.qf-work-item img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;display:block}.qf-work-carls img{object-position:70% center}.qf-work-item.qf-offset{margin-top:0}.qf-work-caption{padding-top:20px;border-bottom:1px solid var(--qf-line);padding-bottom:20px}.qf-work-caption h3{font-size:clamp(21px,2vw,29px);line-height:1.35}.qf-work-caption p{margin-top:8px}.qf-visual{background:var(--wp--preset--color--ink);color:var(--wp--preset--color--paper);padding-top:80px}.qf-visual h2{color:inherit}.qf-visual .qf-label{color:var(--wp--preset--color--aqua)}.qf-visual-heading{padding-bottom:50px}.qf-panorama{max-width:1600px;margin-inline:auto}.qf-panorama img{height:570px;width:100%;object-fit:cover;display:block}.qf-about{display:grid;grid-template-columns:1fr 1fr;gap:12%;padding-block:clamp(70px,8vw,120px)}.qf-about h2{margin-top:22px}.qf-about-copy p+p{margin-top:25px}.qf-about-copy .wp-block-buttons{margin-top:32px}.qf-footer{background:var(--wp--preset--color--sand);padding-block:80px 25px}.qf-footer-main{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:end;padding-block:25px 65px}.qf-footer-main h2{font-size:clamp(58px,7vw,104px);line-height:1.1;letter-spacing:-.035em}.qf-footer-contact p{font-size:22px}.qf-footer-contact .qf-email{margin-top:25px;font-size:clamp(20px,2.1vw,30px);font-weight:700;overflow-wrap:anywhere}.qf-footer-bottom{border-top:1px solid var(--qf-line);padding-top:25px;display:flex;justify-content:space-between;gap:20px;font-size:14px}.qf-skip{position:absolute;left:24px;top:-100px;z-index:999;background:var(--wp--preset--color--ink);color:white;padding:14px 20px}.qf-skip:focus{top:20px}.qf-video-section{padding-block:70px}.qf-video-section h2{margin-block:20px 35px}.qf-video video{width:100%;max-height:80vh;background:var(--wp--preset--color--ink)}.qf-video-section .qf-small{margin-top:20px}.editor-styles-wrapper .is-root-container>.wp-block{max-width:none}.editor-styles-wrapper .qf-hero-title{max-width:1100px}.editor-styles-wrapper .qf-collage img{height:100%}.editor-styles-wrapper .qf-logo img{height:205px}.editor-styles-wrapper .block-editor-block-list__layout{margin-top:0}
@media(min-width:1600px){.qf-collage .wp-block-image{height:530px}}
@media(max-width:1050px){.qf-hero-bottom{grid-template-columns:1fr 1fr;gap:24px}.qf-hero-bottom>.wp-block-buttons{grid-column:2}.qf-header .wp-block-navigation__container{gap:20px}.qf-collage{grid-template-columns:1.7fr 1fr}.qf-collage-note{grid-column:1/-1;display:flex;flex-direction:row;align-items:center}.qf-collage-note .qf-small{max-width:280px}.qf-collage .wp-block-image{height:400px}.qf-service-layout{gap:7%;grid-template-columns:.9fr 1.2fr}.qf-service-copy h3{font-size:25px}.qf-work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.wp-site-blocks>header.wp-block-template-part{height:128px}.qf-header{min-height:128px;padding-block:14px;gap:15px}html{scroll-padding-top:calc(108px + var(--qf-admin-offset,0px))}.qf-brand,.qf-logo{width:180px}.qf-logo{height:100px}.qf-logo img{width:180px;height:180px;margin-top:-35px}.qf-header-is-compact .qf-header{min-height:88px;padding-block:6px}.qf-header-is-compact .qf-brand,.qf-header-is-compact .qf-logo{width:120px}.qf-header-is-compact .qf-logo{height:66px}.qf-header-is-compact .qf-logo img{width:120px;height:120px;margin-top:-25px}.qf-header .wp-block-navigation__responsive-container-open{padding:12px}.qf-header .wp-block-navigation__responsive-container.is-menu-open{background:var(--wp--preset--color--paper);color:var(--wp--preset--color--ink);padding:30px}.qf-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{gap:25px;font-size:25px;align-items:flex-start}.qf-hero{padding-top:30px;padding-bottom:25px}.qf-hero-title{font-size:clamp(38px,8.8vw,59px);margin-top:22px;letter-spacing:-.035em}.qf-hero-bottom{display:block;margin-top:27px}.qf-hero-bottom .qf-intro{margin-top:22px}.qf-hero-bottom .wp-block-buttons{margin-top:25px}.qf-collage{gap:12px;padding-bottom:25px}.qf-collage .qf-landscape{grid-column:1/-1}.qf-collage .wp-block-image{height:290px}.qf-collage{grid-template-columns:1fr 1fr}.qf-collage-note{grid-column:auto;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:23px 18px}.qf-collage-note .qf-image-note{font-size:23px}.qf-collage-note .qf-small{font-size:15px}.qf-clients{padding-block:30px 55px}.qf-client-list br{display:none}.qf-label{font-size:12px}.qf-service-layout,.qf-about{display:block}.qf-service-list{margin-top:40px}.qf-service-row{gap:14px;grid-template-columns:26px 1fr}.qf-service-copy h3{font-size:23px}.qf-service-heading h2{margin-top:18px}.qf-section-head,.qf-visual-heading{display:block}.qf-section-intro{margin-top:27px}.qf-work-grid{display:block;margin-top:40px}.qf-work-item+.qf-work-item{margin-top:40px}.qf-work-item img{height:auto;aspect-ratio:4/5}.qf-work-item.qf-offset{margin-top:40px}.qf-work-caption h3{font-size:24px}.qf-visual{padding-top:60px}.qf-panorama img{height:340px}.qf-about-copy{margin-top:32px}.qf-footer{padding-top:60px}.qf-footer-main{display:block;padding-bottom:45px}.qf-footer-main h2{font-size:68px}.qf-footer-contact{margin-top:35px}.qf-footer-contact p{font-size:20px}.qf-footer-bottom{align-items:start;font-size:13px}.qf-footer-bottom p:first-child{max-width:190px}h2{font-size:clamp(33px,8vw,45px)!important}.qf-footer h2{font-size:68px!important}}
@media(max-width:850px){.qf-header .wp-block-navigation__responsive-container:not(.is-menu-open){display:none!important}.qf-header .wp-block-navigation__responsive-container-open{display:flex!important;padding:12px}.qf-header .wp-block-navigation__responsive-container.is-menu-open{background:var(--wp--preset--color--paper);padding:30px}.qf-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{font-size:25px;gap:25px;align-items:flex-start}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.qf-header,.qf-brand,.qf-logo,.qf-logo img{transition:none}}

/* Keep the signed-in WordPress toolbar above the sticky header. */
html:has(body.admin-bar){--qf-admin-offset:32px}
body.admin-bar #wpadminbar{position:fixed}
body.admin-bar .qf-header .wp-block-navigation__responsive-container.is-menu-open{top:var(--qf-admin-offset);height:calc(100% - var(--qf-admin-offset))}
@media(max-width:782px){html:has(body.admin-bar){--qf-admin-offset:46px}}

/* Vimeo keeps the complete film visible inside the image selection frame. */
.qf-work-item .wp-block-embed{margin:0;background:var(--wp--preset--color--ink)}
.qf-work-item .wp-block-embed__wrapper{position:relative}
.qf-work-item .wp-block-embed .wp-block-embed__wrapper::before{content:"";display:block;padding-top:125%}
.qf-work-item .wp-block-embed__wrapper iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* A native Vimeo block can replace the large image in the opening collage. */
.qf-collage .wp-block-embed{position:relative;min-width:0;overflow:hidden;margin:0;background:var(--wp--preset--color--ink)}
.qf-collage .wp-block-embed__wrapper{height:460px;position:relative}
.qf-collage .wp-block-embed .wp-block-embed__wrapper::before{display:none}
.qf-collage .wp-block-embed__wrapper iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.qf-collage .wp-block-embed figcaption{pointer-events:none}
@media(min-width:1600px){.qf-collage .wp-block-embed__wrapper{height:530px}}
@media(max-width:1050px){.qf-collage .wp-block-embed__wrapper{height:400px}}
@media(max-width:700px){.qf-collage .wp-block-embed__wrapper{height:290px}}

/* Cover-crop the muted Vimeo background, with a keyboard-accessible pause button. */
.qf-collage .qf-background-video .wp-block-embed__wrapper{container-type:size;overflow:hidden}
.qf-collage .qf-background-video iframe{inset:auto;left:50%;top:50%;width:max(100cqw,177.7778cqh);height:max(100cqh,56.25cqw);max-width:none;transform:translate(-50%,-50%);pointer-events:none}
.qf-background-video figcaption{padding-right:145px}
.qf-video-toggle{position:absolute;right:12px;bottom:12px;z-index:2;min-height:44px;padding:9px 13px;border:1px solid rgba(255,255,255,.8);border-radius:0;background:rgba(26,31,30,.85);color:#fff;font:500 14px/1.4 var(--wp--preset--font-family--atkinson);cursor:pointer}
.qf-video-toggle:hover{background:var(--wp--preset--color--ink)}


/* Compact, editable Yoast FAQ before the contact section. */
.qf-faq{display:grid;grid-template-columns:1fr 1.4fr;gap:10%;padding-block:clamp(60px,7vw,100px);border-top:1px solid var(--qf-line)}
.qf-faq-heading h2{margin-top:22px}
.qf-faq-list{margin:0;min-width:0}
.qf-faq .schema-faq-section{padding-block:24px 26px;border-top:1px solid var(--qf-line)}
.qf-faq .schema-faq-section:first-child{padding-top:0;border-top:0}
.qf-faq .schema-faq-question{display:block;font-family:var(--wp--preset--font-family--besley);font-weight:700;font-size:clamp(21px,1.8vw,26px);line-height:1.4;letter-spacing:-.025em}
.qf-faq .schema-faq-answer{margin-top:14px;font-size:18px;line-height:1.65}
@media(max-width:700px){.qf-faq{display:block}.qf-faq-list{margin-top:34px}.qf-faq .schema-faq-question{font-size:21px}.qf-faq .schema-faq-answer{font-size:17px}}
