/* Shared vector geometry: no font baselines, shrinking, or rotated link arrows. */
.nc-arrow{display:inline-grid;place-items:center;flex:0 0 auto;width:24px;height:24px;line-height:0;vertical-align:middle}
.nc-arrow svg{display:block;flex:none;width:24px;height:24px;max-width:none;overflow:visible}
.button>.nc-arrow{width:36px;height:36px;flex:0 0 36px;align-self:center;margin:0}
.button{line-height:1.4;max-width:100%;text-align:left}
.text-button{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px}
.header-contact{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}
.text-button>.nc-arrow{width:20px;height:20px;margin:0}
.text-button>.nc-arrow svg{width:18px;height:18px}
.link-arrow{line-height:1.4}
.link-arrow>.nc-arrow,.hero-work-link>.nc-arrow{width:24px;height:24px}
.service-card .card-arrow.nc-arrow{width:36px;height:36px;right:24px;bottom:24px;color:inherit;border-color:#cdd2d5}
.service-1 .card-arrow.nc-arrow{border-color:#737a80}
.page-home .service-card{padding-bottom:76px}
.page-home .service-card p{margin-bottom:0}
.work-card-heading{align-items:center}
.work-card-heading h3{min-width:0;overflow-wrap:anywhere}
.case-sections,.case-section{min-width:0}
.inner-page .case-section>h2,.inner-page .journal-copy h2{min-width:0;overflow-wrap:anywhere}
.work-card-heading>.nc-arrow,.journal-card-bottom>.nc-arrow{width:28px;height:28px}
.journal-card-bottom{align-items:center}
.work-card-open{display:inline-flex;align-items:center;gap:12px;line-height:1.4}
.work-card-open>.nc-arrow{width:20px;height:20px}
.work-card-open>.nc-arrow svg{width:20px;height:20px}
/* At most two columns; narrow panels use one before words crowd their arrows. */
.related-links,.page-composition .related-links{grid-template-columns:repeat(auto-fit,minmax(min(100%,max(240px,calc((100% - 35px)/2))),1fr))}
.related-links a{display:grid;grid-template-columns:minmax(0,1fr) 24px;overflow-wrap:anywhere}
.related-links a>.nc-arrow{align-self:center}
.case-opening dd>a{display:inline-flex;align-items:center;gap:8px;line-height:1.5;max-width:100%}
.content-article p>a:has(>.nc-arrow):not(.button){display:inline-flex;align-items:center;gap:8px;line-height:1.5;max-width:100%}
.nc-cookie-dialog>p>a{display:inline-flex;align-items:center;gap:8px}
.page-toc a>.nc-arrow:last-child{align-self:center;width:22px;height:22px;padding:0}
.page-toc a>.nc-arrow svg{width:20px;height:20px}
.collection-pagination>a,.footer-bottom>a:last-child,.region-other{display:inline-flex;align-items:center;gap:10px}
.collection-pagination>a>.nc-arrow,.footer-bottom>a>.nc-arrow{width:20px;height:20px}
.collection-pagination>a>.nc-arrow svg,.footer-bottom>a>.nc-arrow svg{width:20px;height:20px}
.top-contact .region-trigger{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;line-height:1.4}
.region-trigger>.nc-chevron{width:16px;height:16px;margin-left:3px}
.region-trigger>.nc-chevron svg{width:16px;height:16px}
.region-options a{display:flex;align-items:center;justify-content:space-between;gap:16px}
.region-options a>.nc-arrow{margin:0}
/* Insets belong to the whole row, so hover/focus backgrounds never touch its contents. */
.page-catalog .service-card{grid-template-columns:44px minmax(0,1fr) minmax(0,1.1fr) 44px;gap:28px;padding:32px 24px;min-width:0}
.page-catalog .service-card h2,.page-catalog .service-card p{min-width:0;margin:0}
.page-catalog .service-card .card-arrow{position:static;align-self:center;justify-self:end;width:44px;height:44px}
.page-catalog .service-card:focus-visible{outline-offset:-3px;background:#eef0ed}
@media(max-width:1200px){.page-catalog .service-card{grid-template-columns:32px minmax(0,1fr) minmax(0,1fr) 40px;gap:24px}.page-catalog .service-card .card-arrow{width:40px;height:40px}}
@media(max-width:900px){.page-catalog .service-card{grid-template-columns:28px minmax(0,1fr) 36px;gap:12px 20px;padding:28px 20px}.page-catalog .service-card .card-arrow{width:36px;height:36px;grid-column:3;grid-row:1/3}}
@media(max-width:600px){.page-catalog .service-card{grid-template-columns:22px minmax(0,1fr) 32px;gap:12px 14px;padding:26px 16px}.page-catalog .service-card .card-arrow{width:32px;height:32px;grid-row:1;align-self:start;margin-top:1px}.page-catalog .service-card .card-arrow svg{width:20px;height:20px}.page-catalog .service-card p{grid-column:2/4}.page-home .service-card .card-arrow{right:24px;bottom:24px}.button>.nc-arrow{flex-basis:34px;width:34px;height:34px}.text-button{gap:6px}.text-button>.nc-arrow{width:16px;height:16px}.text-button>.nc-arrow svg{width:16px;height:16px}.work-card-open{display:none}.collection-pagination>a{gap:7px}.top-contact .region-trigger{gap:4px}}
@media(max-width:360px){.page-catalog .service-card{padding-inline:12px;grid-template-columns:18px minmax(0,1fr) 30px;gap:12px}.page-catalog .service-card .card-arrow{width:30px;height:30px}.region-trigger>.nc-chevron{margin-left:0;width:14px;height:14px}}

/* Reserve the staggered card's full footprint before the next article section. */
.development-stages{padding-bottom:35px;margin-bottom:clamp(48px,5vw,72px)}
.page-development .article-body>.page-section+.page-section:not(.section-start){margin-top:clamp(40px,5vw,64px)}
@media(max-width:900px){.development-stages{padding-bottom:0}}

/* One disclosure style for FAQs, support sections and alternate project versions. */
/* Expanding answers must remain in document flow, clear of the next pinned screen. */
.stack-ready .page-home .faq-screen{position:relative;top:auto}
#main details>summary{position:relative;display:block;list-style:none;min-height:44px;padding-right:60px;cursor:pointer;overflow-wrap:anywhere}
#main details>summary::-webkit-details-marker{display:none}
#main details>summary::marker{content:''}
#main .faq-list summary>span:last-child,#main .support-accordion summary>span[aria-hidden='true']{display:none}
#main .support-accordion summary>span:not([aria-hidden]){display:block;width:auto;height:auto;flex:auto;font:inherit;text-align:left;transform:none}
#main details>summary::before,#main details>summary::after{content:'';position:absolute;top:50%;pointer-events:none}
#main details>summary::before{right:0;width:38px;height:38px;border-radius:50%;transform:translateY(-50%);background:linear-gradient(currentColor,currentColor) center/16px 2px no-repeat,#fff;box-shadow:inset 0 0 0 1px #25272912;transition:background-color .25s}
#main details>summary::after{right:18px;width:2px;height:16px;background:currentColor;transform:translateY(-50%) scaleY(1);transition:transform .25s cubic-bezier(.22,1,.36,1)}
#main details[data-nc-expanded='true']>summary::after,#main details:not([data-nc-expanded])[open]>summary::after{transform:translateY(-50%) scaleY(0)}
#main details>summary:hover::before{background-color:#e3e6e3}
#main .panel-dark details>summary::before{background-color:#ffffff14;box-shadow:inset 0 0 0 1px #ffffff28}
#main .panel-dark details>summary:hover::before{background-color:#ffffff25}
#main details[data-nc-animating]{overflow-anchor:none}
#main .service-answers details>summary{padding-block:22px}
#main .service-answers details>p{padding-bottom:24px}
#main .faq-list details>summary{display:flex;align-items:center}
@media(max-width:800px){
  /* Keep the mobile menu rendered so both opening and closing can transition. */
  .header #main-nav,.header #main-nav.is-open{display:grid;grid-template-columns:1fr 1fr;gap:12px;transform-origin:top center;transition:opacity .25s,transform .25s,visibility 0s .25s}
  .header #main-nav{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-10px) scale(.98)}
  .header #main-nav.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition-delay:0s}
}
@media(max-width:600px){
  #main details>summary{padding-right:50px}
  #main details>summary::before{width:32px;height:32px;background-size:14px 2px}
  #main details>summary::after{right:15px;height:14px}
  #main .service-answers details>summary{padding-block:20px}
}
@media(prefers-reduced-motion:reduce){
  #main details>summary::before,#main details>summary::after,.header #main-nav,.header #main-nav.is-open{transition:none}
}
