/* Current Boply parent layout. Fraunces + DM Sans, forest, paper, pink and lime. */
.pwrap,.pservice-grid,.pprojects,.pbrands,.pfeatures,.pfooter-grid{min-width:0}.pservice-grid>*,.pprojects>*,.pfeatures>*{min-width:0}
.pbutton,.ptextlink{max-width:100%;white-space:normal;overflow-wrap:anywhere}.pbutton{cursor:pointer}.pbutton:disabled{cursor:wait;opacity:.65;transform:none}
.psection{padding:80px 0}.pshorthero{padding:76px 0}.pclosing{padding:76px 0 84px}.pclosing .pcta h2{font-size:clamp(36px,4.2vw,58px);line-height:1.12;letter-spacing:-.035em}.pclosing .pcta p{margin:24px auto 30px}.pclosing .peyebrow,.pink-text{color:var(--pink)}
main>section:last-child:not(.pclosing){padding-bottom:80px}.parent .plead{overflow-wrap:break-word}
.pbrand-logo{height:64px;min-height:64px;margin-bottom:20px;gap:0}.pbrand-logo img,.pbrand-logo .pkelmo-wordmark{display:block;width:144px;height:40px;max-width:100%;max-height:40px;object-fit:contain;object-position:left center}.pbrand-acculyst .pbrand-logo img{width:150px;height:44px;max-height:44px}.pbrand-shopify .pbrand-logo img{width:124px;height:36px;max-height:36px}.pbrand .pshopify-label{font-size:11px;line-height:1.4;margin-top:6px}.parent .pbrand h3{font:600 20px/1.3 var(--f-body);letter-spacing:-.02em}
.pfooter{padding:52px 0 28px}.pfooter-grid>div{min-width:0}.pfooter-grid h2{font:500 12px/1.4 var(--f-body)!important;letter-spacing:.07em;margin-bottom:16px}.pfooter-grid p{color:#c5cfc0}.pfooter-grid a,.pfooter-bottom a{overflow-wrap:anywhere}.pfooter-grid>div>a:not(.plogo),.pfooter-links a{padding:5px 0;margin:2px 0;min-height:32px}.pfooter-links{gap:8px 22px}.pfooter-bottom{align-items:center;flex-wrap:wrap}.pfooter a:hover{text-decoration:underline;text-underline-offset:4px}
.cookie{max-width:520px;font-size:13px;line-height:1.5;gap:18px}.cookie a{color:var(--forest);text-decoration:underline;text-underline-offset:3px}.cookie button{flex-shrink:0;min-height:44px}
/* Case studies: full desktop preview, editorial story and a separate mobile view. */
.pstudy-hero{padding:48px 0 56px}.pstudy-hero>.pwrap>.ptextlink{color:#d3d9cf}.pstudy-heading{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:64px;align-items:end;margin:48px 0 42px}.pstudy-heading .peyebrow{color:var(--pink);margin-bottom:20px}.parent .pstudy-heading h1{font-size:clamp(44px,5.8vw,82px);line-height:1.07;overflow-wrap:break-word}.pstudy-heading .plead{font-size:20px;max-width:440px;margin:0!important}
.pstudy-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:0;padding:26px 0 0;border-top:1px solid #ffffff35}.pstudy-facts dt{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#bac6b4;margin-bottom:8px}.pstudy-facts dd{margin:0;font-size:15px;line-height:1.5;overflow-wrap:anywhere}.pstudy-facts a{text-underline-offset:4px}
.pstudy-showcase{padding:48px 0}.pstudy-preview{margin:0;background:#fcfbf7;border:1px solid #111d1130;border-radius:12px;box-shadow:0 14px 40px #111d1110;overflow:hidden}.pstudy-browser{display:flex;align-items:center;gap:6px;padding:14px 20px;border-bottom:1px solid #111d1120;background:#f5f2e9}.pstudy-browser i{width:7px;height:7px;border-radius:50%;background:#b5bbaf}.pstudy-browser span{margin:auto;font-size:10px;color:var(--grey);padding-right:28px;letter-spacing:.05em}.pstudy-preview>a{display:block}.pstudy-screen{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;object-position:top}.pstudy-preview figcaption{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding:18px 24px;border-top:1px solid #111d1120;font-size:12px;color:var(--grey)}.pstudy-preview figcaption .ptextlink{font-size:12px}
.pstudy-story{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:80px;align-items:start}.pstudy-intro>h2,.pstudy-delivery>h2,.pstudy-outcome h2{font-size:clamp(32px,3.5vw,48px);line-height:1.15;margin-bottom:26px}.pstudy-intro>p{font-size:19px;line-height:1.75;max-width:60ch}.pstudy-status{margin-top:36px;border-top:1px solid #111d1130;padding-top:26px}.pstudy-status .peyebrow{margin-bottom:14px}.pstudy-status p{font-size:16px;line-height:1.75}.pstudy-delivery{padding:34px;border:1px solid #111d1126;border-radius:12px;background:#edf0e6}.pstudy-delivery .peyebrow{font-size:10px}.parent .pstudy-delivery h2{font-size:32px}.pstudy-list{list-style:none;padding:0;margin:0;display:grid;gap:0}.pstudy-list li{position:relative;padding:16px 0 16px 28px;border-top:1px solid #111d1126;font-size:16px;line-height:1.6}.pstudy-list li::before{content:'↗';position:absolute;left:0;font-weight:600}.pstudy-outcome{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:72px;align-items:center}.pstudy-outcome>div{max-width:650px}.pstudy-outcome p{font-size:18px;color:#364032}.pstudy-phone{width:210px;max-width:100%;margin:0;justify-self:center}.pstudy-phone img{border:7px solid var(--forest);border-radius:26px;box-shadow:8px 14px 0 #111d1114;background:white}.pstudy-phone figcaption{font-size:11px;text-align:center;line-height:1.6;margin-top:20px}.pstudy-feature{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:56px;align-items:center}.pstudy-feature img{display:block;width:100%;height:auto;object-fit:contain;border-radius:12px}.pstudy-feature h2{font-size:clamp(30px,3vw,44px)}.pstudy-feature p{margin:24px 0}.pstudy-feature .pcase-list{list-style:none;padding:0}.pstudy-feature .pcase-list li{border-top:1px solid #ffffff30;padding:12px 0}
.pstudy-next{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:64px}.pstudy-next h2{font-size:clamp(34px,4vw,54px);margin-bottom:28px}.pstudy-next .pproject-image{background:#c7cfbc}.pstudy-next .pproject-image img{aspect-ratio:1.65;object-fit:cover}
/* Enquiries use the same parent design, with visible native form controls. */
.pcontact-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:72px;align-items:start}.pcontact-aside{padding-top:14px;min-width:0}.pcontact-aside h2{font-size:clamp(36px,4vw,56px);margin-bottom:26px}.pcontact-aside>p{font-size:17px;max-width:360px;margin-bottom:24px}.pcontact-aside>.ptextlink{font-size:18px}.pcontact-next{margin-top:48px}.parent .pcontact-next h3{font:600 17px/1.4 var(--f-body);letter-spacing:0}.pcontact-next ol{list-style:none;padding:0;margin:20px 0 0;max-width:390px}.pcontact-next li{display:flex;gap:20px;padding:18px 0;border-top:1px solid #111d1126;font-size:15px;line-height:1.6}.pcontact-next li span{font-size:11px;padding-top:3px;flex-shrink:0;color:var(--grey)}.pcontact-aside .pcontact-support{margin-top:30px;font-size:14px}.pcontact-support a{display:inline-block;text-underline-offset:4px}
.pcontact-panel{min-width:0;padding:38px;background:#fcfbf7;border:1px solid #111d112e;border-radius:12px}.parent .pcontact-panel h2{font-size:36px;line-height:1.15;letter-spacing:-.035em}.parent .pform-intro{font-size:13px;margin:12px 0 28px}.pform-honey{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.pform-offers{border:0;padding:0;margin:0 0 30px;min-width:0}.pform-offers legend{font-size:14px;font-weight:600;margin-bottom:14px}.pform-offers>label{display:flex;gap:14px;align-items:flex-start;border:1px solid #111d1130;border-radius:7px;padding:17px 18px;margin-top:10px;cursor:pointer;transition:background .15s}.pform-offers>label:has(input:checked){background:var(--pink);border-color:var(--forest)}.pform-offers input,.pform-consent input{accent-color:var(--forest);width:18px;height:18px;flex-shrink:0;margin:3px 0 0}.pform-offers strong{display:block;font-size:15px;line-height:1.4;font-weight:600}.pform-offers small{display:block;font-size:13px;line-height:1.6;color:#364032;margin-top:5px}.pform-offers .pform-unsure{font-size:14px;align-items:center;padding:14px 18px}.pform-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px;margin-bottom:24px}.pform-field{min-width:0}.pform-field label{display:block;font-size:13px;font-weight:600;margin-bottom:9px}.pform-field label span,.pform-details summary span{font-weight:400;color:var(--grey)}.pform-field input,.pform-field select,.pform-field textarea{width:100%;min-width:0;padding:12px 13px;border:1px solid #111d1145;background:var(--paper);color:var(--forest);border-radius:5px;font-size:15px;line-height:1.6}.pform-field input,.pform-field select{min-height:49px}.pform-field textarea{display:block;resize:vertical;min-height:150px}.pform-field input::placeholder,.pform-field textarea::placeholder{color:#697263;opacity:1}.pform-details{margin:26px 0;border-top:1px solid #111d1126;border-bottom:1px solid #111d1126}.pform-details summary{cursor:pointer;padding:18px 0;font-size:14px;font-weight:600;line-height:1.5}.pform-details .pform-grid{margin-top:6px}.pform-consent{display:flex;gap:12px;align-items:flex-start;font-size:13px;line-height:1.7;cursor:pointer;margin-bottom:28px}.pform-consent a{text-underline-offset:3px}.pform-error{background:#ffe8e6;border:1px solid #a9382c;padding:14px 16px;border-radius:5px;color:#742319!important;font-size:14px;margin-bottom:22px!important}.pform-success{padding:40px 0}.pform-success-icon{display:grid;place-items:center;width:56px;height:56px;background:var(--lime);border-radius:50%;font-size:27px;margin-bottom:30px}.pform-success p{margin:24px 0;max-width:440px}.pform-success #project-reference{font-size:13px;overflow-wrap:anywhere}.pform-success:focus{outline:0}
.plegal-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:36px}.plegal-copy{grid-column:2;max-width:780px}.plegal-copy>p:first-child{font-size:13px;margin-bottom:32px}.parent .plegal-copy h2{font-size:30px;line-height:1.25;margin:36px 0 16px;letter-spacing:-.025em}.plegal-copy p,.plegal-copy li{font-size:16px;line-height:1.8;overflow-wrap:anywhere}.plegal-copy p{margin:14px 0}.plegal-copy a{text-underline-offset:4px}
@media(max-width:1000px){.pstudy-heading{gap:36px;grid-template-columns:1fr}.pstudy-heading .plead{max-width:740px}.pstudy-story,.pstudy-outcome,.pstudy-next{gap:40px}.pcontact-grid{gap:36px;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr)}.pcontact-panel{padding:28px}.pfeatures{grid-template-columns:1fr;gap:28px}.pfeatures article{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:24px}.pfeatures article h3{margin:0}.pfooter-links{grid-template-columns:1fr}.pstudy-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.psection,.pshorthero{padding:60px 0}.pclosing{padding:60px 0 64px}.pstudy-hero{padding:40px 0}.pstudy-heading{margin:32px 0}.pstudy-showcase{padding:32px 0}.pstudy-story,.pstudy-feature{grid-template-columns:1fr;gap:32px}.pstudy-delivery{padding:28px}.pcontact-grid{grid-template-columns:1fr;gap:44px}.pcontact-panel{grid-row:1}.pcontact-aside{grid-row:2;padding-top:0}.pcontact-aside h2 br{display:none}.pcontact-aside>p{max-width:100%}.pcontact-next{margin-top:30px}.pcontact-next ol{max-width:100%}.plegal-wrap{display:block}.pfooter-bottom{gap:18px}.pbrand{padding:26px}.pbrand-logo{height:56px;min-height:56px}.pbrand-logo img,.pbrand-logo .pkelmo-wordmark{width:128px;height:36px;max-height:36px}.pbrand-acculyst .pbrand-logo img{width:136px;height:40px;max-height:40px}.pbrand-shopify .pbrand-logo img{width:116px;height:34px;max-height:34px}}
@media(max-width:640px){.psection,.pshorthero{padding:52px 0}.pclosing{padding:52px 0 60px}.pstudy-hero{padding:32px 0 38px}.parent .pstudy-heading h1{font-size:clamp(40px,10vw,58px)}.pstudy-heading .plead{font-size:18px}.pstudy-facts{gap:22px 16px}.pstudy-facts dd{font-size:14px}.pstudy-showcase{padding:24px 0}.pstudy-preview figcaption{padding:14px 16px;font-size:11px}.pstudy-browser{padding:11px 14px}.pstudy-story,.pstudy-outcome,.pstudy-next{grid-template-columns:1fr;gap:34px}.pstudy-intro>p{font-size:17px}.pstudy-phone{width:180px}.pstudy-outcome h2{font-size:35px}.pstudy-list li{font-size:15px}.pstudy-delivery{padding:26px}.pstudy-next h2{font-size:36px}.pstudy-next .pproject-image{grid-row:1}.pcontact-panel{padding:26px 20px}.parent .pcontact-panel h2{font-size:31px}.pform-grid{grid-template-columns:1fr;gap:20px}.pform-offers>label{padding:15px 14px}.pform-offers strong{font-size:14px}.pform-details summary span{display:block;margin-top:2px}.pcontact-panel button{width:100%}.pform-success{padding:20px 0}.pform-success .pbutton{width:100%}.pfeatures article{display:block}.pfeatures article h3{margin-bottom:16px}.pclosing .pbutton{width:100%;max-width:360px}.pclosing .pemail{font-size:13px}main>section:last-child:not(.pclosing){padding-bottom:56px}.cookie{bottom:12px;left:12px;right:12px;max-width:calc(100% - 24px);padding:12px 14px;font-size:12px;gap:12px}.pmenulayer .pmenu-bottom{flex-wrap:wrap}}
@media(max-width:560px){.pfooter-grid{grid-template-columns:minmax(0,1fr);gap:28px}.pfooter-grid>div:first-child{grid-column:auto}.pfooter-links{grid-template-columns:minmax(0,1fr);gap:3px}.pfooter-grid>div{border-top:1px solid #ffffff25;padding-top:24px}.pfooter-grid>div:first-child{border:0;padding:0}.pfooter-grid>div>a:not(.plogo),.pfooter-links a{min-height:40px;padding:8px 0;margin:0}.pfooter-bottom{flex-direction:column;align-items:flex-start;gap:14px;margin-top:30px}.pfooter-bottom>div{flex-wrap:wrap;gap:8px 22px}.pfooter-bottom a{display:inline-flex;align-items:center;min-height:36px}.pfooter{padding-top:38px}.pfooter-grid p{max-width:100%;margin:16px 0}.pbrand{padding:25px}.pbrand-logo{margin-bottom:16px}.pbrand p{margin-bottom:22px}.pbrand .ptextlink{font-size:14px;line-height:1.5}.phero{padding:48px 0 54px}.pservice h3{font-size:30px}.pactions{gap:20px}.pactions .pbutton{width:100%}.phero-grid{gap:36px}.pbutton{min-height:50px}.pfeatures{margin-top:30px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

.plocations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.plocation{border:1px solid #111d112b;border-radius:14px;background:#fcfbf7;overflow:hidden;display:flex;flex-direction:column;scroll-margin-top:24px;min-width:0}.plocation figure{margin:0;position:relative;overflow:hidden}.plocation figure img{display:block;width:100%;aspect-ratio:1.85;object-fit:cover;object-position:center 45%;height:auto}.plocation#uk figure img{object-position:center top}.plocation figcaption{position:absolute;bottom:14px;left:18px;background:var(--forest);color:var(--paper);padding:5px 12px;border-radius:4px;font-size:11px;letter-spacing:.03em}.plocation-content{padding:30px;display:flex;flex-direction:column;flex:1}.plocation .peyebrow{font-size:10px;margin-bottom:14px}.parent .plocation h2{font-size:35px;margin:0 0 20px}.plocation-address{font-style:normal;font-size:16px;line-height:1.75;margin-bottom:24px}.plocation-links{margin-top:auto;padding-top:18px;border-top:1px solid #111d1124;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;font-size:14px}.plocation-links a{overflow-wrap:anywhere}.plocation-links .ptextlink{font-size:14px}.parent .plocation-note{font-size:13px;margin-top:32px}.pphoto-credits{margin-top:20px;color:var(--grey);font-size:12px;max-width:800px}.pphoto-credits summary{cursor:pointer;min-height:36px;display:list-item}.pphoto-credits ul{padding-left:20px;line-height:1.8}.psupport-note{margin-top:32px!important;max-width:740px;font-size:15px}

@media(max-width:800px){.plocations{gap:24px}.plocation-content{padding:26px}.parent .plocation h2{font-size:30px}.plocation-links{align-items:flex-start;flex-direction:column}}
@media(max-width:640px){.plocations{grid-template-columns:1fr}.plocation-content{padding:25px}.plocation figure img{aspect-ratio:1.7}}

/* Supplied flagship vector wordmark: proportional, with clear space. */
.plogo svg{display:block;width:144px;height:48px;flex-shrink:0}
.pbrand-shopify .pbrand-logo img{width:140px;height:46px;max-height:46px}
@media(max-width:800px){.pbrand-shopify .pbrand-logo img{width:132px;height:44px;max-height:44px}}

/* Compact mobile header wordmark; footer and desktop retain their sizes. */
@media(max-width:800px){.pheader .plogo{min-height:44px;align-items:center}.pheader .plogo svg{width:120px;height:40px}}

/* Supplied Shopify lockup: preserve its aspect ratio and avoid duplicate sublabels. */
.pbrand-shopify .pbrand-logo img{width:240px;height:52px;max-height:52px;max-width:100%;object-fit:contain}
@media(max-width:800px){.pbrand-shopify .pbrand-logo img{width:224px;height:49px;max-height:49px}}
/* A drawn chevron stays aligned with the desktop menu label. */
.pservices summary{display:flex;align-items:center;gap:10px;line-height:1.4}.pservices summary::after{content:"";display:block;width:7px;height:7px;margin:0 0 4px 0;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .18s ease;flex-shrink:0}.pservices[open] summary::after{transform:rotate(225deg);margin-bottom:0}
/* CMS announcement. Its complete message is a link when a destination is set. */
.announce{background:var(--forest);color:var(--lime);border-bottom:1px solid #ffffff24;font:500 13px/1.6 var(--f-body)}.announce-in{position:relative;display:flex;justify-content:center;align-items:center;min-height:48px;padding:10px 52px;gap:12px}.announce-message{display:block;text-align:center;overflow-wrap:anywhere;max-width:900px}.announce a{text-decoration:none}.announce a:hover{text-decoration:underline;text-underline-offset:4px}.announce-arrow{display:inline-block;margin-left:8px}.announce-close{position:absolute;right:0;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--paper);font-size:23px;line-height:1;cursor:pointer;border-radius:5px}.announce-close:hover{background:#ffffff18}
@media(max-width:640px){.announce-in{padding:10px 40px 10px 0;justify-content:flex-start;min-height:48px}.announce-message{text-align:left;font-size:12px;line-height:1.6}.announce-close{right:-8px}}
