/* Native disclosure remains usable without scripts or animation support. */
#hero-title [data-reveal]{display:inline-block}
.statement-line{display:block}
.service-disclosure>summary{list-style:none;cursor:pointer;touch-action:manipulation}
.service-disclosure>summary::-webkit-details-marker,.footer-group>summary::-webkit-details-marker{display:none}
.service-disclosure>summary:focus-visible{outline:2px solid #327bd0;outline-offset:-4px}
.service h3.service-inner{font:inherit;letter-spacing:0;white-space:normal;padding-bottom:0}
.service-lead{display:block;font-size:20px;line-height:1.2;font-weight:400;max-width:250px}
.service-name{display:block;font-size:clamp(70px,9vw,150px);line-height:1.12;font-weight:400;letter-spacing:-.055em;white-space:nowrap;padding:0 0 16px;transition:transform .45s cubic-bezier(.22,.68,0,1.02)}
.service-expand{position:absolute;bottom:44px;right:0;display:flex;align-items:center;gap:18px;font-size:14px;font-weight:400;color:#646669}
.plus-mark{position:relative;display:inline-block;width:24px;height:24px;flex:none}
.plus-mark:before,.plus-mark:after{content:"";position:absolute;background:currentColor;left:4px;right:4px;top:11px;height:1px;transition:transform .3s}
.plus-mark:after{transform:rotate(90deg)}
details[open]>summary .plus-mark:after{transform:rotate(0deg)}
.service:has(summary:hover),.service:has(details[open]){background:#f6f6f6}
.service-content{padding:0 0 65px}
.service-content-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:70px;border-top:1px solid #d7d9da;padding-top:35px}
.service-content-grid>div{max-width:410px}
.detail-label{font-size:13px;line-height:1.4;color:#7b7e82;letter-spacing:.4px;margin-bottom:20px}
.service-content-grid p:not(.detail-label),.service-content-grid li{font-size:17px;line-height:1.7;font-weight:400}
.service-content-grid ul{margin:0;padding-left:1.15em}
.detail-action>p{color:#6b6e73}
.detail-action .line-link{font-size:16px;gap:24px;margin-top:20px;width:100%;color:#25262a;border-color:#8e9298}
.detail-action .line-link:hover{border-color:#222}
.service-disclosure::details-content,.footer-group::details-content{interpolate-size:allow-keywords;block-size:0;opacity:0;overflow:clip;transition:block-size .45s cubic-bezier(.25,.8,.25,1),opacity .3s,content-visibility .45s allow-discrete}
.service-disclosure[open]::details-content,.footer-group[open]::details-content{block-size:auto;opacity:1}

.footer{background:#fff}
.footer-directory{display:grid;grid-template-columns:264px 1fr;gap:100px;padding:90px 0 100px}
.footer-copyright{font-size:18px;line-height:1.7;color:#272831}
.footer-privacy{display:block;background:none;border:0;border-top:1px solid #a9abad;border-bottom:1px solid #a9abad;color:#272831;font:inherit;font-size:17px;line-height:1.45;width:100%;text-align:center;padding:26px 0;margin-top:24px;transition:background .25s}
.footer-privacy:hover{background:#e3e4e5}
.footer-languages{display:flex;gap:20px;align-items:center;padding:22px 0;border-bottom:1px solid #a9abad;font-size:17px;color:#25262c}
.footer-languages button{background:none;border:0;padding:0;font:inherit;color:#62656a}
.footer-languages [aria-current]{text-decoration:underline;text-underline-offset:5px}
.footer-socials{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding-top:24px}
.social-pill{display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid #aaa;border-radius:60px;width:164px;height:38px;padding:0;background:transparent;color:#1e1f2b;font-size:16px;line-height:1.4;transition:background .25s}
.social-name{font-size:inherit;color:inherit}
.social-icon{display:block;width:20px;height:20px;object-fit:contain;flex:none}
.social-icon-wide{width:60px;height:24px}
.social-pill:disabled{cursor:default}
.social-pill:hover{background:#e8e8e8}
.footer-columns{display:grid;grid-template-columns:1fr 1fr 1fr;gap:35px}
.footer-group>summary{display:flex;justify-content:space-between;align-items:center;gap:14px;list-style:none;font-size:14px;color:#666a70;border-top:1px solid #a9abad;padding:18px 0 25px;cursor:pointer;touch-action:manipulation}
.footer-group>summary .plus-mark{width:20px;height:20px}
.footer-group>summary .plus-mark:before,.footer-group>summary .plus-mark:after{top:9px;left:3px;right:3px}
.footer-group-content{display:flex;flex-direction:column;align-items:flex-start;gap:15px;padding-bottom:30px;color:#30323a;font-size:16px;line-height:1.4}
.footer-group-content>button{padding:0;background:none;border:0;color:inherit;text-align:left;line-height:inherit;font-size:inherit}
.footer-group-content>a,.footer-group-content>button{transition:color .2s,transform .25s}
.footer-group-content>a:hover,.footer-group-content>button:hover{color:#607383;transform:translateX(3px)}
.footer-process{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:22px}
.footer-process p{color:#73777c;font-size:14px;line-height:1.6;margin-top:5px}
.footer-bottom{border-top:1px solid #bec0c2;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:32px 0;font-size:14px;color:#63676c}
.footer-bottom>a:last-child{display:flex;gap:30px;align-items:center}
.footer-bottom>a:last-child span{font-size:23px}
.privacy-dialog{width:min(600px,calc(100% - 32px));background:#f3f3f1;color:#292b32;border-color:#b7b9bd;border-radius:6px;padding:40px}
.privacy-dialog h2{font-weight:400;font-size:27px}
.privacy-dialog .eyebrow{color:#74777d}
.privacy-content{margin-top:24px;font-size:16px;line-height:1.75}
.privacy-content p+p{margin-top:16px}
.privacy-dialog .close-button{color:#62666b}
.privacy-dialog .line-link{font-size:16px;margin-top:20px}

/* Entry and exit transitions keep the native dialog focus/escape behavior. */
dialog{opacity:0;transform:translateY(12px);transition:opacity .24s,transform .24s,display .24s allow-discrete,overlay .24s allow-discrete}
dialog[open]{opacity:1;transform:translateY(0)}
dialog::backdrop{opacity:0;transition:opacity .24s,display .24s allow-discrete,overlay .24s allow-discrete}
dialog[open]::backdrop{opacity:1}
.menu-dialog{transform:translateY(-14px)}
@starting-style{dialog[open]{opacity:0;transform:translateY(12px)}.menu-dialog[open]{transform:translateY(-14px)}dialog[open]::backdrop{opacity:0}}
@keyframes menu-line-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.menu-dialog[open] nav>a{animation:menu-line-in .42s both;animation-delay:calc(var(--item-order,0)*.045s)}
.header-cta,.header-tool,.button{transition:background .2s,color .2s,transform .2s}
.header-cta:active,.header-tool:active,.button:active{transform:scale(.97)}
.line-link span,.cta-arrow,.highlights-all span,.highlight-caption h2 span{display:inline-block;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.line-link:hover span,.highlights-all:hover span,.highlight-caption:hover h2 span{transform:translate(4px,-4px)}
.footer-cta:hover .cta-arrow{transform:translateX(12px)}
.carousel-arrow svg{transition:transform .3s}
.carousel-next:hover svg{transform:translateX(4px)}
.carousel-prev:hover svg{transform:translateX(-4px)}
.highlight-image{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.highlight-slide:has(.highlight-caption:hover) .highlight-image{transform:scale(1.025)}
.carousel-tabs button{position:relative;border-bottom:0}
.carousel-tabs button:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s}
.carousel-tabs button[aria-selected="true"]:after,.carousel-tabs button:hover:after{transform:scaleX(1)}
@media(hover:hover) and (min-width:1500px){.service-disclosure>summary:hover .service-name{transform:translateX(10px)}}
@media(max-width:1100px){.footer-directory{grid-template-columns:280px 1fr;gap:50px}.footer-columns{gap:24px}.service-name{font-size:9vw}.service-content-grid{gap:36px}.detail-action .line-link{gap:12px;font-size:14px}}
@media(max-width:850px){.footer-directory{grid-template-columns:1fr;gap:55px}.footer-identity{max-width:400px}.footer-columns{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){
  .statement-line{display:inline}.statement-line+.statement-line:before{content:" "}
  .service h3.service-inner{padding:16px 0 38px;gap:24px;min-height:0}
  .service-name{font-size:clamp(52px,12.8vw,82px);letter-spacing:-.04em;padding:0}
  .service-lead{font-size:16px;line-height:1.5}
  .service-expand{right:0;top:35px;bottom:auto;gap:0;color:#676b70}
  .service-expand-label{display:none}.service-expand .plus-mark{width:20px}
  .service-content{padding-bottom:36px}.service-content-grid{grid-template-columns:1fr;gap:26px;padding-top:24px}
  .service-content-grid>div{max-width:none}.service-content-grid p:not(.detail-label),.service-content-grid li{font-size:16px;line-height:1.65}
  .detail-label{font-size:12px;margin-bottom:12px}.detail-action .line-link{font-size:16px;margin-top:12px;width:auto;min-width:240px}
  .footer-directory{padding:50px 0 55px;gap:50px;display:flex;flex-direction:column}
  .footer-identity{max-width:none;width:100%}.footer-copyright{font-size:18px;line-height:1.75}
  .footer-privacy{font-size:17px;padding:24px 0;margin-top:24px}.footer-languages{font-size:18px;gap:24px;padding:22px 0}
  .footer-socials{gap:12px;padding-top:24px}.social-pill{font-size:16px;width:164px;height:38px}
  .footer-columns{display:block}.footer-group{border-bottom:1px solid #b9bcbf}.footer-group>summary{padding:22px 0;border-top:0;font-size:17px;color:#30323a}.footer-group:first-child{border-top:1px solid #b9bcbf}
  .footer-group-content{padding:0 0 24px;gap:18px;font-size:16px}.footer-process{gap:20px}.footer-process p{font-size:14px}
  .footer-bottom{padding:25px 0;font-size:13px}.footer-bottom>a:last-child{gap:14px}
  .privacy-dialog{padding:36px 24px}.privacy-dialog h2{font-size:24px}.privacy-content{font-size:15px}
}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after,details::details-content{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  [data-reveal]{opacity:1!important;transform:none!important}
  dialog[open]{opacity:1;transform:none}
}

/* Reference audit: retain editorial proportions at the actual 1500 / 960 / 560 breakpoints. */
.header-cta{display:flex;align-items:center;justify-content:center;gap:0;font-weight:400;white-space:nowrap}
.header-cta-arrow{display:inline-block;width:0;opacity:0;overflow:hidden;transition:width .2s,opacity .2s,margin .2s}
.header-cta:hover .header-cta-arrow,.header-cta:focus-visible .header-cta-arrow{width:16px;margin-right:7px;opacity:1}
@media(min-width:1500px){.service-name{font-size:180px;line-height:1;letter-spacing:-10px}.service-inner{border-top:1px solid #f7f7f7}.service-expand{bottom:44px}}
@media(max-width:1499px){
  .services h2{font-size:20px;line-height:1;margin-bottom:22px;letter-spacing:0}
  .service h3.service-inner{display:flex;flex-direction:column-reverse;align-items:flex-start;justify-content:flex-end;min-height:0;padding:12px 0 40px;gap:16px;border-top:1px solid #f7f7f7}
  .service-name{font-size:80px;line-height:1;letter-spacing:-4px;padding:0}
  .service-detail{display:block;padding:0;width:100%}
  .service-lead{max-width:none;font-size:20px;line-height:1.1}
  .service-number{position:absolute;right:0;top:20px;margin:0;color:#aaa;font-size:16px}
  .service-expand{top:20px;right:48px;bottom:auto;gap:0}
  .service-expand-label{display:none}
  .service-content-grid{gap:36px}
}
@media(min-width:560px) and (max-width:1499px){.service-lead br{display:none}.service-lead br:after{content:" "}}
@media(max-width:959px){
  .frame,.menu-shell{width:calc(100% - 40px)}
  .header-backdrop,.header-inner,.header-actions{top:0;width:100%;height:82px;border-radius:0}
  .header-inner,.header-actions{padding:20px}
  .header .brand{--mark-width:26px;gap:8px}.header .brand-wordmark{--word-width:132px}
  .header-actions{gap:20px}.header-cta{width:140px;font-size:16px}.header-tool{width:40px;height:40px}
}
@media(max-width:559px){
  html{scroll-padding-top:85px}
  .header-backdrop,.header-inner{height:65px}
  .header-inner{padding:12px 20px}
  .header .brand{--mark-width:24px;gap:8px}.header .brand-wordmark{--word-width:120px}
  .header-actions{top:auto;bottom:max(20px,env(safe-area-inset-bottom));width:calc(100% - 40px);height:40px;padding:0;flex-direction:row-reverse;justify-content:space-between;gap:20px}
  .header-cta{width:110px;padding:0 10px;font-size:16px}.header-tool{width:40px}.header-tool+.header-tool{border-left:0}
  .menu-lines{width:20px}
  .header-cta-arrow{display:none}.header-tools{flex-direction:row-reverse}.header-tool+.header-tool{border-left:1px solid #1e2124;border-right:0}
  .service-name{font-size:clamp(52px,17vw,66px);line-height:1.05;letter-spacing:-3px}
  .service h3.service-inner{padding:12px 0 40px;gap:16px}
  .service-lead{font-size:18px;line-height:1.35}
  .service-number{font-size:14px;top:17px}.service-expand{top:16px;right:36px}
  .footer-bottom{padding-bottom:94px}.video-toggle{bottom:78px}
}
.social-unavailable-toast{position:fixed;z-index:10000;left:50%;bottom:calc(96px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);max-width:calc(100vw - 40px);padding:12px 24px;background:#292b32;color:#fff;font-size:15px;line-height:1.6;text-align:center;box-shadow:0 6px 24px #0002;pointer-events:none}
