@font-face{font-family:'DM Sans';src:url('../fonts/dmsans-variable.ttf') format('truetype');font-style:normal;font-weight:100 1000;font-display:swap}
:root{--blue:#2355d6;--ink:#192b4d;--muted:#526075;--pale:#edf2ff;--teal:#0d8191;--line:#dce4f6;--gutter:56px;--radius:26px;--blue-hover:#1745b5;}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:#fff;color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:18px;line-height:1.5}
button,input{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button{cursor:pointer;color:inherit}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
[hidden]{display:none!important}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--teal);outline-offset:5px}
::selection{background:var(--blue);color:#fff}
.svg-definitions{position:absolute;width:0;height:0;overflow:hidden}
.container{max-width:1536px;padding-inline:var(--gutter);margin-inline:auto;width:100%}
.icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.icon.small{width:15px;height:15px}
.skip-link{position:fixed;z-index:40;top:-100px;left:12px;border-radius:30px;padding:10px 20px;background:var(--blue);color:#fff;transform:none}
.skip-link:focus{top:12px;transform:none}
.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;border:1px solid #dce5f7;border-radius:16px;background:linear-gradient(145deg,#fff 65%,var(--pale));color:var(--ink);padding:12px 24px;min-height:49px;font-size:16px;line-height:1.4;font-weight:600;white-space:nowrap;box-shadow:inset 0 1px 2px #fff,0 2px 3px #d3dce861;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}
.button:hover{background:linear-gradient(145deg,#fff 45%,#e5edff);border-color:#b5c7ec;box-shadow:inset 0 1px 2px #fff,0 3px 5px #c1cfe44d}
.button .icon{width:21px;height:21px}
.button-outline{border:1px solid #dce5f7;color:var(--ink);background:linear-gradient(145deg,#fff 65%,var(--pale));padding:11px 23px}
.button-outline:hover{background:linear-gradient(145deg,#fff 45%,#e5edff);border-color:#b5c7ec}
.icon-button{display:inline-flex;align-items:center;justify-content:center;width:45px;height:45px;background:linear-gradient(145deg,#fff 65%,var(--pale));color:var(--ink);border:1px solid #dce5f7;border-radius:14px;padding:10px;box-shadow:inset 0 1px 2px #fff,0 2px 3px #d3dce861;transition:background .15s ease,border-color .15s ease}
.icon-button:hover{background:#edf2ff;border-color:#b5c7ec}
.text-link{border:0;background:none;color:var(--blue);padding:5px 0;display:inline-flex;align-items:center;gap:14px;font-size:18px;font-weight:700;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1.5px}
.text-link:hover{color:var(--blue-hover)}
.text-link .icon{width:21px;height:21px}
.site-header{position:relative;z-index:10}
.header-row{height:90px;display:flex;align-items:center;justify-content:space-between;gap:35px}
.brand{flex-shrink:0}
.brand img{height:68px;width:auto}
.header-nav{display:flex;align-items:center;gap:35px;margin-left:40px}
.nav-link{display:inline-flex;align-items:center;gap:8px;border:0;background:none;padding:10px 0;font-size:16px;font-weight:700;white-space:nowrap}
.nav-link:hover{color:var(--blue)}
.header-actions{display:flex;gap:15px;align-items:center}
.contact-button{min-height:45px;padding:10px 30px;font-size:16px}
.areas-nav{position:relative}
.areas-menu{position:absolute;top:calc(100% + 15px);left:-22px;width:300px;padding:14px;background:white;border:1px solid var(--line);border-radius:23px;box-shadow:0 15px 40px #29426724}
.areas-menu button{display:flex;align-items:center;justify-content:space-between;gap:20px;border:0;background:none;border-radius:14px;width:100%;padding:13px 12px;text-align:left;font-size:17px}
.areas-menu button:hover{background:var(--pale);color:var(--blue)}
.menu-toggle,.mobile-menu{display:none}
h2,h3{font-style:normal;font-weight:750;letter-spacing:-.025em;line-height:1.08}
h2{font-size:49px;margin:0}
h3{font-size:31px;margin:0 0 7px}
.featured{padding-top:62px;padding-bottom:55px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:29px}
.product-showcase{display:grid;grid-template-columns:.85fr 1.15fr;gap:20px;grid-template-rows:238px 238px}
.product-tile{min-width:0;border-radius:var(--radius);overflow:hidden;position:relative;background:linear-gradient(145deg,#fff 65%,var(--pale));border:1px solid #e3eaf8;box-shadow:inset 0 2px 4px #fff,0 3px 1px #d3dce861}
.product-tile:first-child{grid-row:span 2}
.product-tile-hit{display:grid;grid-template-columns:47% 53%;align-items:center;text-align:left;width:100%;height:100%;border:0;padding:24px 28px 24px 20px;background:none;color:var(--ink);position:relative}
.product-tile:first-child .product-tile-hit{display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;padding:25px 30px 27px}
.product-tile-hit:focus-visible{outline-offset:-6px}
.tile-image{height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:16px;min-width:0}
.tile-image img{width:100%;height:100%;object-fit:contain;filter:none;transition:transform .22s ease}
.product-tile:first-child .tile-image{height:335px}
.product-tile:first-child .tile-image img{max-width:350px}
.tile-copy{padding-left:21px;padding-right:24px;min-width:0}
.product-tile:first-child .tile-copy{padding-left:0;padding-right:62px}
.tile-copy p{font-size:17px;line-height:1.45;margin:0;max-width:285px}
.tile-arrow{position:absolute;right:27px;bottom:25px;display:flex;align-items:center;justify-content:center;width:43px;height:43px;border:1px solid #dce5f7;border-radius:14px;background:linear-gradient(145deg,#fff 65%,var(--pale));color:var(--blue);box-shadow:inset 0 1px 2px #fff,0 2px 3px #d3dce861;transition:border-color .18s ease}
.tile-arrow .icon{width:22px;height:22px;transform:rotate(-45deg)}
.product-tile-hit:hover .tile-image img{transform:scale(1.035)}
.product-tile-hit:hover .tile-arrow{border-color:#b5c7ec}
.product-tile-hit:hover h3{color:var(--blue)}
.about{display:grid;grid-template-columns:1fr 1fr;gap:85px;padding-top:27px;padding-bottom:69px;align-items:center}
.about h2{font-size:45px;line-height:1.08;margin:0 0 23px}
.about-copy p{font-size:19px;line-height:1.55;max-width:540px;margin:0 0 24px;color:var(--muted)}
.specialties{display:flex;flex-direction:column}
.specialties a{display:flex;align-items:center;justify-content:space-between;gap:24px;background:none;border:0;border-bottom:1px solid #b9c8e2;text-align:left;padding:23px 0 22px}
.specialties a:last-child{border-bottom:0}
.specialties a>span{display:flex;flex-direction:column;gap:4px}
.specialties strong{font-style:normal;letter-spacing:-1px;font-size:30px;line-height:1.2;font-weight:700}
.specialties a>span>span{font-size:17px;color:var(--muted)}
.specialties .icon{width:28px;height:28px;color:var(--blue)}
.specialties a:hover strong{color:var(--blue)}
@media(max-width:1200px){
:root{--gutter:40px}
.header-nav{gap:24px;margin-left:0}
.header-row{gap:25px}
.nav-link{font-size:15px}
.header-actions{gap:10px}
.contact-button{padding-inline:24px}
h2{font-size:43px}
.product-showcase{grid-template-rows:220px 220px}
.product-tile:first-child .tile-image{height:295px}
.product-tile-hit{padding:20px}
.tile-copy{padding-left:15px;padding-right:16px}
.tile-copy h3{font-size:27px}
.tile-copy p{font-size:16px}
.tile-arrow{right:20px;bottom:19px;width:38px;height:38px}
.about{gap:55px}
.about h2{font-size:39px}
.specialties strong{font-size:28px}}
@media(max-width:950px){
:root{--gutter:30px}
.header-row{height:85px}
.brand img{height:64px}
.header-nav{display:none}
.menu-toggle{display:inline-flex}
.contact-button{margin-right:4px}
.mobile-menu:not([hidden]){display:flex;flex-direction:column;padding:10px var(--gutter) 25px;background:white;border-top:1px solid var(--line)}
.mobile-menu button,.mobile-menu a{text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:12px 0;font-size:17px}
.featured{padding-block:49px}
h2{font-size:36px}
.product-showcase{gap:16px;grid-template-columns:.9fr 1.1fr;grid-template-rows:210px 210px}
.product-tile-hit{padding:17px;grid-template-columns:45% 55%}
.product-tile:first-child .product-tile-hit{padding:20px}
.product-tile:first-child .tile-image{height:285px}
.tile-copy{padding-left:12px;padding-right:0;padding-bottom:22px}
.tile-copy h3{font-size:24px}
.tile-copy p{font-size:14px}
.product-tile:first-child .tile-copy{padding-right:40px;padding-bottom:0}
.tile-arrow{width:34px;height:34px;right:15px;bottom:15px}
.tile-arrow .icon{width:18px;height:18px}
.about{gap:35px;padding-top:20px;padding-bottom:49px}
.about h2{font-size:34px}
.about-copy p{font-size:17px}
.about .text-link{font-size:17px}
.specialties strong{font-size:26px}
.specialties a>span>span{font-size:15px}}
@media(max-width:700px){
:root{--gutter:22px}
.header-row{height:79px;gap:20px}
.brand img{height:60px}
.header-actions{gap:9px}
.header-actions .contact-button{display:none}
.icon-button{width:42px;height:42px}
.featured{padding-top:42px;padding-bottom:39px}
.section-heading{align-items:flex-start;gap:17px;flex-direction:column;margin-bottom:24px}
.section-heading h2{font-size:32px;max-width:360px}
.section-heading .button{font-size:15px;min-height:43px;padding:9px 19px}
.product-showcase{grid-template-columns:1fr;grid-template-rows:390px 205px 205px;gap:17px}
.product-tile:first-child{grid-row:auto}
.product-tile:first-child .product-tile-hit{padding:22px}
.product-tile:first-child .tile-image{height:250px}
.product-tile-hit{padding:18px;grid-template-columns:46% 54%}
.product-tile:first-child .tile-copy{padding-bottom:0}
.tile-copy{padding-left:14px;padding-bottom:20px}
.tile-copy h3{font-size:25px;letter-spacing:-.6px}
.tile-copy p{font-size:15px}
.tile-arrow{right:20px;bottom:20px;width:36px;height:36px}
.about{grid-template-columns:1fr;gap:25px;padding-top:10px;padding-bottom:43px}
.about h2{font-size:37px}
.about-copy p{font-size:18px;margin-bottom:18px}
.specialties a{padding-block:20px}
.specialties strong{font-size:28px}
.specialties a>span>span{font-size:15px}
.specialties .icon{width:27px;height:27px}}
@media(max-width:365px){
.section-heading h2{font-size:29px}
.product-tile-hit{padding-inline:14px}
.tile-copy h3{font-size:23px}
.tile-copy p{font-size:14px}
.about h2{font-size:33px}}
@media(prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
*,*::before,*::after{transition:none!important;animation:none!important}}
.product-tile:nth-child(2) .tile-image img{transform:scale(1.55)}
.product-tile:nth-child(2) .product-tile-hit:hover .tile-image img{transform:scale(1.59)}

.site-footer{margin-top:10px;border-top:1px solid var(--line);background:#fff;color:var(--muted);scroll-margin-top:24px}
.footer-main{display:grid;grid-template-columns:1.1fr .8fr 1.2fr .85fr;gap:45px;padding-top:35px;padding-bottom:32px;align-items:start}
.footer-brand img{width:125px;height:auto}
.footer-brand p{font-size:14px;line-height:1.65;max-width:220px;margin:14px 0 0}
.footer-column{display:flex;flex-direction:column;align-items:flex-start;gap:9px;min-width:0}
.footer-column h2{font-size:15px;line-height:1.4;letter-spacing:0;font-weight:650;color:var(--ink);margin:3px 0 5px}
.footer-column>button,.footer-bottom button{border:0;background:none;color:inherit;padding:0;text-align:left;font:inherit;cursor:pointer}
.footer-column>button,.footer-contact a,.footer-social-link{font-size:14px;line-height:1.6}
.footer-column>button:hover,.footer-contact a:hover,.footer-bottom a:hover,.footer-bottom button:hover{color:var(--blue);text-decoration:underline;text-underline-offset:4px}
.footer-contact{display:flex;flex-direction:column;align-items:flex-start;gap:9px;font-style:normal}
.footer-contact p{font-size:13px;line-height:1.7;margin:1px 0 0}
.footer-social-links{display:flex;flex-wrap:wrap;gap:12px}
.footer-social-link{display:inline-flex;align-items:center;gap:10px;color:var(--ink)}
.footer-social-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,#fff 65%,var(--pale));color:var(--blue);transition:background .15s ease,border-color .15s ease}
.footer-social-icon .icon{width:20px;height:20px}
.footer-social-link:hover .footer-social-icon{background:var(--pale);border-color:#b5c7ec}
.footer-social-link:hover>span:last-child{text-decoration:underline;text-underline-offset:4px}
.footer-bottom{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:59px;padding-block:17px;font-size:12px;line-height:1.5}
.footer-bottom::before{content:"";position:absolute;top:0;left:var(--gutter);right:var(--gutter);height:1px;background:var(--line)}
.footer-bottom nav{display:flex;align-items:center;gap:25px}
@media(max-width:1100px){.footer-main{gap:28px;grid-template-columns:1fr .8fr 1.2fr .9fr}}
@media(max-width:850px){.footer-main{grid-template-columns:1fr 1fr;gap:29px 42px;padding-top:30px;padding-bottom:28px}.footer-brand p{max-width:270px}}
@media(max-width:480px){.footer-main{grid-template-columns:1fr;gap:26px;padding-top:27px;padding-bottom:26px}.footer-brand img{width:116px}.footer-brand p{margin-top:10px;max-width:290px}.footer-column h2{font-size:14px;margin-top:0;margin-bottom:3px}.footer-column,.footer-contact{gap:8px}.footer-column>button,.footer-contact a,.footer-social-link{font-size:14px}.footer-contact p{font-size:13px}.footer-bottom{flex-direction:column;align-items:flex-start;gap:10px;padding-block:17px 21px;min-height:0}.footer-bottom nav{gap:22px}}
