/* QB Services — self-hosted, responsive website. No remote assets required. */
:root{--ink:#131827;--muted:#586174;--blue:#172aee;--lime:#d8fd72;--paper:#fff;--wash:#f3f5fa;--line:#dfe3ec;--dark:#101526;--max:1224px;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:7rem}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1rem/1.6 var(--sans);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit;text-decoration:none}button,a{touch-action:manipulation}[hidden]{display:none!important}
a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:6px}::selection{background:var(--lime);color:var(--ink)}
h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:600}h2{font-size:clamp(2rem,3.5vw,3.2rem);line-height:1.12;letter-spacing:-.05em}h3{letter-spacing:-.045em;line-height:1.16}p{max-width:66ch}
.container{width:min(var(--max),calc(100% - 6rem));margin-inline:auto}.section{padding-block:6.5rem}.eyebrow{font-size:.8125rem;line-height:1.6;letter-spacing:.09em;text-transform:uppercase;font-weight:700}.skip-link{position:fixed;z-index:100;left:1rem;top:-10rem;padding:.75rem 1rem;background:var(--ink);color:white}.skip-link:focus{top:1rem}
.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:100px;gap:2rem}.brand{display:inline-flex;align-items:center;gap:.7rem;flex-shrink:0}.brand-symbol{font-size:3.35rem;line-height:1;letter-spacing:-.11em;font-weight:800;padding-right:.14em}.brand-symbol span{color:var(--blue)}.brand-name{font-size:.92rem;font-weight:700;line-height:1.1;letter-spacing:-.025em}.site-header nav{display:flex;align-items:center;gap:2rem;font-size:.925rem;font-weight:500}.site-header nav>a:not(.nav-contact){padding:.65rem 0;position:relative}.site-header nav>a:not(.nav-contact):after{content:"";position:absolute;bottom:.3rem;left:0;right:0;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .2s}.site-header nav>a:hover:after{transform:scaleX(1)}.nav-contact{border:1px solid var(--ink);border-radius:3px;padding:.7rem 1.1rem;display:flex;gap:1.3rem;align-items:center;transition:background .2s,color .2s}.nav-contact:hover{background:var(--ink);color:#fff}.nav-contact span{font-size:1.3rem}.menu-toggle{display:none}
.hero{display:grid;grid-template-columns:1.08fr 1fr;gap:3.6rem;align-items:center;padding-block:4.6rem 4.8rem}.hero .eyebrow{display:flex;gap:.65rem;align-items:center;font-size:.75rem;letter-spacing:.065em}.short-line{display:inline-block;width:1.55rem;height:2px;background:var(--blue);flex-shrink:0}.hero h1{font-size:clamp(3.8rem,6.8vw,6.4rem);line-height:.99;letter-spacing:-.072em;margin-block:1.6rem 1.6rem;font-weight:600}.hero h1>span{color:var(--blue)}.hero-description{font-size:1.1rem;color:var(--muted);max-width:28rem;line-height:1.65}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1.6rem;margin-top:2rem}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:1.6rem;min-height:54px;padding:.9rem 1.25rem;font-weight:700;font-size:.9375rem;border-radius:3px;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button>span{font-size:1.35rem;line-height:1}.button-dark{background:var(--ink);color:white}.button-dark:hover{background:var(--blue)}.text-link{font-size:.9375rem;font-weight:600;text-decoration:underline;text-underline-offset:.4em;text-decoration-color:#9aa1af;line-height:1.6}.text-link:hover{color:var(--blue)}.hero-bottom{font-size:.8125rem;color:var(--muted);margin-top:2.2rem}.hero-art{position:relative;align-self:stretch;min-height:560px;overflow:hidden;border-radius:4px;background:#0b142d}.hero-art img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;object-position:50% 50%}.hero-art figcaption{position:absolute;z-index:1;bottom:0;left:0;right:0;display:flex;justify-content:space-between;gap:1rem;padding:4rem 1.7rem 1.4rem;color:#fff;font-size:.875rem;background:linear-gradient(transparent,rgba(9,16,36,.78))}.art-caption-right{font-size:.75rem;letter-spacing:.08em;color:#dbe0f1}
.service-band{background:var(--lime);border-block:1px solid rgba(0,0,0,.08)}.service-band-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1.35rem;font-size:.95rem;font-weight:600;letter-spacing:-.015em}.band-divider{color:#596831;font-weight:400;font-size:1.3rem}
.section-intro{display:grid;grid-template-columns:1fr 2fr;gap:3rem;align-items:start;margin-bottom:3.5rem}.section-intro>.eyebrow{padding-top:.6rem}.section-intro>div{display:grid;grid-template-columns:1.3fr 1fr;gap:2.3rem;align-items:end}.section-intro p:not(.eyebrow){color:var(--muted);font-size:1rem;line-height:1.65;max-width:25rem}.service-list{border-top:1px solid var(--line)}.service-row{display:grid;grid-template-columns:3rem 1.05fr 1.5fr 3.1rem;gap:2rem;align-items:start;padding-block:2.7rem;border-bottom:1px solid var(--line)}.service-number{font-size:.875rem;color:var(--muted);padding-top:.2rem}.service-category{font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:600}.service-title h3{font-size:2rem;margin-top:.6rem}.service-description>p{max-width:35rem;color:var(--muted)}.tags{list-style:none;padding:0;margin:1.15rem 0 0;display:flex;flex-wrap:wrap;gap:.5rem}.tags li{font-size:.75rem;line-height:1.5;padding:.32rem .65rem;background:var(--wash);border:1px solid #e5e8ee;border-radius:3px;color:#465064}.service-icon{width:44px;height:44px;color:var(--blue);margin-top:.3rem}
.approach{background:var(--wash)}.approach-heading{display:grid;grid-template-columns:1fr 2fr;gap:3rem;align-items:start}.approach-heading .eyebrow{padding-top:.6rem}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3.7rem;margin-top:3.8rem}.process-step{padding-top:1.4rem;border-top:2px solid var(--ink)}.step-number{font-size:.8125rem;color:var(--blue);font-weight:700}.process-step h3{font-size:1.8rem;margin:.85rem 0 1rem}.process-step p{color:var(--muted);font-size:1rem;max-width:31rem}
.about{display:grid;grid-template-columns:1fr 1.5fr;gap:7rem;align-items:center}.about-wordmark{margin-top:2rem;font-size:3.9rem;line-height:1;letter-spacing:-.065em;font-weight:600}.about-wordmark span{color:var(--blue)}.about-copy h2{font-size:2.7rem;max-width:35rem}.about-copy>p{margin-top:1.3rem;color:var(--muted);max-width:37rem}.about-copy .text-link{display:inline-block;margin-top:1.8rem}.about-copy .text-link span{margin-left:.6rem}
.contact{background:var(--dark);color:#fff}.contact-inner{display:grid;grid-template-columns:1.25fr 1fr;align-items:center;gap:5rem;padding-block:5.5rem}.contact .eyebrow{color:#b9c2d8;margin-bottom:1.6rem}.contact h2{font-size:clamp(3rem,5vw,4.8rem);line-height:1.03;letter-spacing:-.06em}.contact h2 em{font-style:normal;color:var(--lime)}.contact-intro{font-size:1.6rem;line-height:1.35;letter-spacing:-.02em}.contact-status{border-top:1px solid #3c4559;margin-top:2rem;padding-top:1.1rem}.contact-status-label{font-size:.9375rem;font-weight:700;color:var(--lime);margin-bottom:.4rem}.contact-status p:last-child{font-size:1rem;color:#bdc5d6;max-width:27rem}.button-lime{background:var(--lime);color:var(--ink);margin-top:1.7rem}.button-lime:hover{background:white}.contact-address{font-size:.9375rem;color:#bdc5d6;margin-top:1rem;overflow-wrap:anywhere}.contact a:focus-visible{outline-color:var(--lime)}
.site-footer{background:var(--dark);color:white}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:1.8rem;border-top:1px solid #343c50}.brand-footer .brand-symbol{font-size:2.5rem}.brand-footer .brand-symbol span{color:var(--lime)}.brand-footer .brand-name{font-size:.75rem}.footer-inner p,.back-top{font-size:.8125rem;color:#bdc5d6}.back-top span{margin-left:.5rem}.back-top:hover{color:var(--lime)}
@media(min-width:1600px){.hero-art{min-height:620px}.hero{gap:4.8rem}.hero h1{font-size:6.8rem}}
@media(max-width:1100px){.container{width:calc(100% - 4rem)}.hero{gap:2.5rem}.hero-art{min-height:520px}.hero h1{font-size:5.2rem}.hero .eyebrow{font-size:.75rem}.section-intro{grid-template-columns:.8fr 2fr;gap:2rem}.section-intro>div{grid-template-columns:1fr;gap:1.3rem}.section-intro p:not(.eyebrow){max-width:33rem}.service-row{grid-template-columns:2rem 1fr 1.25fr 2.5rem;gap:1.3rem}.service-title h3{font-size:1.8rem}.service-icon{width:36px;height:36px}.about{gap:4rem}.about-copy h2{font-size:2.25rem}.contact-inner{gap:3rem}.service-band-inner{font-size:.84rem}.site-header nav{gap:1.4rem}}
@media(max-width:800px){.container{width:calc(100% - 3rem)}.header-inner{min-height:82px}.site-header nav{gap:1rem;font-size:.875rem}.nav-contact{padding:.55rem .8rem;gap:.8rem}.brand-symbol{font-size:2.8rem}.brand-name{font-size:.8rem}.hero{padding-block:3rem;gap:2rem}.hero h1{font-size:4.1rem}.hero-art{min-height:480px}.hero-description{font-size:1rem}.hero-actions{gap:1.3rem}.hero-bottom{margin-top:1.5rem}.section{padding-block:4.5rem}.section-intro,.approach-heading{grid-template-columns:1fr;gap:1.3rem}.section-intro>div{display:flex;gap:2rem;align-items:end;justify-content:space-between}.section-intro>div>h2{flex:1}.section-intro>div>p{flex:1}.service-row{grid-template-columns:1.7rem 1fr 1.25fr;gap:1rem}.service-icon{display:none}.service-title h3{font-size:1.6rem}.service-description p{font-size:1rem}.process-grid{gap:2rem}.process-step p{font-size:1rem}.about{grid-template-columns:.85fr 1.3fr;gap:2.2rem}.about-wordmark{font-size:3rem}.about-copy h2{font-size:2rem}.contact-inner{gap:2.5rem;padding-block:4.5rem}.contact-intro{font-size:1.4rem}}
@media(max-width:680px){html{scroll-padding-top:6rem}.container{width:calc(100% - 2.5rem)}.header-inner{min-height:78px;gap:1rem}.brand-symbol{font-size:2.7rem}.brand-name{font-size:.8rem}.menu-toggle{display:flex;align-items:center;gap:.7rem;border:1px solid var(--line);border-radius:3px;background:#fff;min-height:44px;padding:.6rem .75rem;font-size:.875rem;color:var(--ink)}.menu-lines{display:block;width:18px;height:12px;border-top:2px solid currentColor;border-bottom:2px solid currentColor}.menu-toggle[aria-expanded="true"] .menu-lines{border-bottom:0;transform:translateY(5px) rotate(45deg)}.menu-toggle[aria-expanded="true"] .menu-lines:after{content:"";display:block;position:relative;top:-2px;width:18px;border-top:2px solid currentColor;transform:rotate(90deg)}.site-header nav{display:flex;position:absolute;left:0;right:0;top:100%;background:white;box-shadow:0 14px 24px #0c183318;padding:1.2rem 1.25rem 1.4rem;flex-direction:column;align-items:stretch;gap:.35rem;border-bottom:1px solid var(--line);visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity .15s,transform .15s,visibility .15s}.site-header nav.is-open{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0)}.site-header nav>a:not(.nav-contact){padding:.7rem .5rem}.nav-contact{margin-top:.45rem;justify-content:space-between;padding:.7rem 1rem}.hero{grid-template-columns:1fr;gap:2.2rem;padding-block:2.5rem 2.6rem}.hero .eyebrow{font-size:.75rem;letter-spacing:.06em}.hero h1{font-size:clamp(3.7rem,14vw,5.4rem);margin-block:1.4rem 1.3rem;line-height:1}.hero-description{max-width:31rem;line-height:1.6;font-size:1.025rem}.hero-actions{margin-top:1.5rem;gap:1.3rem}.button{min-height:52px;font-size:.875rem;padding:.85rem 1rem;gap:1.2rem}.text-link{font-size:.875rem}.hero-bottom{font-size:.75rem;margin-top:1.6rem}.hero-art{min-height:0;aspect-ratio:1.2}.hero-art img{object-position:50% 50%}.hero-art figcaption{font-size:.8125rem;padding:3rem 1.2rem 1rem}.service-band-inner{padding-block:1.25rem;justify-content:flex-start;flex-wrap:wrap;gap:.45rem .8rem;font-size:.8125rem}.band-divider{font-size:.875rem}.section{padding-block:3.8rem}.section-intro{gap:1rem;margin-bottom:2.2rem}.section-intro>div{display:block}.section-intro>div>p{margin-top:1.2rem;max-width:32rem;font-size:1rem}.eyebrow{font-size:.75rem}h2{font-size:2.5rem}.service-row{grid-template-columns:1.8rem 1fr;gap:.4rem .8rem;padding-block:2rem}.service-number{padding-top:.1rem}.service-title h3{font-size:1.8rem;margin-top:.5rem}.service-title h3 br{display:none}.service-category{font-size:.75rem}.service-description{grid-column:2;margin-top:.8rem}.service-description>p{font-size:1rem}.tags{margin-top:1rem;gap:.4rem}.tags li{font-size:.75rem;padding:.3rem .5rem}.approach-heading{gap:1rem}.process-grid{grid-template-columns:1fr;gap:2.1rem;margin-top:2.3rem}.process-step{padding-top:1rem}.process-step h3{font-size:1.75rem;margin:.65rem 0 .7rem}.process-step p{font-size:1rem;max-width:36rem}.about{grid-template-columns:1fr;gap:2.2rem}.about-wordmark{font-size:3.6rem;margin-top:1.4rem}.about-wordmark br{display:none}.about-wordmark{max-width:20rem}.about-copy h2{font-size:2.2rem}.about-copy>p{font-size:1rem}.contact-inner{grid-template-columns:1fr;gap:2.3rem;padding-block:3.8rem}.contact h2{font-size:3.35rem}.contact .eyebrow{margin-bottom:1.3rem}.contact-intro{font-size:1.3rem}.contact-status{margin-top:1.5rem}.footer-inner{flex-wrap:wrap;gap:1.4rem 1rem;padding-block:1.6rem}.footer-inner>p{order:3;width:100%;font-size:.75rem}.brand-footer .brand-symbol{font-size:2.4rem}.back-top{font-size:.8rem}}
@media(max-width:360px){.container{width:calc(100% - 2rem)}.hero h1{font-size:3.6rem}.hero-actions{align-items:flex-start;flex-direction:column;gap:1.1rem}.service-band-inner{flex-direction:column;align-items:flex-start;gap:.4rem}.band-divider{display:none}h2{font-size:2.2rem}.about-wordmark{font-size:3.2rem}.contact h2{font-size:3rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.button:hover{transform:none}}
@media print{.site-header{position:static}.menu-toggle,.back-top{display:none}.site-header nav{display:none}.container{width:100%}.section{padding-block:2rem}.hero{padding-block:2rem}.hero-art{min-height:350px}.hero h1{font-size:4rem}.contact-inner{padding-block:2rem}.contact,.site-footer{-webkit-print-color-adjust:exact;print-color-adjust:exact}.service-row,.process-step{break-inside:avoid}}
