@font-face{font-family:"Manrope";src:url("../fonts/manrope-cyrillic.woff2") format("woff2");font-style:normal;font-weight:200 800;font-display:swap;unicode-range:U+0400-04FF,U+0500-052F,U+2DE0-2DFF,U+A640-A69F,U+1C80-1C8A,U+20B4}
@font-face{font-family:"Manrope";src:url("../fonts/manrope-latin.woff2") format("woff2");font-style:normal;font-weight:200 800;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--ink:#2e3034;--pale:#edf8fc;--line:#bdd2dc;--radius:20px;--header-h:72px;--anchor-offset:calc(var(--header-h) + 34px);--shell:min(1320px,calc(100% - 64px));--type-section-eyebrow:14px;--type-section-title:32px;--type-body:16px;--type-subtitle:20px;--type-button:16px;--accent-text:#4f7689;--muted-text:#60717b;--control-line:#5f899c;color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--anchor-offset)}html,body{font-family:"Manrope",sans-serif}body{margin:0;background:#fff;overflow-x:hidden}img{display:block;max-width:100%;object-fit:cover}a{color:inherit}button,input,textarea,select{font:inherit}section[id]{scroll-margin-top:0}.shell{width:var(--shell);margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:8px;left:8px;z-index:1000;transform:translateY(-150%);background:#fff;padding:12px 18px;border-radius:10px}.skip-link:focus{transform:none}:focus-visible{outline:3px solid #1888b8;outline-offset:4px}
.site-header{position:fixed;z-index:50;top:24px;left:50%;transform:translateX(-50%);width:min(1320px,calc(100% - 64px));height:var(--header-h);display:flex;align-items:center;gap:40px;padding:0 28px;border-radius:38px;background:rgba(82,82,82,.58);backdrop-filter:blur(16px);color:#fff}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;font-size:29px;letter-spacing:.32em;font-weight:650}.site-nav{display:flex;align-items:center;gap:10px;margin-left:auto}.site-nav a{padding:10px 18px;border-radius:20px;text-decoration:none;font-size:14px}.site-nav a:hover,.site-nav a:focus-visible{background:rgba(255,255,255,.35)}.menu-toggle{display:none;margin-left:auto;background:transparent;border:0;color:#fff;width:44px;height:44px}.menu-toggle span:not(.sr-only){display:block;height:2px;margin:7px;background:currentColor}
@media(min-width:769px){:root{--header-h:90px}.site-header{top:clamp(32px,2.8vw,42px);width:calc(100% - clamp(80px,6.25vw,120px));max-width:1800px;height:var(--header-h);gap:clamp(48px,5vw,96px);padding-inline:clamp(32px,2.5vw,48px);border-radius:999px;background:rgba(88,87,84,.58);backdrop-filter:blur(10px)}.site-header>.brand{flex:0 0 auto;gap:0;font-size:inherit;letter-spacing:normal;font-weight:inherit}.site-header .brand-logo{display:block;width:clamp(300px,28vw,420px);height:auto;object-fit:contain}.site-nav{gap:clamp(8px,1vw,18px);white-space:nowrap}.site-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:999px;font-size:14px;font-weight:400}.site-nav a.is-active{background:rgba(232,232,230,.74);color:#333;border-radius:999px}.site-nav a:hover,.site-nav a:focus-visible{background:rgba(232,232,230,.52);color:#333}.site-nav a.is-active:hover,.site-nav a.is-active:focus-visible{background:rgba(232,232,230,.82)}}
.hero{position:relative;display:flex;align-items:center;height:100vh;height:100svh;min-height:0;overflow:hidden}.hero__image,.hero__veil{position:absolute;inset:0;width:100%;height:100%}.hero__image{object-fit:cover;object-position:center}.hero__veil{background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.9) 27%,rgba(255,255,255,.15) 54%,transparent 74%)}.hero__content{position:relative;padding-top:110px}.hero__content>*{max-width:580px}.eyebrow{margin:0 0 22px;color:#6794aa;font-size:16px;line-height:1.15}.hero h1{font-size:clamp(42px,4.1vw,68px);line-height:1.08;letter-spacing:-.045em;font-weight:400;margin:0 0 20px}.hero__lead{font-size:27px;line-height:1.25;margin:0 0 44px}.actions{display:flex;gap:14px}.button{display:inline-flex;justify-content:center;align-items:center;min-height:52px;padding:0 28px;border:1px solid #a9d0e2;border-radius:12px;background:#eaf7fc;color:#34424a;font-size:16px;font-weight:400;text-decoration:none;cursor:pointer}.button--quiet{background:rgba(234,247,252,.85)}
.hero__tablet-line{display:inline}
.section{padding:110px 0}.section--blue{background:var(--pale)}h2{font-size:clamp(34px,3vw,50px);line-height:1.1;letter-spacing:-.035em;font-weight:400;margin:0 0 14px}.intro{max-width:680px;font-size:16px;font-weight:300;line-height:1.45;margin:0 0 50px}.mosaic{display:grid;grid-template-columns:1.4fr 1fr;gap:8px}.mosaic img{width:100%;height:100%;border-radius:var(--radius)}.mosaic img:nth-child(-n+2){aspect-ratio:1.45/1}.mosaic img:nth-child(n+3){aspect-ratio:1.65/1}.standards-list{list-style:none;padding:0;margin:36px 0 0}.standards-list li{display:grid;grid-template-columns:84px minmax(0,40%) minmax(0,1fr);column-gap:38px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line)}.standards-list>li>img{display:block;width:100%;height:auto;aspect-ratio:5/3;object-fit:cover;border-radius:18px}.roman{display:flex;align-items:center;justify-content:center;align-self:center}.roman img{display:block;width:auto;height:205px;max-width:80px;object-fit:contain}.standards-list li>div{align-self:center}.standards-list h3{font-size:25px;font-weight:300;line-height:1.25;margin:0 0 20px}.standards-list p{max-width:520px;font-size:16px;font-weight:300;line-height:1.45;margin:0}
.services__layout{display:grid;grid-template-columns:1fr;gap:18px}.services__catalog{display:contents}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.service-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-decoration:none;padding-bottom:14px}.service-card img{width:100%;height:255px;object-fit:cover}.service-card>span,.service-card>b{display:inline-block;margin:14px 16px 0;color:#7798a8;font-size:15px;font-weight:300;line-height:1.2}.service-card b{float:right}.service-card h3{clear:both;margin:5px 16px;font-size:20px;font-weight:300;line-height:1.15}.service-card__meta{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;gap:16px;min-width:0;margin:0 16px}.service-card__meta small{min-width:0;font-size:11px;font-weight:400;line-height:1.2}.service-card__more{flex:0 0 auto;white-space:nowrap;color:#7798a8;font-size:11px;font-weight:400;line-height:1.2;transition:transform 250ms cubic-bezier(.22,.61,.36,1)}.service-card:hover{border-color:#6faec9}.service-card:hover .service-card__more{transform:translateX(3px)}.services__foot{display:flex;justify-content:space-between;align-items:center;gap:20px}.services__foot p{color:#8a8f93;max-width:760px;font-size:14px;font-weight:300;line-height:1.4}.process ol{list-style:none;padding:0;margin:40px 0 0}.process li{padding:26px 0;border-bottom:1px solid var(--line)}.process h3{font-size:20px;font-weight:400;line-height:1.2;margin:0 0 8px}.process li p{max-width:670px;font-size:16px;font-weight:300;line-height:1.45;margin:0}
#services .service-card img.service-card__image--headboard{width:140%;max-width:none;justify-self:center;object-fit:cover;object-position:center 38%}
.case-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:64px;align-items:center}.compare{position:relative;overflow:hidden;aspect-ratio:1.55;border-radius:4px;touch-action:pan-y}.compare>img,.compare__after,.compare__after img{position:absolute;inset:0;width:100%;height:100%}.compare__after{clip-path:inset(0 0 0 var(--position))}.compare::after{content:"";position:absolute;z-index:2;top:0;bottom:0;left:var(--position);transform:translateX(-50%);width:1px;background:#fff}.compare__handle{position:absolute;z-index:3;top:50%;left:var(--position);display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--case-accent,#6794aa);border-radius:50%;background:#fff;color:var(--case-accent,#6794aa);transform:translate(-50%,-50%);pointer-events:none}.compare__handle svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.compare input{position:absolute;z-index:4;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize}.compare__label{position:absolute;z-index:3;top:18px;background:#fff;padding:5px 14px;border-radius:20px;font-size:12px;font-weight:400;line-height:1.2}.compare__label--before{left:18px}.compare__label--after{right:18px}.cases blockquote{margin:0}.cases .case-review__content>p{font-size:15px;font-weight:300;line-height:1.4}.cases blockquote footer{display:flex;flex-direction:column;gap:5px;margin-top:55px}.cases blockquote strong{font-size:13px;font-weight:400}.cases blockquote span{color:#757d81;font-size:11px;font-weight:300}
.clients{position:relative;width:100%;max-width:none;padding:58px 0;border-radius:0;background:rgba(88,87,84,.58);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);overflow:hidden}.marquee{position:relative;display:flex;align-items:center;min-height:81px;overflow:hidden}.marquee__track{display:flex;width:max-content;animation:none}.marquee__track.is-ready{animation:marquee 42s linear infinite}.marquee__group{display:flex;align-items:center;gap:70px;padding-right:70px}.marquee img{display:block;width:auto;height:40px;max-width:none;max-height:none;object-fit:contain;flex:0 0 auto;filter:none;opacity:1;transform:none}@keyframes marquee{to{transform:translateX(-50%)}}
.faq-list{display:grid;gap:28px}.faq details{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px}.faq summary{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:20px;font-weight:300;line-height:1.3;cursor:pointer;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";flex:0 0 auto;color:#6794aa;font-size:35px;font-weight:300;line-height:1;transform:rotate(0deg);transform-origin:center center;transition:transform 500ms cubic-bezier(.22,.61,.36,1)}.faq details[open] summary::after{transform:rotate(135deg)}.faq details p{font-size:16px;font-weight:300;line-height:1.5;margin:24px 0 0}.support{position:relative;overflow:hidden;min-height:210px;margin-top:40px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.support>div:first-child{position:relative;z-index:2;padding:34px;max-width:390px}.support h3{font-size:25px;font-weight:300;line-height:1.2;margin:0}.support p{font-size:16px;font-weight:300;line-height:1.45}.support__media{position:absolute;inset:0 0 0 auto;width:75%;height:100%;overflow:hidden}.support__media img{position:absolute;top:50%;right:0;width:100%;height:auto;max-width:none;transform:translateY(-50%)}.support::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff 30%,transparent 72%)}
.contact{min-height:820px;position:relative;padding:90px 0}.contact>img,.contact__veil{position:absolute;inset:0;width:100%;height:100%}.contact__veil{background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.88) 38%,transparent 68%)}.contact__content{position:relative;display:grid;grid-template-columns:1fr 480px;gap:40px}.contact__content h2{max-width:530px;font-size:52px}.contact-form{background:var(--pale);padding:30px;border-radius:24px}.contact-form>p{font-size:14px;font-weight:300;line-height:1.4;margin-top:0}.contact-form label{display:block;color:#8c999f;font-size:11px;font-weight:300;margin-top:16px}.contact-form input,.contact-form textarea{display:block;width:100%;border:0;border-bottom:1px solid #9dbac7;background:transparent;resize:vertical;min-height:38px}.contact-form .button{width:100%;margin:20px 0 10px}.contact-form small{font-size:10px;font-weight:300;line-height:1.3}.footer{padding:80px 0 25px}.footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:60px}.footer__grid>div:first-child p{max-width:400px;font-size:20px;font-weight:300;line-height:1.4}.footer__grid>div:first-child strong{color:#6794aa;text-transform:uppercase}.footer h2{font-size:15px;color:#6794aa;text-transform:uppercase;letter-spacing:0}.footer nav{display:flex;flex-direction:column;gap:8px}.footer nav a{text-decoration:none}.footer__bottom{display:flex;justify-content:space-between;gap:20px;margin-top:65px;font-size:12px;color:#668697}.footer__bottom a{text-decoration:none}
@media(max-width:1024px){:root{--shell:min(100% - 40px,940px)}.site-header{width:calc(100% - 40px)}.menu-toggle{display:block;flex:0 0 44px}.site-nav{display:none}.menu-open .site-nav{display:flex}.hero{min-height:0}.hero__veil{background:linear-gradient(90deg,rgba(255,255,255,.97),rgba(255,255,255,.65) 55%,transparent)}.standards-list li{grid-template-columns:60px minmax(0,40%) minmax(0,1fr);column-gap:24px;padding:26px 0}.roman img{height:170px;max-width:60px}.standards-list h3{font-size:22px;margin-bottom:14px}.services__layout{grid-template-columns:1fr}.services__layout>header{max-width:580px}.service-grid{grid-column:1;grid-template-columns:repeat(2,minmax(0,1fr))}.contact__content{grid-template-columns:1fr 420px}}
@media(min-width:769px) and (max-width:1024px){.menu-toggle{flex:0 0 44px}.site-nav{position:absolute;top:calc(100% + 8px);left:0;right:0;max-width:100%;margin-left:0;flex-direction:column;align-items:stretch;gap:4px;padding:12px;border-radius:20px;background:rgba(55,60,63,.96);overflow:hidden}.site-nav a{width:100%;min-height:44px;padding:12px 16px}}
@media(min-width:769px) and (max-width:1024px){.hero__tablet-line{display:block;white-space:nowrap}}
@media(min-width:769px) and (max-width:1024px){.site-header{top:16px}#life .mosaic{grid-template-columns:repeat(100,minmax(0,1fr));grid-template-rows:clamp(300px,35vw,360px) clamp(240px,28vw,290px);column-gap:0;row-gap:8px}#life .mosaic img{width:calc(100% - 4px);height:100%;aspect-ratio:auto;object-fit:cover}#life .mosaic img:nth-child(1){grid-column:1/59;grid-row:1;justify-self:start}#life .mosaic img:nth-child(2){grid-column:59/101;grid-row:1;justify-self:end}#life .mosaic img:nth-child(3){grid-column:1/43;grid-row:2;justify-self:start}#life .mosaic img:nth-child(4){grid-column:43/101;grid-row:2;justify-self:end}}
@media(min-width:769px) and (max-width:1024px){#services .services__catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}#services .service-grid{display:contents}#services .services__foot{min-width:0;align-self:stretch;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:20px}#services .services__foot p{max-width:none;margin:0}#services .services__foot .button{white-space:nowrap}}
@media(max-width:768px){:root{--shell:calc(100% - 32px);--header-h:64px}.shell{width:100%;margin-inline:0;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.site-header{top:calc(env(safe-area-inset-top,0px) + 6px);left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));width:auto;height:64px;padding:0 20px;transform:none}.brand{font-size:20px}.menu-toggle{display:block}.site-nav{display:none;position:absolute;top:72px;left:0;right:0;flex-direction:column;align-items:stretch;background:rgba(55,60,63,.96);padding:12px;border-radius:20px}.menu-open .site-nav{display:flex}.site-nav a{padding:12px 16px}.hero{height:auto;min-height:100vh;min-height:100dvh;align-items:flex-end}.hero__image{object-position:65% center}.hero__veil{background:linear-gradient(0deg,#fff 0%,rgba(255,255,255,.95) 35%,rgba(255,255,255,.05) 72%)}.hero__content{padding-bottom:max(48px,calc(env(safe-area-inset-bottom,0px) + 16px))}.hero h1{font-size:42px}.hero__lead{font-size:22px;margin-bottom:28px}.section{padding:76px 0}.mosaic{grid-template-columns:1fr 1fr}.mosaic img{aspect-ratio:1!important}.standards-list li{grid-template-columns:48px minmax(0,40%) minmax(0,1fr);column-gap:18px;padding:24px 0}.roman img{height:138px;max-width:48px}.standards-list h3{font-size:20px}.service-grid{grid-template-columns:1fr}.service-card img{height:210px}.case-layout{grid-template-columns:1fr}.support__media{width:70%}.contact__content{grid-template-columns:1fr}.contact{padding:70px 0}.contact__content h2{font-size:42px}.footer__grid{grid-template-columns:1.5fr 1fr}.footer__grid>div:last-child{grid-column:2}.footer__bottom{flex-wrap:wrap}}
@media(min-width:480px) and (max-width:768px){.site-header .brand-logo{display:block;width:min(250px,calc(100vw - 120px));height:auto;object-fit:contain}.hero__image{object-position:right center}.hero__veil{background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.94) 46%,rgba(255,255,255,.58) 72%,rgba(255,255,255,.08) 100%)}.hero__tablet-line{display:block;white-space:nowrap}.hero .eyebrow{font-size:13px;line-height:1.2}.hero h1{font-size:36px;line-height:1.08}.hero__lead{font-size:18px;line-height:1.3}}
@media(max-width:479px){.site-header{gap:12px}.brand{font-size:17px;letter-spacing:.22em}.hero h1{font-size:34px}.hero__lead{font-size:18px}.actions{flex-direction:column;align-items:stretch}.section{padding:62px 0}h2{font-size:32px}.mosaic{grid-template-columns:1fr}.mosaic img{aspect-ratio:1.25!important}.standards-list li{grid-template-columns:42px minmax(0,1fr);column-gap:14px;row-gap:18px;padding:24px 0}.standards-list>li>img{grid-column:2}.standards-list li>div{grid-column:2}.roman{grid-row:1;align-self:center}.roman img{height:118px;max-width:42px}.standards-list h3{font-size:21px}.service-grid{grid-template-columns:1fr}.service-card img{height:220px}.services__foot{align-items:flex-start;flex-direction:column}.case-layout{gap:30px}.clients{padding:45px 0}.marquee__group{gap:46px;padding-right:46px}.marquee img{height:35px;max-width:140px}.support{min-height:330px}.support>div:first-child{padding:24px}.support::after{background:linear-gradient(#fff 50%,transparent 82%)}.contact__content h2{font-size:34px}.contact-form{padding:22px}.footer__grid{grid-template-columns:1fr}.footer__grid>div:last-child{grid-column:auto}.footer__bottom{flex-direction:column;margin-top:40px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marquee__track,.marquee__track.is-ready{animation:none}.marquee{overflow-x:auto}.marquee__group[aria-hidden="true"]{display:none}}
@media(min-width:769px){.site-header .brand-logo{width:clamp(260px,18vw,320px);height:auto}}
:root{--section-space-y:60px}
#life,#standards,#services,#process,#cases,.clients,#faq,#contact{padding-block:var(--section-space-y)}
@media(max-width:1024px){:root{--section-space-y:45px}}
@media(max-width:768px){:root{--section-space-y:30px}}
.hero .eyebrow{font-weight:400}
.hero h1{font-weight:300}
.hero__lead{font-weight:300}
.hero .button{font-weight:400}
@media(min-width:769px){.site-nav a,.site-nav a.is-active{font-weight:400}}
#life .eyebrow,#standards .eyebrow,#services .eyebrow,#process .eyebrow,#cases .eyebrow,#faq .eyebrow,#contact .eyebrow{font-size:14px;font-weight:400;line-height:1.2}
#life h2,#standards h2,#services h2,#process h2,#cases h2,#faq h2{font-size:32px;font-weight:300;line-height:1.15;letter-spacing:-.025em}
@media(min-width:1025px){.site-header{top:clamp(16px,1.4vw,21px)}}
@media(min-width:1025px){#life .eyebrow{margin-bottom:14px}#life h2{margin-bottom:10px}#life .intro{max-width:680px;margin-bottom:32px}#life .mosaic{grid-template-columns:repeat(100,minmax(0,1fr));grid-template-rows:clamp(360px,30vw,440px) clamp(285px,24vw,350px);gap:8px}#life .mosaic img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}#life .mosaic img:nth-child(1){grid-column:1/59;grid-row:1}#life .mosaic img:nth-child(2){grid-column:59/101;grid-row:1}#life .mosaic img:nth-child(3){grid-column:1/43;grid-row:2}#life .mosaic img:nth-child(4){grid-column:43/101;grid-row:2}}

#standards .standards-list li:last-child{padding-bottom:0;border-bottom:0}
#standards .standards-list h3{margin-bottom:14px}
@media(min-width:1025px){#standards .eyebrow{margin-bottom:14px}#standards>.shell>h2{margin-bottom:10px}#standards>.shell>.intro{margin-bottom:0}#standards .standards-list{margin-top:32px}#standards .standards-list h3{font-size:25px}}
@media(min-width:1025px){#life .mosaic{grid-template-rows:clamp(340px,25vw,400px) clamp(272px,20vw,320px)}}

@media(min-width:1025px){
  #services .services__layout{display:grid;grid-template-columns:1fr;gap:24px}
  #services .services__layout>header{align-self:start;min-width:0}
  #services .services__layout>header .eyebrow{margin-bottom:12px}
  #services .services__layout>header h2{margin-bottom:0}
  #services .service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  #services .service-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto auto;align-content:start;min-width:0;height:100%;padding:0 0 10px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
  #services .service-card img{grid-column:1/-1;width:100%;height:clamp(190px,15vw,220px);object-fit:cover}
  #services .service-card>span,#services .service-card>b{margin:10px 10px 0;color:#7798a8}
  #services .service-card b{float:none;text-align:right}
  #services .service-card h3{grid-column:1/-1;margin:3px 10px 0}
  #services .service-card__meta{margin:3px 10px 0}
  #services .services__foot{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:2px}
  #services .services__foot p{max-width:650px;margin:0;color:#8a8f93}
  #services .services__foot .button{white-space:nowrap}
}

#process ol>li:last-child{border-bottom:0}
@media(min-width:1025px){
  #process .eyebrow{margin-bottom:12px}
  #process h2{margin-bottom:8px}
  #process .intro{max-width:560px;margin-bottom:0}
  #process ol{margin:8px 0 0;padding:0}
  #process ol>li{padding:16px 0;border-bottom:0}
  #process ol>li:not(:last-child){border-bottom:1px solid var(--line)}
  #process ol>li h3{margin:0 0 5px}
  #process ol>li p{max-width:560px;margin:0;color:var(--ink)}
}

@media(min-width:1025px){
  #cases .eyebrow{margin-bottom:12px}
  #cases h2{margin-bottom:8px;white-space:nowrap}
  #cases>.shell>.intro{max-width:620px;margin-bottom:22px}
  #cases .case-layout{grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:44px;align-items:stretch}
  #cases .compare{aspect-ratio:1.72;border-radius:8px}
  #cases .compare>img,#cases .compare__after img{width:100%;height:100%;object-fit:cover;object-position:center}
  #cases .compare::after{z-index:2;width:1px}
  #cases .compare__label{top:12px;padding:3px 9px;border-radius:999px}
  #cases .compare__label--before{left:12px}
  #cases .compare__label--after{right:12px}
  #cases blockquote{display:grid;grid-template-rows:minmax(0,1fr) 69px 67px;min-width:0;min-height:0;margin:0;padding-top:10px;overflow:hidden;contain:size}
  #cases .case-review__content{width:100%;min-width:0}
  #cases .case-review__content>p{width:100%;max-width:none;margin:0}
  #cases .case-review__content.is-expanded>p{scrollbar-gutter:stable}
  #cases blockquote footer{display:flex;flex-direction:column;gap:4px;height:69px;margin-top:0;padding-top:18px}
  #cases blockquote footer strong{line-height:1.3}
  #cases blockquote footer span{max-width:280px;color:#757d81;line-height:1.35}
  #cases .case-nav{height:67px;margin-top:0;padding-top:28px}
  #cases .case-nav__arrows{display:flex;justify-content:center;gap:18px;margin-bottom:14px}
  #cases .case-nav__arrows button{padding:0;border:0;background:transparent;color:#82a4b4;font-size:14px;line-height:1;cursor:default}
  #cases .case-nav__arrows button:focus-visible{outline:2px solid #82a4b4;outline-offset:4px}
  #cases .case-nav__progress{display:grid;grid-template-columns:auto minmax(40px,1fr) auto;align-items:center;gap:10px;color:#82a4b4}
  #cases .case-nav__progress i{height:1px;background:var(--line)}
}
#cases{--case-accent:#6794aa}
#cases .case-review__toggle{border:0;background:none;padding:0;color:var(--case-accent);font-size:13px;font-weight:300;line-height:1.2;text-align:left;cursor:pointer}
#cases .case-review__toggle:focus-visible{outline:2px solid var(--case-accent);outline-offset:4px}
#cases .case-review__divider{border-bottom-color:var(--case-accent)}
#cases .case-nav__arrows button{color:var(--case-accent);cursor:pointer}
#cases .case-nav__progress{color:var(--case-accent);font-size:14px;font-weight:300;line-height:1}
#cases .case-nav__track{position:relative;display:block;height:1px;background:rgba(103,148,170,.35);overflow:hidden}
#cases .case-nav__track::after{content:"";position:absolute;inset:0 auto 0 0;width:calc(100% / var(--case-count,3));background:var(--case-accent);transform:translateX(calc(var(--case-index) * 100%));transition:transform .3s ease}
@media(min-width:769px) and (max-width:1024px){
  #cases .case-layout{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:30px;align-items:stretch}
  #cases .compare{width:100%;aspect-ratio:1.72;align-self:start;border-radius:8px}
  #cases .compare>img,#cases .compare__after img{width:100%;height:100%;object-fit:cover;object-position:center}
  #cases .compare::after{z-index:2;width:1px}
  #cases .compare__label{top:12px;padding:3px 9px;border-radius:999px}
  #cases .compare__label--before{left:12px}
  #cases .compare__label--after{right:12px}
  #cases blockquote{display:grid;grid-template-rows:minmax(0,1fr) 69px 63px;min-width:0;min-height:0;margin:0;padding-top:10px;overflow:hidden;contain:size}
  #cases .case-review__content>p{max-width:330px;margin:0}
  #cases blockquote footer{display:flex;flex-direction:column;gap:4px;height:69px;margin-top:0;padding-top:18px}
  #cases blockquote footer strong{line-height:1.3}
  #cases blockquote footer span{max-width:280px;color:#757d81;line-height:1.35}
  #cases .case-nav{height:63px;margin-top:0;padding-top:24px}
  #cases .case-nav__arrows{display:flex;justify-content:center;gap:18px;margin-bottom:14px}
  #cases .case-nav__arrows button{padding:0;border:0;background:transparent;color:var(--case-accent);font-size:14px;line-height:1;cursor:pointer}
  #cases .case-nav__arrows button:focus-visible{outline:2px solid var(--case-accent);outline-offset:4px}
  #cases .case-nav__progress{display:grid;grid-template-columns:auto minmax(40px,1fr) auto;align-items:center;gap:10px}
}
@media(min-width:480px){
  #cases .case-review__content{display:flex;flex-direction:column;min-height:0;overflow:hidden}
  #cases .case-review__content>p{display:block;max-height:none;min-height:0;overflow:visible;-webkit-line-clamp:unset}
  #cases .case-review__content.is-expanded>p{flex:1;max-height:none;min-height:0;margin-bottom:16px;overflow-y:auto;overscroll-behavior:contain}
  #cases .case-review__toggle{flex:0 0 auto;margin-top:5px}
  #cases .case-review__divider{display:block;flex:0 0 auto;width:52px;margin-top:auto;border-bottom:1px solid var(--case-accent)}
}
@media(min-width:480px) and (max-width:768px){
  #life .eyebrow,#standards .eyebrow,#services .eyebrow,#process .eyebrow,#cases .eyebrow,#faq .eyebrow{font-size:13px}
  #life h2,#standards h2,#services h2,#process h2,#cases h2,#faq h2{font-size:30px}
  #life .intro,#standards .intro,#process .intro,#cases .intro,#faq .intro{font-size:14px;line-height:1.5}
  #standards .standards-list h3,#services .service-card h3,#process h3,#faq .support h3{font-size:18px}
  #standards .standards-list p,#process li p,#faq details p,#cases .case-review__content>p{font-size:14px;line-height:1.5}
  #faq summary{font-size:18px}
  #faq .faq-list{gap:14px}
  #faq details p{margin-top:16px}
  #faq .support>div:first-child{max-width:270px}
  #faq .support h3{max-width:210px}
  #faq .support p{max-width:240px}
  #faq .support::after{background:linear-gradient(90deg,#fff 38%,rgba(255,255,255,.92) 52%,transparent 80%)}

  #life .intro{margin-bottom:24px}

  #standards>.shell>.intro{margin-bottom:0}
  #standards .standards-list{margin-top:22px}
  #standards .standards-list li{grid-template-columns:34px minmax(0,42%) minmax(0,1fr);column-gap:14px}
  #standards .roman img{width:auto;height:clamp(100px,18.5vw,142px);max-width:34px}

  #services .services__foot{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
  #services .services__foot p{margin:0}
  #services .services__foot .button{white-space:nowrap}

  #cases>.shell>.intro{margin-bottom:24px}
  #cases .case-layout{gap:26px}
  #cases blockquote{display:grid;grid-template-rows:minmax(0,1fr) 69px 63px;height:clamp(250px,52vw,280px);min-width:0;min-height:0;margin:0;padding-top:10px;overflow:hidden;contain:size}
  #cases .case-review__content>p{max-width:none;margin:0}
  #cases blockquote footer{display:flex;flex-direction:column;gap:4px;height:69px;margin:0;padding-top:18px}
  #cases blockquote footer strong{line-height:1.3}
  #cases blockquote footer span{max-width:none;line-height:1.35}
  #cases .case-nav{height:63px;margin:0;padding-top:24px}
  #cases .case-nav__arrows{display:flex;justify-content:center;gap:18px;margin-bottom:14px}
  #cases .case-nav__arrows button{padding:0;border:0;background:transparent;color:var(--case-accent);font-size:14px;line-height:1;cursor:pointer}
  #cases .case-nav__arrows button:focus-visible{outline:2px solid var(--case-accent);outline-offset:4px}
  #cases .case-nav__progress{display:grid;grid-template-columns:auto minmax(40px,1fr) auto;align-items:center;gap:10px}

  #process ol{margin-bottom:0}
  #process .intro{margin-bottom:0}
  #process ol{margin-top:22px}
  #process ol>li:last-child{padding-bottom:0;border-bottom:0}

  .footer__grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;row-gap:32px}
  .footer__grid>div:first-child{grid-column:1/-1}
  .footer .footer__grid>div:last-child{grid-column:auto}
  .footer .footer-brand{width:240px}
  .footer__grid>div:first-child p{font-size:15px;line-height:1.45}
  .footer__grid>div:last-child p{white-space:nowrap}
  .footer .footer__bottom{flex-direction:column;align-items:flex-start;gap:14px}
}
@media(prefers-reduced-motion:reduce){#cases .case-nav__track::after{transition:none}}
.clients img.clients__logo{display:block;width:auto;height:40px;max-width:none;max-height:none;object-fit:contain;flex:0 0 auto;filter:none;opacity:1;transform:none}
.clients{padding-block:54px}
@media(max-width:1024px){.clients{padding-block:40.5px}}
@media(max-width:768px){.clients{padding-block:27px}}

#contact{position:relative;height:660px;min-height:0;overflow:hidden;padding-block:60px}
#contact>img,#contact .contact__veil{position:absolute;inset:0;width:100%;height:100%}
#contact>img{object-fit:cover;object-position:center center}
#contact .contact__veil{background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.99) 30%,rgba(255,255,255,.86) 40%,rgba(255,255,255,.35) 52%,rgba(255,255,255,0) 64%)}
#contact .contact__content{position:relative;z-index:1;display:block}
#contact .contact__content>div{width:min(100%,500px)}
#contact .eyebrow{margin-bottom:12px}
#contact .contact__content h2{max-width:500px;margin:0;font-size:40px;font-weight:300;line-height:1.12;letter-spacing:-.035em}
#contact .contact-form{width:100%;max-width:370px;margin-top:14px;padding:20px;border-radius:20px;background:var(--pale)}
#contact .contact-form>p{margin:0 0 4px;font-size:14px;font-weight:300;line-height:1.4}
#contact .contact-form label{display:block;margin-top:8px;color:#8c999f;font-size:11px;font-weight:300;line-height:1.2}
#contact .contact-form input,#contact .contact-form textarea{display:block;width:100%;min-height:24px;padding:0;border:0;border-bottom:1px solid #9dbac7;background:transparent;resize:vertical}
#contact .contact-form textarea{height:24px;min-height:24px}
#contact .contact-form .button{width:100%;min-height:52px;margin:10px 0 6px;padding:0 28px;border-radius:12px;font-size:16px;font-weight:400;background:rgba(255,255,255,.22)}
#contact .contact-form small{display:block;font-size:10px;font-weight:300;line-height:1.3}
#contact .contact-form small a{text-decoration:underline;text-underline-offset:2px}
@media(max-width:1024px){#contact{height:auto;min-height:630px;padding-block:45px}#contact .contact__veil{background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.97) 42%,rgba(255,255,255,.45) 68%,rgba(255,255,255,.08) 100%)}}
@media(max-width:768px){#contact{min-height:0;padding-block:30px}#contact .contact__content>div{width:min(100%,420px)}#contact .contact__content h2{max-width:420px;font-size:34px}#contact .contact-form{max-width:370px}#contact .contact__veil{background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.92) 64%,rgba(255,255,255,.58) 100%)}}

.footer-brand{display:block;width:310px;max-width:100%;text-decoration:none}
.footer-brand img{display:block;width:100%;height:auto;object-fit:contain}
.footer__bottom{display:flex;align-items:center;justify-content:space-between;gap:0}
.footer-credit{display:inline-flex;align-items:center;gap:9px;white-space:nowrap}
.footer-credit__logo{display:block;width:auto;height:26px;max-width:none;opacity:.68}
@media(max-width:1024px){.footer__bottom{flex-wrap:wrap;gap:20px 32px}}
@media(max-width:768px){.footer__bottom{flex-direction:column;align-items:flex-start;gap:16px}}


.js [data-reveal]{opacity:0;transform:translateY(22px)}
.js.reveal-ready [data-reveal]{transition:opacity 500ms cubic-bezier(.22,.61,.36,1),transform 500ms cubic-bezier(.22,.61,.36,1);transition-delay:var(--reveal-delay,0ms)}
.js [data-reveal].is-visible{opacity:1;transform:translateY(0)}
@media(max-width:768px){.js [data-reveal]{transform:translateY(15px)}.js [data-reveal].is-visible{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.js [data-reveal],.js [data-reveal].is-visible{opacity:1;transform:none;transition:none}}

.hero-intro-ready .hero__image{opacity:0;transition:opacity 900ms cubic-bezier(.22,.61,.36,1)}
.hero-intro-ready .site-header{opacity:0;transition:opacity 700ms cubic-bezier(.22,.61,.36,1) 350ms}
.hero-intro-ready .hero h1{opacity:1;transform:translateY(16px);transition:transform 700ms cubic-bezier(.22,.61,.36,1) 350ms}
.hero-intro-ready .hero__lead{opacity:0;transform:translateY(14px);transition:opacity 700ms cubic-bezier(.22,.61,.36,1) 650ms,transform 700ms cubic-bezier(.22,.61,.36,1) 650ms}
.hero-intro-ready .hero .eyebrow{opacity:0;transform:translateY(12px);transition:opacity 650ms cubic-bezier(.22,.61,.36,1) 850ms,transform 650ms cubic-bezier(.22,.61,.36,1) 850ms}
.hero-intro-ready .hero .actions .button{opacity:0;transform:translateY(10px);transition:opacity 600ms cubic-bezier(.22,.61,.36,1),transform 600ms cubic-bezier(.22,.61,.36,1)}
.hero-intro-ready .hero .actions .button:nth-child(1){transition-delay:1050ms}
.hero-intro-ready .hero .actions .button:nth-child(2){transition-delay:1180ms}
.hero-intro-ready.hero-intro-started .hero__image,.hero-intro-ready.hero-intro-started .site-header{opacity:1}
.hero-intro-ready.hero-intro-started .hero h1,.hero-intro-ready.hero-intro-started .hero__lead,.hero-intro-ready.hero-intro-started .hero .eyebrow,.hero-intro-ready.hero-intro-started .hero .actions .button{opacity:1;transform:translateY(0)}
@media(max-width:768px){.hero-intro-ready .hero h1{transform:translateY(12px)}.hero-intro-ready .hero__lead{transform:translateY(10px)}.hero-intro-ready .hero .eyebrow{transform:translateY(9px)}.hero-intro-ready .hero .actions .button{transform:translateY(8px)}.hero-intro-ready.hero-intro-started .hero h1,.hero-intro-ready.hero-intro-started .hero__lead,.hero-intro-ready.hero-intro-started .hero .eyebrow,.hero-intro-ready.hero-intro-started .hero .actions .button{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.hero-intro-ready .hero__image,.hero-intro-ready .site-header,.hero-intro-ready .hero h1,.hero-intro-ready .hero__lead,.hero-intro-ready .hero .eyebrow,.hero-intro-ready .hero .actions .button{opacity:1;transform:none;transition:none}}
@media(max-width:479px){#services .service-card__meta{flex-wrap:wrap}#services .service-card__more{margin-left:auto}}
@media(prefers-reduced-motion:reduce){#services .service-card__more{transition:none}#services .service-card:hover .service-card__more{transform:none}}

body.service-modal-open{overflow:hidden}
.service-modal{width:min(1080px,calc(100vw - 48px));height:min(760px,calc(100svh - 48px));max-width:none;max-height:calc(100svh - 48px);padding:0;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 24px 80px rgba(30,40,44,.16);overflow:hidden;opacity:0;transform:translateY(18px);transition:opacity 360ms cubic-bezier(.22,.61,.36,1),transform 360ms cubic-bezier(.22,.61,.36,1)}
.service-modal.is-open{opacity:1;transform:translateY(0)}
.service-modal.is-closing{opacity:0;transform:translateY(8px);transition-duration:220ms}
.service-modal::backdrop{background:rgba(30,34,36,.46);backdrop-filter:blur(8px);opacity:0;transition:opacity 250ms ease-out}
.service-modal.is-open::backdrop{opacity:1}
.service-modal.is-closing::backdrop{opacity:0;transition-duration:220ms}
.service-modal__panel{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);height:100%;min-height:0}
.service-modal__media{min-width:0;min-height:0;overflow:hidden;background:#f5f6f5;opacity:0;transition:opacity 420ms cubic-bezier(.22,.61,.36,1) 60ms}
.service-modal__media img{width:100%;height:100%;object-fit:cover;object-position:center center}
.service-modal__content{min-width:0;overflow-y:auto;overscroll-behavior:contain;padding:34px 38px 32px;opacity:0;transform:translateY(10px);transition:opacity 420ms cubic-bezier(.22,.61,.36,1) 100ms,transform 420ms cubic-bezier(.22,.61,.36,1) 100ms}
.service-modal.is-open .service-modal__media{opacity:1}
.service-modal.is-open .service-modal__media.is-loading{opacity:0}
.service-modal.is-open .service-modal__content{opacity:1;transform:translateY(0)}
.service-modal.is-closing .service-modal__media{opacity:0;transition-duration:220ms;transition-delay:0ms}
.service-modal.is-closing .service-modal__content{opacity:0;transform:translateY(0);transition-duration:220ms;transition-delay:0ms}
.service-modal__close{position:absolute;z-index:2;top:14px;right:14px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;background:transparent;color:#6794aa;font-size:30px;font-weight:300;line-height:1;cursor:pointer}
.service-modal__top{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-right:42px;color:#7798a8;font-size:15px;font-weight:300;line-height:1.2}
.service-modal h2{margin:12px 0 0;font-size:32px;font-weight:300;line-height:1.15;letter-spacing:-.025em}
.service-modal__description{max-width:540px;margin:12px 0 0;font-size:16px;font-weight:300;line-height:1.45}
.service-modal__section{margin-top:28px}
.service-modal__section h3{margin:0;color:#6794aa;font-size:14px;font-weight:400;line-height:1.2}
.service-modal__materials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;list-style:none;margin:10px 0 0;padding:0}
.service-modal__materials li{padding:9px 0;border-bottom:1px solid var(--line);font-size:15px;font-weight:300;line-height:1.35}
.service-modal__method{list-style:none;margin:10px 0 0;padding:0}
.service-modal__method li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}
.service-modal__method li:last-child{border-bottom:0}
.service-modal__method-number{color:#7798a8;font-size:14px;font-weight:300;line-height:1.35}
.service-modal__method h4{margin:0;font-size:16px;font-weight:400;line-height:1.35}
.service-modal__method p{margin:4px 0 0;font-size:14px;font-weight:300;line-height:1.45}
.service-modal__cta{margin-top:26px}
@media(max-width:760px){.service-modal{width:calc(100vw - 24px);height:auto;max-height:calc(100svh - 24px);border-radius:18px;transform:translateY(12px)}.service-modal.is-open{transform:translateY(0)}.service-modal.is-closing{transform:translateY(8px)}.service-modal__panel{display:block;height:auto;max-height:calc(100svh - 24px);overflow-y:auto;overscroll-behavior:contain}.service-modal__media{height:210px}.service-modal__content{overflow:visible;padding:26px 22px 24px;transform:translateY(8px)}.service-modal.is-open .service-modal__content,.service-modal.is-closing .service-modal__content{transform:translateY(0)}.service-modal__materials{grid-template-columns:1fr}.service-modal__close{top:10px;right:10px}}
@media(prefers-reduced-motion:reduce){.service-modal,.service-modal::backdrop,.service-modal.is-open,.service-modal.is-closing,.service-modal__media,.service-modal__content,.service-modal.is-open .service-modal__media,.service-modal.is-open .service-modal__content,.service-modal.is-closing .service-modal__media,.service-modal.is-closing .service-modal__content{opacity:1;transform:none;transition:none}}

@media(max-width:1024px){#cases blockquote[data-case-review]{touch-action:pan-y}}

@media(max-width:768px){
  .button{min-height:48px;padding-inline:20px;font-size:14px;white-space:nowrap}
  #contact .contact-form .button{min-height:48px;padding-inline:20px;font-size:14px;white-space:nowrap}
}

@media(max-width:1024px) and (max-height:420px) and (orientation:landscape){
  :root{--header-h:56px}
  .shell{width:100%;margin-inline:0;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
  .site-header{top:calc(env(safe-area-inset-top,0px) + 4px);left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));width:auto;height:var(--header-h);padding-inline:16px;transform:none}
  .site-header .brand-logo{width:min(218px,calc(100vw - 112px));height:auto}

  .hero{height:auto;min-height:100vh;min-height:100dvh;align-items:flex-end}
  .hero__content{padding-bottom:max(14px,calc(env(safe-area-inset-bottom,0px) + 8px))}
  .hero .eyebrow{margin-bottom:8px;font-size:11px;line-height:1.2}
  .hero h1{margin-bottom:8px;font-size:28px;line-height:1.05}
  .hero__lead{margin-bottom:10px;font-size:14px;line-height:1.25}
  .hero .actions{gap:8px;flex-direction:row;align-items:center}
  .hero .button{min-height:46px;padding-inline:18px}

  #standards .standards-list{margin-top:11px}

  #services .service-grid{gap:10px}
  #services .service-card img{height:190px}

  #process ol{margin-top:11px}

  #cases .compare{width:100%;aspect-ratio:1.72}
  #cases blockquote{grid-template-rows:minmax(0,1fr) 69px 28px}
  #cases .case-nav{height:28px;padding-top:10px}
  #cases .case-nav__arrows{display:none}

  .clients img.clients__logo,.marquee img{height:30px}
  .marquee__group{gap:52px;padding-right:52px}

  #faq .intro{margin-bottom:18px}
}

@media(max-width:760px) and (max-height:420px) and (orientation:landscape){
  .service-modal__media{height:190px}
}

@media(max-width:1024px){
  .site-nav{display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;max-width:100%;max-height:calc(100svh - var(--header-h) - 24px);margin-left:0;padding:8px;flex-direction:column;align-items:stretch;gap:1px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-8px);transition:opacity 600ms cubic-bezier(.22,.61,.36,1),transform 600ms cubic-bezier(.22,.61,.36,1),visibility 0s linear 600ms}
  .menu-open .site-nav{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition:opacity 600ms cubic-bezier(.22,.61,.36,1),transform 600ms cubic-bezier(.22,.61,.36,1),visibility 0s linear 0s}
  .site-nav a{width:100%;min-height:40px;padding:8px 14px}
  .menu-toggle{position:relative}
  .menu-toggle span:not(.sr-only){position:absolute;top:50%;left:50%;display:block;width:30px;height:2px;margin:0;background:currentColor;transform-origin:center;transition:transform 600ms cubic-bezier(.22,.61,.36,1)}
  .menu-toggle span:nth-child(2){transform:translate(-50%,-50%) translateY(-4px)}
  .menu-toggle span:nth-child(3){transform:translate(-50%,-50%) translateY(4px)}
  .site-header.menu-open .menu-toggle span:nth-child(2){transform:translate(-50%,-50%) rotate(45deg)}
  .site-header.menu-open .menu-toggle span:nth-child(3){transform:translate(-50%,-50%) rotate(-45deg)}
}

@media(prefers-reduced-motion:reduce){
  .site-nav,.menu-toggle span:not(.sr-only){transition:none}
}

@media(max-width:479.98px){
  .site-header .brand-logo{display:block;width:min(190px,calc(100vw - 110px));height:auto;object-fit:contain}
  .hero{background:#2e3034}
  .hero__image{inset:0;width:100%;height:100%;object-fit:cover;object-position:right center}
  .hero__veil{inset:0;width:100%;height:100%;background:rgba(0,0,0,.30);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
  .hero__content{margin-bottom:0;padding-bottom:max(30px,calc(env(safe-area-inset-bottom,0px) + 16px));border-radius:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
  .hero .eyebrow{margin-bottom:10px;color:#fff;font-size:11px;line-height:1.2}
  .hero h1{margin-bottom:12px;color:#fff;font-size:29px;line-height:1.1}
  .hero__lead{margin-bottom:14px;color:#fff;font-size:14px;line-height:1.3}
  .hero .actions{gap:10px}
}

@media(max-width:479.98px){
  #process .intro{margin-bottom:18px}
  #process ol{margin-top:14px;margin-bottom:0}
  #process li{padding:18px 0}
  #process li:last-child{padding-bottom:0;border-bottom:0}

  #standards>.shell>.intro{margin-bottom:0}
  #standards .standards-list{margin-top:18px}
  #standards .standards-list li{grid-template-columns:42px minmax(0,1fr);column-gap:14px;row-gap:18px;padding:18px 0}
  #standards .standards-list>li>img,
  #standards .standards-list li>div{grid-column:2}
  #standards .roman{grid-row:1;align-self:center}
  #standards .standards-list h3{margin-bottom:10px}

  #cases>.shell>.intro{margin-bottom:18px}
  #cases .case-layout{gap:18px}
  #cases blockquote{margin:0}
  #cases blockquote footer{margin-top:18px}
  #cases .case-nav{margin-top:10px;padding-top:0}
  #cases .case-nav__arrows{display:none}
  #cases .case-nav__progress{display:grid;grid-template-columns:auto minmax(40px,1fr) auto;align-items:center;gap:10px}
  #cases .case-nav__progress:focus-visible{outline:2px solid var(--accent-text);outline-offset:6px;border-radius:2px}
  #cases .case-nav__track{display:block}
  #cases .compare{aspect-ratio:1.72}
  #cases .compare::after{z-index:2;width:1px}

  .clients{padding-block:22px}
  .marquee{min-height:58px}
  .marquee__group{gap:34px;padding-right:34px}
  .marquee img,
  .clients img.clients__logo{height:26px;max-width:110px}

  #life .eyebrow,
  #standards .eyebrow,
  #services .eyebrow,
  #process .eyebrow,
  #cases .eyebrow,
  #faq .eyebrow,
  #contact .eyebrow{font-size:12px;line-height:1.2}

  #life h2,
  #standards h2,
  #services h2,
  #process h2,
  #cases h2,
  #faq h2{font-size:28px;line-height:1.12}

  #life .intro,
  #standards .intro,
  #process .intro,
  #cases .intro,
  #faq .intro{font-size:14px;line-height:1.45}

  #standards .standards-list h3,
  #services .service-card h3,
  #process h3,
  #faq .support h3{font-size:17px;line-height:1.25}

  #standards .standards-list p,
  #process li p,
  #faq details p,
  #cases .case-review__content>p{font-size:14px;line-height:1.45}

  #faq summary{font-size:17px;line-height:1.3}
  #cases blockquote strong{font-size:12px}
  #cases blockquote span{font-size:10px;line-height:1.35}

  #life .intro{margin-bottom:24px}

  #faq .intro{margin-bottom:24px}
  #faq .faq-list{gap:14px}
  #faq details p{margin-top:12px}

  #faq .support{display:flex;flex-direction:column;min-height:0;margin-top:20px;overflow:hidden;background:#fff}
  #faq .support>div:first-child{position:relative;z-index:1;max-width:none;padding:20px;background:#fff}
  #faq .support__media{position:relative;inset:auto;width:100%;height:150px;overflow:hidden}
  #faq .support__media img{position:absolute;top:50%;left:0;right:auto;width:100%;height:auto;max-width:none;transform:translateY(-50%)}
  #faq .support::after{display:none}
  #faq .support h3{margin:0 0 14px}
  #faq .support p{margin:0 0 16px}
  #faq .support .button{margin:0}

  .footer{padding:40px 0 20px}
  .footer__grid{grid-template-columns:1fr;gap:28px}
  .footer .footer__grid>div{grid-column:auto}
  .footer .footer-brand{width:190px;max-width:100%}
  .footer__grid>div:first-child p{max-width:100%;font-size:14px;line-height:1.45}
  .footer h2{font-size:12px;line-height:1.2}
  .footer nav{gap:6px}
  .footer nav a{font-size:14px;line-height:1.4}
  .footer__grid>div:last-child p,
  .footer__grid>div:last-child a{font-size:14px;line-height:1.45}
  .footer__bottom{margin-top:28px;gap:12px}
}

/* Semantic typography roles */
@media(min-width:480px) and (max-width:768px){
  :root{--type-section-eyebrow:13px;--type-section-title:30px;--type-body:14px;--type-subtitle:18px;--type-button:14px}
}

@media(max-width:479.98px){
  :root{--type-section-eyebrow:12px;--type-section-title:28px;--type-body:14px;--type-subtitle:17px;--type-button:14px}
}

#life .eyebrow,
#standards .eyebrow,
#services .eyebrow,
#process .eyebrow,
#cases .eyebrow,
#faq .eyebrow,
#contact .eyebrow{font-size:var(--type-section-eyebrow);font-weight:400;line-height:1.2}

#life h2,
#standards h2,
#services h2,
#process h2,
#cases h2,
#faq h2{font-size:var(--type-section-title);font-weight:300;line-height:1.15;letter-spacing:-.025em}

#life .intro,
#standards .intro,
#process .intro,
#cases .intro,
#faq .intro,
#standards .standards-list p,
#process li p,
#faq details p,
#faq .support p,
#cases .case-review__content>p{font-size:var(--type-body);font-weight:300;line-height:1.45}

#standards .standards-list h3,
#services .service-card h3,
#process h3,
#faq summary,
#faq .support h3{font-size:var(--type-subtitle);font-weight:300;line-height:1.25}

.button{font-size:var(--type-button);font-weight:400}

#contact .contact__content h2{font-size:40px}
@media(max-width:768px){#contact .contact__content h2{font-size:34px}}
@media(max-width:479.98px){#contact .contact__content h2{font-size:30px}}

.hero .button--quiet{background:#eaf7fc}

@media(max-width:479.98px){
  .footer__grid>div:first-child strong{font-size:14px;line-height:1.3}
  .service-modal__top{font-size:14px}
  .service-modal h2{font-size:30px}
  .service-modal__description{font-size:14px;line-height:1.45}
  .service-modal__section h3{font-size:13px}
  .service-modal__materials li{font-size:14px}
  .service-modal__method-number{font-size:13px}
  .service-modal__method h4{font-size:15px}
  .service-modal__method p{font-size:14px;line-height:1.45}
}

/* Small-text and control contrast */
#life .eyebrow,
#standards .eyebrow,
#services .eyebrow,
#process .eyebrow,
#cases .eyebrow,
#faq .eyebrow,
#contact .eyebrow,
#cases .case-review__toggle,
#cases .case-nav__progress,
#cases .case-nav__arrows button,
.footer h2,
#services .service-card>span,
#services .service-card>b,
#services .service-card__more,
.service-modal__top,
.service-modal__section h3,
.service-modal__method-number{color:var(--accent-text)}

.services__foot p,
#cases blockquote footer span,
.footer__bottom,
#contact .contact-form label{color:var(--muted-text)}

.button{border-color:var(--control-line)}
#contact .contact-form input,
#contact .contact-form textarea{border-bottom-color:var(--control-line)}
