@font-face{font-family:Inter;src:url('/assets/fonts/InterVariable.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
/* One type family, a deliberate scale, and comfortable reading sizes. */
:root{--font-sans:Inter,'Segoe UI',Arial,sans-serif;--type-body:1rem;--type-small:.875rem;--type-label:.6875rem}
body{font-family:var(--font-sans);font-size:var(--type-body);line-height:1.7;font-optical-sizing:auto;font-synthesis:none}
h1,h2,h3,h4{font-weight:650;text-wrap:balance}
h1{letter-spacing:-.052em;line-height:1.08}
h2{letter-spacing:-.045em;line-height:1.12}
h3{letter-spacing:-.03em;line-height:1.25}
p{line-height:1.7}
.eyebrow{font-size:var(--type-label);letter-spacing:.16em;font-weight:600}
.small-text{font-size:var(--type-small)}
.desktop-nav{font-size:14px;gap:30px}
.button{font-size:15px;font-weight:600;letter-spacing:-.01em}
.button.small{font-size:13px}
.text-link{font-size:14px;font-weight:550}
.hero h1{font-size:clamp(46px,4.45vw,68px);font-weight:650;line-height:1.06;letter-spacing:-.055em;text-wrap:initial}
.hero .eyebrow{font-size:10px;letter-spacing:.14em}
.hero-description{font-size:17px;line-height:1.7;max-width:46ch}
.hero-disciplines{font-size:10px;letter-spacing:.14em}
.hero-foot{font-size:9px;letter-spacing:.12em}
.hero-float{font-size:14px}.hero-float small{font-size:11px}
.product-ribbon .ribbon-label{font-size:10px}
.section-head>p,.service-card p,.process-steps p,.project-caption p:last-child{font-size:15px;line-height:1.7}
.project-caption .eyebrow{font-size:10px}
.service-card h3{font-size:23px}
.service-number{font-size:12px}
.footer{font-size:14px}.footer .eyebrow{font-size:11px}
.footer-top p{font-size:14px;line-height:1.8}
.footer-top>div>a:not(.footer-wordmark){font-size:14px;margin-bottom:11px}
.footer-bottom{font-size:12px}.local-time{font-size:10px}
.floating-chat{bottom:max(24px,env(safe-area-inset-bottom))}
.contact-cta .container>p:last-child{font-size:14px}
.inline-perks{font-size:12px}
.breadcrumb{font-size:12px}
.sample-banner{font-size:12px}
.shop-perks{font-size:13px}
.category-filters button{font-size:14px;min-height:44px}
.category-filters button>span{font-size:12px}
.shop-sidebar>.eyebrow{font-size:11px}
.filter-block>label{font-size:13px}.filter-block .checkbox-label{font-size:13px}
.filter-block>.text-button{font-size:12px}
.results-head{font-size:13px}
.product-info>.eyebrow{font-size:10px;letter-spacing:.12em}
.product-info h3{font-size:18px;min-height:45px}
.product-bottom strong{font-size:17px;font-variant-numeric:tabular-nums}
.product-bottom small{font-size:12px}
.sample-tag{font-size:9px}.stock-tag{font-size:11px}
.help-card{font-size:13px}.help-card p{font-size:13px}.help-card a{font-size:13px}
label{font-size:14px}.checkbox-label{font-size:12px}
input:not([type=checkbox],[type=radio]),select,textarea{font-size:15px}
.contact-form-wrap>.eyebrow{font-size:10px}
.contact-methods small{font-size:10px}
.contact-copy>.small-text,.form-note{font-size:12px}
.product-purchase>p{font-size:16px}
.stock-pill{font-size:12px}.purchase-notes{font-size:13px}
.product-purchase>.text-link{font-size:13px}
.gallery-caption{font-size:11px}
.specs dl>div{font-size:14px}
.order-summary>.eyebrow{font-size:11px}
.summary-item strong{font-size:14px}.summary-item small{font-size:12px}.summary-item>b{font-size:13px}
.summary-totals>span{font-size:14px}.summary-totals .grand-total{font-size:22px}
.summary-security{font-size:11px}
.payment-choice strong{font-size:14px}.payment-choice small{font-size:12px}
.pickup-note,.demo-note{font-size:13px}.demo-note p{font-size:13px}
.order-page>.eyebrow{font-size:11px}.status-pill{font-size:12px}
.order-receipt>div{font-size:14px}.private-link p{font-size:12px}.private-link>.text-button{font-size:13px}
.admin-title p,.admin-note{font-size:13px}
.admin-tabs button{font-size:14px;min-height:44px}
.metric>p{font-size:13px}.metric small{font-size:12px}
.admin-table{font-size:13px}.admin-table th{font-size:11px}
.admin-table td strong{font-size:14px}.admin-table td small{font-size:12px}.admin-table .text-button{font-size:13px}
.admin-order-head>div>p,.admin-order-info small{font-size:12px}.admin-order-info p,.admin-order-lines{font-size:14px}
.admin-order-controls>button{font-size:13px;min-height:42px}
.admin-enquiry-top p{font-size:13px}.admin-enquiry>p{font-size:15px}
.cart-line h3{font-size:16px}.cart-line p{font-size:14px}
.cart-bottom p,.cart-demo-note{font-size:12px}
.cart-line .unavailable{font-size:12px}
@media(min-width:1100px){.hero-content{gap:38px;grid-template-columns:1.1fr 1fr}.hero-description{margin-bottom:34px}.hero-buttons{gap:30px}.hero-disciplines{margin-top:46px}}
@media(max-width:1100px) and (min-width:701px){.hero .eyebrow{font-size:9px}.hero-buttons{gap:18px}.hero-buttons .button,.hero-buttons .text-link{font-size:13px}.hero h1{font-size:clamp(43px,4.5vw,56px)}.product-info h3{font-size:17px}.product-bottom strong{font-size:16px}.footer-top{gap:35px}.footer-bottom{gap:20px}}
@media(max-width:700px){
 .hero h1{font-size:clamp(40px,7.6vw,54px);line-height:1.08;letter-spacing:-.052em;max-width:18ch}
 .hero h1 br:nth-child(2){display:initial}
 .hero .eyebrow{font-size:9px;letter-spacing:.12em;max-width:none;line-height:1.8}
 .hero-description{font-size:16px;line-height:1.75;max-width:39ch}
 .hero-buttons{gap:20px}.hero-buttons .button{font-size:14px;min-height:51px}.hero-buttons .text-link{font-size:13px}
 .hero-disciplines{font-size:9px;gap:14px;margin-top:33px}
 .hero-foot{font-size:8px;line-height:1.7;letter-spacing:.09em}.hero-foot a{font-size:8px;max-width:125px}
 .hero-float{font-size:12px}.hero-float small{font-size:10px}
 .product-ribbon .ribbon-label{font-size:10px}
 .section-head .eyebrow,.eyebrow{font-size:10px}
 .section-head h2{font-size:clamp(32px,7vw,40px)}
 .section-head>p{font-size:15px}.section-head .text-link{font-size:14px}
 .project-caption .eyebrow{font-size:10px}.project-caption h3{font-size:26px}.project-caption p:last-child{font-size:15px}
 .service-card h3{font-size:22px}.service-card p{font-size:15px;line-height:1.65}.service-card{padding-block:23px}
 .process h2{font-size:38px}.process-steps h3{font-size:21px}.process-steps p{font-size:15px}.process-steps span{font-size:12px}
 .hardware-section>div>p:not(.eyebrow){font-size:16px}.inline-perks{font-size:12px;gap:16px}
 .contact-cta .eyebrow{font-size:10px}.contact-cta h2{font-size:clamp(36px,8vw,48px);line-height:1.12}
 .contact-cta .container>p:last-child{font-size:14px}
 .footer-top>div:first-child{display:block}.footer-wordmark{font-size:30px;margin-bottom:17px}
 .footer-top>div:first-child>p{font-size:14px;line-height:1.75}.footer-top p{font-size:14px}
 .footer .eyebrow{font-size:11px;letter-spacing:.13em}.footer-top>div>a:not(.footer-wordmark){font-size:14px}
 .footer-bottom{font-size:12px;line-height:1.8}.footer-bottom>span:nth-child(2){gap:23px}
 .breadcrumb{font-size:12px}.sample-banner{font-size:11px;line-height:1.7}
 .shop-hero h1{font-size:46px;line-height:1.1}.shop-hero p{font-size:16px}.shop-hero .text-link{font-size:14px}
 .shop-perks{font-size:12px;gap:17px}.shop-perks>span{align-items:flex-start}
 .shop-section .section-head .text-link{font-size:13px}
 .search-field input{font-size:16px!important}.sort-field select{font-size:14px}
 .category-filters button{font-size:13px;min-height:44px}.category-filters button>span{font-size:11px}
 .filter-block>label:first-child{font-size:12px}.filter-block>label>strong{font-size:13px}.filter-block .checkbox-label,.filter-block>.text-button{font-size:12px}
 .results-head,.results-head .small-text{font-size:12px}
 .product-info{padding:15px 12px}.product-info>.eyebrow{font-size:9px;letter-spacing:.08em}.product-info h3{font-size:16px;line-height:1.3;min-height:42px}
 .product-bottom strong{font-size:15px}.product-bottom small{font-size:11px;line-height:1.6}.add-button{width:34px;height:38px;min-width:34px}
 .sample-tag{font-size:8px}.stock-tag{font-size:10px}
 .product-purchase>p{font-size:16px}.product-purchase h1{font-size:36px}.purchase-price{font-size:28px}.stock-pill{font-size:11px}
 .purchase-notes{font-size:13px}.product-purchase>.text-link{font-size:13px}.specs dl>div{font-size:14px}
 .contact-copy h1{font-size:44px;line-height:1.12}.contact-copy .lead{font-size:18px}.contact-methods small{font-size:10px}
 .contact-copy>.small-text{font-size:12px}.contact-form-wrap>.eyebrow{font-size:10px}.contact-form-wrap label,.checkout-fields label,label{font-size:14px}
 input:not([type=checkbox],[type=radio]),select,textarea{font-size:16px}.checkbox-label{font-size:12px}.form-note{font-size:12px}
 .order-summary .checkbox-label{font-size:12px}.summary-item strong{font-size:13px}.summary-item>b{font-size:12px}.summary-item small{font-size:12px}
 .order-page>p{font-size:16px}.order-page>.eyebrow{font-size:11px}.status-pill{font-size:11px}.order-receipt>div{font-size:13px}
 .private-link p{font-size:12px}.track-page>p{font-size:16px}.policy p{font-size:15px}.delivery-table>div{font-size:14px}
 .cart-line h3{font-size:16px}.cart-line p{font-size:14px}.dialog-head .eyebrow{font-size:10px}
 .admin-tabs button{font-size:13px}.metric>p,.metric small{font-size:12px}.admin-order-info p,.admin-order-lines{font-size:14px}.admin-order-head>div>p{font-size:12px}
 .admin-enquiry-top p{font-size:13px}.admin-order-controls>button{font-size:12px}.toast{font-size:14px}
}
@media(max-width:380px){.hero h1{font-size:38px}.hero-buttons{gap:16px}.hero-buttons .text-link{font-size:12px}.product-info h3{font-size:15px}.product-bottom{align-items:flex-start;flex-wrap:wrap}.product-bottom strong{font-size:15px}}

/* Keep horizontal category scrolling inside the shop, rather than widening the page. */
.shop-layout>*{min-width:0}.category-filters{max-width:100%}.shop-hero .eyebrow{font-size:11px;line-height:1.6}
@media(max-width:700px){.shop-layout{grid-template-columns:minmax(0,1fr)}.shop-hero .eyebrow{font-size:10px}.hero-buttons{flex-direction:column;align-items:stretch}.hero-buttons .button{width:100%}.hero-buttons .text-link{align-self:center}}
