From 085157636d59265e534fe7601f7143db9317fbe2 Mon Sep 17 00:00:00 2001 From: Bandana Laishram Date: Thu, 18 Jun 2026 11:44:54 +0530 Subject: [PATCH] Fixing focus visible for product card --- federal/libs/global-navigation/dist/main.js | 2 +- federal/libs/global-navigation/dist/main.js.map | 4 ++-- .../src/Components/ProductList/productlist.css | 6 +++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/federal/libs/global-navigation/dist/main.js b/federal/libs/global-navigation/dist/main.js index 2f7a30b..2838350 100644 --- a/federal/libs/global-navigation/dist/main.js +++ b/federal/libs/global-navigation/dist/main.js @@ -243,7 +243,7 @@ version="1.0" encoding="UTF-8"?>
${r}
${o?``:""} - `.trim(),l=t!=null&&t.breadcrumbs!==null?be(t.breadcrumbs):"",s="";switch(e.type){case"ProductList":s=ka(e);break;case"GnavCards":s=xa(e);break;default:}return`${l}${i}${s}`};var Ea=e=>{if(e===null)throw new g(La.elementNull);let a=e.querySelector("h5")?.textContent??"",t=e.querySelector(".links-card");if(t===null)throw new g(La.noLinksCard);let[n,r]=we(t),o={type:"GnavColumn",cards:[{type:"LinksCard",card:n.card}]};return[{type:"SmallMenu",title:a,content:[{type:"GnavCards",megaMenuTitle:a,sections:[o]},r]},r]},La={elementNull:"Element is null",noLinksCard:"Small Menu has no links-card"};var Ca=(e,a=0)=>ke({...e,type:"MegaMenu",content:Promise.resolve(e.content)},a).replace('class="mega-menu feds-link"','class="mega-menu small-menu feds-link"').replace('class="feds-popup"','class="feds-popup small-menu"'),Ta=(e,a)=>Le(e,a);var Ma={elementNull:"Error when parsing text. Element is null",textContentNull:"Error when parsing text. Element has no textContent"},Sa=e=>{if(e===null)return[{type:"Text",content:""},[new v(Ma.elementNull,"Minor")]];let a=e.textContent;return a===null?[{type:"Text",content:""},[new v(Ma.textContentNull,"Minor")]]:[{type:"Text",content:a},[]]};var Aa=({content:e})=>e;var Pa=e=>{if(e===null)throw new g(Tt.elementNull);let a=e.querySelector(".gnav-brand");if(a!==null)return oa(a);let t=e.querySelector(".large-menu");return t!==null?ua(t):e.querySelector("h5")!==null&&e.querySelector(".links-card")!==null?Ea(e):e.querySelector(".product-entry-cta")!==null?la(e):e.querySelector("strong")!==null?pe(e):e.querySelector("em")!==null?W(e):e.querySelector("a")===null?Sa(e):N(e.querySelector("a"))},Pe=(e,a)=>{switch(e.type){case"Text":return Aa(e);case"Link":return re(e);case"SecondaryCTA":return Z(e);case"PrimaryCTA":return ge(e);case"ProductEntryCTA":return ye(e);case"Brand":return ia(e);case"MegaMenu":return ke(e,a);case"SmallMenu":return Ca(e,a);default:return console.error(`Failed to recognize component: ${e}`),""}},Tt={elementNull:"Element is null"};var _a={elementNull:"Error when parsing Breadcrumbs. Element is null",noItems:"Error when parsing Breadcrumbs. No items found"},za=e=>{if(e===null)throw new g(_a.elementNull);let a=[...e.querySelectorAll("ul > li")];if(a.length===0)throw new g(_a.noItems);let t=o=>{let i=o.querySelector(":scope > a");return i!==null?N(i):[o.textContent?.trim()??"",[]]},[n,r]=O(a,t);return[{type:"Breadcrumbs",items:n},r]};var Ha=(e,a,t=new Map)=>{let n=document.querySelector(".breadcrumbs"),[r,o]=n===null?[null,[]]:za(n),[i,l]=O([...e.children],Pa),s=i.find(m=>m.type==="ProductEntryCTA")??null,c=i.filter(m=>m.type!=="ProductEntryCTA"),p=K("localnav")==="true",f=K("gnav-dark-font")==="true",h=[o,l].flat();return{breadcrumbs:r,components:c,productCTA:s,localnav:p,darkFont:f,errors:h,unavEnabled:a,placeholders:t}};var fe=72,$a=64,me=(e,a)=>{(e.closest("header")??e).style.setProperty("--feds-popup-bg-height",a)},Ia=e=>{let a=e.querySelector(".feds-skip-link"),t=c=>{let p=document.querySelector("#main-content");p instanceof HTMLElement&&(c.preventDefault(),p.hasAttribute("tabindex")||p.setAttribute("tabindex","-1"),setTimeout(()=>{p.focus(),p.scrollIntoView({behavior:"smooth",block:"start"})},100))};a?.addEventListener("click",t);let n=[...e.querySelectorAll('.tabs button[role="tab"]')],r=[...e.querySelectorAll(".tab-content ul")],o=n.map((c,p)=>()=>{let f=r[p].closest(`.feds-popup.${M}`);if(n.forEach(m=>{m.setAttribute("aria-selected","false")}),r.forEach(m=>{m.setAttribute("hidden","true")}),r[p]?.removeAttribute("hidden"),c.setAttribute("aria-selected","true"),!f||!_())return;let h=f?.clientHeight??0;me(e,`${h+fe}px`)}),i=n.map(c=>()=>{if(_()||!c.matches(":focus-visible"))return;let p=n[0]?.offsetLeft??0;requestAnimationFrame(()=>{let f=c.closest(".tabs");f&&(f.scrollLeft=c.offsetLeft-p)})});n.forEach((c,p)=>{c.addEventListener("click",o[p]),c.addEventListener("focus",i[p])});let l=e.querySelector('.tabs[role="tablist"]'),s=()=>{l&&(_()?l.setAttribute("aria-orientation","vertical"):l.removeAttribute("aria-orientation"))};return s(),H.addEventListener("change",s),Mt(e),St(e),()=>{a?.removeEventListener("click",t),n.forEach((c,p)=>{c.removeEventListener("click",o[p]),c.removeEventListener("focus",i[p])}),H.removeEventListener("change",s)}},Mt=e=>{let a=[...e.querySelectorAll(".feds-gnav-items > li > button")],t=e.querySelector(".feds-gnav-items"),n=K("localnav")==="true",r=(l,s=0)=>{let c=e.querySelector(l),p=e.querySelector(".feds-menu-wrapper.is-open .feds-gnav-items");if(n&&!!p&&!c){let L=p.clientHeight<1?"100%":`${p.clientHeight+s}px`;me(e,L);return}if(!c){me(e,"100%");return}let m=c.clientHeight<1?"100%":`${c.clientHeight+s}px`;me(e,m)},o=new ResizeObserver(l=>{if(l.length<1)return;let s=n&&!_()?fe+$a:fe;r(`.feds-popup.${M}`,s)});a.forEach(l=>{let s=l.nextElementSibling;if(!s||(o.observe(s),s.addEventListener("toggle",p=>{if(p.newState!=="open"&&!e.querySelector(`.feds-popup.${M}`)){if(_())return;t?.classList.remove("subscreen-opening"),t?.classList.add("subscreen-closing")}else if(me(e,`${s.clientHeight+fe}px`),!_()){let h=s.querySelector(".tabs"),m=s.querySelector('button[role="tab"][aria-selected="true"]'),y=h?.querySelector('button[role="tab"]');h&&m&&y&&(h.scrollLeft=m.offsetLeft-h.offsetLeft-y.offsetLeft)}}),!n)||!t)return;new ResizeObserver(p=>{p.length<1||_()||r(`.feds-menu-wrapper.${M} .feds-gnav-items`,fe+$a)}).observe(t)}),a.forEach(l=>{let s=l.nextElementSibling;if(!(s instanceof HTMLElement))return;he(e,s.id).forEach(p=>{p.addEventListener("click",()=>{_()||t&&(t.classList.remove("subscreen-closing"),t.classList.add("subscreen-opening"),s.querySelector(".feds-popup-back-button")?.addEventListener("click",()=>{t.classList.remove("subscreen-opening"),t.classList.add("subscreen-closing"),setTimeout(()=>F(s),240)}))})})}),H.addEventListener("change",()=>{t?.classList.remove("subscreen-opening"),t?.classList.remove("subscreen-closing")});let i=e.querySelector(".feds-nav-toggle");i?.getAttribute("aria-controls")==="feds-menu-wrapper"&&i.addEventListener("click",()=>{t?.classList.remove("subscreen-opening"),t?.classList.remove("subscreen-closing")})},St=e=>{e.querySelectorAll(".feds-popup:not(.small-menu) article.links-card").forEach(a=>{let t=a.querySelector("div.links-card-title-container");if(t===null)return;let n=()=>{t.setAttribute("aria-expanded",String(!a.classList.contains("closed")))},r=()=>{_()?(t.removeAttribute("tabindex"),t.removeAttribute("role"),t.removeAttribute("aria-expanded")):(t.setAttribute("tabindex","0"),t.setAttribute("role","button"),n())};r(),H.addEventListener("change",r);let o=()=>{if(_())return;let i=a.classList.contains("closed");a.classList.toggle("closed"),i&&(a.classList.add("opening"),window.setTimeout(()=>{a.classList.remove("opening")},900)),n(),t.setAttribute("daa-ll",a.classList.contains("closed")?"Open":"Close")};t.addEventListener("click",o),t.addEventListener("keydown",i=>{i.key!=="Enter"&&i.key!==" "||_()||(i.preventDefault(),o())})})};function Q(e,a){return[...e.querySelectorAll(a)]}function ue(e,a,t){Q(e,a).forEach(n=>t?n.removeAttribute("tabindex"):n.setAttribute("tabindex","-1"))}var Y=e=>(e.querySelector("nav.localnav")!==null||e.matches("nav.localnav"))&&!_(),Ra=e=>e.querySelector(".feds-localnav-bar"),X=e=>e.querySelector("#feds-menu-wrapper"),_e=e=>e.querySelector("#feds-menu-wrapper .feds-gnav-items"),Da=e=>{let a=_e(e);return a?[...a.querySelectorAll(":scope > li > .feds-link,:scope > li > .feds-primary-cta,:scope > li > .feds-secondary-cta")].filter(n=>n.offsetParent!==null):[]},At=e=>{let a=Da(e),t=Ra(e);return t?[t,...a]:a},Ee=(e,a)=>{let t=_e(e);if(!t)return;t.querySelectorAll(":scope > li > .feds-link,:scope > li > .feds-primary-cta,:scope > li > .feds-secondary-cta").forEach(r=>{a?r.removeAttribute("tabindex"):r.setAttribute("tabindex","-1")})},Pt=e=>[...e.querySelectorAll('a[href], button:not([disabled]), [tabindex]:not([tabindex="-1"]), input:not([disabled]), [role="tab"]')].filter(t=>t.offsetParent!==null),ie={ArrowLeft:-1,ArrowRight:1,ArrowUp:-1,ArrowDown:1},qa=new Set(["ArrowLeft","ArrowRight"]),_t=new Set(["ArrowUp","ArrowDown"]),zt='.tabs [role="tab"][aria-selected="true"]';function oe(e,a,t){return(e+a+t)%t}function Ht(e,a,t,n){let r=ie[t];if(qa.has(t)){let m=a+r;return m>=0&&m{let y=e[m].parentElement;return y?i.indexOf(y):-1},s=l(a)%o,c=Math.floor(l(a)/o)+(t==="ArrowDown"?1:-1),p=Math.floor((i.length-1)/o);if(c<0||c>p)return null;let f=null,h=1/0;for(let m=0;m{let u=()=>{if(!I(d)){ue(d,'[role="tabpanel"] a',!1),Y(e)&&I(X(e))&&d.contains(document.activeElement)&&Se(e,d.id)?.focus();return}if(!Y(e)||!I(X(e)))return;(d.querySelector(".feds-popup-back-button")??d.querySelector("a, button"))?.focus()};d.addEventListener("toggle",u),a.push(()=>d.removeEventListener("toggle",u));let b=!1,k=w=>{w.key==="Tab"&&!w.shiftKey&&(b=!0)};d.addEventListener("keydown",k),a.push(()=>d.removeEventListener("keydown",k));let x=w=>{if(b&&!d.contains(w.relatedTarget)){if(Y(e)&&I(X(e))){b=!1;return}if(F(d),!_()){let C=d.closest(".feds-gnav-items");C?.classList.remove("subscreen-opening"),C?.classList.add("subscreen-closing")}b=!1}};d.addEventListener("focusout",x),a.push(()=>d.removeEventListener("focusout",x))});let t=X(e);if(t){let d=()=>{let u=I(t);Y(e)&&Ee(e,u),!u&&Y(e)&&t.contains(document.activeElement)&&Ra(e)?.focus()};t.addEventListener("toggle",d),a.push(()=>t.removeEventListener("toggle",d))}let n=()=>{if(!_e(e))return;if(_()){Ee(e,!0);return}let d=I(X(e));Ee(e,d)};H.addEventListener("change",n),a.push(()=>H.removeEventListener("change",n));let r=(d,u)=>{d.focus(),u.preventDefault()},o=()=>e.querySelector(`.feds-popup.${M}`),i=d=>d.querySelector(zt),l=d=>d.querySelector('[role="tabpanel"]:not([hidden])');function s(d){let u=o(),b=e.querySelector("#feds-menu-wrapper");if(!b)return!1;let k=b.querySelector(".feds-gnav-items"),x=u?u.querySelector(".feds-popup-back-button"):null,w=k?.classList.contains("subscreen-opening")===!0;if(u!==null&&w&&x!==null)return x.click(),d.preventDefault(),!0;let C=u??(I(b)?b:null);return C?(F(C),(u?Se(e,C.id):Y(e)?e.querySelector(".feds-localnav-bar"):e.querySelector(".feds-nav-toggle"))?.focus(),d.preventDefault(),!0):!1}function c(d,u,b,k){if(u!=="Tab"||!Y(e))return!1;let x=X(e);if(!x||!I(x)||o()!==null)return!1;let w=At(e);if(w.length===0)return!1;let C=w.indexOf(d);if(C<0)return!1;let R=oe(C,b?-1:1,w.length);return r(w[R],k),!0}function p(d,u,b){if(!ie[u]||!Y(e))return!1;let k=X(e);if(!k||!I(k)||o()!==null)return!1;let x=Da(e);if(x.length===0)return!1;let w=x.indexOf(d);return w<0?!1:(r(x[oe(w,ie[u],x.length)],b),!0)}function f(d,u,b,k){if(u!=="Tab"||!Y(e))return!1;let x=o();if(!x)return!1;let w=X(e);if(!w||!I(w))return!1;let C=Pt(x);if(C.length===0)return!1;let R=C.indexOf(d);if(R<0)return!1;let G=oe(R,b?-1:1,C.length);return r(C[G],k),!0}function h(d,u,b){if(!qa.has(u))return!1;let k=Q(e,".feds-gnav-items > li > .feds-link"),x=k.indexOf(d);return x<0?!1:(r(k[oe(x,ie[u],k.length)],b),!0)}function m(d,u,b,k){let x=Q(u,'.tabs :is([role="tab"], .product-links a)'),w=x[0]?.offsetLeft??0,C=x.indexOf(d);if(C<0)return!1;let R=_()?{ArrowLeft:0,ArrowRight:0,ArrowUp:-1,ArrowDown:1}:{ArrowLeft:-1,ArrowRight:1,ArrowUp:0,ArrowDown:0};if(R[b]){let G=x[oe(C,R[b],x.length)];return G.matches('[role="tab"]')&&(G.click(),_()||requestAnimationFrame(()=>{let se=G.closest(".tabs");se!==null&&(se.scrollLeft=G.offsetLeft-w)})),r(G,k),!0}if(b in R)return k.preventDefault(),!0;if(b==="Tab"&&!k.shiftKey&&d.matches('[aria-selected="true"]')){let G=l(u);if(!G)return!1;ue(G,"a",!0);let se=G.querySelector("a");return se&&r(se,k),!0}return!1}function y(d,u,b,k){let x=l(u);if(!x)return!1;let w=Q(x,"a"),C=w.indexOf(d);if(C<0)return!1;if(ie[b]){let R=Ht(w,C,b,x);return R!==null?(r(w[R],k),!0):b==="ArrowUp"?(ue(x,"a",!1),r(i(u)??w[0],k),!0):!1}if(b==="Tab"&&!k.shiftKey){if(C+10)r(w[C-1],k);else{ue(x,"a",!1);let R=i(u)??Q(u,'.tabs :is([role="tab"], .product-links a)')[0];R&&r(R,k)}return!0}return!1}function L(d,u,b,k){if(!_t.has(b))return!1;let x=Q(u,".feds-gnav-cards a"),w=x.indexOf(d);return w<0?!1:(r(x[oe(w,ie[b],x.length)],k),!0)}function E(d,u,b){return u!==" "||!d.matches(".feds-primary-cta, .feds-secondary-cta, .feds-link")?!1:(b.preventDefault(),d.click(),!0)}function z(d){let u=document.activeElement??d.target;if(d.key==="Escape"){s(d);return}if(E(u,d.key,d)||f(u,d.key,d.shiftKey,d)||c(u,d.key,d.shiftKey,d)||p(u,d.key,d))return;let b=o();b&&(b.matches(":has(.product-list)")&&(m(u,b,d.key,d)||y(u,b,d.key,d))||b.matches(":has(.feds-gnav-cards)")&&L(u,b,d.key,d))||h(u,d.key,d)}let U=e.querySelector(".trap-focus-gnav"),T=d=>{e.querySelector(".feds-menu-active")&&(d.preventDefault(),e.querySelector(".feds-nav-toggle")?.focus())};return U?.addEventListener("focus",T),a.push(()=>U?.removeEventListener("focus",T)),e.addEventListener("keydown",z),a.push(()=>e.removeEventListener("keydown",z)),()=>a.forEach(d=>d())}var Oa=async e=>{let a=new Set,t=e.querySelectorAll("a.merch");if(t.length===0)return a;try{let n=$(),{base:r}=n;if(r==="")return a.add(new v("base not found in config, cannot initialize merch links")),a;let i=(await import(`${r}/blocks/merch/merch.js`)).default;if(i===void 0)return a.add(new v("decorateMerchLink not found in merch module")),a;t.forEach(l=>{i(l)})}catch(n){a.add(new v(`Error initializing merch links: ${n}`))}return a};var Na=["appswitcher","help"],$t=5e3,It=92,ze={cs:["cz"],da:["dk"],de:["at"],en:["africa","au","ca","ie","in","mt","ng","nz","sg","za"],es:["ar","cl","co","cr","ec","gt","la","mx","pe","pr"],et:["ee"],ja:["jp"],ko:["kr"],nb:["no"],pt:["br"],sl:["si"],sv:["se"],uk:["ua"],zh:["cn","tw"]},[Te,Rt]=(()=>{let e,a,t,n=new Promise(r=>{a=r,t=setTimeout(()=>{e={},r(e)},$t)});return[r=>{e===void 0&&(e=r,clearTimeout(t),a?.(e))},()=>n]})(),Dt=()=>/uc_carts=/.test(document.cookie),Ce=(e,a)=>{let t=e??[],n=Dt()?t:t.filter(r=>r!=="cart");return a?n.filter(r=>Na.includes(r)||r==="cart"||r==="signup"):n};function He(e,a=!1){let o=!1;try{o=$()?.unav?.showSectionDivider===!0}catch{o=!1}let i=o?` + 2px + ${2*4}px + ${.25}rem`:"";if(a){let s=Ce(e,!0).filter(c=>c!=="signup").length;return`calc(${It}px + ${s*32}px + ${s*.25}rem${i})`}let l=Ce(e,!1).length;return`calc(${l*32}px + ${(l-1)*.25}rem${i})`}var $e=e=>{if(!e.prefix||e.prefix==="/")return"en_US";let a=e.prefix.replace("/","");if(a.includes("_")){let[n,r]=a.split("_").reverse();return`${n.toLowerCase()}_${r.toUpperCase()}`}if(a==="uk")return"en_GB";let t=Object.keys(ze).find(n=>ze[n].includes(a));return t?`${t.toLowerCase()}_${a.toUpperCase()}`:`${a.toLowerCase()}_${a.toUpperCase()}`},qt={Mac:"macOS",Win:"windows",Linux:"linux",CrOS:"chromeOS",Android:"android",iPad:"iPadOS",iPhone:"iOS"},Ie=()=>{let e=navigator.userAgent;for(let[a,t]of Object.entries(qt))if(e.includes(a))return t;return"linux"},Re=async()=>{let e=window;if(typeof e.alloy=="function")return e.alloy("getIdentity").then(a=>a?.identity?.ECID).catch(()=>{})};var Ba=()=>{try{return $().signInContext||{}}catch{return{}}},Ut=()=>{let e=$();return K("signin-cta-style")==="primary"||e?.unav?.profile?.signInCtaStyle==="primary"?"primary":"secondary"},Ot=()=>{let a=$()?.unav?.profile?.messageEventListener;return a||(t=>{let{name:n,payload:r,executeDefaultAction:o}=t.detail;if(!(n!=="System"||typeof o!="function"))switch(r.subType){case"AppInitiated":window.adobeProfile?.getUserProfile().then(i=>{Te(i)}).catch(()=>{Te({})});break;case"SignOut":o();break;case"ProfileSwitch":Promise.resolve(o()).then(i=>{i!=null&&window.location.reload()});break;default:break}})};function Nt(){let{unav:e}=$();return e?.unavHelpChildren||[{type:"Support"},{type:"Community"}]}var Me=()=>{let e=$(),a=e?.unav?.uncAppId;return{profile:{name:"profile",attributes:{accountMenuContext:{sharedContextConfig:{enableLocalSection:!0,enableProfileSwitcher:!0,miniAppContext:{logger:{trace:()=>{},debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}}},complexConfig:e?.unav?.profile?.complexConfig||null,...e?.unav?.profile?.config},messageEventListener:Ot()},signInCtaStyle:Ut(),isSignUpRequired:!1,callbacks:{onSignIn:()=>{window.adobeIMS?.signIn(Ba())},onSignUp:()=>{window.adobeIMS?.signIn(Ba())}}}},appswitcher:{name:"app-switcher"},notifications:{name:"notifications",attributes:{notificationsConfig:{applicationContext:{appID:a!==void 0&&a!==""?a:"adobecom",...e?.unav?.uncConfig}}}},help:{name:"help",attributes:{children:Nt()}},jarvis:{name:"jarvis",attributes:{appid:e?.jarvis?.id,callbacks:e?.jarvis?.callbacks}},cart:{name:"cart"}}};var ja=(e,a)=>{let t=e[0];if(t===void 0||!("attributes"in t))return;let{attributes:n}=t;n!=null&&(typeof n!="object"||!("isSignUpRequired"in n)||(n.isSignUpRequired=a))},De=async(e,a)=>{try{let t=e.querySelector(".feds-utilities");if(!(t instanceof HTMLElement))return new v('missing ".feds-utilities" container');let n=new Set,r=document.head.querySelector('meta[name="universal-nav"]'),o=r instanceof HTMLMetaElement?r.content??"":"";r instanceof HTMLMetaElement||n.add(new v('metadata "universal-nav" is missing'));let i=o.trim();r instanceof HTMLMetaElement&&i.length===0&&n.add(new v('metadata "universal-nav" has no value'));let l=window.adobeIMS?.isSignedInUser()!==!0,s=i.split(",").map(T=>T.trim()).filter(T=>Object.keys(Me()).includes(T)||T==="signup"),c=Ce(s,l),p=He(s,l);t.style.setProperty("min-width",p);let f;try{f=$()}catch{throw new Error("MiloConfig not available for UNAV initialization")}let h=$e(f.locale),m=f.env.name==="prod"?"prod":"stage",y=await Re(),L=new URLSearchParams(window.location.search).get("unavVersion");/^\d+(\.\d+)?$/.test(L??"")||(L="1.5"),await Promise.all([ea(`https://${m}.adobeccstatic.com/unav/${L}/UniversalNav.js`),Qe(`https://${m}.adobeccstatic.com/unav/${L}/UniversalNav.css`,!0)]);let E=()=>{let T=Me(),d=[T.profile];return ja(d,!1),c.forEach(u=>{if(u==="profile")return;if(u==="signup"){ja(d,!0);return}let b=T[u];b!==void 0&&d.push(b)}),d},z=()=>({target:t,env:m,locale:h,countryCode:na(f?.locale)?.country||"US",imsClientId:window?.adobeid?.client_id,theme:"light",analyticsContext:{consumer:{name:"adobecom",version:"1.0",platform:"Web",device:Ie(),os_version:navigator.platform},event:{visitor_guid:y}},children:E(),isSectionDividerRequired:f?.unav?.showSectionDivider===!0,showTrayExperience:!H.matches});await window?.UniversalNav?.(z()),l?new MutationObserver((d,u)=>{t.querySelector('button, a[role="button"]')&&(u.disconnect(),requestAnimationFrame(()=>{t.style.removeProperty("min-width")}))}).observe(t,{childList:!0,subtree:!0}):t?.style.removeProperty("min-width");let U=T=>{window?.UniversalNav?.reload(z())};return H.addEventListener("change",()=>{U()}),{reloadUnav:U,errors:n}}catch(t){let n=t instanceof Error?t.message:"failed to load universal nav";return new v(n)}};var Ga=async({gnavSource:e,asideSource:a})=>{let t=await ae(e);if(t instanceof g)return t;let n=await ae(a);return{mainNav:t,aside:n}};var Bt=':root{--s2a-color-gray-25:#fff;--s2a-color-gray-75:#f3f3f3;--s2a-color-gray-900:#131313;--s2a-color-gray-1000:#000;--s2a-color-blue-100:#f5f9ff;--s2a-color-blue-800:#4b75ff;--s2a-color-blue-1000:#274dea;--s2a-color-blue-1100:#1d3ecf;--s2a-color-transparent-black-08:#00000014;--s2a-color-transparent-black-12:#0000001f;--s2a-color-transparent-white-12:#ffffff1f;--s2a-color-transparent-black-16:#00000029;--s2a-color-transparent-white-16:#ffffff29;--s2a-color-transparent-black-64:#000000a3;--s2a-color-transparent-white-64:#ffffffa3;--s2a-border-radius-8:8px;--s2a-border-radius-12:12px;--s2a-border-radius-16:16px;--s2a-border-radius-24:24px;--s2a-border-radius-999:999px;--s2a-border-width-1:1px;--s2a-border-width-2:2px;--s2a-border-width-4:4px;--s2a-spacing-4:4px;--s2a-spacing-8:8px;--s2a-spacing-12:12px;--s2a-spacing-16:16px;--s2a-spacing-20:20px;--s2a-spacing-24:24px;--s2a-spacing-32:32px;--s2a-spacing-40:40px;--s2a-spacing-48:48px;--s2a-spacing-64:64px;--s2a-font-family-adobe-clean:"Adobe Clean";--s2a-font-letter-spacing-neg-1_68:-1.68px;--s2a-font-letter-spacing-neg-1_44:-1.44px;--s2a-font-letter-spacing-neg-1:-1px;--s2a-font-letter-spacing-neg-0_96:-.96px;--s2a-font-letter-spacing-neg-0_48:-.48px;--s2a-font-letter-spacing-neg-0_2:-.2px;--s2a-font-letter-spacing-0:0;--s2a-font-line-height-16:16px;--s2a-font-line-height-18:18px;--s2a-font-line-height-20:20px;--s2a-font-line-height-24:24px;--s2a-font-line-height-32:32px;--s2a-font-line-height-48:48px;--s2a-font-line-height-56:56px;--s2a-font-size-12:.75rem;--s2a-font-size-14:.875rem;--s2a-font-size-16:1rem;--s2a-font-size-18:1.125rem;--s2a-font-size-20:1.25rem;--s2a-font-size-24:1.5rem;--s2a-font-size-32:2rem;--s2a-font-size-36:2.25rem;--s2a-font-size-48:3rem;--s2a-font-size-56:3.5rem;--s2a-font-weight-adobe-clean-regular:400;--s2a-font-weight-adobe-clean-extrabold:800;--s2a-font-weight-adobe-clean-bold:700;--s2a-font-weight-adobe-clean-black:900;--s2a-blur-16:16px;--s2a-border-radius-sm:var(--s2a-border-radius-8);--s2a-border-radius-md:var(--s2a-border-radius-16);--s2a-border-radius-round:var(--s2a-border-radius-999);--s2a-border-width-sm:var(--s2a-border-width-1);--s2a-border-width-md:var(--s2a-border-width-2);--s2a-border-width-lg:var(--s2a-border-width-4);--s2a-spacing-2xs:var(--s2a-spacing-4);--s2a-spacing-xs:var(--s2a-spacing-8);--s2a-spacing-sm:var(--s2a-spacing-12);--s2a-spacing-md:var(--s2a-spacing-16);--s2a-spacing-lg:var(--s2a-spacing-24);--s2a-spacing-xl:var(--s2a-spacing-32);--s2a-spacing-2xl:var(--s2a-spacing-40);--s2a-spacing-3xl:var(--s2a-spacing-48);--s2a-spacing-4xl:var(--s2a-spacing-64);--s2a-font-family-body:var(--s2a-font-family-adobe-clean);--s2a-font-family-label:var(--s2a-font-family-adobe-clean);--s2a-font-letter-spacing-lg:var(--s2a-font-letter-spacing-neg-1_68);--s2a-font-letter-spacing-xl:var(--s2a-font-letter-spacing-neg-1_44);--s2a-font-letter-spacing-2xl:var(--s2a-font-letter-spacing-neg-1);--s2a-font-letter-spacing-3xl:var(--s2a-font-letter-spacing-neg-0_96);--s2a-font-letter-spacing-4xl:var(--s2a-font-letter-spacing-neg-0_48);--s2a-font-letter-spacing-5xl:var(--s2a-font-letter-spacing-neg-0_2);--s2a-font-letter-spacing-6xl:var(--s2a-font-letter-spacing-0);--s2a-font-line-height-2xs:var(--s2a-font-line-height-16);--s2a-font-line-height-xs:var(--s2a-font-line-height-18);--s2a-font-line-height-sm:var(--s2a-font-line-height-20);--s2a-font-line-height-md:var(--s2a-font-line-height-24);--s2a-font-line-height-lg:var(--s2a-font-line-height-32);--s2a-font-line-height-2xl:var(--s2a-font-line-height-48);--s2a-font-line-height-3xl:var(--s2a-font-line-height-56);--s2a-font-size-xs:var(--s2a-font-size-12);--s2a-font-size-sm:var(--s2a-font-size-14);--s2a-font-size-md:var(--s2a-font-size-16);--s2a-font-size-lg:var(--s2a-font-size-18);--s2a-font-size-xl:var(--s2a-font-size-20);--s2a-font-size-2xl:var(--s2a-font-size-24);--s2a-font-size-3xl:var(--s2a-font-size-32);--s2a-font-size-4xl:var(--s2a-font-size-36);--s2a-font-size-6xl:var(--s2a-font-size-48);--s2a-font-size-7xl:var(--s2a-font-size-56);--s2a-blur-sm:var(--s2a-blur-16)}:root,:root[data-theme=light]{--s2a-color-background-default:var(--s2a-color-gray-25);--s2a-color-content-body-subtle:var(--s2a-color-content-subtle);--s2a-color-content-default:var(--s2a-color-gray-1000);--s2a-color-content-subtle:var(--s2a-color-transparent-black-64);--s2a-color-button-background-accent-solid-on-light-active:var(--s2a-color-blue-1100);--s2a-color-button-background-accent-solid-on-light-hover:var(--s2a-color-blue-1000);--s2a-color-button-background-primary-transparent-on-light-hover:var(--s2a-color-transparent-black-08);--s2a-color-button-content-primary-solid-default:var(--s2a-color-gray-25)}:root{--s2a-color-gray-25:#fff;--s2a-color-gray-75:#f3f3f3;--s2a-color-gray-900:#131313;--s2a-color-gray-1000:#000;--s2a-color-blue-100:#f5f9ff;--s2a-color-blue-800:#4b75ff;--s2a-color-blue-1000:#274dea;--s2a-color-blue-1100:#1d3ecf;--s2a-color-transparent-black-12:#0000001f;--s2a-color-transparent-black-16:#00000029;--s2a-color-transparent-black-64:#000000a3;--s2a-color-transparent-black-08:#00000014;--s2a-color-transparent-white-12:#ffffff1f;--s2a-color-transparent-white-16:#ffffff29;--s2a-color-transparent-white-64:#ffffffa3;--s2a-border-radius-8:8px;--s2a-border-radius-12:12px;--s2a-border-radius-16:16px;--s2a-border-radius-24:24px;--s2a-border-radius-999:999px;--s2a-border-width-1:1px;--s2a-border-width-2:2px;--s2a-border-width-4:4px;--s2a-spacing-4:4px;--s2a-spacing-8:8px;--s2a-spacing-12:12px;--s2a-spacing-16:16px;--s2a-spacing-20:20px;--s2a-spacing-24:24px;--s2a-spacing-32:32px;--s2a-spacing-40:40px;--s2a-spacing-48:48px;--s2a-spacing-64:64px;--s2a-font-family-adobe-clean:"Adobe Clean";--s2a-font-letter-spacing-0:0;--s2a-font-letter-spacing-neg-1_68:-1.68px;--s2a-font-letter-spacing-neg-1_44:-1.44px;--s2a-font-letter-spacing-neg-1:-1px;--s2a-font-letter-spacing-neg-0_96:-.96px;--s2a-font-letter-spacing-neg-0_48:-.48px;--s2a-font-letter-spacing-neg-0_2:-.2px;--s2a-font-line-height-16:16px;--s2a-font-line-height-18:18px;--s2a-font-line-height-20:20px;--s2a-font-line-height-24:24px;--s2a-font-line-height-32:32px;--s2a-font-line-height-48:48px;--s2a-font-line-height-56:56px;--s2a-font-size-12:.75rem;--s2a-font-size-14:.875rem;--s2a-font-size-16:1rem;--s2a-font-size-18:1.125rem;--s2a-font-size-20:1.25rem;--s2a-font-size-24:1.5rem;--s2a-font-size-32:2rem;--s2a-font-size-36:2.25rem;--s2a-font-size-48:3rem;--s2a-font-size-56:3.5rem;--s2a-font-weight-adobe-clean-black:900;--s2a-font-weight-adobe-clean-extrabold:800;--s2a-font-weight-adobe-clean-bold:700;--s2a-font-weight-adobe-clean-regular:400;--s2a-blur-16:16px}:root,:root[data-theme=light]{--s2a-color-gray-25:#fff;--s2a-color-gray-75:#f3f3f3;--s2a-color-gray-900:#131313;--s2a-color-gray-1000:#000;--s2a-color-blue-100:#f5f9ff;--s2a-color-blue-800:#4b75ff;--s2a-color-blue-1000:#274dea;--s2a-color-blue-1100:#1d3ecf;--s2a-color-transparent-black-12:#0000001f;--s2a-color-transparent-black-16:#00000029;--s2a-color-transparent-black-64:#000000a3;--s2a-color-transparent-black-08:#00000014;--s2a-color-transparent-white-12:#ffffff1f;--s2a-color-transparent-white-16:#ffffff29;--s2a-color-transparent-white-64:#ffffffa3}:root{--s2a-border-radius-sm:var(--s2a-border-radius-8);--s2a-border-radius-md:var(--s2a-border-radius-16);--s2a-border-radius-round:var(--s2a-border-radius-999);--s2a-border-width-sm:var(--s2a-border-width-1);--s2a-border-width-md:var(--s2a-border-width-2);--s2a-border-width-lg:var(--s2a-border-width-4);--s2a-spacing-2xs:var(--s2a-spacing-4);--s2a-spacing-xs:var(--s2a-spacing-8);--s2a-spacing-sm:var(--s2a-spacing-12);--s2a-spacing-md:var(--s2a-spacing-16);--s2a-spacing-lg:var(--s2a-spacing-24);--s2a-spacing-xl:var(--s2a-spacing-32);--s2a-spacing-2xl:var(--s2a-spacing-40);--s2a-spacing-3xl:var(--s2a-spacing-48);--s2a-spacing-4xl:var(--s2a-spacing-64);--s2a-font-family-body:var(--s2a-font-family-adobe-clean);--s2a-font-family-label:var(--s2a-font-family-adobe-clean);--s2a-font-letter-spacing-lg:var(--s2a-font-letter-spacing-neg-1_68);--s2a-font-letter-spacing-xl:var(--s2a-font-letter-spacing-neg-1_44);--s2a-font-letter-spacing-2xl:var(--s2a-font-letter-spacing-neg-1);--s2a-font-letter-spacing-3xl:var(--s2a-font-letter-spacing-neg-0_96);--s2a-font-letter-spacing-4xl:var(--s2a-font-letter-spacing-neg-0_48);--s2a-font-letter-spacing-5xl:var(--s2a-font-letter-spacing-neg-0_2);--s2a-font-letter-spacing-6xl:var(--s2a-font-letter-spacing-0);--s2a-font-line-height-2xs:var(--s2a-font-line-height-16);--s2a-font-line-height-xs:var(--s2a-font-line-height-18);--s2a-font-line-height-sm:var(--s2a-font-line-height-20);--s2a-font-line-height-md:var(--s2a-font-line-height-24);--s2a-font-line-height-lg:var(--s2a-font-line-height-32);--s2a-font-line-height-2xl:var(--s2a-font-line-height-48);--s2a-font-line-height-3xl:var(--s2a-font-line-height-56);--s2a-font-size-xs:var(--s2a-font-size-12);--s2a-font-size-sm:var(--s2a-font-size-14);--s2a-font-size-md:var(--s2a-font-size-16);--s2a-font-size-lg:var(--s2a-font-size-18);--s2a-font-size-xl:var(--s2a-font-size-20);--s2a-font-size-2xl:var(--s2a-font-size-24);--s2a-font-size-3xl:var(--s2a-font-size-32);--s2a-font-size-4xl:var(--s2a-font-size-36);--s2a-font-size-6xl:var(--s2a-font-size-48);--s2a-font-size-7xl:var(--s2a-font-size-56);--s2a-blur-sm:var(--s2a-blur-16)}:root,:root[data-theme=light]{--s2a-color-background-default:var(--s2a-color-gray-25);--s2a-color-content-default:var(--s2a-color-gray-1000);--s2a-color-content-subtle:var(--s2a-color-transparent-black-64);--s2a-color-button-background-primary-transparent-on-light-hover:var(--s2a-color-transparent-black-08);--s2a-color-button-background-accent-solid-on-light-hover:var(--s2a-color-blue-1000);--s2a-color-button-background-accent-solid-on-light-active:var(--s2a-color-blue-1100);--s2a-color-button-content-primary-solid-default:var(--s2a-color-gray-25);--s2a-color-content-body-subtle:var(--s2a-color-content-subtle)}:root[data-theme=dark]{--s2a-color-background-default:var(--s2a-color-gray-900);--s2a-color-content-default:var(--s2a-color-gray-25);--s2a-color-content-subtle:var(--s2a-color-transparent-white-64);--s2a-color-button-background-primary-transparent-on-light-hover:var(--s2a-color-transparent-white-12);--s2a-color-button-background-accent-solid-on-light-hover:var(--s2a-color-blue-1000);--s2a-color-button-background-accent-solid-on-light-active:var(--s2a-color-blue-1100);--s2a-color-button-content-primary-solid-default:var(--s2a-color-gray-1000);--s2a-color-content-body-subtle:var(--s2a-color-content-subtle)}:root{--s2a-typography-font-size-heading-2:var(--s2a-font-size-3xl);--s2a-typography-font-size-heading-3:var(--s2a-font-size-2xl);--s2a-typography-font-size-heading-4:var(--s2a-font-size-xl);--s2a-typography-font-size-heading-5:var(--s2a-font-size-lg);--s2a-typography-font-size-body-sm:var(--s2a-font-size-sm);--s2a-typography-font-size-eyebrow:var(--s2a-font-size-md);--s2a-typography-font-size-label:var(--s2a-font-size-sm);--s2a-typography-letter-spacing-heading-2:var(--s2a-font-letter-spacing-3xl);--s2a-typography-letter-spacing-heading-3:var(--s2a-font-letter-spacing-4xl);--s2a-typography-letter-spacing-heading-4:var(--s2a-font-letter-spacing-4xl);--s2a-typography-letter-spacing-heading-5:var(--s2a-font-letter-spacing-5xl);--s2a-typography-letter-spacing-body-sm:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-eyebrow:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-label:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-caption:var(--s2a-font-letter-spacing-6xl);--s2a-typography-line-height-heading-2:var(--s2a-font-line-height-lg);--s2a-typography-line-height-heading-3:var(--s2a-font-line-height-md);--s2a-typography-line-height-heading-4:var(--s2a-font-line-height-sm);--s2a-typography-line-height-heading-5:var(--s2a-font-line-height-sm);--s2a-typography-line-height-body-sm:var(--s2a-font-line-height-xs);--s2a-typography-line-height-eyebrow:var(--s2a-font-line-height-sm);--s2a-typography-line-height-label:var(--s2a-font-line-height-xs);--s2a-typography-line-height-caption:var(--s2a-font-line-height-2xs)}@media (width>=1024px){:root{--s2a-typography-font-size-heading-2:var(--s2a-font-size-6xl);--s2a-typography-font-size-heading-3:var(--s2a-font-size-3xl);--s2a-typography-font-size-heading-4:var(--s2a-font-size-2xl);--s2a-typography-font-size-heading-5:var(--s2a-font-size-xl);--s2a-typography-font-size-body-sm:var(--s2a-font-size-sm);--s2a-typography-font-size-eyebrow:var(--s2a-font-size-md);--s2a-typography-font-size-label:var(--s2a-font-size-sm);--s2a-typography-letter-spacing-heading-2:var(--s2a-font-letter-spacing-xl);--s2a-typography-letter-spacing-heading-3:var(--s2a-font-letter-spacing-4xl);--s2a-typography-letter-spacing-heading-4:var(--s2a-font-letter-spacing-4xl);--s2a-typography-letter-spacing-heading-5:var(--s2a-font-letter-spacing-4xl);--s2a-typography-letter-spacing-body-sm:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-eyebrow:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-label:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-caption:var(--s2a-font-letter-spacing-6xl);--s2a-typography-line-height-heading-2:var(--s2a-font-line-height-2xl);--s2a-typography-line-height-heading-3:var(--s2a-font-line-height-lg);--s2a-typography-line-height-heading-4:var(--s2a-font-line-height-md);--s2a-typography-line-height-heading-5:var(--s2a-font-line-height-sm);--s2a-typography-line-height-body-sm:var(--s2a-font-line-height-xs);--s2a-typography-line-height-eyebrow:var(--s2a-font-line-height-sm);--s2a-typography-line-height-label:var(--s2a-font-line-height-xs);--s2a-typography-line-height-caption:var(--s2a-font-line-height-2xs)}}@media (width>=1280px){:root{--s2a-typography-font-size-heading-2:var(--s2a-font-size-7xl);--s2a-typography-font-size-heading-3:var(--s2a-font-size-6xl);--s2a-typography-font-size-heading-4:var(--s2a-font-size-4xl);--s2a-typography-font-size-heading-5:var(--s2a-font-size-2xl);--s2a-typography-font-size-body-sm:var(--s2a-font-size-sm);--s2a-typography-font-size-eyebrow:var(--s2a-font-size-md);--s2a-typography-font-size-label:var(--s2a-font-size-sm);--s2a-typography-letter-spacing-heading-2:var(--s2a-font-letter-spacing-lg);--s2a-typography-letter-spacing-heading-3:var(--s2a-font-letter-spacing-xl);--s2a-typography-letter-spacing-heading-4:var(--s2a-font-letter-spacing-2xl);--s2a-typography-letter-spacing-heading-5:var(--s2a-font-letter-spacing-3xl);--s2a-typography-letter-spacing-body-sm:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-eyebrow:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-label:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-caption:var(--s2a-font-letter-spacing-6xl);--s2a-typography-line-height-heading-2:var(--s2a-font-line-height-3xl);--s2a-typography-line-height-heading-3:var(--s2a-font-line-height-2xl);--s2a-typography-line-height-heading-4:var(--s2a-font-line-height-lg);--s2a-typography-line-height-heading-5:var(--s2a-font-line-height-md);--s2a-typography-line-height-body-sm:var(--s2a-font-line-height-xs);--s2a-typography-line-height-eyebrow:var(--s2a-font-line-height-sm);--s2a-typography-line-height-label:var(--s2a-font-line-height-xs);--s2a-typography-line-height-caption:var(--s2a-font-line-height-2xs)}}@media (width>=1441px){:root{--s2a-typography-font-size-heading-2:var(--s2a-font-size-7xl);--s2a-typography-font-size-heading-3:var(--s2a-font-size-6xl);--s2a-typography-font-size-heading-4:var(--s2a-font-size-4xl);--s2a-typography-font-size-heading-5:var(--s2a-font-size-2xl);--s2a-typography-font-size-body-sm:var(--s2a-font-size-sm);--s2a-typography-font-size-eyebrow:var(--s2a-font-size-md);--s2a-typography-font-size-label:var(--s2a-font-size-sm);--s2a-typography-letter-spacing-heading-2:var(--s2a-font-letter-spacing-lg);--s2a-typography-letter-spacing-heading-3:var(--s2a-font-letter-spacing-xl);--s2a-typography-letter-spacing-heading-4:var(--s2a-font-letter-spacing-2xl);--s2a-typography-letter-spacing-heading-5:var(--s2a-font-letter-spacing-4xl);--s2a-typography-letter-spacing-body-sm:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-eyebrow:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-label:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-caption:var(--s2a-font-letter-spacing-6xl);--s2a-typography-line-height-heading-2:var(--s2a-font-line-height-3xl);--s2a-typography-line-height-heading-3:var(--s2a-font-line-height-2xl);--s2a-typography-line-height-heading-4:var(--s2a-font-line-height-lg);--s2a-typography-line-height-heading-5:var(--s2a-font-line-height-md);--s2a-typography-line-height-body-sm:var(--s2a-font-line-height-xs);--s2a-typography-line-height-eyebrow:var(--s2a-font-line-height-sm);--s2a-typography-line-height-label:var(--s2a-font-line-height-xs);--s2a-typography-line-height-caption:var(--s2a-font-line-height-2xs)}}.feds-brand-container{flex-shrink:0;display:flex}li.feds-brand-wrapper{flex-direction:row;flex-shrink:0;justify-content:flex-start;display:flex}header.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) nav .feds-brand-image svg,header.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) nav .feds-nav-toggle svg,header.global-navigation.feds-header-scrolled nav .feds-brand-image svg{color:var(--s2a-color-gray-1000)}.feds-brand{outline-offset:var(--s2a-spacing-sm);align-items:center;column-gap:10px}[dir=rtl] .feds-brand{padding:0 var(--s2a-spacing-md) 0 var(--s2a-spacing-lg)}.is-compact .feds-brand{padding:0 var(--s2a-spacing-sm) 0 var(--s2a-spacing-md)}.is-compact [dir=rtl] .feds-brand{padding:0 var(--s2a-spacing-lg) 0 var(--s2a-spacing-md)}.feds-brand-image svg{width:100%;color:var(--s2a-color-gray-25);display:block}.global-navigation.dark-font .feds-brand-image svg{color:var(--s2a-color-gray-1000)}.feds-brand-image.desktop-brand{display:none}.feds-brand-image.mobile-brand{display:inherit}.feds-brand-image.mobile-brand svg{height:var(--s2a-spacing-md);width:18px}.feds-brand-image.desktop-brand svg{width:67px}.global-navigation.dark-font .feds-brand-image img:first-child{display:inherit}.global-navigation.dark-font .feds-brand-image img:nth-child(2){display:none}.feds-brand-image img:first-child{display:inherit}.feds-brand-image img:nth-child(2){display:none}.feds-dark-bg .feds-brand-image img:first-child{display:none}.feds-dark-bg .feds-brand-image img:nth-child(2){display:inherit}:is(.feds-header-scrolled,.global-navigation:has(.feds-popup.is-open:not(.small-menu))) .feds-brand-wrapper .feds-brand-image img:first-child{display:inherit}:is(.feds-header-scrolled,.global-navigation:has(.feds-popup.is-open:not(.small-menu))) .feds-brand-wrapper .feds-brand-image img:nth-child(2){display:none}@media (width<=1023px){@keyframes brand-fade{0%{opacity:1;visibility:visible}to{opacity:0;visibility:hidden}}header.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-brand,header.global-navigation:has(.feds-menu-active) .feds-brand{opacity:0;pointer-events:none;visibility:hidden;animation:.3s brand-fade}.feds-brand{padding:0 var(--s2a-spacing-sm) 0 var(--s2a-spacing-md)}[dir=rtl] .feds-brand{padding:0 var(--s2a-spacing-lg) 0 var(--s2a-spacing-md)}header.global-navigation .feds-nav-toggle{transition:transform .3s;transform:translate(0)}header.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-nav-toggle{transform:translate(-34px)}[dir=rtl] header.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-nav-toggle{transform:translate(34px)}}header.global-navigation.is-compact:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-brand,header.global-navigation.is-compact:has(.feds-menu-active) .feds-brand{opacity:0;pointer-events:none;visibility:hidden;animation:.3s brand-fade}header.global-navigation.is-compact .feds-nav-toggle{transition:transform .3s;transform:translate(0)}header.global-navigation.is-compact:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-nav-toggle{transform:translate(-30px)}[dir=rtl] header.global-navigation.is-compact:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-nav-toggle{transform:translate(30px)}@media (width>=1024px){header.global-navigation:not(.is-compact) li.feds-brand-wrapper{flex-direction:row;justify-content:flex-start;padding-left:0;display:flex}header.global-navigation:not(.is-compact) .feds-brand-image.desktop-brand{display:inherit}header.global-navigation:not(.is-compact):has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-brand-image svg{color:var(--s2a-color-gray-1000)}header.global-navigation:not(.is-compact) .feds-brand-image.mobile-brand{display:none}header.global-navigation:not(.is-compact) .feds-brand{margin:0 var(--s2a-spacing-lg) 0 var(--s2a-spacing-md)}}.global-navigation .feds-breadcrumbs{box-sizing:border-box;height:var(--feds-breadcrumbs-height);max-width:100%;padding:0 var(--s2a-spacing-md);border-top:var(--s2a-border-width-sm) solid #ffffff3d;align-items:center;gap:0;margin:0;list-style:none;display:flex;position:absolute;top:100%;left:0;right:0}[dir=rtl] .global-navigation .feds-breadcrumbs{padding-right:var(--s2a-spacing-md)}.global-navigation.dark-font .feds-breadcrumbs{border-top-color:var(--s2a-color-transparent-black-08)}.global-navigation .feds-breadcrumbs>li{align-items:center;margin:0;padding:0;display:inline-flex}.global-navigation .feds-breadcrumbs>li>:is(a,span){font-family:var(--body-font-family);font-size:var(--s2a-typography-font-size-label);line-height:var(--s2a-typography-line-height-label);letter-spacing:var(--s2a-typography-letter-spacing-label);color:var(--s2a-color-gray-25);text-decoration:none}.global-navigation.dark-font .feds-breadcrumbs>li>:is(a,span){color:var(--s2a-color-gray-1000)}.global-navigation .feds-breadcrumbs>li>a:hover{text-decoration:underline}.global-navigation.feds-header-scrolled .feds-breadcrumbs>li>:is(a,span),.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-breadcrumbs>li>:is(a,span){color:var(--s2a-color-transparent-black-64)}.global-navigation.feds-header-scrolled .feds-breadcrumbs>li:last-child>:is(a,span),.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-breadcrumbs>li:last-child>:is(a,span){color:var(--s2a-color-content-default)}.global-navigation .feds-breadcrumbs>li+li:before{content:"";width:1px;height:15px;margin-inline:var(--s2a-spacing-sm);background-color:var(--s2a-color-transparent-white-16);display:inline-block}.global-navigation.dark-font .feds-breadcrumbs>li+li:before,.global-navigation.feds-header-scrolled .feds-breadcrumbs>li+li:before,.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-breadcrumbs>li+li:before{background-color:var(--s2a-color-transparent-black-16)}.global-navigation.feds-header-scrolled .feds-breadcrumbs{border-bottom-right-radius:var(--s2a-border-radius-16);border-bottom-left-radius:var(--s2a-border-radius-16);border-top-color:#0000001f}.global-navigation nav:has(.feds-popup.is-open:not(.small-menu)) .feds-breadcrumbs{display:none}@media (width<=1023px){header.global-navigation nav:has(.feds-menu-wrapper.is-open)>.feds-breadcrumbs{display:none}header.global-navigation nav .feds-popup.is-open:not(.small-menu)>ul.feds-breadcrumbs{padding:0 var(--s2a-spacing-lg);display:flex;position:static}}header.global-navigation.is-compact nav:has(.feds-menu-wrapper.is-open)>.feds-breadcrumbs{display:none}header.global-navigation.is-compact nav .feds-popup.is-open:not(.small-menu)>ul.feds-breadcrumbs{padding:0 var(--s2a-spacing-lg);display:flex;position:static}.feds-gnav-cards>li:has(>:nth-child(2)){gap:var(--s2a-spacing-2xs);flex-direction:column;display:flex}.feds-popup-header .product-links .feds-link{color:var(--s2a-color-content-default);font-size:var(--s2a-font-size-sm);font-weight:var(--s2a-font-weight-adobe-clean-bold);white-space:nowrap;line-height:18px;font-family:var(--body-font-family);align-items:center;gap:6px;padding:0;text-decoration:none;display:inline-flex}.feds-popup-header .product-links .feds-link svg{flex-shrink:0;width:5px;height:8px}ul.tabs .product-links{display:none}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-gnav-cards:not(:has(.promo-card))>li:has(>:nth-child(2)){gap:var(--s2a-spacing-xs);flex-direction:row;flex:2 1 0}header.global-navigation:not(.is-compact) .feds-gnav-cards:not(:has(.promo-card))>li:has(>:nth-child(2)) article{flex:1 1 0;min-width:0}header.global-navigation:not(.is-compact) .feds-gnav-cards:has(.promo-card)>li:has(>:nth-child(2)){gap:var(--s2a-spacing-xs)}header.global-navigation:not(.is-compact) .feds-gnav-cards:has(.promo-card)>li:has(.promo-card,.links-card){width:calc(33.33% - 5.33px)}header.global-navigation:not(.is-compact) .feds-popup .feds-gnav-cards:has(.promo-card,.links-card){align-items:stretch}header.global-navigation:not(.is-compact) .feds-popup .feds-gnav-cards:has(.promo-card,.links-card) article{height:100%}header.global-navigation:not(.is-compact) .feds-popup-header .product-links{display:none}header.global-navigation:not(.is-compact) ul.tabs .product-links{display:block}header.global-navigation:not(.is-compact):has(.feds-popup.is-open) ul.feds-gnav-items>li .product-links .feds-link{font-family:var(--body-font-family);padding:var(--s2a-spacing-md) var(--s2a-spacing-lg)}}@media (width>=1280px){header.global-navigation:not(.is-compact) .feds-gnav-cards:has(.promo-card)>li:has(.promo-card,.links-card){width:calc(25% - 6px)}header.global-navigation:not(.is-compact) .feds-gnav-cards:has(.promo-card)>li:has(.promo-card){width:calc(50% - 4px)}header.global-navigation:not(.is-compact) .feds-gnav-cards:has(.promo-card)>li:has(>:nth-child(2)){flex-direction:row;width:calc(50% - 4px)}header.global-navigation:not(.is-compact) .feds-gnav-cards:has(.promo-card)>li:has(>:nth-child(2)) article{width:calc(50% - 4px)}}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-gnav-items>li:has(.feds-popup.small-menu){position:relative}header.global-navigation:not(.is-compact) .feds-popup.small-menu{border:1px solid var(--s2a-color-transparent-black-12,#0000001f);border-radius:var(--s2a-spacing-xs);box-sizing:border-box;width:auto;max-width:none;max-height:none;position:absolute;inset:100% auto auto 0;overflow:auto}header.global-navigation:not(.is-compact) .feds-popup.small-menu .links-card{padding:var(--s2a-spacing-md) var(--s2a-spacing-lg)}header.global-navigation:not(.is-compact) .feds-popup.small-menu.is-open{border-radius:var(--s2a-spacing-xs);margin-top:-8px;left:-24px;overflow-y:hidden}header.global-navigation:not(.is-compact) .feds-popup.small-menu .feds-gnav-cards{gap:var(--s2a-spacing-xs);background-color:var(--s2a-color-background-default,white);border-radius:var(--s2a-spacing-xs);border-color:var(--s2a-color-transparent-black-12);flex-direction:column;padding:0;display:flex}header.global-navigation:not(.is-compact) .feds-popup.small-menu .feds-gnav-cards>li{flex:none;width:auto}header.global-navigation:not(.is-compact) .feds-popup.small-menu .feds-gnav-cards>li:has(>:nth-child(2)){flex-direction:column}header.global-navigation:not(.is-compact) .feds-popup.small-menu .links-card-title{display:none}header.global-navigation:not(.is-compact) .feds-popup.small-menu .links-card-links{flex-direction:column;gap:0;display:flex}header.global-navigation:not(.is-compact) .feds-popup.small-menu .links-card-links li{height:34px;padding:var(--s2a-spacing-xs,8px) 0;align-items:center;display:flex}header.global-navigation:not(.is-compact) .feds-popup.small-menu .links-card-links .feds-link:hover{text-decoration:underline}header.global-navigation:not(.is-compact) .feds-popup.small-menu .links-card-footer{margin-top:0}header.global-navigation:not(.is-compact) .feds-popup.small-menu .links-card-footer .feds-secondary-cta{font-family:var(--s2a-font-family-label,"Adobe_Clean", sans-serif);font-size:var(--s2a-typography-font-size-body-sm,14px);font-weight:var(--s2a-font-weight-adobe-clean-black,700);line-height:var(--s2a-typography-line-height-body-sm,18px);letter-spacing:0;color:var(--s2a-color-button-background-primary-solid-default,#3b63fb);white-space:nowrap;padding:var(--s2a-spacing-xs,8px) 0;background:0 0;border:none;justify-content:flex-start;align-items:center;width:auto;height:34px;text-decoration:none;display:flex}header.global-navigation:not(.is-compact) .feds-popup.small-menu .links-card-footer .feds-secondary-cta:hover{color:var(--s2a-color-button-background-primary-solid-default,#3b63fb);background:0 0;text-decoration:underline}header.global-navigation:not(.is-compact) nav:has(.small-menu.is-open):not(:has(.feds-popup.is-open:not(.small-menu))) .feds-backdrop{display:none}header.global-navigation:not(.is-compact) nav:has(.small-menu.is-open):not(:has(.feds-popup.is-open:not(.small-menu))):after{border-radius:0;height:64px;top:0}header.global-navigation:not(.is-compact) nav:has(.small-menu.is-open):has(.feds-breadcrumbs):not(:has(.feds-popup.is-open:not(.small-menu))):after{height:var(--feds-popup-bg-height)}header.global-navigation:not(.is-compact).feds-header-scrolled nav:has(.small-menu.is-open):not(:has(.feds-popup.is-open:not(.small-menu))):after{width:100%;-webkit-backdrop-filter:blur(var(--s2a-blur-sm));backdrop-filter:blur(var(--s2a-blur-sm));border-radius:var(--s2a-border-radius-16);background-color:#ffffff82;top:0;left:0}}.feds-popup.small-menu .links-card{padding:var(--s2a-spacing-md) var(--s2a-spacing-lg)}.feds-popup.small-menu .links-card .links-card-title{display:none}.feds-popup .feds-gnav-cards{padding:var(--s2a-spacing-lg);gap:var(--s2a-spacing-2xs);grid-template-columns:1fr;align-items:stretch;margin:0;list-style:none;display:grid}.feds-popup .feds-gnav-cards>li{min-width:0}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-popup .feds-gnav-cards{gap:var(--s2a-spacing-xs);flex-wrap:nowrap;width:100%;padding-top:0;display:flex;overflow-x:auto}header.global-navigation:not(.is-compact) .feds-popup .feds-gnav-cards>li{flex:1 1 0;min-width:0}header.global-navigation:not(.is-compact) .feds-popup .feds-gnav-cards:has(.promo-card)>li{flex:none}}.feds-gnav-cards .promo-card{height:199px;margin-bottom:var(--s2a-spacing-sm);position:relative}.feds-gnav-cards .promo-card__bg{width:100%;height:100%;display:block;position:absolute}.feds-gnav-cards .promo-card__bg-image{border-radius:var(--s2a-border-radius-24);object-fit:cover;width:100%;height:100%;display:block}.feds-gnav-cards .promo-card__content{background:0 0;width:100%;height:100%;position:absolute;top:0;left:0}.feds-gnav-cards .promo-card__icon{top:var(--s2a-spacing-md);left:var(--s2a-spacing-md);width:var(--s2a-spacing-lg);height:var(--s2a-spacing-lg);position:absolute}[dir=rtl] .feds-gnav-cards .promo-card__icon{right:var(--s2a-spacing-md)}[dir=rtl] .feds-gnav-cards .promo-card__text-content{right:0}.feds-gnav-cards .promo-card__text-content{padding:var(--s2a-spacing-md);display:block;position:absolute;bottom:0;left:0}.feds-gnav-cards .promo-card__price,.feds-gnav-cards .promo-card__title{color:var(--s2a-color-gray-25);margin:0}.feds-gnav-cards .promo-card__price{font-weight:var(--s2a-font-weight-adobe-clean-bold);font-size:var(--s2a-font-size-md);line-height:var(--s2a-font-line-height-24);letter-spacing:-1%}.feds-gnav-cards .promo-card__title{font-weight:var(--s2a-font-weight-adobe-clean-black);font-size:var(--s2a-typography-font-size-heading-5);line-height:var(--s2a-typography-line-height-heading-5);letter-spacing:var(--s2a-typography-letter-spacing-heading-5);font-family:var(--heading-font-family)}.feds-gnav-cards .promo-card__cta{margin-top:var(--s2a-spacing-lg);display:block}.feds-gnav-cards .promo-card__cta .feds-secondary-cta{letter-spacing:0;background:var(--s2a-color-gray-25);color:var(--s2a-color-gray-1000);padding:11px var(--s2a-spacing-lg) var(--s2a-spacing-sm);font-weight:var(--s2a-font-weight-adobe-clean-bold);font-size:var(--s2a-typography-font-size-label);line-height:var(--s2a-typography-line-height-label);letter-spacing:var(--s2a-typography-letter-spacing-label);border:none;transition:background-color .3s,color .3s}.feds-gnav-cards .promo-card__cta .feds-secondary-cta:hover,.feds-gnav-cards .promo-card__cta .feds-secondary-cta:focus{background:var(--s2a-color-gray-1000);color:var(--s2a-color-gray-25)}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card{height:100%;min-height:420px}header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card__bg-image{border-radius:var(--s2a-border-radius-md)}header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card__cta{margin-top:var(--s2a-spacing-md)}}@media (width>=1280px){header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card{min-height:auto}header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card__bg-image{border-radius:var(--s2a-border-radius-12)}header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card__icon{top:var(--s2a-spacing-lg);left:var(--s2a-spacing-lg);position:absolute}header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card__text-content{box-sizing:border-box;width:100%;padding:var(--s2a-spacing-lg)}header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card__cta{bottom:var(--s2a-spacing-lg);right:var(--s2a-spacing-lg);margin-top:0;position:absolute}}.feds-gnav-cards .promo-card-small{border-radius:var(--s2a-border-radius-24);height:199px;margin-bottom:var(--s2a-spacing-sm);position:relative;overflow:hidden}.feds-gnav-cards .promo-card-small__bg{width:100%;height:100%;display:block;position:absolute;inset:0}.feds-gnav-cards .promo-card-small__bg-image{object-fit:cover;width:100%;height:100%;display:block}.feds-gnav-cards .promo-card-small:after{content:"";background:linear-gradient(104.97deg, var(--s2ac\\/palette\\/transparent-black\\/600,#0000008f) 0%, var(--s2ac\\/palette\\/transparent-black\\/400,#00000038) 99%);border-radius:inherit;pointer-events:none;position:absolute;inset:0}.feds-gnav-cards .promo-card-small__content{padding:var(--s2a-spacing-lg);z-index:1;flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0}.feds-gnav-cards .promo-card-small__text{gap:var(--s2a-spacing-sm);color:var(--s2a-color-static-white,white);flex-direction:column;display:flex}.feds-gnav-cards .promo-card-small__title{font-family:var(--heading-font-family);font-size:var(--s2a-typography-font-size-heading-5);font-weight:var(--s2a-font-weight-adobe-clean-black);line-height:var(--s2a-typography-line-height-heading-5);letter-spacing:var(--s2a-typography-letter-spacing-heading-5);color:inherit;margin:0}.feds-gnav-cards .promo-card-small__body{font-size:var(--s2a-typography-font-size-body-sm);font-weight:var(--s2a-font-weight-adobe-clean-regular);line-height:var(--s2a-typography-line-height-body-sm);letter-spacing:var(--s2a-typography-letter-spacing-body-sm);color:inherit;margin:0}.feds-gnav-cards .promo-card-small__cta .feds-secondary-cta{border:var(--s2a-border-width-md,2px) solid var(--s2a-color-button-border-primary-outlined-on-dark,white);color:var(--s2a-color-button-border-primary-outlined-on-dark,var(--s2a-color-gray-25));background:0 0;justify-content:center;align-items:center;transition:background-color .3s,color .3s;display:inline-flex}.feds-gnav-cards .promo-card-small__cta .feds-secondary-cta:hover,.feds-gnav-cards .promo-card-small__cta .feds-secondary-cta:focus{background:#ffffff26}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card-small{border-radius:var(--s2a-border-radius-md);height:100%;min-height:420px}header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card-small__bg-image{border-radius:var(--s2a-border-radius-md)}}@media (width>=1280px){header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card-small{border-radius:var(--s2a-border-radius-12);min-height:auto}header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card-small__bg-image{border-radius:var(--s2a-border-radius-12)}}.feds-popup .links-card{border-radius:var(--s2a-border-radius-16);background:var(--s2a-color-gray-25);box-sizing:border-box;padding:var(--s2a-spacing-lg);margin-bottom:var(--s2a-spacing-sm);flex-direction:column;justify-content:space-between;display:flex}.feds-popup .links-card .links-card-title-container{flex-direction:row;align-items:center;display:flex}.feds-popup .links-card .links-card-title-container[aria-expanded=false] .links-card-title{margin-bottom:0}.feds-popup.small-menu .links-card .links-card-title-container{display:none}.feds-popup .links-card .links-card-chevron{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;margin-left:auto;display:inline-flex}.feds-popup.small-menu .links-card .links-card-chevron{display:none}.feds-popup .links-card .links-card-chevron svg{width:16px;height:16px;transition:transform .3s;transform:rotate(180deg)}.feds-popup .links-card .links-card-chevron svg path{stroke-width:.7px}.feds-popup .links-card.closed .links-card-title-container svg{transform:rotate(0)}[dir=rtl] .feds-popup .links-card .links-card-chevron{margin-left:0;margin-right:auto}@media (width<=1024px){.feds-popup .links-card .links-card-title-container~*,.feds-popup .links-card .links-card-footer{max-height:1000px;transition:max-height .4s;overflow:hidden}.feds-popup .links-card.closed .links-card-title-container~*,.feds-popup .links-card.closed .links-card-footer{max-height:0}.feds-popup .links-card.opening .links-card-links>li{opacity:0;animation:.4s cubic-bezier(.42,0,0,1) forwards sub-menu-items-enter;transform:translate(18px)}.feds-popup .links-card.opening .links-card-links>li:first-child{animation-delay:80ms}.feds-popup .links-card.opening .links-card-links>li:nth-child(2){animation-delay:.12s}.feds-popup .links-card.opening .links-card-links>li:nth-child(3){animation-delay:.16s}.feds-popup .links-card.opening .links-card-links>li:nth-child(4){animation-delay:.2s}.feds-popup .links-card.opening .links-card-links>li:nth-child(5){animation-delay:.24s}.feds-popup .links-card.opening .links-card-links>li:nth-child(6){animation-delay:.28s}.feds-popup .links-card.opening .links-card-links>li:nth-child(7){animation-delay:.32s}.feds-popup .links-card.opening .links-card-links>li:nth-child(8){animation-delay:.36s}.feds-popup .links-card.opening .links-card-links>li:nth-child(9){animation-delay:.4s}.feds-popup .links-card.opening .links-card-links>li:nth-child(10){animation-delay:.44s}.feds-popup .links-card.opening .links-card-footer{opacity:0;animation:.4s cubic-bezier(.42,0,0,1) .32s forwards sub-menu-items-enter;transform:translate(18px)}}header.global-navigation.is-compact .feds-popup .links-card .links-card-title-container~*,header.global-navigation.is-compact .feds-popup .links-card .links-card-footer{max-height:1000px;transition:max-height .4s;overflow:hidden}header.global-navigation.is-compact .feds-popup .links-card.closed .links-card-title-container~*,header.global-navigation.is-compact .feds-popup .links-card.closed .links-card-footer{max-height:0}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li{opacity:0;animation:.4s cubic-bezier(.42,0,0,1) forwards sub-menu-items-enter;transform:translate(18px)}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:first-child{animation-delay:80ms}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:nth-child(2){animation-delay:.12s}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:nth-child(3){animation-delay:.16s}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:nth-child(4){animation-delay:.2s}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:nth-child(5){animation-delay:.24s}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:nth-child(6){animation-delay:.28s}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:nth-child(7){animation-delay:.32s}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:nth-child(8){animation-delay:.36s}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:nth-child(9){animation-delay:.4s}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:nth-child(10){animation-delay:.44s}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-footer{opacity:0;animation:.4s cubic-bezier(.42,0,0,1) .32s forwards sub-menu-items-enter;transform:translate(18px)}nav.localnav .feds-popup:not(.small-menu) .links-card{margin-bottom:var(--s2a-spacing-xs)}.feds-popup .links-card .links-card-title{font-size:var(--s2a-typography-font-size-heading-5);line-height:var(--s2a-typography-line-height-heading-5);letter-spacing:var(--s2a-typography-letter-spacing-heading-5);font-weight:var(--s2a-font-weight-adobe-clean-black);color:var(--s2a-color-gray-1000);font-family:var(--heading-font-family);margin:0;margin-bottom:var(--s2a-spacing-sm);transition:margin-bottom .4s}.feds-popup .links-card .links-card-links{margin:0;padding:0;line-height:120%;list-style:none}.feds-popup .links-card .links-card-links li{padding:var(--s2a-spacing-xs) 0;display:flex}.feds-popup .links-card .links-card-links .feds-link{color:var(--s2a-color-gray-1000);font-size:var(--s2a-font-size-sm);font-weight:var(--s2a-font-weight-adobe-clean-regular);padding:0;display:inline-flex}.feds-popup .links-card .links-card-links .links-card-links__item-link{align-items:flex-start;gap:var(--s2a-spacing-2xs,4px);flex-direction:column}.feds-popup .links-card .links-card-links .links-card-links__item-description{font-size:var(--s2a-font-family-body);color:var(--s2a-color-content-default);line-height:var(--s2a-typography-line-height-body-sm);font-weight:var(--s2a-font-weight-adobe-clean-regular);letter-spacing:var(--s2a-typography-letter-spacing-body-sm);white-space:break-spaces}.feds-popup .links-card .links-card-links .feds-link--highlight{color:var(--s2a-color-button-background-primary-solid-default,#3b63fb);font-weight:700}.links-card-links__item-title{font-weight:700;font-size:var(--s2a-typography-font-size-eyebrow);line-height:var(--s2a-typography-line-height-eyebrow);letter-spacing:var(--s2a-typography-letter-spacing-eyebrow)}.feds-popup .links-card .links-card-footer{width:100%;margin-top:var(--s2a-spacing-sm)}.feds-popup .links-card .links-card-footer .feds-secondary-cta{box-sizing:border-box;background-color:#0000;justify-content:center;width:100%}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-popup .links-card{border-radius:var(--s2a-border-radius-16);padding:var(--s2a-spacing-lg) var(--s2a-spacing-lg) var(--s2a-spacing-md)}header.global-navigation:not(.is-compact) .feds-popup .links-card .links-card-chevron{display:none}header.global-navigation:not(.is-compact) .feds-popup .links-card .links-card-footer .feds-secondary-cta{color:var(--s2a-color-gray-1000);background-color:#0000}header.global-navigation:not(.is-compact) .feds-popup .links-card .links-card-footer .feds-secondary-cta:hover{color:var(--s2a-color-gray-25);background-color:var(--s2a-color-gray-1000)}}@media (width>=1280px){header.global-navigation:not(.is-compact) .feds-popup .links-card{padding-bottom:var(--s2a-spacing-lg)}}.feds-popup .product-list{align-items:start;gap:var(--s2a-spacing-lg);padding:var(--s2a-spacing-lg);border-radius:var(--s2a-border-radius-md);grid-template-columns:1fr;width:100%;display:grid}.product-list .tabs,.product-list .tab-content,.product-list .product-links{margin:0;padding:0;list-style:none}.product-list .tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;background-color:#0000;flex-wrap:nowrap;gap:4px;display:flex;overflow:auto hidden}.feds-popup .product-list .tabs{margin-left:calc(0px - var(--s2a-spacing-lg));margin-right:calc(0px - var(--s2a-spacing-lg));padding:0 var(--s2a-spacing-lg) var(--s2a-spacing-lg) var(--s2a-spacing-lg)}.product-list .tabs::-webkit-scrollbar{display:none}.product-list .tabs li{flex:none;list-style:none}.product-list .tabs button.tab{white-space:nowrap;width:max-content;min-height:40px;padding:var(--s2a-spacing-md) var(--s2a-spacing-lg);text-align:center;font-family:var(--body-font-family);font-size:var(--s2a-font-size-sm);font-weight:var(--s2a-font-weight-adobe-clean-bold);color:var(--s2a-color-content-default);cursor:pointer;background:#0000000a;border:0;border-radius:75px;justify-content:center;align-items:center;line-height:8px;display:inline-flex}.product-list .tabs button.tab[aria-selected=true]{background:var(--s2a-color-gray-1000);color:var(--s2a-color-gray-25)}.product-list .tabs button.tab:hover:not([aria-selected=true]){color:var(--s2a-color-gray-25);background-color:var(--s2a-color-content-subtle)}.product-list .tab-content>li{list-style:none}.product-list .tab-content [role=tabpanel][hidden]{display:none}.product-list .tab-content [role=tabpanel]{gap:var(--s2a-spacing-2xs);grid-template-columns:1fr;margin:0;padding:0;list-style:none;display:grid}.product-list .tab-content [role=tabpanel] li{display:flex}.product-list .tab-content [role=tabpanel] .feds-product-card{background-color:var(--s2a-color-gray-25);outline-offset:-1px;flex-direction:column;flex:1;justify-content:space-between;min-height:120px;display:flex}.feds-popup .product-list .tab-content [role=tabpanel] .feds-product-card:hover{background:var(--s2a-color-gray-1000)}.feds-popup .product-list .tab-content [role=tabpanel] .feds-product-card:hover .feds-product-card__title{color:var(--s2a-color-gray-25)}.product-list .product-links a{color:var(--s2a-color-content-default)}.product-list .product-links .feds-link{align-items:center;gap:6px;display:inline-flex}.product-list .product-links .feds-link svg{flex-shrink:0;width:3px;height:6px}[dir=rtl] .product-links .feds-link svg,[dir=rtl] .featured-card .feds-link svg{transform:scaleX(-1)}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-popup .product-list{gap:var(--s2a-spacing-xs);padding:0 var(--s2a-spacing-lg) var(--s2a-spacing-lg);grid-template-columns:1fr minmax(0,3fr)}header.global-navigation:not(.is-compact) .product-list .tabs{display:block;overflow:visible}header.global-navigation:not(.is-compact) .feds-popup .product-list .tabs{margin:0;padding:0}header.global-navigation:not(.is-compact) .product-list .tabs li{flex:unset}header.global-navigation:not(.is-compact) .product-list .tabs button.tab{width:auto;min-height:44px;margin-bottom:var(--s2a-spacing-2xs)}header.global-navigation:not(.is-compact) .product-list .tab-content [role=tabpanel]{gap:var(--s2a-spacing-xs);grid-template-columns:repeat(3,1fr)}}@media (width>=1920px){header.global-navigation:not(.is-compact) .feds-popup .product-list{grid-template-columns:auto minmax(0,3fr)}header.global-navigation:not(.is-compact) .feds-popup .product-list .tab-content [role=tabpanel]{grid-template-columns:repeat(5,1fr)}header.global-navigation:not(.is-compact) .feds-popup .product-list .tabs{margin-right:var(--s2a-spacing-4xl)}}.product-hint{display:none}.global-navigation .panels{padding:36px clamp(var(--s2a-spacing-lg), 4vw, 56px) var(--s2a-spacing-40);gap:var(--s2a-spacing-xl);box-sizing:border-box;width:min(1200px,100%);color:var(--s2a-color-gray-1000);width:100%;margin:0 auto;list-style:none}.panels>li{background-color:var(--s2a-color-gray-75);border-radius:var(--s2a-border-radius-md);flex-direction:column;align-items:stretch;min-width:0;display:flex}.feds-popup .panels .feds-secondary-cta{margin-top:auto;margin-bottom:var(--s2a-spacing-sm);align-self:center;width:75%}.panels h4{font-family:var(--heading-font-family);font-size:var(--s2a-font-size-2xl);line-height:var(--s2a-font-line-height-20);margin-left:var(--s2a-spacing-lg)}.global-navigation .panels .link-panel{margin:0 0 0 var(--s2a-spacing-lg);padding:0;list-style:none}.global-navigation .panels .link-panel+.feds-link{color:var(--s2a-color-gray-1000);margin-left:var(--s2a-spacing-lg);margin-top:auto;padding-left:0}.global-navigation .panels .link-panel+.feds-link:after{content:"";width:var(--s2a-spacing-2xs);height:var(--s2a-spacing-2xs);border-right:var(--s2a-border-width-md) solid var(--s2a-color-gray-1000);border-top:var(--s2a-border-width-md) solid var(--s2a-color-gray-1000);transform:translateY(8%) translateX(var(--s2a-spacing-xs)) rotate(45deg)}.panels .link-panel .feds-link,.panels .panel-footer-link .feds-link{padding:var(--s2a-spacing-sm) 0;font-size:var(--s2a-font-size-sm);font-weight:var(--s2a-font-weight-adobe-clean-bold);color:var(--s2a-color-gray-1000);align-items:center;margin:0;line-height:1.35;text-decoration:none;display:inline-flex}.panels .link-panel-container>.feds-secondary-cta,.panels>li>.feds-secondary-cta{margin-top:var(--s2a-spacing-sm)}.panels>li:has(>.list-image-panel){background-color:var(--s2a-color-gray-1000);border:var(--s2a-border-width-lg) var(--s2a-color-gray-1000) solid}.list-image-panel{color:var(--s2a-color-gray-25);align-items:stretch;gap:var(--s2a-spacing-sm);background-color:#0000;height:100%;display:flex}.list-image-panel .link-panel-container{flex-direction:column;min-width:250px;display:flex}.panels .list-image-panel .feds-link{color:var(--s2a-color-gray-25)}.panels .list-image-panel .feds-secondary-cta{color:var(--s2a-color-gray-25);margin:auto 0 var(--s2a-spacing-sm) 0;width:calc(100% - var(--s2a-spacing-lg))}.panels .list-image-panel .feds-secondary-cta:hover{color:var(--s2a-color-gray-1000)}.panels .list-image-panel li{border-radius:var(--s2a-border-radius-sm);padding:var(--s2a-spacing-sm)}.panels .list-image-panel li a.feds-link{padding:0}.panels .list-image-panel li:hover{background-color:var(--s2a-color-gray-25);position:relative}.panels .list-image-panel li:hover .feds-link{color:var(--s2a-color-gray-1000)}.panels .list-image-panel li:hover .feds-link:after{content:"";right:var(--s2a-spacing-sm);width:var(--s2a-spacing-2xs);height:var(--s2a-spacing-2xs);border-right:var(--s2a-border-width-md) solid var(--s2a-color-gray-1000);border-top:var(--s2a-border-width-md) solid var(--s2a-color-gray-1000);position:absolute;transform:translateY(8%)translate(100%)rotate(45deg)}.list-image-panel picture{display:block}.list-image-panel picture img{object-fit:cover;border-radius:14px;width:auto;height:100%;max-height:100%;display:block}.image-panel{border-radius:var(--s2a-border-radius-md);isolation:isolate;min-height:320px;display:grid;position:relative;overflow:hidden}.image-panel>picture{grid-area:1/1;height:100%;display:block}.image-panel>picture img{object-fit:cover;width:100%;height:100%;display:block}.image-panel .overlay{gap:var(--s2a-spacing-sm);color:var(--s2a-color-gray-25);background:linear-gradient(180deg, #0000 0%, var(--s2a-color-transparent-black-64) 70%);grid-area:1/1;grid-template-columns:300px auto auto;grid-template-rows:var(--s2a-spacing-3xl) auto 50px;padding:18px 18px 20px;display:grid}.image-panel .icon{grid:1 / 1 / 1 / 1;width:34px;height:34px}.image-panel .icon img{width:100%;height:100%;display:block}.image-panel .text{grid-area:3/1/3/1;gap:3px;display:grid}.image-panel .text span:first-child{font-size:var(--s2a-font-size-sm);font-weight:var(--s2a-font-weight-adobe-clean-bold);line-height:1.2}.image-panel .text span:last-child{font-family:var(--heading-font-family);font-size:21px;font-weight:var(--s2a-font-weight-adobe-clean-extrabold);line-height:1.2}.image-panel-button{border-radius:var(--s2a-border-radius-round);width:fit-content;min-height:34px;color:var(--s2a-color-gray-1000);font-size:var(--s2a-font-size-sm);font-weight:var(--s2a-font-weight-adobe-clean-bold);background-color:var(--s2a-color-gray-25);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);grid-area:3/3/3/3;justify-content:center;justify-self:end;align-items:center;padding:0 14px;text-decoration:none;display:inline-flex}@media (width<=1023px){.panels{padding:22px var(--s2a-spacing-md) 28px;grid-template-rows:none!important;grid-template-columns:none!important;display:block!important}.panels>li+li{margin-top:22px}.list-image-panel{grid-template-columns:1fr;grid-template-areas:"header""image""list";row-gap:14px}}header.global-navigation.is-compact .panels{padding:22px var(--s2a-spacing-md) 28px;grid-template-rows:none!important;grid-template-columns:none!important;display:block!important}header.global-navigation.is-compact .panels>li+li{margin-top:22px}header.global-navigation.is-compact .list-image-panel{grid-template-columns:1fr;grid-template-areas:"header""image""list";row-gap:14px}.feds-popup .featured-card{background:var(--s2a-color-gray-25);box-sizing:border-box;padding:var(--s2a-spacing-lg);height:100%;margin-bottom:var(--s2a-spacing-sm);border-radius:24px;flex-direction:column;justify-content:space-between;align-items:flex-start;display:flex;overflow:hidden}.feds-popup .featured-card .featured-eyebrow{color:var(--s2a-color-content-body-subtle);font-family:var(--body-font-family);font-size:var(--s2a-typography-font-size-label);font-weight:var(--s2a-font-weight-adobe-clean-bold);letter-spacing:var(--s2a-typography-letter-spacing-label);line-height:var(--s2a-typography-line-height-label)}.feds-popup .featured-card h2{font-family:var(--heading-font-family);font-size:var(--s2a-typography-font-size-heading-5);line-height:var(--s2a-typography-line-height-heading-5);letter-spacing:var(--s2a-typography-letter-spacing-heading-5);color:var(--s2a-color-content-default);padding:var(--s2a-spacing-md) 0 var(--s2a-spacing-xs) 0;font-weight:var(--s2a-font-weight-adobe-clean-black);margin:0}.featured-card .featured-subtitle{font-size:var(--s2a-font-size-sm);color:var(--s2a-color-content-subtle);line-height:120%}.featured-card .feds-link{padding:var(--s2a-spacing-md) 0;color:var(--s2a-color-gray-1000);gap:6px;display:inline-flex}.featured-card span{flex-direction:row;justify-content:flex-start;align-items:center;gap:6px;display:flex}.featured-card span svg{color:var(--s2a-color-gray-1000);width:3px;height:8px;margin-top:2px}.featured-card a.feds-secondary-cta{background:var(--s2a-color-gray-1000);color:var(--s2a-color-gray-25)}.featured-card .footer-container{width:100%}.featured-card .footer-container a{box-sizing:border-box;width:100%}.featured-card .footer-container a.feds-secondary-cta:hover{background:var(--s2a-color-gray-1000)}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-popup .featured-card{border-radius:12px}header.global-navigation:not(.is-compact) .featured-card a.feds-secondary-cta{color:var(--s2a-color-gray-1000);border:var(--s2a-border-width-sm) solid var(--s2a-color-gray-1000);background:0 0}header.global-navigation:not(.is-compact) .feds-popup .feds-gnav-cards:has(.featured-card){flex-wrap:unset;overflow-x:unset;grid-template-columns:repeat(3,1fr);display:grid}}@media (width>=1280px){header.global-navigation:not(.is-compact) .feds-popup .feds-gnav-cards:has(.featured-card){grid-template-columns:repeat(5,1fr)}header.global-navigation:not(.is-compact) .feds-popup .featured-card{min-height:307px}}@media (width>=1024px) and (hover:hover){header.global-navigation:not(.is-compact) .featured-card a.feds-secondary-cta{transition:background .2s,color .2s,border-color .2s}header.global-navigation:not(.is-compact) .featured-card a.feds-secondary-cta:hover{background:var(--s2a-color-gray-1000);color:var(--s2a-color-gray-25);border-color:var(--s2a-color-gray-25)}}.feds-localnav-bar{display:none}header.feds-header-scrolled.feds-localnav-closing nav.localnav{inset:auto}nav.localnav .feds-popup:not(.small-menu) .feds-popup-back-button svg{display:none}@media (width<=1023px){.global-navigation nav.localnav .feds-gnav-items>li:first-child>.feds-link{display:none}.global-navigation nav.localnav .feds-gnav-items>li>.feds-primary-cta,.global-navigation nav.localnav .feds-gnav-items>li>.feds-secondary-cta{margin:0}.global-navigation nav.localnav .feds-gnav-items>li>.feds-primary-cta{color:var(--s2a-color-button-content-primary-solid-default);margin-top:var(--s2a-spacing-lg);background-color:#3b63fb;border:none}.global-navigation nav.localnav .feds-gnav-items>li>.feds-primary-cta:hover{color:var(--s2a-color-button-content-primary-solid-default);background-color:#3b63fb;border:none}.global-navigation nav.localnav>ul>li.feds-menu-wrapper:has(.feds-popup.is-open){opacity:1;visibility:visible}.global-navigation nav.localnav>ul>li.feds-menu-wrapper{opacity:1;visibility:visible;width:100%;height:auto;color:inherit;z-index:2;background-color:#0000;margin:0;padding:0;display:block;position:absolute;top:100%;left:0;right:0}header.global-navigation:has(nav.localnav){transition:top .3s}header.global-navigation:has(nav.localnav>ul>li.feds-menu-wrapper.is-open){top:calc(0px - var(--s2a-spacing-64))}.global-navigation nav.localnav .feds-localnav-bar{box-sizing:border-box;width:100%;height:var(--feds-breadcrumbs-height);padding:var(--s2a-spacing-md);border:0;border-top:var(--s2a-border-width-sm) solid #ffffff3d;color:var(--s2a-color-gray-25);cursor:pointer;font-family:var(--body-font-family);font-weight:700;font-size:var(--s2a-typography-font-size-label);line-height:var(--s2a-typography-line-height-label);letter-spacing:var(--s2a-typography-letter-spacing-label);text-align:left;background:0 0;justify-content:space-between;align-items:center;display:flex;position:relative;overflow:visible}.global-navigation.dark-font nav.localnav .feds-localnav-bar{color:var(--s2a-color-gray-1000);border-top-color:var(--s2a-color-transparent-black-08)}.global-navigation nav.localnav:has(.feds-localnav-bar[aria-expanded=true]){margin-top:0}.global-navigation.feds-header-scrolled nav.localnav .feds-localnav-bar,.global-navigation:has(.feds-menu-wrapper.is-open,.feds-popup.is-open) nav.localnav .feds-localnav-bar{color:var(--s2a-color-content-default);border-top-color:#0000001f}.global-navigation nav.localnav .feds-localnav-bar:after{content:"";border-bottom:1px solid;border-right:1px solid;width:6px;height:6px;transition:transform .3s;transform:translateY(-2px)rotate(45deg)}.global-navigation nav.localnav>ul>li.feds-menu-wrapper.is-open .feds-localnav-bar:after{transform:translateY(2px)rotate(225deg)}.global-navigation nav.localnav>ul>li.feds-menu-wrapper.is-open .feds-localnav-bar:before{content:"";border-bottom:var(--s2a-border-width-sm) solid #0000001f;position:absolute;bottom:0;left:calc(50% - 50vw);right:calc(50% - 50vw)}.global-navigation nav.localnav>ul>li.feds-menu-wrapper>ul.feds-gnav-items{max-height:0;padding:0;transition:max-height .3s;overflow:hidden}.global-navigation nav.localnav>ul>li.feds-menu-wrapper.is-open>ul.feds-gnav-items,.global-navigation nav.localnav>ul>li.feds-menu-wrapper.feds-menu-active>ul.feds-gnav-items{padding:var(--s2a-spacing-xs) var(--s2a-spacing-md) var(--s2a-spacing-sm);overflow-y:auto}.global-navigation nav.localnav:has(.feds-popup.is-open)>ul>li.feds-menu-wrapper.feds-menu-active>ul.feds-gnav-items{overflow-y:hidden}.global-navigation nav.localnav>ul>li.feds-menu-wrapper.is-open>ul.feds-gnav-items{max-height:calc(100dvh - var(--s2a-spacing-64) - var(--feds-breadcrumbs-height));transition:max-height .4s}.global-navigation nav.localnav .feds-gnav-items.subscreen-opening>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){animation-delay:0s!important}.global-navigation nav.localnav .feds-gnav-items.subscreen-closing>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){animation-delay:.24s!important}nav.localnav .feds-popup{top:calc(var(--feds-breadcrumbs-height) - 1px);max-height:calc(100dvh - var(--feds-breadcrumbs-height));height:fit-content;overflow-x:hidden}nav.localnav:not(:has(.feds-menu-wrapper.is-open)) .feds-popup{top:var(--s2a-spacing-64);max-height:calc(100dvh - var(--s2a-spacing-64))}.global-navigation nav.localnav:has(.feds-popup.is-open):not(:has(.feds-menu-wrapper.is-open)) .feds-localnav-bar{display:none}.global-navigation nav.localnav:has(.feds-popup.is-open):not(:has(.feds-menu-wrapper.is-open)) .feds-popup.is-open>ul.feds-breadcrumbs{border-top:0}.global-navigation nav.localnav:has(.feds-menu-wrapper.is-open) .feds-popup.is-open>ul.feds-breadcrumbs,header.global-navigation nav.localnav>.feds-breadcrumbs{display:none}}header.global-navigation.is-compact nav.localnav .feds-gnav-items>li:first-child>.feds-link{display:none}header.global-navigation.is-compact nav.localnav .feds-gnav-items>li>.feds-primary-cta,header.global-navigation.is-compact nav.localnav .feds-gnav-items>li>.feds-secondary-cta{margin:0}header.global-navigation.is-compact nav.localnav .feds-gnav-items>li>.feds-primary-cta{color:var(--s2a-color-button-content-primary-solid-default);margin-top:var(--s2a-spacing-lg);background-color:#3b63fb;border:none}header.global-navigation.is-compact nav.localnav .feds-gnav-items>li>.feds-primary-cta:hover{color:var(--s2a-color-button-content-primary-solid-default);background-color:#3b63fb;border:none}header.global-navigation.is-compact nav.localnav:has(.feds-localnav-bar[aria-expanded=true]){margin-top:0}header.global-navigation.is-compact nav.localnav>ul>li.feds-menu-wrapper:has(.feds-popup.is-open){opacity:1;visibility:visible}header.global-navigation.is-compact nav.localnav>ul>li.feds-menu-wrapper{opacity:1;visibility:visible;width:100%;height:auto;color:inherit;z-index:2;background-color:#0000;flex-direction:column;flex-grow:0;justify-content:flex-start;margin:0;padding:0;display:block;position:absolute;top:100%;left:0;right:0}header.global-navigation.is-compact:has(nav.localnav){transition:top .3s}header.global-navigation.is-compact:has(nav.localnav>ul>li.feds-menu-wrapper.is-open){top:calc(0px - var(--s2a-spacing-64))}header.global-navigation.is-compact nav.localnav .feds-localnav-bar{box-sizing:border-box;width:100%;height:var(--feds-breadcrumbs-height);padding:var(--s2a-spacing-md);border:0;border-top:var(--s2a-border-width-sm) solid #ffffff3d;color:var(--s2a-color-gray-25);cursor:pointer;font-family:var(--body-font-family);font-weight:700;font-size:var(--s2a-typography-font-size-label);line-height:var(--s2a-typography-line-height-label);letter-spacing:var(--s2a-typography-letter-spacing-label);text-align:left;background:0 0;justify-content:space-between;align-items:center;display:flex;position:relative;overflow:visible}header.global-navigation.is-compact.dark-font nav.localnav .feds-localnav-bar{color:var(--s2a-color-gray-1000);border-top-color:var(--s2a-color-transparent-black-08)}header.global-navigation.is-compact.feds-header-scrolled nav.localnav .feds-localnav-bar,header.global-navigation.is-compact:has(.feds-menu-wrapper.is-open,.feds-popup.is-open) nav.localnav .feds-localnav-bar{color:var(--s2a-color-content-default);border-top-color:#0000001f}header.global-navigation.is-compact nav.localnav .feds-localnav-bar:after{content:"";border-bottom:1px solid;border-right:1px solid;width:6px;height:6px;transition:transform .3s;transform:translateY(-2px)rotate(45deg)}header.global-navigation.is-compact nav.localnav>ul>li.feds-menu-wrapper.is-open .feds-localnav-bar:after{transform:translateY(2px)rotate(225deg)}header.global-navigation.is-compact nav.localnav>ul>li.feds-menu-wrapper.is-open .feds-localnav-bar:before{content:"";border-bottom:var(--s2a-border-width-sm) solid #0000001f;position:absolute;bottom:0;left:calc(50% - 50vw);right:calc(50% - 50vw)}header.global-navigation.is-compact nav.localnav>ul>li.feds-menu-wrapper>ul.feds-gnav-items{max-height:0;padding:0;transition:max-height .3s;overflow:hidden}header.global-navigation.is-compact nav.localnav>ul>li.feds-menu-wrapper.is-open>ul.feds-gnav-items,header.global-navigation.is-compact nav.localnav>ul>li.feds-menu-wrapper.feds-menu-active>ul.feds-gnav-items{padding:var(--s2a-spacing-xs) var(--s2a-spacing-md) var(--s2a-spacing-sm);overflow-y:auto}header.global-navigation.is-compact nav.localnav:has(.feds-popup.is-open)>ul>li.feds-menu-wrapper.feds-menu-active>ul.feds-gnav-items{overflow-y:hidden}header.global-navigation.is-compact nav.localnav>ul>li.feds-menu-wrapper.is-open>ul.feds-gnav-items{max-height:calc(100dvh - var(--s2a-spacing-64) - var(--feds-breadcrumbs-height));transition:max-height .4s}header.global-navigation.is-compact nav.localnav .feds-gnav-items.subscreen-opening>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){animation-delay:0s!important}header.global-navigation.is-compact nav.localnav .feds-gnav-items.subscreen-closing>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){animation-delay:.24s!important}header.global-navigation.is-compact nav.localnav .feds-popup{top:calc(var(--feds-breadcrumbs-height) - 1px);max-height:calc(100dvh - var(--feds-breadcrumbs-height));height:fit-content;overflow-x:hidden}header.global-navigation.is-compact nav.localnav:not(:has(.feds-menu-wrapper.is-open)) .feds-popup{top:var(--s2a-spacing-64);max-height:calc(100dvh - var(--s2a-spacing-64))}header.global-navigation.is-compact nav.localnav:has(.feds-popup.is-open):not(:has(.feds-menu-wrapper.is-open)) .feds-localnav-bar{display:none}header.global-navigation.is-compact nav.localnav:has(.feds-popup.is-open):not(:has(.feds-menu-wrapper.is-open)) .feds-popup.is-open>ul.feds-breadcrumbs{border-top:0}header.global-navigation.is-compact nav.localnav:has(.feds-menu-wrapper.is-open) .feds-popup.is-open>ul.feds-breadcrumbs,header.global-navigation.is-compact nav.localnav>.feds-breadcrumbs{display:none}@media (width>=1024px){header.global-navigation:not(.is-compact) nav.localnav .feds-gnav-items>li.divider{align-items:center;display:inline-flex}header.global-navigation:not(.is-compact) nav.localnav .feds-gnav-items>li.divider:before{content:"";background-color:var(--s2a-color-transparent-white-16);width:1px;height:15px;display:inline-block}header.global-navigation:not(.is-compact).dark-font nav.localnav .feds-gnav-items>li.divider:before,header.global-navigation:not(.is-compact).feds-header-scrolled nav.localnav .feds-gnav-items>li.divider:before,header.global-navigation:not(.is-compact):has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) nav.localnav .feds-gnav-items>li.divider:before{background-color:var(--s2a-color-transparent-black-16)}}@media (width<=768px){.global-navigation nav.localnav .feds-gnav-items>li>.feds-primary-cta,.global-navigation nav.localnav .feds-gnav-items>li>.feds-secondary-cta{box-sizing:border-box;text-align:center;justify-content:center;width:100%}}.feds-skip-link{z-index:100;width:1px;height:1px;margin:0;padding:0;position:absolute;top:0;left:0;overflow:hidden}.trap-focus-gnav{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;display:none;position:absolute;overflow:hidden}nav:has(.feds-menu-active) .trap-focus-gnav{display:block}.feds-skip-link:focus{outline:2px solid var(--s2a-color-blue-800);outline-offset:1px}:root{--feds-breadcrumbs-height:52px}header.global-navigation{visibility:visible;z-index:10;--feds-popup-bg-height:100%;background:0 0;justify-content:center;width:100%;display:flex;position:fixed;top:0;left:0}header.feds-header-scrolled .feds-link{color:var(--s2a-color-gray-1000)}header.feds-header-scrolled nav{color:var(--s2a-color-gray-1000);box-shadow:0 67px 19px #0000,0 43px 17px #00000003,0 24px 14px #0000000a,0 11px 11px #00000012,0 3px 6px #00000014}.global-navigation .universal-nav-container .profile-signed-out button{color:var(--s2a-color-gray-1000);border:1px solid var(--s2a-color-gray-25);background-color:var(--s2a-color-gray-25);border-radius:var(--s2a-border-radius-round);height:40px}.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .universal-nav-container .profile-signed-out button,.global-navigation.dark-font .universal-nav-container .profile-signed-out button{color:inherit;border-color:var(--s2a-color-gray-1000);background-color:#0000}.global-navigation.feds-header-scrolled .universal-nav-container .profile-signed-out button:hover,.global-navigation.feds-header-scrolled .universal-nav-container .profile-signed-out button:focus-visible{color:inherit;background-color:var(--s2a-color-gray-25)}.global-navigation .universal-nav-container #universal-nav{justify-content:flex-end}.global-navigation .feds-utilities{padding-right:var(--s2a-spacing-md);margin-left:auto}.global-navigation .feds-product-entry-cta{margin-left:auto;margin-right:var(--s2a-spacing-sm);align-items:center;display:flex}@media (width<=1024px){.global-navigation .feds-product-entry-cta{display:none}}[dir=rtl] .global-navigation .feds-product-entry-cta{margin-left:var(--s2a-spacing-sm);margin-right:auto}[dir=rtl] .global-navigation .feds-product-entry-cta+.feds-utilities{padding-right:0;padding-left:var(--s2a-spacing-md);margin-left:0}.global-navigation .feds-product-entry-cta+.feds-utilities{margin-left:0}.global-navigation ul.feds-gnav-items>li>.feds-primary-cta,.global-navigation ul.feds-gnav-items>li>.feds-secondary-cta{margin-left:var(--s2a-spacing-sm)}.global-navigation ul.feds-gnav-items>li>.feds-primary-cta,.global-navigation ul.feds-gnav-items>li>.feds-secondary-cta,.global-navigation .feds-product-entry-cta .feds-primary-cta,.global-navigation .feds-product-entry-cta .feds-secondary-cta{box-sizing:content-box;padding:10px var(--s2a-spacing-lg);border-radius:var(--s2a-border-radius-round);border:var(--s2a-border-width-sm) solid transparent;font-family:var(--body-font-family);font-weight:var(--s2a-font-weight-adobe-clean-bold);font-size:var(--s2a-typography-font-size-label);line-height:var(--s2a-typography-line-height-label);letter-spacing:var(--s2a-typography-letter-spacing-label);text-align:center;white-space:nowrap;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.global-navigation ul.feds-gnav-items>li>.feds-primary-cta,.global-navigation .feds-product-entry-cta .feds-primary-cta{background-color:var(--s2a-color-gray-25);color:var(--s2a-color-gray-1000);border-color:var(--s2a-color-gray-25)}.global-navigation ul.feds-gnav-items>li>.feds-secondary-cta,.global-navigation .feds-product-entry-cta .feds-secondary-cta{color:var(--s2a-color-gray-25);border-color:var(--s2a-color-gray-25);background-color:#0000}.global-navigation.dark-font ul.feds-gnav-items>li>.feds-secondary-cta,.global-navigation.dark-font .feds-product-entry-cta .feds-secondary-cta{border-color:var(--s2a-color-gray-1000);color:var(--s2a-color-gray-1000)}.global-navigation ul.feds-gnav-items>li>.feds-primary-cta,.global-navigation.feds-header-scrolled .feds-product-entry-cta .feds-primary-cta{background-color:var(--s2a-color-gray-1000);color:var(--s2a-color-gray-25);border-color:var(--s2a-color-gray-1000)}.global-navigation ul.feds-gnav-items>li>.feds-secondary-cta,.global-navigation.feds-header-scrolled .feds-product-entry-cta .feds-secondary-cta{color:var(--s2a-color-gray-1000);border-color:var(--s2a-color-gray-1000)}.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-product-entry-cta .feds-primary-cta,.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-product-entry-cta .feds-secondary-cta{color:var(--s2a-color-gray-1000);border-color:var(--s2a-color-gray-1000);background-color:#0000}.global-navigation ul.feds-gnav-items>li>.feds-secondary-cta:hover,.global-navigation .feds-product-entry-cta .feds-secondary-cta:hover{background-color:var(--s2a-color-button-background-primary-transparent-on-light-hover,#00000014);color:var(--s2a-color-gray-1000)}.global-navigation ul.feds-gnav-items>li>.feds-primary-cta:hover,.global-navigation .feds-product-entry-cta .feds-primary-cta:hover,.global-navigation.feds-header-scrolled ul.feds-gnav-items>li>.feds-primary-cta:hover,.global-navigation.feds-header-scrolled .feds-product-entry-cta .feds-primary-cta:hover{background-color:var(--s2a-color-button-background-primary-solid-hover,#000000a3);color:var(--s2a-color-gray-25);border-color:var(--s2a-color-button-background-primary-solid-hover,#000000a3)}.global-navigation .feds-gnav-items>li>.mega-menu.feds-link{cursor:pointer}.global-navigation.feds-header-scrolled .feds-gnav-items>li:first-child+li:before,.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-gnav-items>li:first-child+li:before{background-color:var(--s2a-color-transparent-black-16)}.global-navigation nav{height:var(--s2a-spacing-64);width:calc(100% - 2 * var(--s2a-spacing-xs));justify-content:flex-start;align-items:center;display:flex}header.global-navigation nav{width:calc(100% - var(--s2a-spacing-xs) * 2);max-width:calc(1920px - var(--s2a-spacing-xs) * 2);margin:var(--s2a-spacing-xs) auto;border-radius:var(--s2a-border-radius-16);background-color:#0000;border:none;padding:0;position:fixed;overflow:visible}header.global-navigation nav:after{content:"";width:100%;height:var(--feds-popup-bg-height);-webkit-backdrop-filter:blur();backdrop-filter:blur();border-radius:var(--s2a-border-radius-16);z-index:-1;background-color:#0000;padding:0;transition:all .48s cubic-bezier(.42,0,.2,1),height .35s;position:absolute;top:0;left:0}header.global-navigation.feds-header-scrolled nav:after{-webkit-backdrop-filter:blur(var(--s2a-blur-sm));backdrop-filter:blur(var(--s2a-blur-sm));box-shadow:0 67px 19px #0000,0 43px 17px #00000003,0 24px 14px #0000000a,0 11px 11px #00000012,0 3px 6px #00000014}header.global-navigation nav:has(>.feds-breadcrumbs):not(:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open)){--feds-popup-bg-height:calc(100% + var(--feds-breadcrumbs-height))}header.global-navigation nav:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open):after{border-radius:0 0 var(--s2a-border-radius-16) var(--s2a-border-radius-16);background-color:var(--s2a-color-gray-75);width:100vw;left:calc(0px - var(--s2a-spacing-xs));top:calc(0px - var(--s2a-spacing-xs) * 2);-webkit-backdrop-filter:blur();backdrop-filter:blur()}header.global-navigation nav.localnav:has(.feds-popup.is-open,.feds-menu-wrapper.is-open):after{top:calc(0px - var(--s2a-spacing-xs))}header.global-navigation.feds-header-scrolled nav:after{background-color:#ffffff82}.global-navigation nav>ul{width:100%;height:inherit;align-items:center;padding-left:0;display:flex}[dir=rtl] .global-navigation nav>ul{padding-right:0}.global-navigation nav>ul>li{align-items:center;display:flex}.global-navigation ul{margin:0;list-style:none}.feds-link{font-weight:var(--s2a-font-weight-adobe-clean-bold);font-family:var(--body-font-family);font-size:var(--s2a-typography-font-size-body-sm);line-height:var(--s2a-typography-line-height-body-sm);letter-spacing:var(--s2a-typography-letter-spacing-body-sm);padding:var(--s2a-spacing-sm);color:var(--s2a-color-gray-25);opacity:1;white-space:nowrap;background-color:#0000;border:0;align-items:center;text-decoration:none;display:flex}@media (width>=1024px){header.global-navigation:not(.is-compact) ul.feds-gnav-items{gap:var(--s2a-spacing-lg);display:flex}header.global-navigation:not(.is-compact) ul.feds-gnav-items>li>.feds-link{padding:0}header.global-navigation:not(.is-compact):has(.feds-popup.is-open) ul.feds-gnav-items>li .feds-link{padding:0}}.global-navigation.dark-font .feds-link{color:var(--s2a-color-gray-1000)}.feds-link:hover{text-decoration:underline}.feds-link__mobile-text{display:none}.global-navigation:has(.feds-popup.is-open,.feds-menu-wrapper.is-open,.feds-menu-wrapper.feds-menu-active) .feds-gnav-items>li>.feds-link{color:var(--s2a-color-gray-1000);font-size:var(--s2a-typography-font-size-heading-2);line-height:var(--s2a-typography-line-height-heading-2);letter-spacing:var(--s2a-typography-letter-spacing-heading-2);padding:var(--s2a-spacing-xs) 0}.global-navigation:not(.dark-font) nav:has(>.feds-menu-wrapper .feds-popup.is-open.small-menu)>ul.feds-gnav-items>li>.feds-link{color:var(--s2a-color-gray-25)}.global-navigation.feds-header-scrolled nav:has(>.feds-menu-wrapper .feds-popup.is-open.small-menu)>ul.feds-gnav-items>li>.feds-link{color:var(--s2a-color-gray-1000)}.global-navigation .feds-gnav-items>li>.feds-link:hover{opacity:1;color:var(--s2a-color-gray-25);text-decoration:none}.global-navigation.dark-font .feds-gnav-items>li>.feds-link:hover,.global-navigation.feds-header-scrolled .feds-gnav-items>li>.feds-link:hover{color:var(--s2a-color-gray-1000)}.global-navigation nav .feds-nav-toggle{box-shadow:none;color:var(--s2a-color-gray-25);cursor:pointer;width:20px;height:20px;font-size:var(--s2a-font-size-xl);background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;font-weight:300;display:flex}.global-navigation nav .feds-nav-toggle svg{width:14px;height:7px;color:var(--s2a-color-gray-25);flex-shrink:0}.global-navigation.dark-font nav .feds-nav-toggle,.global-navigation.dark-font nav .feds-nav-toggle svg,.global-navigation.feds-header-scrolled nav .feds-nav-toggle svg{color:var(--s2a-color-gray-1000)}header.global-navigation.thin nav .feds-nav-toggle{display:none}.global-navigation .unav-comp-app-switcher.unav-comp-icon svg,.global-navigation .unav-comp-external-notifications svg path,.global-navigation .unav-comp-cart svg{fill:var(--s2a-color-gray-25)}.global-navigation.dark-font .unav-comp-app-switcher.unav-comp-icon svg,.global-navigation.dark-font .unav-comp-external-notifications svg path,.global-navigation.dark-font .unav-comp-cart svg,.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .unav-comp-app-switcher.unav-comp-icon svg,.global-navigation .unav-comp-app-switcher.unav-comp-icon.unav-comp-app-switcher-open svg,.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .unav-comp-cart svg,.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .unav-comp-external-notifications svg path,.global-navigation.feds-header-scrolled .unav-comp-app-switcher.unav-comp-icon svg,.global-navigation.feds-header-scrolled .unav-comp-external-notifications svg path,.global-navigation.feds-header-scrolled .unav-comp-cart svg,.global-navigation .unav-comp-app-switcher.unav-comp-icon:hover svg,.global-navigation .unav-comp-app-switcher.unav-comp-icon:focus-visible svg,.global-navigation .unav-comp-external-notifications:hover svg path,.global-navigation .unav-comp-cart:hover svg,.global-navigation .unav-comp-cart:focus-visible svg{fill:var(--s2a-color-gray-1000)}.global-navigation.feds-header-scrolled .universal-nav-container .profile-signed-out button{color:var(--s2a-color-gray-1000);border:var(--s2a-border-width-sm) solid var(--s2a-color-gray-1000);background-color:#0000}header.global-navigation:has(.feds-popup.is-open:not(.small-menu)) .unav-comp-app-switcher.unav-comp-icon svg,header.global-navigation:has(.feds-popup.is-open:not(.small-menu)) .unav-comp-external-notifications svg path,header.global-navigation:has(.feds-popup.is-open:not(.small-menu)) .unav-comp-cart svg{fill:inherit}header.global-navigation:has(.feds-popup.is-open) .unav-comp-tooltip{display:none!important}.feds-popup{inset:calc(var(--s2a-spacing-64) + var(--s2a-spacing-8) - 1px) 0 auto 0;width:100%;max-width:none;max-height:calc(100dvh - var(--s2a-spacing-64));overscroll-behavior:contain;z-index:1;background-color:#0000;border:0;margin:0;padding:0;display:none;position:fixed;overflow:auto}.feds-popup.is-open{border-bottom-right-radius:18px;border-bottom-left-radius:18px;display:block}.feds-popup>*{box-sizing:border-box;width:min(1200px,100%)}.feds-popup .feds-popup-header{padding:var(--s2a-spacing-xs) var(--s2a-spacing-lg);justify-content:space-between;align-items:center;display:flex}.global-navigation:has(.mega-menu.small-menu[aria-haspopup=true]) .feds-popup .feds-popup-header{padding:var(--s2a-spacing-lg)}.global-navigation:has(.mega-menu.small-menu[aria-haspopup=true]) .feds-popup .links-card{margin-bottom:0}.feds-popup .feds-popup-header-left{align-items:center;gap:10px;display:flex}.feds-popup .feds-popup-back-button{color:var(--s2a-color-content-default);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex}.feds-popup .feds-popup-back-button svg{width:var(--s2a-spacing-20);height:var(--s2a-spacing-20);margin-right:10px}[dir=rtl] .feds-popup .feds-popup-back-button svg{transform:scaleX(-1)}.feds-popup .feds-popup-back-button .feds-popup-title{font-size:var(--s2a-typography-font-size-heading-3);line-height:var(--s2a-typography-line-height-heading-3);letter-spacing:var(--s2a-typography-letter-spacing-heading-3);font-weight:var(--s2a-font-weight-adobe-clean-black);font-family:var(--heading-font-family);color:var(--s2a-color-content-default);text-align:left}[dir=rtl] .feds-popup .feds-popup-back-button .feds-popup-title{text-align:right}.feds-popup .feds-product-card{grid-template-columns:var(--s2a-spacing-xl) minmax(0, 1fr);gap:var(--s2a-spacing-lg);border-radius:var(--s2a-border-radius-md);min-height:52px;padding:var(--s2a-spacing-lg);color:var(--s2a-color-content-default);align-items:start;text-decoration:none;display:grid}.feds-popup .feds-product-card:hover .feds-product-card__title,.feds-popup .feds-product-card:hover .feds-product-card__subtitle{color:var(--s2a-color-gray-25)}.feds-popup .feds-product-card__icons{align-items:center;gap:var(--s2a-spacing-2xs);flex-direction:row;display:flex}.feds-popup .feds-product-card__icon{width:var(--s2a-spacing-lg);height:var(--s2a-spacing-lg);margin-top:var(--s2a-spacing-2xs);display:block}.feds-popup .feds-product-card__icon-img{width:100%;height:100%;display:block}.feds-popup .feds-product-card__title{font-weight:var(--s2a-font-weight-adobe-clean-black);font-size:var(--s2a-typography-font-size-heading-4);line-height:var(--s2a-typography-line-height-heading-4);letter-spacing:var(--s2a-typography-letter-spacing-heading-4);font-family:var(--heading-font-family)}.feds-popup .feds-product-card__badges{margin-bottom:var(--s2a-spacing-xs);flex-wrap:wrap;justify-content:flex-end;gap:6px;display:inline-flex}.feds-popup .feds-product-card__badge{border:var(--s2a-border-width-sm) solid var(--s2a-color-gray-1000);border-radius:var(--s2a-border-radius-sm);font-size:var(--s2a-font-size-xs);font-weight:var(--s2a-font-weight-adobe-clean-bold);line-height:var(--s2a-typography-line-height-caption);color:var(--s2a-color-gray-1000);letter-spacing:var(--s2a-typography-letter-spacing-caption);align-items:center;padding:4px 8px;display:inline-flex}.feds-popup .feds-product-card__badge--filled{border-color:var(--s2a-color-gray-1000);background:var(--s2a-color-gray-1000);color:var(--s2a-color-gray-25)}.feds-popup .feds-product-card__subtitle{margin-top:var(--s2a-spacing-2xs);font-size:var(--s2a-typography-font-size-body-sm);font-weight:var(--s2a-font-weight-adobe-clean-regular);line-height:var(--s2a-typography-line-height-body-sm);letter-spacing:var(--s2a-typography-letter-spacing-body-sm);color:var(--s2a-color-content-body-subtle)}.feds-popup .feds-product-card__price{margin-top:var(--s2a-spacing-sm);align-items:baseline;gap:6px;display:flex}.feds-popup .feds-product-card__old-price{font-size:var(--s2a-font-size-xs);font-weight:var(--s2a-font-weight-adobe-clean-bold);color:var(--s2a-color-content-subtle);line-height:1;text-decoration:line-through}.feds-popup .feds-product-card__new-price{font-size:var(--s2a-font-size-xs);font-weight:var(--s2a-font-weight-adobe-clean-bold);color:var(--s2a-color-gray-1000);line-height:1}.feds-popup .feds-product-card--blue{background:var(--s2a-color-blue-100)}.feds-popup .feds-product-card--blue:hover{background:var(--s2a-color-blue-200)}.feds-popup .feds-product-card:hover .feds-product-card__old-price,.feds-popup .feds-product-card:hover .feds-product-card__new-price,.feds-popup .feds-product-card:hover .feds-product-card__badge{color:var(--s2a-color-gray-25);border-color:var(--s2a-color-gray-25)}.feds-popup .feds-product-card:hover .feds-product-card__badge--filled{background:var(--s2a-color-gray-25);color:var(--s2a-color-gray-1000)}.feds-product-card .feds-product-card-header{justify-content:space-between;width:100%;display:flex}.feds-popup .feds-primary-cta{border-radius:var(--s2a-border-radius-round);width:fit-content;font-weight:var(--s2a-font-weight-adobe-clean-bold);font-size:var(--s2a-typography-font-size-body-sm);line-height:var(--s2a-typography-line-height-body-sm);letter-spacing:var(--s2a-typography-letter-spacing-body-sm);color:var(--s2a-color-gray-25);background-color:#3b63fb;justify-content:center;align-items:center;padding:11px 14px 10px;text-decoration:none;display:inline-flex}.feds-popup .feds-primary-cta:hover{background-color:var(--s2a-color-button-background-accent-solid-on-light-hover,#274dea)}.feds-popup .feds-primary-cta:active{background-color:var(--s2a-color-button-background-accent-solid-on-light-active,#1e3bb8)}.feds-popup .feds-secondary-cta{border:var(--s2a-border-width-sm) solid var(--s2a-color-gray-1000);border-radius:var(--s2a-border-radius-round);width:fit-content;font-weight:var(--s2a-font-weight-adobe-clean-bold);font-size:var(--s2a-typography-font-size-body-sm);line-height:var(--s2a-typography-line-height-body-sm);letter-spacing:var(--s2a-typography-letter-spacing-body-sm);color:var(--s2a-color-content-default);justify-content:center;align-items:center;padding:11px 14px 10px;text-decoration:none;display:inline-flex}.feds-popup .feds-secondary-cta:hover{background-color:var(--s2a-color-button-background-primary-transparent-on-light-hover,#00000014)}@media (width>=1024px){header.global-navigation:not(.is-compact) nav .feds-nav-toggle{display:none}header.global-navigation:not(.is-compact) nav>ul>li.feds-menu-wrapper{width:auto;height:inherit;box-shadow:none;opacity:1;visibility:visible;translate:unset;background-color:#0000;border:0;outline:0;flex-direction:row;flex-grow:1;justify-content:space-between;transition:unset;display:flex;position:static}header.global-navigation:not(.is-compact) nav{justify-content:flex-start;align-items:center;display:flex}[dir=rtl] header.global-navigation:not(.is-compact) nav .feds-gnav-items{padding-right:0}header.global-navigation:not(.is-compact) nav .feds-gnav-items{height:inherit;align-items:center;margin:0;padding-left:0;display:flex}header.global-navigation:not(.is-compact) nav .feds-gnav-items>li{align-items:center;height:100%;display:flex}header.global-navigation:not(.is-compact) .feds-gnav-items>li>.feds-link{letter-spacing:var(--s2a-typography-letter-spacing-label)}header.global-navigation:not(.is-compact):has(.feds-popup.is-open,.feds-menu-wrapper.is-open) .feds-gnav-items>li>.feds-link{opacity:.6;font-weight:var(--s2a-font-weight-adobe-clean-bold);font-size:var(--s2a-typography-font-size-label);line-height:var(--s2a-typography-line-height-label);letter-spacing:var(--s2a-typography-letter-spacing-label);padding:var(--s2a-spacing-sm)}header.global-navigation:not(.is-compact):not(:has(.feds-popup.is-open,.feds-menu-wrapper.is-open)) .feds-gnav-items:has(.feds-link:hover)>li>.feds-link:not(:hover){opacity:.65}header.global-navigation:not(.is-compact):has(.feds-popup.is-open,.feds-menu-wrapper.is-open) .feds-gnav-items>li>.feds-link[aria-expanded=true],header.global-navigation:not(.is-compact):has(.feds-popup.is-open,.feds-menu-wrapper.is-open) .feds-gnav-items>li>.feds-link:hover{opacity:1}header.global-navigation:not(.is-compact) .feds-gnav-items>li>.mega-menu.feds-link{position:relative}[dir=rtl] header.global-navigation:not(.is-compact) .feds-gnav-items>li>.mega-menu.feds-link .chevron-down{margin-left:0;margin-right:6px}header.global-navigation:not(.is-compact) .feds-gnav-items>li>.mega-menu.feds-link .chevron-down{flex-shrink:0;margin-top:3px;margin-left:6px;transition:transform .15s}header.global-navigation:not(.is-compact) .feds-gnav-items>li>.mega-menu.feds-link[aria-expanded=true] .chevron-down{transform:rotate(180deg)}header.global-navigation:not(.is-compact) .feds-popup .feds-popup-header{display:none}header.global-navigation:not(.is-compact) .feds-popup>div{max-width:1920px}header.global-navigation:not(.is-compact) .feds-popup .feds-product-card__title{font-weight:var(--s2a-font-weight-adobe-clean-bold);font-size:var(--s2a-typography-font-size-eyebrow);line-height:var(--s2a-typography-line-height-eyebrow);letter-spacing:var(--s2a-typography-letter-spacing-eyebrow);font-family:var(--body-font-family)}header.global-navigation:not(.is-compact) nav.localnav ul.feds-gnav-items>li.active-element{border-bottom:2px var(--s2a-color-gray-25) solid}header.global-navigation:not(.is-compact):has(.feds-popup.is-open:not(.small-menu)) nav.localnav ul.feds-gnav-items>li.active-element,header.global-navigation.feds-header-scrolled:not(.is-compact) nav.localnav ul.feds-gnav-items>li.active-element,header.global-navigation.dark-font:not(.is-compact) nav.localnav ul.feds-gnav-items>li.active-element{border-bottom:2px var(--s2a-color-gray-1000) solid}header.global-navigation.is-compact .unav-comp-app-switcher-popover{z-index:4}}@media (width<=1023px){header.global-navigation nav:has(.feds-popup.is-open):after{height:calc(100dvh + var(--s2a-spacing-xs))}header.global-navigation nav:not(.localnav):has(.feds-menu-wrapper.is-open):after{height:calc(100dvh + var(--s2a-spacing-64))}header.global-navigation nav.localnav:has(.feds-menu-wrapper.is-open):after{height:var(--feds-popup-bg-height)}.global-navigation .feds-gnav-items>li>.mega-menu.feds-link{text-align:left;justify-content:space-between;width:100%}.global-navigation .feds-gnav-items>li>.feds-link{font-family:var(--heading-font-family);font-weight:var(--s2a-font-weight-adobe-clean-black)}.global-navigation .feds-gnav-items>li>.mega-menu.feds-link .chevron-down{margin-left:var(--s2a-spacing-xs);flex-shrink:0;order:2;transform:rotate(-90deg)scale(2.5)}[dir=rtl] .global-navigation .feds-gnav-items>li>.mega-menu.feds-link .chevron-down{margin-left:0;margin-right:var(--s2a-spacing-xs);transform:rotate(90deg)scale(2.5)}.global-navigation .feds-gnav-items>li>.mega-menu.feds-link .chevron-down path{stroke-width:.5px}.feds-popup{inset:calc(var(--s2a-spacing-64) + var(--s2a-spacing-8) - 1px) 0 0 0}.feds-popup.is-open{z-index:3}.feds-popup .feds-product-card{gap:var(--s2a-spacing-2xl);border-radius:var(--s2a-border-radius-24)}body:has(.feds-popup.is-open,.feds-menu-wrapper.is-open){scrollbar-gutter:stable;overflow:hidden}header.global-navigation nav:has(.feds-popup.is-open,.feds-menu-wrapper.is-open):after{border-radius:0}header.global-navigation nav.localnav:has(.feds-menu-wrapper.is-open):after{border-radius:0 0 var(--s2a-border-radius-16) var(--s2a-border-radius-16)}.feds-popup .feds-product-card__subtitle{margin-top:var(--s2a-spacing-xs)}.global-navigation:has(.mega-menu.small-menu[aria-haspopup=true]) .feds-popup .feds-gnav-cards{padding:0 var(--s2a-spacing-lg);margin-bottom:0}.global-navigation:has(.mega-menu.small-menu[aria-haspopup=true]) .feds-popup .links-card{margin-bottom:var(--s2a-spacing-sm)}.feds-link__desktop-text{display:none}.feds-link__mobile-text{display:inline}.feds-popup.is-open{position:fixed}.global-navigation nav>ul>li.feds-menu-wrapper{top:var(--s2a-spacing-64);left:0;right:var(--s2a-spacing-20);height:calc(100dvh - var(--s2a-spacing-64));opacity:0;visibility:hidden;width:100%;color:var(--s2a-color-gray-1000);background-color:#0000;border:0;flex-direction:column;padding:0;display:flex;position:fixed}[dir=rtl] .global-navigation nav>ul>li.feds-menu-wrapper{right:0;left:var(--s2a-spacing-20)}.global-navigation nav>ul>li.feds-menu-wrapper.feds-menu-active{transition:opacity .2s,visibility 0s linear .2s}.global-navigation nav>ul>li.feds-menu-wrapper.is-open{opacity:1;z-index:2;visibility:visible;align-items:flex-start;margin-top:0;padding:0;transition:opacity .4s,visibility linear;display:flex}.global-navigation nav>ul>li.feds-menu-wrapper.is-open .feds-gnav-items,.global-navigation nav>ul>li.feds-menu-wrapper.feds-menu-active .feds-gnav-items{padding:var(--s2a-spacing-xs) var(--s2a-spacing-lg) var(--s2a-spacing-sm);width:calc(100% - var(--s2a-spacing-3xl));align-items:flex-start}.global-navigation nav>ul>li.feds-menu-wrapper.is-open .feds-gnav-items>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){opacity:0;animation:.35s cubic-bezier(.42,0,0,1) forwards mobile-main-menu-slide-in;animation-delay:calc(.18s + var(--i,0) * 60ms);transform:translate(18px)}.feds-nav-toggle path{transform-origin:7px 3.5px;transition:transform .35s cubic-bezier(.4,0,.2,1)}.global-navigation:has(.feds-menu-wrapper.is-open,.feds-popup.is-open) .feds-nav-toggle svg{height:11px}.global-navigation:has(.feds-menu-wrapper.is-open,.feds-popup.is-open) .feds-nav-toggle path:first-child{transform:translateY(-2.75px)rotate(-45deg)scaleX(1.25)}.global-navigation:has(.feds-menu-wrapper.is-open,.feds-popup.is-open) .feds-nav-toggle path:last-child{transform:translateY(2.75px)rotate(45deg)scaleX(1.25)}header.global-navigation>nav>ul>li.feds-menu-wrapper>ul.feds-gnav-items.subscreen-opening>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){opacity:1;animation:.5s cubic-bezier(.42,0,0,1) forwards main-menu-items-exit;animation-delay:calc(var(--i,0) * 25ms);transform:translate(0)}header.global-navigation>nav>ul>li.feds-menu-wrapper>ul.feds-gnav-items.subscreen-closing>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){opacity:0;animation:.26s .24s forwards main-menu-items-re-enter;animation-delay:calc(.24s + var(--i,0) * 30ms);transform:translate(-18px)}header.global-navigation>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open>:not(.feds-breadcrumbs){opacity:0;animation:0s linear .3s forwards fade-in}header.global-navigation>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .feds-popup-header{opacity:0;animation:.5s cubic-bezier(.42,0,0,1) .3s forwards sub-menu-items-enter;transform:translate(18px)}header.global-navigation>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .tabs{opacity:0;animation:.5s cubic-bezier(.42,0,0,1) .36s forwards sub-menu-items-enter;transform:translate(18px)}header.global-navigation>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .feds-gnav-cards>li{opacity:0;animation:.5s cubic-bezier(.42,0,0,1) forwards sub-menu-items-enter;transform:translate(18px)}header.global-navigation>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .feds-gnav-cards>li:first-child{animation-delay:.36s}header.global-navigation>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .feds-gnav-cards>li:nth-child(2){animation-delay:.42s}header.global-navigation>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .feds-popup-header,header.global-navigation>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .tabs,header.global-navigation>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .feds-gnav-cards>li{opacity:1;animation:.2s forwards sub-menu-items-exit;transform:translate(0)}header.global-navigation>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .feds-gnav-cards>li:first-child{animation-delay:40ms}header.global-navigation>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .feds-gnav-cards>li:nth-child(2){animation-delay:80ms}header.global-navigation.feds-header-scrolled:has(.unav-comp-app-switcher-open) .feds-brand-image svg,header.global-navigation.feds-header-scrolled:has(.unav-comp-app-switcher-open) .feds-nav-toggle svg{color:var(--s2a-color-gray-1000);animation:none}}@media (width>=1920px){header.global-navigation:not(.is-compact) nav:has(.feds-popup.is-open,.feds-menu-wrapper.is-open):after{left:calc(0px - var(--s2a-spacing-xs) - (100vw - 1920px) / 2)}header.global-navigation:not(.is-compact) nav .feds-popup>div{margin:0 auto}}.feds-backdrop{-webkit-backdrop-filter:blur();backdrop-filter:blur();pointer-events:none;z-index:-2;background-color:#0000;transition:background-color .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s;position:fixed;inset:0}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-popup{opacity:0;max-height:calc(100dvh - var(--s2a-spacing-64));clip-path:polygon(0 0,100% 0,100% 0%,0 0%);transition:display .48s allow-discrete, opacity .48s cubic-bezier(.4, 0, .2, 1);background-color:#0000;border-bottom-right-radius:18px;border-bottom-left-radius:18px;transition-delay:0s;overflow:hidden}header.global-navigation:not(.is-compact) .feds-popup.is-open{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);margin-top:var(--s2a-spacing-xs);background-color:#0000;transition-delay:.15s}header.global-navigation:not(.is-compact):has(.feds-localnav-bar) :not(.small-menu).feds-popup.is-open{padding-top:var(--s2a-spacing-lg);border-top:1px solid var(--s2a-color-transparent-black-08);margin-top:1px}header.global-navigation:not(.is-compact) .feds-popup.is-open>:not(.feds-popup-header){max-height:calc(100dvh - var(--s2a-spacing-64));overflow-y:auto}.feds-gnav-items>li>.feds-link:first-child{outline-offset:var(--s2a-spacing-sm)}@starting-style{header.global-navigation:not(.is-compact) .feds-popup.is-open{opacity:0;clip-path:polygon(0 0,100% 0,100% 0%,0 0%);background-color:#ffffff82}}header.global-navigation:not(.is-compact) nav:has(.feds-popup.is-open,.feds-menu-wrapper.is-open) .feds-backdrop{-webkit-backdrop-filter:blur(32px);backdrop-filter:blur(32px);background-color:#0009}}header.global-navigation nav:has(.feds-menu-wrapper.is-open) .feds-backdrop{-webkit-backdrop-filter:blur(32px);backdrop-filter:blur(32px);background-color:#0009}@media (width<=768px){.global-navigation .feds-menu-wrapper:not(.feds-menu-active) .feds-primary-cta{box-sizing:border-box;width:100%}.feds-popup .feds-popup-back-button .feds-popup-title{font-size:var(--s2a-typography-font-size-heading-2);line-height:var(--s2a-typography-line-height-heading-2);letter-spacing:var(--s2a-typography-letter-spacing-heading-2)}}@keyframes feds-slide-up{0%{transform:translateY(6px)}to{transform:translateY(0)}}.feds-popup.is-open{--feds-anim-duration:.35s;--feds-anim-panel-delay:.18s;--feds-anim-stagger-interval:25ms;--feds-anim-stagger-start:.2s}.feds-popup.is-open .product-list ul[role=tabpanel]>li{animation:feds-slide-up var(--feds-anim-duration) ease-out forwards;animation:feds-slide-up var(--feds-anim-duration) ease-out forwards;transform:translateY(6px)}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-popup.is-open>div{animation:feds-slide-up var(--feds-anim-duration) ease-out forwards;animation-delay:var(--feds-anim-panel-delay);transform:translateY(6px)}header.global-navigation:not(.is-compact) .feds-popup.is-open .feds-gnav-cards>li,header.global-navigation:not(.is-compact) .feds-popup.is-open .product-list ul.tabs>li{animation:feds-slide-up var(--feds-anim-duration) ease-out forwards;transform:translateY(6px)}header.global-navigation:not(.is-compact) .product-list .tab-content [role=tabpanel]{opacity:0;transition:display .48s allow-discrete, opacity .48s cubic-bezier(.4, 0, .2, 1);transition-delay:.2s}header.global-navigation:not(.is-compact) .product-list .tab-content [role=tabpanel][hidden]{transition:unset}header.global-navigation:not(.is-compact) .product-list .tab-content [role=tabpanel]:not([hidden]){opacity:1}@starting-style{header.global-navigation:not(.is-compact) .product-list .tab-content [role=tabpanel]:not([hidden]){opacity:0}}}header.global-navigation:has(.unav-comp-app-switcher-open) nav{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;transition:none;transform:none}header.global-navigation .universal-nav-container .universal-nav-tray .unav-comp-overlay{width:100vw;height:100vh}@keyframes mobile-main-menu-slide-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes main-menu-items-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-40px)}}@keyframes sub-menu-items-enter{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes sub-menu-items-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(18px)}}@keyframes main-menu-items-re-enter{0%{opacity:0;transform:translate(-18px)}to{opacity:1;transform:translate(0)}}@keyframes fade-in{0%{opacity:0;display:none}to{opacity:1;display:block}}@keyframes fade-out{0%{opacity:1;display:block}to{opacity:0;display:none}}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:first-child{animation-delay:25ms}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:nth-child(2){animation-delay:50ms}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:nth-child(3){animation-delay:75ms}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:nth-child(4){animation-delay:.1s}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:nth-child(5){animation-delay:.125s}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:nth-child(6){animation-delay:.15s}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:nth-child(7){animation-delay:.175s}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:nth-child(8){animation-delay:.2s}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:nth-child(9){animation-delay:.225s}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:nth-child(10){animation-delay:.25s}header.global-navigation.is-compact nav:has(.feds-popup.is-open):after{height:calc(100dvh + var(--s2a-spacing-xs))}header.global-navigation.is-compact nav:not(.localnav):has(.feds-menu-wrapper.is-open):after{height:calc(100dvh + var(--s2a-spacing-64))}header.global-navigation.is-compact nav.localnav:has(.feds-menu-wrapper.is-open):after{height:var(--feds-popup-bg-height)}header.global-navigation.is-compact .feds-link__desktop-text{display:none}header.global-navigation.is-compact .feds-link__mobile-text{display:inline}header.global-navigation.is-compact .feds-product-entry-cta{display:none}header.global-navigation.is-compact nav .feds-nav-toggle{display:flex}header.global-navigation.is-compact .feds-gnav-items>li>.mega-menu.feds-link{text-align:left;justify-content:space-between;width:100%}header.global-navigation.is-compact .feds-gnav-items>li>.feds-link{font-family:var(--heading-font-family);font-weight:var(--s2a-font-weight-adobe-clean-black)}header.global-navigation.is-compact .feds-gnav-items>li>.mega-menu.feds-link .chevron-down{margin-left:var(--s2a-spacing-xs);flex-shrink:0;order:2;transform:rotate(-90deg)scale(2.5)}header.global-navigation.is-compact .feds-gnav-items>li>.mega-menu.feds-link .chevron-down path{stroke-width:.5px}header.global-navigation.is-compact .feds-popup .feds-product-card{gap:var(--s2a-spacing-2xl);border-radius:var(--s2a-border-radius-24)}header.global-navigation.is-compact .feds-popup .feds-product-card__subtitle{margin-top:var(--s2a-spacing-xs)}header.global-navigation.is-compact:has(.mega-menu.small-menu[aria-haspopup=true]) .feds-popup .feds-gnav-cards{padding:0 var(--s2a-spacing-lg);margin-bottom:0}header.global-navigation.is-compact:has(.mega-menu.small-menu[aria-haspopup=true]) .feds-popup .links-card,header.global-navigation.is-compact:has(.mega-menu.small-menu[aria-haspopup=true]) .feds-popup .featured-card{margin-bottom:var(--s2a-spacing-sm)}header.global-navigation.is-compact .feds-popup{inset:calc(var(--s2a-spacing-64) + var(--s2a-spacing-8) - 1px) 0 0 0}header.global-navigation.is-compact .feds-popup.is-open{z-index:3;position:fixed}header.global-navigation.is-compact .feds-popup{opacity:1;clip-path:none;background-color:#0000;border-bottom-right-radius:0;border-bottom-left-radius:0;max-height:none;transition:none}header.global-navigation.is-compact .feds-popup .feds-popup-header{display:flex}body:has(header.global-navigation.is-compact .feds-popup.is-open),body:has(header.global-navigation.is-compact .feds-menu-wrapper.is-open){scrollbar-gutter:stable;overflow:hidden}header.global-navigation.is-compact nav:has(.feds-popup.is-open,.feds-menu-wrapper.is-open):after{border-radius:0}header.global-navigation.is-compact nav.localnav:has(.feds-menu-wrapper.is-open):after{border-radius:0 0 var(--s2a-border-radius-16) var(--s2a-border-radius-16)}header.global-navigation.is-compact nav>ul>li.feds-menu-wrapper{top:var(--s2a-spacing-64);left:0;right:var(--s2a-spacing-20);height:calc(100dvh - var(--s2a-spacing-64));opacity:0;visibility:hidden;width:100%;color:var(--s2a-color-gray-1000);translate:unset;box-shadow:none;background-color:#0000;border:0;outline:0;flex-direction:column;flex-grow:0;justify-content:flex-start;padding:0;transition:unset;display:flex;position:fixed}header.global-navigation.is-compact nav>ul>li.feds-menu-wrapper.feds-menu-active{transition:opacity .2s,visibility 0s linear .2s}header.global-navigation.is-compact nav>ul>li.feds-menu-wrapper.is-open{opacity:1;z-index:2;visibility:visible;align-items:flex-start;margin-top:0;padding:0;transition:opacity .4s,visibility linear;display:flex}header.global-navigation.is-compact nav>ul>li.feds-menu-wrapper.is-open .feds-gnav-items,header.global-navigation.is-compact nav>ul>li.feds-menu-wrapper.feds-menu-active .feds-gnav-items{padding:var(--s2a-spacing-xs) var(--s2a-spacing-lg) var(--s2a-spacing-sm);width:calc(100% - var(--s2a-spacing-3xl));align-items:flex-start}header.global-navigation.is-compact nav .feds-gnav-items{flex-direction:column;align-items:flex-start}header.global-navigation.is-compact nav>ul>li.feds-menu-wrapper.is-open .feds-gnav-items>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){opacity:0;animation:.35s cubic-bezier(.42,0,0,1) forwards mobile-main-menu-slide-in;animation-delay:calc(.18s + var(--i,0) * 60ms);transform:translate(18px)}header.global-navigation.is-compact .feds-nav-toggle path{transform-origin:7px 3.5px;transition:transform .35s cubic-bezier(.4,0,.2,1)}header.global-navigation.is-compact:has(.feds-menu-wrapper.is-open,.feds-popup.is-open) .feds-nav-toggle svg{height:11px}header.global-navigation.is-compact:has(.feds-menu-wrapper.is-open,.feds-popup.is-open) .feds-nav-toggle path:first-child{transform:translateY(-2.75px)rotate(-45deg)scaleX(1.25)}header.global-navigation.is-compact:has(.feds-menu-wrapper.is-open,.feds-popup.is-open) .feds-nav-toggle path:last-child{transform:translateY(2.75px)rotate(45deg)scaleX(1.25)}header.global-navigation.is-compact>nav>ul>li.feds-menu-wrapper>ul.feds-gnav-items.subscreen-opening>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){opacity:1;animation:.5s cubic-bezier(.42,0,0,1) forwards main-menu-items-exit;animation-delay:calc(var(--i,0) * 25ms);transform:translate(0)}header.global-navigation.is-compact>nav>ul>li.feds-menu-wrapper>ul.feds-gnav-items.subscreen-closing>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){opacity:0;animation:.26s .24s forwards main-menu-items-re-enter;animation-delay:calc(.24s + var(--i,0) * 30ms);transform:translate(-18px)}header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open>:not(.feds-breadcrumbs){opacity:0;animation:0s linear .3s forwards fade-in}header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .feds-popup-header{opacity:0;animation:.5s cubic-bezier(.42,0,0,1) .3s forwards sub-menu-items-enter;transform:translate(18px)}header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .tabs{opacity:0;animation:.5s cubic-bezier(.42,0,0,1) .36s forwards sub-menu-items-enter;transform:translate(18px)}header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .feds-gnav-cards>li{opacity:0;animation:.5s cubic-bezier(.42,0,0,1) forwards sub-menu-items-enter;transform:translate(18px)}header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .feds-gnav-cards>li:first-child{animation-delay:.36s}header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .feds-gnav-cards>li:nth-child(2){animation-delay:.42s}header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .feds-popup-header,header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .tabs,header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .feds-gnav-cards>li{opacity:1;animation:.2s forwards sub-menu-items-exit;transform:translate(0)}header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .feds-gnav-cards>li:first-child{animation-delay:40ms}header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .feds-gnav-cards>li:nth-child(2){animation-delay:80ms}header.global-navigation.is-compact.feds-header-scrolled:has(.unav-comp-app-switcher-open) .feds-brand-image svg,header.global-navigation.is-compact.feds-header-scrolled:has(.unav-comp-app-switcher-open) .feds-nav-toggle svg{color:var(--s2a-color-gray-1000);animation:none}',qe=new CSSStyleSheet;qe.replaceSync(Bt);document.adoptedStyleSheets.includes(qe)||(document.adoptedStyleSheets=[...document.adoptedStyleSheets,qe]);var ji=async e=>{let{gnavSource:a,mountpoint:t,unavEnabled:n,miloConfig:r,personalization:o}=e;if(!(a instanceof URL))throw D(`gnavSource is invalid: ${a}`),new g("gnavSource needs to be a URL object");try{aa(r)}catch(p){throw D(`Failed to initialize MiloConfig: ${p}`),new g(`Failed to initialize MiloConfig: ${p}`)}Ke(o),Ve(e.localizeLink??(p=>p)),Ne(Ue(e));let i=await Ga(e);if(i instanceof g)throw D(i.message),i;let{mainNav:l,aside:s}=i;if(l instanceof g)throw D(l.message),l;let c=Ha(l,n,await ee());if(c instanceof g)throw D(c.message),c;return await jt(c)(t),e.convertStageLinks?.({anchors:[...t.querySelectorAll("a")],hostname:window.location.hostname,href:window.location.href}),Ft(e)},jt=e=>async a=>{let t=Gt(e);document.querySelector("main")?.setAttribute("id","main-content"),a.innerHTML=t,e.components.filter(c=>c.type!=="Brand").length===0&&a.classList.add("thin"),e.darkFont&&a.classList.add("dark-font");let n=[...a.querySelectorAll(".mega-menu ~ .feds-popup")];n.forEach(c=>{c.innerHTML=""});let o=e.components.filter(c=>c.type==="MegaMenu").map(c=>c.content),i=await Promise.all(o.map(async(c,p)=>{try{let[f,h]=await c,m={type:"MegaMenuExtraData",breadcrumbs:e.breadcrumbs};return n[p].innerHTML=Le(f,n[p].id,m),h}catch(f){return[f]}}).flat()),l=[...a.querySelectorAll("button.small-menu ~ .feds-popup")];return e.components.filter(c=>c.type==="SmallMenu").forEach((c,p)=>{let[f]=c.content;l[p].innerHTML=Ta(f,l[p].id)}),a},Gt=({components:e,breadcrumbs:a,productCTA:t,unavEnabled:n,placeholders:r,localnav:o})=>{let i=o&&a!==null&&a.items.length>0?a.items[a.items.length-1]:null,l=i===null?"":typeof i=="string"?i:i.text;return` + `.trim(),l=t!=null&&t.breadcrumbs!==null?be(t.breadcrumbs):"",s="";switch(e.type){case"ProductList":s=ka(e);break;case"GnavCards":s=xa(e);break;default:}return`${l}${i}${s}`};var Ea=e=>{if(e===null)throw new g(La.elementNull);let a=e.querySelector("h5")?.textContent??"",t=e.querySelector(".links-card");if(t===null)throw new g(La.noLinksCard);let[n,r]=we(t),o={type:"GnavColumn",cards:[{type:"LinksCard",card:n.card}]};return[{type:"SmallMenu",title:a,content:[{type:"GnavCards",megaMenuTitle:a,sections:[o]},r]},r]},La={elementNull:"Element is null",noLinksCard:"Small Menu has no links-card"};var Ca=(e,a=0)=>ke({...e,type:"MegaMenu",content:Promise.resolve(e.content)},a).replace('class="mega-menu feds-link"','class="mega-menu small-menu feds-link"').replace('class="feds-popup"','class="feds-popup small-menu"'),Ta=(e,a)=>Le(e,a);var Ma={elementNull:"Error when parsing text. Element is null",textContentNull:"Error when parsing text. Element has no textContent"},Sa=e=>{if(e===null)return[{type:"Text",content:""},[new v(Ma.elementNull,"Minor")]];let a=e.textContent;return a===null?[{type:"Text",content:""},[new v(Ma.textContentNull,"Minor")]]:[{type:"Text",content:a},[]]};var Aa=({content:e})=>e;var Pa=e=>{if(e===null)throw new g(Tt.elementNull);let a=e.querySelector(".gnav-brand");if(a!==null)return oa(a);let t=e.querySelector(".large-menu");return t!==null?ua(t):e.querySelector("h5")!==null&&e.querySelector(".links-card")!==null?Ea(e):e.querySelector(".product-entry-cta")!==null?la(e):e.querySelector("strong")!==null?pe(e):e.querySelector("em")!==null?W(e):e.querySelector("a")===null?Sa(e):N(e.querySelector("a"))},Pe=(e,a)=>{switch(e.type){case"Text":return Aa(e);case"Link":return re(e);case"SecondaryCTA":return Z(e);case"PrimaryCTA":return ge(e);case"ProductEntryCTA":return ye(e);case"Brand":return ia(e);case"MegaMenu":return ke(e,a);case"SmallMenu":return Ca(e,a);default:return console.error(`Failed to recognize component: ${e}`),""}},Tt={elementNull:"Element is null"};var _a={elementNull:"Error when parsing Breadcrumbs. Element is null",noItems:"Error when parsing Breadcrumbs. No items found"},za=e=>{if(e===null)throw new g(_a.elementNull);let a=[...e.querySelectorAll("ul > li")];if(a.length===0)throw new g(_a.noItems);let t=o=>{let i=o.querySelector(":scope > a");return i!==null?N(i):[o.textContent?.trim()??"",[]]},[n,r]=O(a,t);return[{type:"Breadcrumbs",items:n},r]};var Ha=(e,a,t=new Map)=>{let n=document.querySelector(".breadcrumbs"),[r,o]=n===null?[null,[]]:za(n),[i,l]=O([...e.children],Pa),s=i.find(m=>m.type==="ProductEntryCTA")??null,c=i.filter(m=>m.type!=="ProductEntryCTA"),p=K("localnav")==="true",f=K("gnav-dark-font")==="true",h=[o,l].flat();return{breadcrumbs:r,components:c,productCTA:s,localnav:p,darkFont:f,errors:h,unavEnabled:a,placeholders:t}};var fe=72,$a=64,me=(e,a)=>{(e.closest("header")??e).style.setProperty("--feds-popup-bg-height",a)},Ia=e=>{let a=e.querySelector(".feds-skip-link"),t=c=>{let p=document.querySelector("#main-content");p instanceof HTMLElement&&(c.preventDefault(),p.hasAttribute("tabindex")||p.setAttribute("tabindex","-1"),setTimeout(()=>{p.focus(),p.scrollIntoView({behavior:"smooth",block:"start"})},100))};a?.addEventListener("click",t);let n=[...e.querySelectorAll('.tabs button[role="tab"]')],r=[...e.querySelectorAll(".tab-content ul")],o=n.map((c,p)=>()=>{let f=r[p].closest(`.feds-popup.${M}`);if(n.forEach(m=>{m.setAttribute("aria-selected","false")}),r.forEach(m=>{m.setAttribute("hidden","true")}),r[p]?.removeAttribute("hidden"),c.setAttribute("aria-selected","true"),!f||!_())return;let h=f?.clientHeight??0;me(e,`${h+fe}px`)}),i=n.map(c=>()=>{if(_()||!c.matches(":focus-visible"))return;let p=n[0]?.offsetLeft??0;requestAnimationFrame(()=>{let f=c.closest(".tabs");f&&(f.scrollLeft=c.offsetLeft-p)})});n.forEach((c,p)=>{c.addEventListener("click",o[p]),c.addEventListener("focus",i[p])});let l=e.querySelector('.tabs[role="tablist"]'),s=()=>{l&&(_()?l.setAttribute("aria-orientation","vertical"):l.removeAttribute("aria-orientation"))};return s(),H.addEventListener("change",s),Mt(e),St(e),()=>{a?.removeEventListener("click",t),n.forEach((c,p)=>{c.removeEventListener("click",o[p]),c.removeEventListener("focus",i[p])}),H.removeEventListener("change",s)}},Mt=e=>{let a=[...e.querySelectorAll(".feds-gnav-items > li > button")],t=e.querySelector(".feds-gnav-items"),n=K("localnav")==="true",r=(l,s=0)=>{let c=e.querySelector(l),p=e.querySelector(".feds-menu-wrapper.is-open .feds-gnav-items");if(n&&!!p&&!c){let L=p.clientHeight<1?"100%":`${p.clientHeight+s}px`;me(e,L);return}if(!c){me(e,"100%");return}let m=c.clientHeight<1?"100%":`${c.clientHeight+s}px`;me(e,m)},o=new ResizeObserver(l=>{if(l.length<1)return;let s=n&&!_()?fe+$a:fe;r(`.feds-popup.${M}`,s)});a.forEach(l=>{let s=l.nextElementSibling;if(!s||(o.observe(s),s.addEventListener("toggle",p=>{if(p.newState!=="open"&&!e.querySelector(`.feds-popup.${M}`)){if(_())return;t?.classList.remove("subscreen-opening"),t?.classList.add("subscreen-closing")}else if(me(e,`${s.clientHeight+fe}px`),!_()){let h=s.querySelector(".tabs"),m=s.querySelector('button[role="tab"][aria-selected="true"]'),y=h?.querySelector('button[role="tab"]');h&&m&&y&&(h.scrollLeft=m.offsetLeft-h.offsetLeft-y.offsetLeft)}}),!n)||!t)return;new ResizeObserver(p=>{p.length<1||_()||r(`.feds-menu-wrapper.${M} .feds-gnav-items`,fe+$a)}).observe(t)}),a.forEach(l=>{let s=l.nextElementSibling;if(!(s instanceof HTMLElement))return;he(e,s.id).forEach(p=>{p.addEventListener("click",()=>{_()||t&&(t.classList.remove("subscreen-closing"),t.classList.add("subscreen-opening"),s.querySelector(".feds-popup-back-button")?.addEventListener("click",()=>{t.classList.remove("subscreen-opening"),t.classList.add("subscreen-closing"),setTimeout(()=>F(s),240)}))})})}),H.addEventListener("change",()=>{t?.classList.remove("subscreen-opening"),t?.classList.remove("subscreen-closing")});let i=e.querySelector(".feds-nav-toggle");i?.getAttribute("aria-controls")==="feds-menu-wrapper"&&i.addEventListener("click",()=>{t?.classList.remove("subscreen-opening"),t?.classList.remove("subscreen-closing")})},St=e=>{e.querySelectorAll(".feds-popup:not(.small-menu) article.links-card").forEach(a=>{let t=a.querySelector("div.links-card-title-container");if(t===null)return;let n=()=>{t.setAttribute("aria-expanded",String(!a.classList.contains("closed")))},r=()=>{_()?(t.removeAttribute("tabindex"),t.removeAttribute("role"),t.removeAttribute("aria-expanded")):(t.setAttribute("tabindex","0"),t.setAttribute("role","button"),n())};r(),H.addEventListener("change",r);let o=()=>{if(_())return;let i=a.classList.contains("closed");a.classList.toggle("closed"),i&&(a.classList.add("opening"),window.setTimeout(()=>{a.classList.remove("opening")},900)),n(),t.setAttribute("daa-ll",a.classList.contains("closed")?"Open":"Close")};t.addEventListener("click",o),t.addEventListener("keydown",i=>{i.key!=="Enter"&&i.key!==" "||_()||(i.preventDefault(),o())})})};function Q(e,a){return[...e.querySelectorAll(a)]}function ue(e,a,t){Q(e,a).forEach(n=>t?n.removeAttribute("tabindex"):n.setAttribute("tabindex","-1"))}var Y=e=>(e.querySelector("nav.localnav")!==null||e.matches("nav.localnav"))&&!_(),Ra=e=>e.querySelector(".feds-localnav-bar"),X=e=>e.querySelector("#feds-menu-wrapper"),_e=e=>e.querySelector("#feds-menu-wrapper .feds-gnav-items"),Da=e=>{let a=_e(e);return a?[...a.querySelectorAll(":scope > li > .feds-link,:scope > li > .feds-primary-cta,:scope > li > .feds-secondary-cta")].filter(n=>n.offsetParent!==null):[]},At=e=>{let a=Da(e),t=Ra(e);return t?[t,...a]:a},Ee=(e,a)=>{let t=_e(e);if(!t)return;t.querySelectorAll(":scope > li > .feds-link,:scope > li > .feds-primary-cta,:scope > li > .feds-secondary-cta").forEach(r=>{a?r.removeAttribute("tabindex"):r.setAttribute("tabindex","-1")})},Pt=e=>[...e.querySelectorAll('a[href], button:not([disabled]), [tabindex]:not([tabindex="-1"]), input:not([disabled]), [role="tab"]')].filter(t=>t.offsetParent!==null),ie={ArrowLeft:-1,ArrowRight:1,ArrowUp:-1,ArrowDown:1},qa=new Set(["ArrowLeft","ArrowRight"]),_t=new Set(["ArrowUp","ArrowDown"]),zt='.tabs [role="tab"][aria-selected="true"]';function oe(e,a,t){return(e+a+t)%t}function Ht(e,a,t,n){let r=ie[t];if(qa.has(t)){let m=a+r;return m>=0&&m{let y=e[m].parentElement;return y?i.indexOf(y):-1},s=l(a)%o,c=Math.floor(l(a)/o)+(t==="ArrowDown"?1:-1),p=Math.floor((i.length-1)/o);if(c<0||c>p)return null;let f=null,h=1/0;for(let m=0;m{let u=()=>{if(!I(d)){ue(d,'[role="tabpanel"] a',!1),Y(e)&&I(X(e))&&d.contains(document.activeElement)&&Se(e,d.id)?.focus();return}if(!Y(e)||!I(X(e)))return;(d.querySelector(".feds-popup-back-button")??d.querySelector("a, button"))?.focus()};d.addEventListener("toggle",u),a.push(()=>d.removeEventListener("toggle",u));let b=!1,k=w=>{w.key==="Tab"&&!w.shiftKey&&(b=!0)};d.addEventListener("keydown",k),a.push(()=>d.removeEventListener("keydown",k));let x=w=>{if(b&&!d.contains(w.relatedTarget)){if(Y(e)&&I(X(e))){b=!1;return}if(F(d),!_()){let C=d.closest(".feds-gnav-items");C?.classList.remove("subscreen-opening"),C?.classList.add("subscreen-closing")}b=!1}};d.addEventListener("focusout",x),a.push(()=>d.removeEventListener("focusout",x))});let t=X(e);if(t){let d=()=>{let u=I(t);Y(e)&&Ee(e,u),!u&&Y(e)&&t.contains(document.activeElement)&&Ra(e)?.focus()};t.addEventListener("toggle",d),a.push(()=>t.removeEventListener("toggle",d))}let n=()=>{if(!_e(e))return;if(_()){Ee(e,!0);return}let d=I(X(e));Ee(e,d)};H.addEventListener("change",n),a.push(()=>H.removeEventListener("change",n));let r=(d,u)=>{d.focus(),u.preventDefault()},o=()=>e.querySelector(`.feds-popup.${M}`),i=d=>d.querySelector(zt),l=d=>d.querySelector('[role="tabpanel"]:not([hidden])');function s(d){let u=o(),b=e.querySelector("#feds-menu-wrapper");if(!b)return!1;let k=b.querySelector(".feds-gnav-items"),x=u?u.querySelector(".feds-popup-back-button"):null,w=k?.classList.contains("subscreen-opening")===!0;if(u!==null&&w&&x!==null)return x.click(),d.preventDefault(),!0;let C=u??(I(b)?b:null);return C?(F(C),(u?Se(e,C.id):Y(e)?e.querySelector(".feds-localnav-bar"):e.querySelector(".feds-nav-toggle"))?.focus(),d.preventDefault(),!0):!1}function c(d,u,b,k){if(u!=="Tab"||!Y(e))return!1;let x=X(e);if(!x||!I(x)||o()!==null)return!1;let w=At(e);if(w.length===0)return!1;let C=w.indexOf(d);if(C<0)return!1;let R=oe(C,b?-1:1,w.length);return r(w[R],k),!0}function p(d,u,b){if(!ie[u]||!Y(e))return!1;let k=X(e);if(!k||!I(k)||o()!==null)return!1;let x=Da(e);if(x.length===0)return!1;let w=x.indexOf(d);return w<0?!1:(r(x[oe(w,ie[u],x.length)],b),!0)}function f(d,u,b,k){if(u!=="Tab"||!Y(e))return!1;let x=o();if(!x)return!1;let w=X(e);if(!w||!I(w))return!1;let C=Pt(x);if(C.length===0)return!1;let R=C.indexOf(d);if(R<0)return!1;let G=oe(R,b?-1:1,C.length);return r(C[G],k),!0}function h(d,u,b){if(!qa.has(u))return!1;let k=Q(e,".feds-gnav-items > li > .feds-link"),x=k.indexOf(d);return x<0?!1:(r(k[oe(x,ie[u],k.length)],b),!0)}function m(d,u,b,k){let x=Q(u,'.tabs :is([role="tab"], .product-links a)'),w=x[0]?.offsetLeft??0,C=x.indexOf(d);if(C<0)return!1;let R=_()?{ArrowLeft:0,ArrowRight:0,ArrowUp:-1,ArrowDown:1}:{ArrowLeft:-1,ArrowRight:1,ArrowUp:0,ArrowDown:0};if(R[b]){let G=x[oe(C,R[b],x.length)];return G.matches('[role="tab"]')&&(G.click(),_()||requestAnimationFrame(()=>{let se=G.closest(".tabs");se!==null&&(se.scrollLeft=G.offsetLeft-w)})),r(G,k),!0}if(b in R)return k.preventDefault(),!0;if(b==="Tab"&&!k.shiftKey&&d.matches('[aria-selected="true"]')){let G=l(u);if(!G)return!1;ue(G,"a",!0);let se=G.querySelector("a");return se&&r(se,k),!0}return!1}function y(d,u,b,k){let x=l(u);if(!x)return!1;let w=Q(x,"a"),C=w.indexOf(d);if(C<0)return!1;if(ie[b]){let R=Ht(w,C,b,x);return R!==null?(r(w[R],k),!0):b==="ArrowUp"?(ue(x,"a",!1),r(i(u)??w[0],k),!0):!1}if(b==="Tab"&&!k.shiftKey){if(C+10)r(w[C-1],k);else{ue(x,"a",!1);let R=i(u)??Q(u,'.tabs :is([role="tab"], .product-links a)')[0];R&&r(R,k)}return!0}return!1}function L(d,u,b,k){if(!_t.has(b))return!1;let x=Q(u,".feds-gnav-cards a"),w=x.indexOf(d);return w<0?!1:(r(x[oe(w,ie[b],x.length)],k),!0)}function E(d,u,b){return u!==" "||!d.matches(".feds-primary-cta, .feds-secondary-cta, .feds-link")?!1:(b.preventDefault(),d.click(),!0)}function z(d){let u=document.activeElement??d.target;if(d.key==="Escape"){s(d);return}if(E(u,d.key,d)||f(u,d.key,d.shiftKey,d)||c(u,d.key,d.shiftKey,d)||p(u,d.key,d))return;let b=o();b&&(b.matches(":has(.product-list)")&&(m(u,b,d.key,d)||y(u,b,d.key,d))||b.matches(":has(.feds-gnav-cards)")&&L(u,b,d.key,d))||h(u,d.key,d)}let U=e.querySelector(".trap-focus-gnav"),T=d=>{e.querySelector(".feds-menu-active")&&(d.preventDefault(),e.querySelector(".feds-nav-toggle")?.focus())};return U?.addEventListener("focus",T),a.push(()=>U?.removeEventListener("focus",T)),e.addEventListener("keydown",z),a.push(()=>e.removeEventListener("keydown",z)),()=>a.forEach(d=>d())}var Oa=async e=>{let a=new Set,t=e.querySelectorAll("a.merch");if(t.length===0)return a;try{let n=$(),{base:r}=n;if(r==="")return a.add(new v("base not found in config, cannot initialize merch links")),a;let i=(await import(`${r}/blocks/merch/merch.js`)).default;if(i===void 0)return a.add(new v("decorateMerchLink not found in merch module")),a;t.forEach(l=>{i(l)})}catch(n){a.add(new v(`Error initializing merch links: ${n}`))}return a};var Na=["appswitcher","help"],$t=5e3,It=92,ze={cs:["cz"],da:["dk"],de:["at"],en:["africa","au","ca","ie","in","mt","ng","nz","sg","za"],es:["ar","cl","co","cr","ec","gt","la","mx","pe","pr"],et:["ee"],ja:["jp"],ko:["kr"],nb:["no"],pt:["br"],sl:["si"],sv:["se"],uk:["ua"],zh:["cn","tw"]},[Te,Rt]=(()=>{let e,a,t,n=new Promise(r=>{a=r,t=setTimeout(()=>{e={},r(e)},$t)});return[r=>{e===void 0&&(e=r,clearTimeout(t),a?.(e))},()=>n]})(),Dt=()=>/uc_carts=/.test(document.cookie),Ce=(e,a)=>{let t=e??[],n=Dt()?t:t.filter(r=>r!=="cart");return a?n.filter(r=>Na.includes(r)||r==="cart"||r==="signup"):n};function He(e,a=!1){let o=!1;try{o=$()?.unav?.showSectionDivider===!0}catch{o=!1}let i=o?` + 2px + ${2*4}px + ${.25}rem`:"";if(a){let s=Ce(e,!0).filter(c=>c!=="signup").length;return`calc(${It}px + ${s*32}px + ${s*.25}rem${i})`}let l=Ce(e,!1).length;return`calc(${l*32}px + ${(l-1)*.25}rem${i})`}var $e=e=>{if(!e.prefix||e.prefix==="/")return"en_US";let a=e.prefix.replace("/","");if(a.includes("_")){let[n,r]=a.split("_").reverse();return`${n.toLowerCase()}_${r.toUpperCase()}`}if(a==="uk")return"en_GB";let t=Object.keys(ze).find(n=>ze[n].includes(a));return t?`${t.toLowerCase()}_${a.toUpperCase()}`:`${a.toLowerCase()}_${a.toUpperCase()}`},qt={Mac:"macOS",Win:"windows",Linux:"linux",CrOS:"chromeOS",Android:"android",iPad:"iPadOS",iPhone:"iOS"},Ie=()=>{let e=navigator.userAgent;for(let[a,t]of Object.entries(qt))if(e.includes(a))return t;return"linux"},Re=async()=>{let e=window;if(typeof e.alloy=="function")return e.alloy("getIdentity").then(a=>a?.identity?.ECID).catch(()=>{})};var Ba=()=>{try{return $().signInContext||{}}catch{return{}}},Ut=()=>{let e=$();return K("signin-cta-style")==="primary"||e?.unav?.profile?.signInCtaStyle==="primary"?"primary":"secondary"},Ot=()=>{let a=$()?.unav?.profile?.messageEventListener;return a||(t=>{let{name:n,payload:r,executeDefaultAction:o}=t.detail;if(!(n!=="System"||typeof o!="function"))switch(r.subType){case"AppInitiated":window.adobeProfile?.getUserProfile().then(i=>{Te(i)}).catch(()=>{Te({})});break;case"SignOut":o();break;case"ProfileSwitch":Promise.resolve(o()).then(i=>{i!=null&&window.location.reload()});break;default:break}})};function Nt(){let{unav:e}=$();return e?.unavHelpChildren||[{type:"Support"},{type:"Community"}]}var Me=()=>{let e=$(),a=e?.unav?.uncAppId;return{profile:{name:"profile",attributes:{accountMenuContext:{sharedContextConfig:{enableLocalSection:!0,enableProfileSwitcher:!0,miniAppContext:{logger:{trace:()=>{},debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}}},complexConfig:e?.unav?.profile?.complexConfig||null,...e?.unav?.profile?.config},messageEventListener:Ot()},signInCtaStyle:Ut(),isSignUpRequired:!1,callbacks:{onSignIn:()=>{window.adobeIMS?.signIn(Ba())},onSignUp:()=>{window.adobeIMS?.signIn(Ba())}}}},appswitcher:{name:"app-switcher"},notifications:{name:"notifications",attributes:{notificationsConfig:{applicationContext:{appID:a!==void 0&&a!==""?a:"adobecom",...e?.unav?.uncConfig}}}},help:{name:"help",attributes:{children:Nt()}},jarvis:{name:"jarvis",attributes:{appid:e?.jarvis?.id,callbacks:e?.jarvis?.callbacks}},cart:{name:"cart"}}};var ja=(e,a)=>{let t=e[0];if(t===void 0||!("attributes"in t))return;let{attributes:n}=t;n!=null&&(typeof n!="object"||!("isSignUpRequired"in n)||(n.isSignUpRequired=a))},De=async(e,a)=>{try{let t=e.querySelector(".feds-utilities");if(!(t instanceof HTMLElement))return new v('missing ".feds-utilities" container');let n=new Set,r=document.head.querySelector('meta[name="universal-nav"]'),o=r instanceof HTMLMetaElement?r.content??"":"";r instanceof HTMLMetaElement||n.add(new v('metadata "universal-nav" is missing'));let i=o.trim();r instanceof HTMLMetaElement&&i.length===0&&n.add(new v('metadata "universal-nav" has no value'));let l=window.adobeIMS?.isSignedInUser()!==!0,s=i.split(",").map(T=>T.trim()).filter(T=>Object.keys(Me()).includes(T)||T==="signup"),c=Ce(s,l),p=He(s,l);t.style.setProperty("min-width",p);let f;try{f=$()}catch{throw new Error("MiloConfig not available for UNAV initialization")}let h=$e(f.locale),m=f.env.name==="prod"?"prod":"stage",y=await Re(),L=new URLSearchParams(window.location.search).get("unavVersion");/^\d+(\.\d+)?$/.test(L??"")||(L="1.5"),await Promise.all([ea(`https://${m}.adobeccstatic.com/unav/${L}/UniversalNav.js`),Qe(`https://${m}.adobeccstatic.com/unav/${L}/UniversalNav.css`,!0)]);let E=()=>{let T=Me(),d=[T.profile];return ja(d,!1),c.forEach(u=>{if(u==="profile")return;if(u==="signup"){ja(d,!0);return}let b=T[u];b!==void 0&&d.push(b)}),d},z=()=>({target:t,env:m,locale:h,countryCode:na(f?.locale)?.country||"US",imsClientId:window?.adobeid?.client_id,theme:"light",analyticsContext:{consumer:{name:"adobecom",version:"1.0",platform:"Web",device:Ie(),os_version:navigator.platform},event:{visitor_guid:y}},children:E(),isSectionDividerRequired:f?.unav?.showSectionDivider===!0,showTrayExperience:!H.matches});await window?.UniversalNav?.(z()),l?new MutationObserver((d,u)=>{t.querySelector('button, a[role="button"]')&&(u.disconnect(),requestAnimationFrame(()=>{t.style.removeProperty("min-width")}))}).observe(t,{childList:!0,subtree:!0}):t?.style.removeProperty("min-width");let U=T=>{window?.UniversalNav?.reload(z())};return H.addEventListener("change",()=>{U()}),{reloadUnav:U,errors:n}}catch(t){let n=t instanceof Error?t.message:"failed to load universal nav";return new v(n)}};var Ga=async({gnavSource:e,asideSource:a})=>{let t=await ae(e);if(t instanceof g)return t;let n=await ae(a);return{mainNav:t,aside:n}};var Bt=':root{--s2a-color-gray-25:#fff;--s2a-color-gray-75:#f3f3f3;--s2a-color-gray-900:#131313;--s2a-color-gray-1000:#000;--s2a-color-blue-100:#f5f9ff;--s2a-color-blue-800:#4b75ff;--s2a-color-blue-1000:#274dea;--s2a-color-blue-1100:#1d3ecf;--s2a-color-transparent-black-08:#00000014;--s2a-color-transparent-black-12:#0000001f;--s2a-color-transparent-white-12:#ffffff1f;--s2a-color-transparent-black-16:#00000029;--s2a-color-transparent-white-16:#ffffff29;--s2a-color-transparent-black-64:#000000a3;--s2a-color-transparent-white-64:#ffffffa3;--s2a-border-radius-8:8px;--s2a-border-radius-12:12px;--s2a-border-radius-16:16px;--s2a-border-radius-24:24px;--s2a-border-radius-999:999px;--s2a-border-width-1:1px;--s2a-border-width-2:2px;--s2a-border-width-4:4px;--s2a-spacing-4:4px;--s2a-spacing-8:8px;--s2a-spacing-12:12px;--s2a-spacing-16:16px;--s2a-spacing-20:20px;--s2a-spacing-24:24px;--s2a-spacing-32:32px;--s2a-spacing-40:40px;--s2a-spacing-48:48px;--s2a-spacing-64:64px;--s2a-font-family-adobe-clean:"Adobe Clean";--s2a-font-letter-spacing-neg-1_68:-1.68px;--s2a-font-letter-spacing-neg-1_44:-1.44px;--s2a-font-letter-spacing-neg-1:-1px;--s2a-font-letter-spacing-neg-0_96:-.96px;--s2a-font-letter-spacing-neg-0_48:-.48px;--s2a-font-letter-spacing-neg-0_2:-.2px;--s2a-font-letter-spacing-0:0;--s2a-font-line-height-16:16px;--s2a-font-line-height-18:18px;--s2a-font-line-height-20:20px;--s2a-font-line-height-24:24px;--s2a-font-line-height-32:32px;--s2a-font-line-height-48:48px;--s2a-font-line-height-56:56px;--s2a-font-size-12:.75rem;--s2a-font-size-14:.875rem;--s2a-font-size-16:1rem;--s2a-font-size-18:1.125rem;--s2a-font-size-20:1.25rem;--s2a-font-size-24:1.5rem;--s2a-font-size-32:2rem;--s2a-font-size-36:2.25rem;--s2a-font-size-48:3rem;--s2a-font-size-56:3.5rem;--s2a-font-weight-adobe-clean-regular:400;--s2a-font-weight-adobe-clean-extrabold:800;--s2a-font-weight-adobe-clean-bold:700;--s2a-font-weight-adobe-clean-black:900;--s2a-blur-16:16px;--s2a-border-radius-sm:var(--s2a-border-radius-8);--s2a-border-radius-md:var(--s2a-border-radius-16);--s2a-border-radius-round:var(--s2a-border-radius-999);--s2a-border-width-sm:var(--s2a-border-width-1);--s2a-border-width-md:var(--s2a-border-width-2);--s2a-border-width-lg:var(--s2a-border-width-4);--s2a-spacing-2xs:var(--s2a-spacing-4);--s2a-spacing-xs:var(--s2a-spacing-8);--s2a-spacing-sm:var(--s2a-spacing-12);--s2a-spacing-md:var(--s2a-spacing-16);--s2a-spacing-lg:var(--s2a-spacing-24);--s2a-spacing-xl:var(--s2a-spacing-32);--s2a-spacing-2xl:var(--s2a-spacing-40);--s2a-spacing-3xl:var(--s2a-spacing-48);--s2a-spacing-4xl:var(--s2a-spacing-64);--s2a-font-family-body:var(--s2a-font-family-adobe-clean);--s2a-font-family-label:var(--s2a-font-family-adobe-clean);--s2a-font-letter-spacing-lg:var(--s2a-font-letter-spacing-neg-1_68);--s2a-font-letter-spacing-xl:var(--s2a-font-letter-spacing-neg-1_44);--s2a-font-letter-spacing-2xl:var(--s2a-font-letter-spacing-neg-1);--s2a-font-letter-spacing-3xl:var(--s2a-font-letter-spacing-neg-0_96);--s2a-font-letter-spacing-4xl:var(--s2a-font-letter-spacing-neg-0_48);--s2a-font-letter-spacing-5xl:var(--s2a-font-letter-spacing-neg-0_2);--s2a-font-letter-spacing-6xl:var(--s2a-font-letter-spacing-0);--s2a-font-line-height-2xs:var(--s2a-font-line-height-16);--s2a-font-line-height-xs:var(--s2a-font-line-height-18);--s2a-font-line-height-sm:var(--s2a-font-line-height-20);--s2a-font-line-height-md:var(--s2a-font-line-height-24);--s2a-font-line-height-lg:var(--s2a-font-line-height-32);--s2a-font-line-height-2xl:var(--s2a-font-line-height-48);--s2a-font-line-height-3xl:var(--s2a-font-line-height-56);--s2a-font-size-xs:var(--s2a-font-size-12);--s2a-font-size-sm:var(--s2a-font-size-14);--s2a-font-size-md:var(--s2a-font-size-16);--s2a-font-size-lg:var(--s2a-font-size-18);--s2a-font-size-xl:var(--s2a-font-size-20);--s2a-font-size-2xl:var(--s2a-font-size-24);--s2a-font-size-3xl:var(--s2a-font-size-32);--s2a-font-size-4xl:var(--s2a-font-size-36);--s2a-font-size-6xl:var(--s2a-font-size-48);--s2a-font-size-7xl:var(--s2a-font-size-56);--s2a-blur-sm:var(--s2a-blur-16)}:root,:root[data-theme=light]{--s2a-color-background-default:var(--s2a-color-gray-25);--s2a-color-content-body-subtle:var(--s2a-color-content-subtle);--s2a-color-content-default:var(--s2a-color-gray-1000);--s2a-color-content-subtle:var(--s2a-color-transparent-black-64);--s2a-color-button-background-accent-solid-on-light-active:var(--s2a-color-blue-1100);--s2a-color-button-background-accent-solid-on-light-hover:var(--s2a-color-blue-1000);--s2a-color-button-background-primary-transparent-on-light-hover:var(--s2a-color-transparent-black-08);--s2a-color-button-content-primary-solid-default:var(--s2a-color-gray-25)}:root{--s2a-color-gray-25:#fff;--s2a-color-gray-75:#f3f3f3;--s2a-color-gray-900:#131313;--s2a-color-gray-1000:#000;--s2a-color-blue-100:#f5f9ff;--s2a-color-blue-800:#4b75ff;--s2a-color-blue-1000:#274dea;--s2a-color-blue-1100:#1d3ecf;--s2a-color-transparent-black-12:#0000001f;--s2a-color-transparent-black-16:#00000029;--s2a-color-transparent-black-64:#000000a3;--s2a-color-transparent-black-08:#00000014;--s2a-color-transparent-white-12:#ffffff1f;--s2a-color-transparent-white-16:#ffffff29;--s2a-color-transparent-white-64:#ffffffa3;--s2a-border-radius-8:8px;--s2a-border-radius-12:12px;--s2a-border-radius-16:16px;--s2a-border-radius-24:24px;--s2a-border-radius-999:999px;--s2a-border-width-1:1px;--s2a-border-width-2:2px;--s2a-border-width-4:4px;--s2a-spacing-4:4px;--s2a-spacing-8:8px;--s2a-spacing-12:12px;--s2a-spacing-16:16px;--s2a-spacing-20:20px;--s2a-spacing-24:24px;--s2a-spacing-32:32px;--s2a-spacing-40:40px;--s2a-spacing-48:48px;--s2a-spacing-64:64px;--s2a-font-family-adobe-clean:"Adobe Clean";--s2a-font-letter-spacing-0:0;--s2a-font-letter-spacing-neg-1_68:-1.68px;--s2a-font-letter-spacing-neg-1_44:-1.44px;--s2a-font-letter-spacing-neg-1:-1px;--s2a-font-letter-spacing-neg-0_96:-.96px;--s2a-font-letter-spacing-neg-0_48:-.48px;--s2a-font-letter-spacing-neg-0_2:-.2px;--s2a-font-line-height-16:16px;--s2a-font-line-height-18:18px;--s2a-font-line-height-20:20px;--s2a-font-line-height-24:24px;--s2a-font-line-height-32:32px;--s2a-font-line-height-48:48px;--s2a-font-line-height-56:56px;--s2a-font-size-12:.75rem;--s2a-font-size-14:.875rem;--s2a-font-size-16:1rem;--s2a-font-size-18:1.125rem;--s2a-font-size-20:1.25rem;--s2a-font-size-24:1.5rem;--s2a-font-size-32:2rem;--s2a-font-size-36:2.25rem;--s2a-font-size-48:3rem;--s2a-font-size-56:3.5rem;--s2a-font-weight-adobe-clean-black:900;--s2a-font-weight-adobe-clean-extrabold:800;--s2a-font-weight-adobe-clean-bold:700;--s2a-font-weight-adobe-clean-regular:400;--s2a-blur-16:16px}:root,:root[data-theme=light]{--s2a-color-gray-25:#fff;--s2a-color-gray-75:#f3f3f3;--s2a-color-gray-900:#131313;--s2a-color-gray-1000:#000;--s2a-color-blue-100:#f5f9ff;--s2a-color-blue-800:#4b75ff;--s2a-color-blue-1000:#274dea;--s2a-color-blue-1100:#1d3ecf;--s2a-color-transparent-black-12:#0000001f;--s2a-color-transparent-black-16:#00000029;--s2a-color-transparent-black-64:#000000a3;--s2a-color-transparent-black-08:#00000014;--s2a-color-transparent-white-12:#ffffff1f;--s2a-color-transparent-white-16:#ffffff29;--s2a-color-transparent-white-64:#ffffffa3}:root{--s2a-border-radius-sm:var(--s2a-border-radius-8);--s2a-border-radius-md:var(--s2a-border-radius-16);--s2a-border-radius-round:var(--s2a-border-radius-999);--s2a-border-width-sm:var(--s2a-border-width-1);--s2a-border-width-md:var(--s2a-border-width-2);--s2a-border-width-lg:var(--s2a-border-width-4);--s2a-spacing-2xs:var(--s2a-spacing-4);--s2a-spacing-xs:var(--s2a-spacing-8);--s2a-spacing-sm:var(--s2a-spacing-12);--s2a-spacing-md:var(--s2a-spacing-16);--s2a-spacing-lg:var(--s2a-spacing-24);--s2a-spacing-xl:var(--s2a-spacing-32);--s2a-spacing-2xl:var(--s2a-spacing-40);--s2a-spacing-3xl:var(--s2a-spacing-48);--s2a-spacing-4xl:var(--s2a-spacing-64);--s2a-font-family-body:var(--s2a-font-family-adobe-clean);--s2a-font-family-label:var(--s2a-font-family-adobe-clean);--s2a-font-letter-spacing-lg:var(--s2a-font-letter-spacing-neg-1_68);--s2a-font-letter-spacing-xl:var(--s2a-font-letter-spacing-neg-1_44);--s2a-font-letter-spacing-2xl:var(--s2a-font-letter-spacing-neg-1);--s2a-font-letter-spacing-3xl:var(--s2a-font-letter-spacing-neg-0_96);--s2a-font-letter-spacing-4xl:var(--s2a-font-letter-spacing-neg-0_48);--s2a-font-letter-spacing-5xl:var(--s2a-font-letter-spacing-neg-0_2);--s2a-font-letter-spacing-6xl:var(--s2a-font-letter-spacing-0);--s2a-font-line-height-2xs:var(--s2a-font-line-height-16);--s2a-font-line-height-xs:var(--s2a-font-line-height-18);--s2a-font-line-height-sm:var(--s2a-font-line-height-20);--s2a-font-line-height-md:var(--s2a-font-line-height-24);--s2a-font-line-height-lg:var(--s2a-font-line-height-32);--s2a-font-line-height-2xl:var(--s2a-font-line-height-48);--s2a-font-line-height-3xl:var(--s2a-font-line-height-56);--s2a-font-size-xs:var(--s2a-font-size-12);--s2a-font-size-sm:var(--s2a-font-size-14);--s2a-font-size-md:var(--s2a-font-size-16);--s2a-font-size-lg:var(--s2a-font-size-18);--s2a-font-size-xl:var(--s2a-font-size-20);--s2a-font-size-2xl:var(--s2a-font-size-24);--s2a-font-size-3xl:var(--s2a-font-size-32);--s2a-font-size-4xl:var(--s2a-font-size-36);--s2a-font-size-6xl:var(--s2a-font-size-48);--s2a-font-size-7xl:var(--s2a-font-size-56);--s2a-blur-sm:var(--s2a-blur-16)}:root,:root[data-theme=light]{--s2a-color-background-default:var(--s2a-color-gray-25);--s2a-color-content-default:var(--s2a-color-gray-1000);--s2a-color-content-subtle:var(--s2a-color-transparent-black-64);--s2a-color-button-background-primary-transparent-on-light-hover:var(--s2a-color-transparent-black-08);--s2a-color-button-background-accent-solid-on-light-hover:var(--s2a-color-blue-1000);--s2a-color-button-background-accent-solid-on-light-active:var(--s2a-color-blue-1100);--s2a-color-button-content-primary-solid-default:var(--s2a-color-gray-25);--s2a-color-content-body-subtle:var(--s2a-color-content-subtle)}:root[data-theme=dark]{--s2a-color-background-default:var(--s2a-color-gray-900);--s2a-color-content-default:var(--s2a-color-gray-25);--s2a-color-content-subtle:var(--s2a-color-transparent-white-64);--s2a-color-button-background-primary-transparent-on-light-hover:var(--s2a-color-transparent-white-12);--s2a-color-button-background-accent-solid-on-light-hover:var(--s2a-color-blue-1000);--s2a-color-button-background-accent-solid-on-light-active:var(--s2a-color-blue-1100);--s2a-color-button-content-primary-solid-default:var(--s2a-color-gray-1000);--s2a-color-content-body-subtle:var(--s2a-color-content-subtle)}:root{--s2a-typography-font-size-heading-2:var(--s2a-font-size-3xl);--s2a-typography-font-size-heading-3:var(--s2a-font-size-2xl);--s2a-typography-font-size-heading-4:var(--s2a-font-size-xl);--s2a-typography-font-size-heading-5:var(--s2a-font-size-lg);--s2a-typography-font-size-body-sm:var(--s2a-font-size-sm);--s2a-typography-font-size-eyebrow:var(--s2a-font-size-md);--s2a-typography-font-size-label:var(--s2a-font-size-sm);--s2a-typography-letter-spacing-heading-2:var(--s2a-font-letter-spacing-3xl);--s2a-typography-letter-spacing-heading-3:var(--s2a-font-letter-spacing-4xl);--s2a-typography-letter-spacing-heading-4:var(--s2a-font-letter-spacing-4xl);--s2a-typography-letter-spacing-heading-5:var(--s2a-font-letter-spacing-5xl);--s2a-typography-letter-spacing-body-sm:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-eyebrow:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-label:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-caption:var(--s2a-font-letter-spacing-6xl);--s2a-typography-line-height-heading-2:var(--s2a-font-line-height-lg);--s2a-typography-line-height-heading-3:var(--s2a-font-line-height-md);--s2a-typography-line-height-heading-4:var(--s2a-font-line-height-sm);--s2a-typography-line-height-heading-5:var(--s2a-font-line-height-sm);--s2a-typography-line-height-body-sm:var(--s2a-font-line-height-xs);--s2a-typography-line-height-eyebrow:var(--s2a-font-line-height-sm);--s2a-typography-line-height-label:var(--s2a-font-line-height-xs);--s2a-typography-line-height-caption:var(--s2a-font-line-height-2xs)}@media (width>=1024px){:root{--s2a-typography-font-size-heading-2:var(--s2a-font-size-6xl);--s2a-typography-font-size-heading-3:var(--s2a-font-size-3xl);--s2a-typography-font-size-heading-4:var(--s2a-font-size-2xl);--s2a-typography-font-size-heading-5:var(--s2a-font-size-xl);--s2a-typography-font-size-body-sm:var(--s2a-font-size-sm);--s2a-typography-font-size-eyebrow:var(--s2a-font-size-md);--s2a-typography-font-size-label:var(--s2a-font-size-sm);--s2a-typography-letter-spacing-heading-2:var(--s2a-font-letter-spacing-xl);--s2a-typography-letter-spacing-heading-3:var(--s2a-font-letter-spacing-4xl);--s2a-typography-letter-spacing-heading-4:var(--s2a-font-letter-spacing-4xl);--s2a-typography-letter-spacing-heading-5:var(--s2a-font-letter-spacing-4xl);--s2a-typography-letter-spacing-body-sm:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-eyebrow:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-label:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-caption:var(--s2a-font-letter-spacing-6xl);--s2a-typography-line-height-heading-2:var(--s2a-font-line-height-2xl);--s2a-typography-line-height-heading-3:var(--s2a-font-line-height-lg);--s2a-typography-line-height-heading-4:var(--s2a-font-line-height-md);--s2a-typography-line-height-heading-5:var(--s2a-font-line-height-sm);--s2a-typography-line-height-body-sm:var(--s2a-font-line-height-xs);--s2a-typography-line-height-eyebrow:var(--s2a-font-line-height-sm);--s2a-typography-line-height-label:var(--s2a-font-line-height-xs);--s2a-typography-line-height-caption:var(--s2a-font-line-height-2xs)}}@media (width>=1280px){:root{--s2a-typography-font-size-heading-2:var(--s2a-font-size-7xl);--s2a-typography-font-size-heading-3:var(--s2a-font-size-6xl);--s2a-typography-font-size-heading-4:var(--s2a-font-size-4xl);--s2a-typography-font-size-heading-5:var(--s2a-font-size-2xl);--s2a-typography-font-size-body-sm:var(--s2a-font-size-sm);--s2a-typography-font-size-eyebrow:var(--s2a-font-size-md);--s2a-typography-font-size-label:var(--s2a-font-size-sm);--s2a-typography-letter-spacing-heading-2:var(--s2a-font-letter-spacing-lg);--s2a-typography-letter-spacing-heading-3:var(--s2a-font-letter-spacing-xl);--s2a-typography-letter-spacing-heading-4:var(--s2a-font-letter-spacing-2xl);--s2a-typography-letter-spacing-heading-5:var(--s2a-font-letter-spacing-3xl);--s2a-typography-letter-spacing-body-sm:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-eyebrow:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-label:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-caption:var(--s2a-font-letter-spacing-6xl);--s2a-typography-line-height-heading-2:var(--s2a-font-line-height-3xl);--s2a-typography-line-height-heading-3:var(--s2a-font-line-height-2xl);--s2a-typography-line-height-heading-4:var(--s2a-font-line-height-lg);--s2a-typography-line-height-heading-5:var(--s2a-font-line-height-md);--s2a-typography-line-height-body-sm:var(--s2a-font-line-height-xs);--s2a-typography-line-height-eyebrow:var(--s2a-font-line-height-sm);--s2a-typography-line-height-label:var(--s2a-font-line-height-xs);--s2a-typography-line-height-caption:var(--s2a-font-line-height-2xs)}}@media (width>=1441px){:root{--s2a-typography-font-size-heading-2:var(--s2a-font-size-7xl);--s2a-typography-font-size-heading-3:var(--s2a-font-size-6xl);--s2a-typography-font-size-heading-4:var(--s2a-font-size-4xl);--s2a-typography-font-size-heading-5:var(--s2a-font-size-2xl);--s2a-typography-font-size-body-sm:var(--s2a-font-size-sm);--s2a-typography-font-size-eyebrow:var(--s2a-font-size-md);--s2a-typography-font-size-label:var(--s2a-font-size-sm);--s2a-typography-letter-spacing-heading-2:var(--s2a-font-letter-spacing-lg);--s2a-typography-letter-spacing-heading-3:var(--s2a-font-letter-spacing-xl);--s2a-typography-letter-spacing-heading-4:var(--s2a-font-letter-spacing-2xl);--s2a-typography-letter-spacing-heading-5:var(--s2a-font-letter-spacing-4xl);--s2a-typography-letter-spacing-body-sm:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-eyebrow:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-label:var(--s2a-font-letter-spacing-6xl);--s2a-typography-letter-spacing-caption:var(--s2a-font-letter-spacing-6xl);--s2a-typography-line-height-heading-2:var(--s2a-font-line-height-3xl);--s2a-typography-line-height-heading-3:var(--s2a-font-line-height-2xl);--s2a-typography-line-height-heading-4:var(--s2a-font-line-height-lg);--s2a-typography-line-height-heading-5:var(--s2a-font-line-height-md);--s2a-typography-line-height-body-sm:var(--s2a-font-line-height-xs);--s2a-typography-line-height-eyebrow:var(--s2a-font-line-height-sm);--s2a-typography-line-height-label:var(--s2a-font-line-height-xs);--s2a-typography-line-height-caption:var(--s2a-font-line-height-2xs)}}.feds-brand-container{flex-shrink:0;display:flex}li.feds-brand-wrapper{flex-direction:row;flex-shrink:0;justify-content:flex-start;display:flex}header.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) nav .feds-brand-image svg,header.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) nav .feds-nav-toggle svg,header.global-navigation.feds-header-scrolled nav .feds-brand-image svg{color:var(--s2a-color-gray-1000)}.feds-brand{outline-offset:var(--s2a-spacing-sm);align-items:center;column-gap:10px}[dir=rtl] .feds-brand{padding:0 var(--s2a-spacing-md) 0 var(--s2a-spacing-lg)}.is-compact .feds-brand{padding:0 var(--s2a-spacing-sm) 0 var(--s2a-spacing-md)}.is-compact [dir=rtl] .feds-brand{padding:0 var(--s2a-spacing-lg) 0 var(--s2a-spacing-md)}.feds-brand-image svg{width:100%;color:var(--s2a-color-gray-25);display:block}.global-navigation.dark-font .feds-brand-image svg{color:var(--s2a-color-gray-1000)}.feds-brand-image.desktop-brand{display:none}.feds-brand-image.mobile-brand{display:inherit}.feds-brand-image.mobile-brand svg{height:var(--s2a-spacing-md);width:18px}.feds-brand-image.desktop-brand svg{width:67px}.global-navigation.dark-font .feds-brand-image img:first-child{display:inherit}.global-navigation.dark-font .feds-brand-image img:nth-child(2){display:none}.feds-brand-image img:first-child{display:inherit}.feds-brand-image img:nth-child(2){display:none}.feds-dark-bg .feds-brand-image img:first-child{display:none}.feds-dark-bg .feds-brand-image img:nth-child(2){display:inherit}:is(.feds-header-scrolled,.global-navigation:has(.feds-popup.is-open:not(.small-menu))) .feds-brand-wrapper .feds-brand-image img:first-child{display:inherit}:is(.feds-header-scrolled,.global-navigation:has(.feds-popup.is-open:not(.small-menu))) .feds-brand-wrapper .feds-brand-image img:nth-child(2){display:none}@media (width<=1023px){@keyframes brand-fade{0%{opacity:1;visibility:visible}to{opacity:0;visibility:hidden}}header.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-brand,header.global-navigation:has(.feds-menu-active) .feds-brand{opacity:0;pointer-events:none;visibility:hidden;animation:.3s brand-fade}.feds-brand{padding:0 var(--s2a-spacing-sm) 0 var(--s2a-spacing-md)}[dir=rtl] .feds-brand{padding:0 var(--s2a-spacing-lg) 0 var(--s2a-spacing-md)}header.global-navigation .feds-nav-toggle{transition:transform .3s;transform:translate(0)}header.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-nav-toggle{transform:translate(-34px)}[dir=rtl] header.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-nav-toggle{transform:translate(34px)}}header.global-navigation.is-compact:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-brand,header.global-navigation.is-compact:has(.feds-menu-active) .feds-brand{opacity:0;pointer-events:none;visibility:hidden;animation:.3s brand-fade}header.global-navigation.is-compact .feds-nav-toggle{transition:transform .3s;transform:translate(0)}header.global-navigation.is-compact:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-nav-toggle{transform:translate(-30px)}[dir=rtl] header.global-navigation.is-compact:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-nav-toggle{transform:translate(30px)}@media (width>=1024px){header.global-navigation:not(.is-compact) li.feds-brand-wrapper{flex-direction:row;justify-content:flex-start;padding-left:0;display:flex}header.global-navigation:not(.is-compact) .feds-brand-image.desktop-brand{display:inherit}header.global-navigation:not(.is-compact):has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-brand-image svg{color:var(--s2a-color-gray-1000)}header.global-navigation:not(.is-compact) .feds-brand-image.mobile-brand{display:none}header.global-navigation:not(.is-compact) .feds-brand{margin:0 var(--s2a-spacing-lg) 0 var(--s2a-spacing-md)}}.global-navigation .feds-breadcrumbs{box-sizing:border-box;height:var(--feds-breadcrumbs-height);max-width:100%;padding:0 var(--s2a-spacing-md);border-top:var(--s2a-border-width-sm) solid #ffffff3d;align-items:center;gap:0;margin:0;list-style:none;display:flex;position:absolute;top:100%;left:0;right:0}[dir=rtl] .global-navigation .feds-breadcrumbs{padding-right:var(--s2a-spacing-md)}.global-navigation.dark-font .feds-breadcrumbs{border-top-color:var(--s2a-color-transparent-black-08)}.global-navigation .feds-breadcrumbs>li{align-items:center;margin:0;padding:0;display:inline-flex}.global-navigation .feds-breadcrumbs>li>:is(a,span){font-family:var(--body-font-family);font-size:var(--s2a-typography-font-size-label);line-height:var(--s2a-typography-line-height-label);letter-spacing:var(--s2a-typography-letter-spacing-label);color:var(--s2a-color-gray-25);text-decoration:none}.global-navigation.dark-font .feds-breadcrumbs>li>:is(a,span){color:var(--s2a-color-gray-1000)}.global-navigation .feds-breadcrumbs>li>a:hover{text-decoration:underline}.global-navigation.feds-header-scrolled .feds-breadcrumbs>li>:is(a,span),.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-breadcrumbs>li>:is(a,span){color:var(--s2a-color-transparent-black-64)}.global-navigation.feds-header-scrolled .feds-breadcrumbs>li:last-child>:is(a,span),.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-breadcrumbs>li:last-child>:is(a,span){color:var(--s2a-color-content-default)}.global-navigation .feds-breadcrumbs>li+li:before{content:"";width:1px;height:15px;margin-inline:var(--s2a-spacing-sm);background-color:var(--s2a-color-transparent-white-16);display:inline-block}.global-navigation.dark-font .feds-breadcrumbs>li+li:before,.global-navigation.feds-header-scrolled .feds-breadcrumbs>li+li:before,.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-breadcrumbs>li+li:before{background-color:var(--s2a-color-transparent-black-16)}.global-navigation.feds-header-scrolled .feds-breadcrumbs{border-bottom-right-radius:var(--s2a-border-radius-16);border-bottom-left-radius:var(--s2a-border-radius-16);border-top-color:#0000001f}.global-navigation nav:has(.feds-popup.is-open:not(.small-menu)) .feds-breadcrumbs{display:none}@media (width<=1023px){header.global-navigation nav:has(.feds-menu-wrapper.is-open)>.feds-breadcrumbs{display:none}header.global-navigation nav .feds-popup.is-open:not(.small-menu)>ul.feds-breadcrumbs{padding:0 var(--s2a-spacing-lg);display:flex;position:static}}header.global-navigation.is-compact nav:has(.feds-menu-wrapper.is-open)>.feds-breadcrumbs{display:none}header.global-navigation.is-compact nav .feds-popup.is-open:not(.small-menu)>ul.feds-breadcrumbs{padding:0 var(--s2a-spacing-lg);display:flex;position:static}.feds-gnav-cards>li:has(>:nth-child(2)){gap:var(--s2a-spacing-2xs);flex-direction:column;display:flex}.feds-popup-header .product-links .feds-link{color:var(--s2a-color-content-default);font-size:var(--s2a-font-size-sm);font-weight:var(--s2a-font-weight-adobe-clean-bold);white-space:nowrap;line-height:18px;font-family:var(--body-font-family);align-items:center;gap:6px;padding:0;text-decoration:none;display:inline-flex}.feds-popup-header .product-links .feds-link svg{flex-shrink:0;width:5px;height:8px}ul.tabs .product-links{display:none}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-gnav-cards:not(:has(.promo-card))>li:has(>:nth-child(2)){gap:var(--s2a-spacing-xs);flex-direction:row;flex:2 1 0}header.global-navigation:not(.is-compact) .feds-gnav-cards:not(:has(.promo-card))>li:has(>:nth-child(2)) article{flex:1 1 0;min-width:0}header.global-navigation:not(.is-compact) .feds-gnav-cards:has(.promo-card)>li:has(>:nth-child(2)){gap:var(--s2a-spacing-xs)}header.global-navigation:not(.is-compact) .feds-gnav-cards:has(.promo-card)>li:has(.promo-card,.links-card){width:calc(33.33% - 5.33px)}header.global-navigation:not(.is-compact) .feds-popup .feds-gnav-cards:has(.promo-card,.links-card){align-items:stretch}header.global-navigation:not(.is-compact) .feds-popup .feds-gnav-cards:has(.promo-card,.links-card) article{height:100%}header.global-navigation:not(.is-compact) .feds-popup-header .product-links{display:none}header.global-navigation:not(.is-compact) ul.tabs .product-links{display:block}header.global-navigation:not(.is-compact):has(.feds-popup.is-open) ul.feds-gnav-items>li .product-links .feds-link{font-family:var(--body-font-family);padding:var(--s2a-spacing-md) var(--s2a-spacing-lg)}}@media (width>=1280px){header.global-navigation:not(.is-compact) .feds-gnav-cards:has(.promo-card)>li:has(.promo-card,.links-card){width:calc(25% - 6px)}header.global-navigation:not(.is-compact) .feds-gnav-cards:has(.promo-card)>li:has(.promo-card){width:calc(50% - 4px)}header.global-navigation:not(.is-compact) .feds-gnav-cards:has(.promo-card)>li:has(>:nth-child(2)){flex-direction:row;width:calc(50% - 4px)}header.global-navigation:not(.is-compact) .feds-gnav-cards:has(.promo-card)>li:has(>:nth-child(2)) article{width:calc(50% - 4px)}}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-gnav-items>li:has(.feds-popup.small-menu){position:relative}header.global-navigation:not(.is-compact) .feds-popup.small-menu{border:1px solid var(--s2a-color-transparent-black-12,#0000001f);border-radius:var(--s2a-spacing-xs);box-sizing:border-box;width:auto;max-width:none;max-height:none;position:absolute;inset:100% auto auto 0;overflow:auto}header.global-navigation:not(.is-compact) .feds-popup.small-menu .links-card{padding:var(--s2a-spacing-md) var(--s2a-spacing-lg)}header.global-navigation:not(.is-compact) .feds-popup.small-menu.is-open{border-radius:var(--s2a-spacing-xs);margin-top:-8px;left:-24px;overflow-y:hidden}header.global-navigation:not(.is-compact) .feds-popup.small-menu .feds-gnav-cards{gap:var(--s2a-spacing-xs);background-color:var(--s2a-color-background-default,white);border-radius:var(--s2a-spacing-xs);border-color:var(--s2a-color-transparent-black-12);flex-direction:column;padding:0;display:flex}header.global-navigation:not(.is-compact) .feds-popup.small-menu .feds-gnav-cards>li{flex:none;width:auto}header.global-navigation:not(.is-compact) .feds-popup.small-menu .feds-gnav-cards>li:has(>:nth-child(2)){flex-direction:column}header.global-navigation:not(.is-compact) .feds-popup.small-menu .links-card-title{display:none}header.global-navigation:not(.is-compact) .feds-popup.small-menu .links-card-links{flex-direction:column;gap:0;display:flex}header.global-navigation:not(.is-compact) .feds-popup.small-menu .links-card-links li{height:34px;padding:var(--s2a-spacing-xs,8px) 0;align-items:center;display:flex}header.global-navigation:not(.is-compact) .feds-popup.small-menu .links-card-links .feds-link:hover{text-decoration:underline}header.global-navigation:not(.is-compact) .feds-popup.small-menu .links-card-footer{margin-top:0}header.global-navigation:not(.is-compact) .feds-popup.small-menu .links-card-footer .feds-secondary-cta{font-family:var(--s2a-font-family-label,"Adobe_Clean", sans-serif);font-size:var(--s2a-typography-font-size-body-sm,14px);font-weight:var(--s2a-font-weight-adobe-clean-black,700);line-height:var(--s2a-typography-line-height-body-sm,18px);letter-spacing:0;color:var(--s2a-color-button-background-primary-solid-default,#3b63fb);white-space:nowrap;padding:var(--s2a-spacing-xs,8px) 0;background:0 0;border:none;justify-content:flex-start;align-items:center;width:auto;height:34px;text-decoration:none;display:flex}header.global-navigation:not(.is-compact) .feds-popup.small-menu .links-card-footer .feds-secondary-cta:hover{color:var(--s2a-color-button-background-primary-solid-default,#3b63fb);background:0 0;text-decoration:underline}header.global-navigation:not(.is-compact) nav:has(.small-menu.is-open):not(:has(.feds-popup.is-open:not(.small-menu))) .feds-backdrop{display:none}header.global-navigation:not(.is-compact) nav:has(.small-menu.is-open):not(:has(.feds-popup.is-open:not(.small-menu))):after{border-radius:0;height:64px;top:0}header.global-navigation:not(.is-compact) nav:has(.small-menu.is-open):has(.feds-breadcrumbs):not(:has(.feds-popup.is-open:not(.small-menu))):after{height:var(--feds-popup-bg-height)}header.global-navigation:not(.is-compact).feds-header-scrolled nav:has(.small-menu.is-open):not(:has(.feds-popup.is-open:not(.small-menu))):after{width:100%;-webkit-backdrop-filter:blur(var(--s2a-blur-sm));backdrop-filter:blur(var(--s2a-blur-sm));border-radius:var(--s2a-border-radius-16);background-color:#ffffff82;top:0;left:0}}.feds-popup.small-menu .links-card{padding:var(--s2a-spacing-md) var(--s2a-spacing-lg)}.feds-popup.small-menu .links-card .links-card-title{display:none}.feds-popup .feds-gnav-cards{padding:var(--s2a-spacing-lg);gap:var(--s2a-spacing-2xs);grid-template-columns:1fr;align-items:stretch;margin:0;list-style:none;display:grid}.feds-popup .feds-gnav-cards>li{min-width:0}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-popup .feds-gnav-cards{gap:var(--s2a-spacing-xs);flex-wrap:nowrap;width:100%;padding-top:0;display:flex;overflow-x:auto}header.global-navigation:not(.is-compact) .feds-popup .feds-gnav-cards>li{flex:1 1 0;min-width:0}header.global-navigation:not(.is-compact) .feds-popup .feds-gnav-cards:has(.promo-card)>li{flex:none}}.feds-gnav-cards .promo-card{height:199px;margin-bottom:var(--s2a-spacing-sm);position:relative}.feds-gnav-cards .promo-card__bg{width:100%;height:100%;display:block;position:absolute}.feds-gnav-cards .promo-card__bg-image{border-radius:var(--s2a-border-radius-24);object-fit:cover;width:100%;height:100%;display:block}.feds-gnav-cards .promo-card__content{background:0 0;width:100%;height:100%;position:absolute;top:0;left:0}.feds-gnav-cards .promo-card__icon{top:var(--s2a-spacing-md);left:var(--s2a-spacing-md);width:var(--s2a-spacing-lg);height:var(--s2a-spacing-lg);position:absolute}[dir=rtl] .feds-gnav-cards .promo-card__icon{right:var(--s2a-spacing-md)}[dir=rtl] .feds-gnav-cards .promo-card__text-content{right:0}.feds-gnav-cards .promo-card__text-content{padding:var(--s2a-spacing-md);display:block;position:absolute;bottom:0;left:0}.feds-gnav-cards .promo-card__price,.feds-gnav-cards .promo-card__title{color:var(--s2a-color-gray-25);margin:0}.feds-gnav-cards .promo-card__price{font-weight:var(--s2a-font-weight-adobe-clean-bold);font-size:var(--s2a-font-size-md);line-height:var(--s2a-font-line-height-24);letter-spacing:-1%}.feds-gnav-cards .promo-card__title{font-weight:var(--s2a-font-weight-adobe-clean-black);font-size:var(--s2a-typography-font-size-heading-5);line-height:var(--s2a-typography-line-height-heading-5);letter-spacing:var(--s2a-typography-letter-spacing-heading-5);font-family:var(--heading-font-family)}.feds-gnav-cards .promo-card__cta{margin-top:var(--s2a-spacing-lg);display:block}.feds-gnav-cards .promo-card__cta .feds-secondary-cta{letter-spacing:0;background:var(--s2a-color-gray-25);color:var(--s2a-color-gray-1000);padding:11px var(--s2a-spacing-lg) var(--s2a-spacing-sm);font-weight:var(--s2a-font-weight-adobe-clean-bold);font-size:var(--s2a-typography-font-size-label);line-height:var(--s2a-typography-line-height-label);letter-spacing:var(--s2a-typography-letter-spacing-label);border:none;transition:background-color .3s,color .3s}.feds-gnav-cards .promo-card__cta .feds-secondary-cta:hover,.feds-gnav-cards .promo-card__cta .feds-secondary-cta:focus{background:var(--s2a-color-gray-1000);color:var(--s2a-color-gray-25)}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card{height:100%;min-height:420px}header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card__bg-image{border-radius:var(--s2a-border-radius-md)}header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card__cta{margin-top:var(--s2a-spacing-md)}}@media (width>=1280px){header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card{min-height:auto}header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card__bg-image{border-radius:var(--s2a-border-radius-12)}header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card__icon{top:var(--s2a-spacing-lg);left:var(--s2a-spacing-lg);position:absolute}header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card__text-content{box-sizing:border-box;width:100%;padding:var(--s2a-spacing-lg)}header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card__cta{bottom:var(--s2a-spacing-lg);right:var(--s2a-spacing-lg);margin-top:0;position:absolute}}.feds-gnav-cards .promo-card-small{border-radius:var(--s2a-border-radius-24);height:199px;margin-bottom:var(--s2a-spacing-sm);position:relative;overflow:hidden}.feds-gnav-cards .promo-card-small__bg{width:100%;height:100%;display:block;position:absolute;inset:0}.feds-gnav-cards .promo-card-small__bg-image{object-fit:cover;width:100%;height:100%;display:block}.feds-gnav-cards .promo-card-small:after{content:"";background:linear-gradient(104.97deg, var(--s2ac\\/palette\\/transparent-black\\/600,#0000008f) 0%, var(--s2ac\\/palette\\/transparent-black\\/400,#00000038) 99%);border-radius:inherit;pointer-events:none;position:absolute;inset:0}.feds-gnav-cards .promo-card-small__content{padding:var(--s2a-spacing-lg);z-index:1;flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0}.feds-gnav-cards .promo-card-small__text{gap:var(--s2a-spacing-sm);color:var(--s2a-color-static-white,white);flex-direction:column;display:flex}.feds-gnav-cards .promo-card-small__title{font-family:var(--heading-font-family);font-size:var(--s2a-typography-font-size-heading-5);font-weight:var(--s2a-font-weight-adobe-clean-black);line-height:var(--s2a-typography-line-height-heading-5);letter-spacing:var(--s2a-typography-letter-spacing-heading-5);color:inherit;margin:0}.feds-gnav-cards .promo-card-small__body{font-size:var(--s2a-typography-font-size-body-sm);font-weight:var(--s2a-font-weight-adobe-clean-regular);line-height:var(--s2a-typography-line-height-body-sm);letter-spacing:var(--s2a-typography-letter-spacing-body-sm);color:inherit;margin:0}.feds-gnav-cards .promo-card-small__cta .feds-secondary-cta{border:var(--s2a-border-width-md,2px) solid var(--s2a-color-button-border-primary-outlined-on-dark,white);color:var(--s2a-color-button-border-primary-outlined-on-dark,var(--s2a-color-gray-25));background:0 0;justify-content:center;align-items:center;transition:background-color .3s,color .3s;display:inline-flex}.feds-gnav-cards .promo-card-small__cta .feds-secondary-cta:hover,.feds-gnav-cards .promo-card-small__cta .feds-secondary-cta:focus{background:#ffffff26}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card-small{border-radius:var(--s2a-border-radius-md);height:100%;min-height:420px}header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card-small__bg-image{border-radius:var(--s2a-border-radius-md)}}@media (width>=1280px){header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card-small{border-radius:var(--s2a-border-radius-12);min-height:auto}header.global-navigation:not(.is-compact) .feds-gnav-cards .promo-card-small__bg-image{border-radius:var(--s2a-border-radius-12)}}.feds-popup .links-card{border-radius:var(--s2a-border-radius-16);background:var(--s2a-color-gray-25);box-sizing:border-box;padding:var(--s2a-spacing-lg);margin-bottom:var(--s2a-spacing-sm);flex-direction:column;justify-content:space-between;display:flex}.feds-popup .links-card .links-card-title-container{flex-direction:row;align-items:center;display:flex}.feds-popup .links-card .links-card-title-container[aria-expanded=false] .links-card-title{margin-bottom:0}.feds-popup.small-menu .links-card .links-card-title-container{display:none}.feds-popup .links-card .links-card-chevron{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;margin-left:auto;display:inline-flex}.feds-popup.small-menu .links-card .links-card-chevron{display:none}.feds-popup .links-card .links-card-chevron svg{width:16px;height:16px;transition:transform .3s;transform:rotate(180deg)}.feds-popup .links-card .links-card-chevron svg path{stroke-width:.7px}.feds-popup .links-card.closed .links-card-title-container svg{transform:rotate(0)}[dir=rtl] .feds-popup .links-card .links-card-chevron{margin-left:0;margin-right:auto}@media (width<=1024px){.feds-popup .links-card .links-card-title-container~*,.feds-popup .links-card .links-card-footer{max-height:1000px;transition:max-height .4s;overflow:hidden}.feds-popup .links-card.closed .links-card-title-container~*,.feds-popup .links-card.closed .links-card-footer{max-height:0}.feds-popup .links-card.opening .links-card-links>li{opacity:0;animation:.4s cubic-bezier(.42,0,0,1) forwards sub-menu-items-enter;transform:translate(18px)}.feds-popup .links-card.opening .links-card-links>li:first-child{animation-delay:80ms}.feds-popup .links-card.opening .links-card-links>li:nth-child(2){animation-delay:.12s}.feds-popup .links-card.opening .links-card-links>li:nth-child(3){animation-delay:.16s}.feds-popup .links-card.opening .links-card-links>li:nth-child(4){animation-delay:.2s}.feds-popup .links-card.opening .links-card-links>li:nth-child(5){animation-delay:.24s}.feds-popup .links-card.opening .links-card-links>li:nth-child(6){animation-delay:.28s}.feds-popup .links-card.opening .links-card-links>li:nth-child(7){animation-delay:.32s}.feds-popup .links-card.opening .links-card-links>li:nth-child(8){animation-delay:.36s}.feds-popup .links-card.opening .links-card-links>li:nth-child(9){animation-delay:.4s}.feds-popup .links-card.opening .links-card-links>li:nth-child(10){animation-delay:.44s}.feds-popup .links-card.opening .links-card-footer{opacity:0;animation:.4s cubic-bezier(.42,0,0,1) .32s forwards sub-menu-items-enter;transform:translate(18px)}}header.global-navigation.is-compact .feds-popup .links-card .links-card-title-container~*,header.global-navigation.is-compact .feds-popup .links-card .links-card-footer{max-height:1000px;transition:max-height .4s;overflow:hidden}header.global-navigation.is-compact .feds-popup .links-card.closed .links-card-title-container~*,header.global-navigation.is-compact .feds-popup .links-card.closed .links-card-footer{max-height:0}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li{opacity:0;animation:.4s cubic-bezier(.42,0,0,1) forwards sub-menu-items-enter;transform:translate(18px)}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:first-child{animation-delay:80ms}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:nth-child(2){animation-delay:.12s}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:nth-child(3){animation-delay:.16s}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:nth-child(4){animation-delay:.2s}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:nth-child(5){animation-delay:.24s}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:nth-child(6){animation-delay:.28s}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:nth-child(7){animation-delay:.32s}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:nth-child(8){animation-delay:.36s}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:nth-child(9){animation-delay:.4s}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-links>li:nth-child(10){animation-delay:.44s}header.global-navigation.is-compact .feds-popup .links-card.opening .links-card-footer{opacity:0;animation:.4s cubic-bezier(.42,0,0,1) .32s forwards sub-menu-items-enter;transform:translate(18px)}nav.localnav .feds-popup:not(.small-menu) .links-card{margin-bottom:var(--s2a-spacing-xs)}.feds-popup .links-card .links-card-title{font-size:var(--s2a-typography-font-size-heading-5);line-height:var(--s2a-typography-line-height-heading-5);letter-spacing:var(--s2a-typography-letter-spacing-heading-5);font-weight:var(--s2a-font-weight-adobe-clean-black);color:var(--s2a-color-gray-1000);font-family:var(--heading-font-family);margin:0;margin-bottom:var(--s2a-spacing-sm);transition:margin-bottom .4s}.feds-popup .links-card .links-card-links{margin:0;padding:0;line-height:120%;list-style:none}.feds-popup .links-card .links-card-links li{padding:var(--s2a-spacing-xs) 0;display:flex}.feds-popup .links-card .links-card-links .feds-link{color:var(--s2a-color-gray-1000);font-size:var(--s2a-font-size-sm);font-weight:var(--s2a-font-weight-adobe-clean-regular);padding:0;display:inline-flex}.feds-popup .links-card .links-card-links .links-card-links__item-link{align-items:flex-start;gap:var(--s2a-spacing-2xs,4px);flex-direction:column}.feds-popup .links-card .links-card-links .links-card-links__item-description{font-size:var(--s2a-font-family-body);color:var(--s2a-color-content-default);line-height:var(--s2a-typography-line-height-body-sm);font-weight:var(--s2a-font-weight-adobe-clean-regular);letter-spacing:var(--s2a-typography-letter-spacing-body-sm);white-space:break-spaces}.feds-popup .links-card .links-card-links .feds-link--highlight{color:var(--s2a-color-button-background-primary-solid-default,#3b63fb);font-weight:700}.links-card-links__item-title{font-weight:700;font-size:var(--s2a-typography-font-size-eyebrow);line-height:var(--s2a-typography-line-height-eyebrow);letter-spacing:var(--s2a-typography-letter-spacing-eyebrow)}.feds-popup .links-card .links-card-footer{width:100%;margin-top:var(--s2a-spacing-sm)}.feds-popup .links-card .links-card-footer .feds-secondary-cta{box-sizing:border-box;background-color:#0000;justify-content:center;width:100%}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-popup .links-card{border-radius:var(--s2a-border-radius-16);padding:var(--s2a-spacing-lg) var(--s2a-spacing-lg) var(--s2a-spacing-md)}header.global-navigation:not(.is-compact) .feds-popup .links-card .links-card-chevron{display:none}header.global-navigation:not(.is-compact) .feds-popup .links-card .links-card-footer .feds-secondary-cta{color:var(--s2a-color-gray-1000);background-color:#0000}header.global-navigation:not(.is-compact) .feds-popup .links-card .links-card-footer .feds-secondary-cta:hover{color:var(--s2a-color-gray-25);background-color:var(--s2a-color-gray-1000)}}@media (width>=1280px){header.global-navigation:not(.is-compact) .feds-popup .links-card{padding-bottom:var(--s2a-spacing-lg)}}.feds-popup .product-list{align-items:start;gap:var(--s2a-spacing-lg);padding:var(--s2a-spacing-lg);border-radius:var(--s2a-border-radius-md);grid-template-columns:1fr;width:100%;display:grid}.product-list .tabs,.product-list .tab-content,.product-list .product-links{margin:0;padding:0;list-style:none}.product-list .tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;background-color:#0000;flex-wrap:nowrap;gap:4px;display:flex;overflow:auto hidden}.feds-popup .product-list .tabs{margin-left:calc(0px - var(--s2a-spacing-lg));margin-right:calc(0px - var(--s2a-spacing-lg));padding:0 var(--s2a-spacing-lg) var(--s2a-spacing-lg) var(--s2a-spacing-lg)}.product-list .tabs::-webkit-scrollbar{display:none}.product-list .tabs li{flex:none;list-style:none}.product-list .tabs button.tab{white-space:nowrap;width:max-content;min-height:40px;padding:var(--s2a-spacing-md) var(--s2a-spacing-lg);text-align:center;font-family:var(--body-font-family);font-size:var(--s2a-font-size-sm);font-weight:var(--s2a-font-weight-adobe-clean-bold);color:var(--s2a-color-content-default);cursor:pointer;background:#0000000a;border:0;border-radius:75px;justify-content:center;align-items:center;line-height:8px;display:inline-flex}.product-list .tabs button.tab[aria-selected=true]{background:var(--s2a-color-gray-1000);color:var(--s2a-color-gray-25)}.product-list .tabs button.tab:hover:not([aria-selected=true]){color:var(--s2a-color-gray-25);background-color:var(--s2a-color-content-subtle)}.product-list .tab-content>li{list-style:none}.product-list .tab-content [role=tabpanel][hidden]{display:none}.product-list .tab-content [role=tabpanel]{gap:var(--s2a-spacing-2xs);grid-template-columns:1fr;margin:0;padding:0;list-style:none;display:grid}.product-list .tab-content [role=tabpanel] li{display:flex}.product-list .tab-content [role=tabpanel] .feds-product-card{background-color:var(--s2a-color-gray-25);outline:none;flex-direction:column;flex:1;justify-content:space-between;min-height:120px;display:flex}.product-list .tab-content [role=tabpanel] .feds-product-card:focus-visible{box-shadow:inset 0 0 0 2px var(--s2a-color-blue-800)}.feds-popup .product-list .tab-content [role=tabpanel] .feds-product-card:hover{background:var(--s2a-color-gray-1000)}.feds-popup .product-list .tab-content [role=tabpanel] .feds-product-card:hover .feds-product-card__title{color:var(--s2a-color-gray-25)}.product-list .product-links a{color:var(--s2a-color-content-default)}.product-list .product-links .feds-link{align-items:center;gap:6px;display:inline-flex}.product-list .product-links .feds-link svg{flex-shrink:0;width:3px;height:6px}[dir=rtl] .product-links .feds-link svg,[dir=rtl] .featured-card .feds-link svg{transform:scaleX(-1)}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-popup .product-list{gap:var(--s2a-spacing-xs);padding:0 var(--s2a-spacing-lg) var(--s2a-spacing-lg);grid-template-columns:1fr minmax(0,3fr)}header.global-navigation:not(.is-compact) .product-list .tabs{display:block;overflow:visible}header.global-navigation:not(.is-compact) .feds-popup .product-list .tabs{margin:0;padding:0}header.global-navigation:not(.is-compact) .product-list .tabs li{flex:unset}header.global-navigation:not(.is-compact) .product-list .tabs button.tab{width:auto;min-height:44px;margin-bottom:var(--s2a-spacing-2xs)}header.global-navigation:not(.is-compact) .product-list .tab-content [role=tabpanel]{gap:var(--s2a-spacing-xs);grid-template-columns:repeat(3,1fr)}}@media (width>=1920px){header.global-navigation:not(.is-compact) .feds-popup .product-list{grid-template-columns:auto minmax(0,3fr)}header.global-navigation:not(.is-compact) .feds-popup .product-list .tab-content [role=tabpanel]{grid-template-columns:repeat(5,1fr)}header.global-navigation:not(.is-compact) .feds-popup .product-list .tabs{margin-right:var(--s2a-spacing-4xl)}}.product-hint{display:none}.global-navigation .panels{padding:36px clamp(var(--s2a-spacing-lg), 4vw, 56px) var(--s2a-spacing-40);gap:var(--s2a-spacing-xl);box-sizing:border-box;width:min(1200px,100%);color:var(--s2a-color-gray-1000);width:100%;margin:0 auto;list-style:none}.panels>li{background-color:var(--s2a-color-gray-75);border-radius:var(--s2a-border-radius-md);flex-direction:column;align-items:stretch;min-width:0;display:flex}.feds-popup .panels .feds-secondary-cta{margin-top:auto;margin-bottom:var(--s2a-spacing-sm);align-self:center;width:75%}.panels h4{font-family:var(--heading-font-family);font-size:var(--s2a-font-size-2xl);line-height:var(--s2a-font-line-height-20);margin-left:var(--s2a-spacing-lg)}.global-navigation .panels .link-panel{margin:0 0 0 var(--s2a-spacing-lg);padding:0;list-style:none}.global-navigation .panels .link-panel+.feds-link{color:var(--s2a-color-gray-1000);margin-left:var(--s2a-spacing-lg);margin-top:auto;padding-left:0}.global-navigation .panels .link-panel+.feds-link:after{content:"";width:var(--s2a-spacing-2xs);height:var(--s2a-spacing-2xs);border-right:var(--s2a-border-width-md) solid var(--s2a-color-gray-1000);border-top:var(--s2a-border-width-md) solid var(--s2a-color-gray-1000);transform:translateY(8%) translateX(var(--s2a-spacing-xs)) rotate(45deg)}.panels .link-panel .feds-link,.panels .panel-footer-link .feds-link{padding:var(--s2a-spacing-sm) 0;font-size:var(--s2a-font-size-sm);font-weight:var(--s2a-font-weight-adobe-clean-bold);color:var(--s2a-color-gray-1000);align-items:center;margin:0;line-height:1.35;text-decoration:none;display:inline-flex}.panels .link-panel-container>.feds-secondary-cta,.panels>li>.feds-secondary-cta{margin-top:var(--s2a-spacing-sm)}.panels>li:has(>.list-image-panel){background-color:var(--s2a-color-gray-1000);border:var(--s2a-border-width-lg) var(--s2a-color-gray-1000) solid}.list-image-panel{color:var(--s2a-color-gray-25);align-items:stretch;gap:var(--s2a-spacing-sm);background-color:#0000;height:100%;display:flex}.list-image-panel .link-panel-container{flex-direction:column;min-width:250px;display:flex}.panels .list-image-panel .feds-link{color:var(--s2a-color-gray-25)}.panels .list-image-panel .feds-secondary-cta{color:var(--s2a-color-gray-25);margin:auto 0 var(--s2a-spacing-sm) 0;width:calc(100% - var(--s2a-spacing-lg))}.panels .list-image-panel .feds-secondary-cta:hover{color:var(--s2a-color-gray-1000)}.panels .list-image-panel li{border-radius:var(--s2a-border-radius-sm);padding:var(--s2a-spacing-sm)}.panels .list-image-panel li a.feds-link{padding:0}.panels .list-image-panel li:hover{background-color:var(--s2a-color-gray-25);position:relative}.panels .list-image-panel li:hover .feds-link{color:var(--s2a-color-gray-1000)}.panels .list-image-panel li:hover .feds-link:after{content:"";right:var(--s2a-spacing-sm);width:var(--s2a-spacing-2xs);height:var(--s2a-spacing-2xs);border-right:var(--s2a-border-width-md) solid var(--s2a-color-gray-1000);border-top:var(--s2a-border-width-md) solid var(--s2a-color-gray-1000);position:absolute;transform:translateY(8%)translate(100%)rotate(45deg)}.list-image-panel picture{display:block}.list-image-panel picture img{object-fit:cover;border-radius:14px;width:auto;height:100%;max-height:100%;display:block}.image-panel{border-radius:var(--s2a-border-radius-md);isolation:isolate;min-height:320px;display:grid;position:relative;overflow:hidden}.image-panel>picture{grid-area:1/1;height:100%;display:block}.image-panel>picture img{object-fit:cover;width:100%;height:100%;display:block}.image-panel .overlay{gap:var(--s2a-spacing-sm);color:var(--s2a-color-gray-25);background:linear-gradient(180deg, #0000 0%, var(--s2a-color-transparent-black-64) 70%);grid-area:1/1;grid-template-columns:300px auto auto;grid-template-rows:var(--s2a-spacing-3xl) auto 50px;padding:18px 18px 20px;display:grid}.image-panel .icon{grid:1 / 1 / 1 / 1;width:34px;height:34px}.image-panel .icon img{width:100%;height:100%;display:block}.image-panel .text{grid-area:3/1/3/1;gap:3px;display:grid}.image-panel .text span:first-child{font-size:var(--s2a-font-size-sm);font-weight:var(--s2a-font-weight-adobe-clean-bold);line-height:1.2}.image-panel .text span:last-child{font-family:var(--heading-font-family);font-size:21px;font-weight:var(--s2a-font-weight-adobe-clean-extrabold);line-height:1.2}.image-panel-button{border-radius:var(--s2a-border-radius-round);width:fit-content;min-height:34px;color:var(--s2a-color-gray-1000);font-size:var(--s2a-font-size-sm);font-weight:var(--s2a-font-weight-adobe-clean-bold);background-color:var(--s2a-color-gray-25);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);grid-area:3/3/3/3;justify-content:center;justify-self:end;align-items:center;padding:0 14px;text-decoration:none;display:inline-flex}@media (width<=1023px){.panels{padding:22px var(--s2a-spacing-md) 28px;grid-template-rows:none!important;grid-template-columns:none!important;display:block!important}.panels>li+li{margin-top:22px}.list-image-panel{grid-template-columns:1fr;grid-template-areas:"header""image""list";row-gap:14px}}header.global-navigation.is-compact .panels{padding:22px var(--s2a-spacing-md) 28px;grid-template-rows:none!important;grid-template-columns:none!important;display:block!important}header.global-navigation.is-compact .panels>li+li{margin-top:22px}header.global-navigation.is-compact .list-image-panel{grid-template-columns:1fr;grid-template-areas:"header""image""list";row-gap:14px}.feds-popup .featured-card{background:var(--s2a-color-gray-25);box-sizing:border-box;padding:var(--s2a-spacing-lg);height:100%;margin-bottom:var(--s2a-spacing-sm);border-radius:24px;flex-direction:column;justify-content:space-between;align-items:flex-start;display:flex;overflow:hidden}.feds-popup .featured-card .featured-eyebrow{color:var(--s2a-color-content-body-subtle);font-family:var(--body-font-family);font-size:var(--s2a-typography-font-size-label);font-weight:var(--s2a-font-weight-adobe-clean-bold);letter-spacing:var(--s2a-typography-letter-spacing-label);line-height:var(--s2a-typography-line-height-label)}.feds-popup .featured-card h2{font-family:var(--heading-font-family);font-size:var(--s2a-typography-font-size-heading-5);line-height:var(--s2a-typography-line-height-heading-5);letter-spacing:var(--s2a-typography-letter-spacing-heading-5);color:var(--s2a-color-content-default);padding:var(--s2a-spacing-md) 0 var(--s2a-spacing-xs) 0;font-weight:var(--s2a-font-weight-adobe-clean-black);margin:0}.featured-card .featured-subtitle{font-size:var(--s2a-font-size-sm);color:var(--s2a-color-content-subtle);line-height:120%}.featured-card .feds-link{padding:var(--s2a-spacing-md) 0;color:var(--s2a-color-gray-1000);gap:6px;display:inline-flex}.featured-card span{flex-direction:row;justify-content:flex-start;align-items:center;gap:6px;display:flex}.featured-card span svg{color:var(--s2a-color-gray-1000);width:3px;height:8px;margin-top:2px}.featured-card a.feds-secondary-cta{background:var(--s2a-color-gray-1000);color:var(--s2a-color-gray-25)}.featured-card .footer-container{width:100%}.featured-card .footer-container a{box-sizing:border-box;width:100%}.featured-card .footer-container a.feds-secondary-cta:hover{background:var(--s2a-color-gray-1000)}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-popup .featured-card{border-radius:12px}header.global-navigation:not(.is-compact) .featured-card a.feds-secondary-cta{color:var(--s2a-color-gray-1000);border:var(--s2a-border-width-sm) solid var(--s2a-color-gray-1000);background:0 0}header.global-navigation:not(.is-compact) .feds-popup .feds-gnav-cards:has(.featured-card){flex-wrap:unset;overflow-x:unset;grid-template-columns:repeat(3,1fr);display:grid}}@media (width>=1280px){header.global-navigation:not(.is-compact) .feds-popup .feds-gnav-cards:has(.featured-card){grid-template-columns:repeat(5,1fr)}header.global-navigation:not(.is-compact) .feds-popup .featured-card{min-height:307px}}@media (width>=1024px) and (hover:hover){header.global-navigation:not(.is-compact) .featured-card a.feds-secondary-cta{transition:background .2s,color .2s,border-color .2s}header.global-navigation:not(.is-compact) .featured-card a.feds-secondary-cta:hover{background:var(--s2a-color-gray-1000);color:var(--s2a-color-gray-25);border-color:var(--s2a-color-gray-25)}}.feds-localnav-bar{display:none}header.feds-header-scrolled.feds-localnav-closing nav.localnav{inset:auto}nav.localnav .feds-popup:not(.small-menu) .feds-popup-back-button svg{display:none}@media (width<=1023px){.global-navigation nav.localnav .feds-gnav-items>li:first-child>.feds-link{display:none}.global-navigation nav.localnav .feds-gnav-items>li>.feds-primary-cta,.global-navigation nav.localnav .feds-gnav-items>li>.feds-secondary-cta{margin:0}.global-navigation nav.localnav .feds-gnav-items>li>.feds-primary-cta{color:var(--s2a-color-button-content-primary-solid-default);margin-top:var(--s2a-spacing-lg);background-color:#3b63fb;border:none}.global-navigation nav.localnav .feds-gnav-items>li>.feds-primary-cta:hover{color:var(--s2a-color-button-content-primary-solid-default);background-color:#3b63fb;border:none}.global-navigation nav.localnav>ul>li.feds-menu-wrapper:has(.feds-popup.is-open){opacity:1;visibility:visible}.global-navigation nav.localnav>ul>li.feds-menu-wrapper{opacity:1;visibility:visible;width:100%;height:auto;color:inherit;z-index:2;background-color:#0000;margin:0;padding:0;display:block;position:absolute;top:100%;left:0;right:0}header.global-navigation:has(nav.localnav){transition:top .3s}header.global-navigation:has(nav.localnav>ul>li.feds-menu-wrapper.is-open){top:calc(0px - var(--s2a-spacing-64))}.global-navigation nav.localnav .feds-localnav-bar{box-sizing:border-box;width:100%;height:var(--feds-breadcrumbs-height);padding:var(--s2a-spacing-md);border:0;border-top:var(--s2a-border-width-sm) solid #ffffff3d;color:var(--s2a-color-gray-25);cursor:pointer;font-family:var(--body-font-family);font-weight:700;font-size:var(--s2a-typography-font-size-label);line-height:var(--s2a-typography-line-height-label);letter-spacing:var(--s2a-typography-letter-spacing-label);text-align:left;background:0 0;justify-content:space-between;align-items:center;display:flex;position:relative;overflow:visible}.global-navigation.dark-font nav.localnav .feds-localnav-bar{color:var(--s2a-color-gray-1000);border-top-color:var(--s2a-color-transparent-black-08)}.global-navigation nav.localnav:has(.feds-localnav-bar[aria-expanded=true]){margin-top:0}.global-navigation.feds-header-scrolled nav.localnav .feds-localnav-bar,.global-navigation:has(.feds-menu-wrapper.is-open,.feds-popup.is-open) nav.localnav .feds-localnav-bar{color:var(--s2a-color-content-default);border-top-color:#0000001f}.global-navigation nav.localnav .feds-localnav-bar:after{content:"";border-bottom:1px solid;border-right:1px solid;width:6px;height:6px;transition:transform .3s;transform:translateY(-2px)rotate(45deg)}.global-navigation nav.localnav>ul>li.feds-menu-wrapper.is-open .feds-localnav-bar:after{transform:translateY(2px)rotate(225deg)}.global-navigation nav.localnav>ul>li.feds-menu-wrapper.is-open .feds-localnav-bar:before{content:"";border-bottom:var(--s2a-border-width-sm) solid #0000001f;position:absolute;bottom:0;left:calc(50% - 50vw);right:calc(50% - 50vw)}.global-navigation nav.localnav>ul>li.feds-menu-wrapper>ul.feds-gnav-items{max-height:0;padding:0;transition:max-height .3s;overflow:hidden}.global-navigation nav.localnav>ul>li.feds-menu-wrapper.is-open>ul.feds-gnav-items,.global-navigation nav.localnav>ul>li.feds-menu-wrapper.feds-menu-active>ul.feds-gnav-items{padding:var(--s2a-spacing-xs) var(--s2a-spacing-md) var(--s2a-spacing-sm);overflow-y:auto}.global-navigation nav.localnav:has(.feds-popup.is-open)>ul>li.feds-menu-wrapper.feds-menu-active>ul.feds-gnav-items{overflow-y:hidden}.global-navigation nav.localnav>ul>li.feds-menu-wrapper.is-open>ul.feds-gnav-items{max-height:calc(100dvh - var(--s2a-spacing-64) - var(--feds-breadcrumbs-height));transition:max-height .4s}.global-navigation nav.localnav .feds-gnav-items.subscreen-opening>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){animation-delay:0s!important}.global-navigation nav.localnav .feds-gnav-items.subscreen-closing>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){animation-delay:.24s!important}nav.localnav .feds-popup{top:calc(var(--feds-breadcrumbs-height) - 1px);max-height:calc(100dvh - var(--feds-breadcrumbs-height));height:fit-content;overflow-x:hidden}nav.localnav:not(:has(.feds-menu-wrapper.is-open)) .feds-popup{top:var(--s2a-spacing-64);max-height:calc(100dvh - var(--s2a-spacing-64))}.global-navigation nav.localnav:has(.feds-popup.is-open):not(:has(.feds-menu-wrapper.is-open)) .feds-localnav-bar{display:none}.global-navigation nav.localnav:has(.feds-popup.is-open):not(:has(.feds-menu-wrapper.is-open)) .feds-popup.is-open>ul.feds-breadcrumbs{border-top:0}.global-navigation nav.localnav:has(.feds-menu-wrapper.is-open) .feds-popup.is-open>ul.feds-breadcrumbs,header.global-navigation nav.localnav>.feds-breadcrumbs{display:none}}header.global-navigation.is-compact nav.localnav .feds-gnav-items>li:first-child>.feds-link{display:none}header.global-navigation.is-compact nav.localnav .feds-gnav-items>li>.feds-primary-cta,header.global-navigation.is-compact nav.localnav .feds-gnav-items>li>.feds-secondary-cta{margin:0}header.global-navigation.is-compact nav.localnav .feds-gnav-items>li>.feds-primary-cta{color:var(--s2a-color-button-content-primary-solid-default);margin-top:var(--s2a-spacing-lg);background-color:#3b63fb;border:none}header.global-navigation.is-compact nav.localnav .feds-gnav-items>li>.feds-primary-cta:hover{color:var(--s2a-color-button-content-primary-solid-default);background-color:#3b63fb;border:none}header.global-navigation.is-compact nav.localnav:has(.feds-localnav-bar[aria-expanded=true]){margin-top:0}header.global-navigation.is-compact nav.localnav>ul>li.feds-menu-wrapper:has(.feds-popup.is-open){opacity:1;visibility:visible}header.global-navigation.is-compact nav.localnav>ul>li.feds-menu-wrapper{opacity:1;visibility:visible;width:100%;height:auto;color:inherit;z-index:2;background-color:#0000;flex-direction:column;flex-grow:0;justify-content:flex-start;margin:0;padding:0;display:block;position:absolute;top:100%;left:0;right:0}header.global-navigation.is-compact:has(nav.localnav){transition:top .3s}header.global-navigation.is-compact:has(nav.localnav>ul>li.feds-menu-wrapper.is-open){top:calc(0px - var(--s2a-spacing-64))}header.global-navigation.is-compact nav.localnav .feds-localnav-bar{box-sizing:border-box;width:100%;height:var(--feds-breadcrumbs-height);padding:var(--s2a-spacing-md);border:0;border-top:var(--s2a-border-width-sm) solid #ffffff3d;color:var(--s2a-color-gray-25);cursor:pointer;font-family:var(--body-font-family);font-weight:700;font-size:var(--s2a-typography-font-size-label);line-height:var(--s2a-typography-line-height-label);letter-spacing:var(--s2a-typography-letter-spacing-label);text-align:left;background:0 0;justify-content:space-between;align-items:center;display:flex;position:relative;overflow:visible}header.global-navigation.is-compact.dark-font nav.localnav .feds-localnav-bar{color:var(--s2a-color-gray-1000);border-top-color:var(--s2a-color-transparent-black-08)}header.global-navigation.is-compact.feds-header-scrolled nav.localnav .feds-localnav-bar,header.global-navigation.is-compact:has(.feds-menu-wrapper.is-open,.feds-popup.is-open) nav.localnav .feds-localnav-bar{color:var(--s2a-color-content-default);border-top-color:#0000001f}header.global-navigation.is-compact nav.localnav .feds-localnav-bar:after{content:"";border-bottom:1px solid;border-right:1px solid;width:6px;height:6px;transition:transform .3s;transform:translateY(-2px)rotate(45deg)}header.global-navigation.is-compact nav.localnav>ul>li.feds-menu-wrapper.is-open .feds-localnav-bar:after{transform:translateY(2px)rotate(225deg)}header.global-navigation.is-compact nav.localnav>ul>li.feds-menu-wrapper.is-open .feds-localnav-bar:before{content:"";border-bottom:var(--s2a-border-width-sm) solid #0000001f;position:absolute;bottom:0;left:calc(50% - 50vw);right:calc(50% - 50vw)}header.global-navigation.is-compact nav.localnav>ul>li.feds-menu-wrapper>ul.feds-gnav-items{max-height:0;padding:0;transition:max-height .3s;overflow:hidden}header.global-navigation.is-compact nav.localnav>ul>li.feds-menu-wrapper.is-open>ul.feds-gnav-items,header.global-navigation.is-compact nav.localnav>ul>li.feds-menu-wrapper.feds-menu-active>ul.feds-gnav-items{padding:var(--s2a-spacing-xs) var(--s2a-spacing-md) var(--s2a-spacing-sm);overflow-y:auto}header.global-navigation.is-compact nav.localnav:has(.feds-popup.is-open)>ul>li.feds-menu-wrapper.feds-menu-active>ul.feds-gnav-items{overflow-y:hidden}header.global-navigation.is-compact nav.localnav>ul>li.feds-menu-wrapper.is-open>ul.feds-gnav-items{max-height:calc(100dvh - var(--s2a-spacing-64) - var(--feds-breadcrumbs-height));transition:max-height .4s}header.global-navigation.is-compact nav.localnav .feds-gnav-items.subscreen-opening>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){animation-delay:0s!important}header.global-navigation.is-compact nav.localnav .feds-gnav-items.subscreen-closing>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){animation-delay:.24s!important}header.global-navigation.is-compact nav.localnav .feds-popup{top:calc(var(--feds-breadcrumbs-height) - 1px);max-height:calc(100dvh - var(--feds-breadcrumbs-height));height:fit-content;overflow-x:hidden}header.global-navigation.is-compact nav.localnav:not(:has(.feds-menu-wrapper.is-open)) .feds-popup{top:var(--s2a-spacing-64);max-height:calc(100dvh - var(--s2a-spacing-64))}header.global-navigation.is-compact nav.localnav:has(.feds-popup.is-open):not(:has(.feds-menu-wrapper.is-open)) .feds-localnav-bar{display:none}header.global-navigation.is-compact nav.localnav:has(.feds-popup.is-open):not(:has(.feds-menu-wrapper.is-open)) .feds-popup.is-open>ul.feds-breadcrumbs{border-top:0}header.global-navigation.is-compact nav.localnav:has(.feds-menu-wrapper.is-open) .feds-popup.is-open>ul.feds-breadcrumbs,header.global-navigation.is-compact nav.localnav>.feds-breadcrumbs{display:none}@media (width>=1024px){header.global-navigation:not(.is-compact) nav.localnav .feds-gnav-items>li.divider{align-items:center;display:inline-flex}header.global-navigation:not(.is-compact) nav.localnav .feds-gnav-items>li.divider:before{content:"";background-color:var(--s2a-color-transparent-white-16);width:1px;height:15px;display:inline-block}header.global-navigation:not(.is-compact).dark-font nav.localnav .feds-gnav-items>li.divider:before,header.global-navigation:not(.is-compact).feds-header-scrolled nav.localnav .feds-gnav-items>li.divider:before,header.global-navigation:not(.is-compact):has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) nav.localnav .feds-gnav-items>li.divider:before{background-color:var(--s2a-color-transparent-black-16)}}@media (width<=768px){.global-navigation nav.localnav .feds-gnav-items>li>.feds-primary-cta,.global-navigation nav.localnav .feds-gnav-items>li>.feds-secondary-cta{box-sizing:border-box;text-align:center;justify-content:center;width:100%}}.feds-skip-link{z-index:100;width:1px;height:1px;margin:0;padding:0;position:absolute;top:0;left:0;overflow:hidden}.trap-focus-gnav{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;display:none;position:absolute;overflow:hidden}nav:has(.feds-menu-active) .trap-focus-gnav{display:block}.feds-skip-link:focus{outline:2px solid var(--s2a-color-blue-800);outline-offset:1px}:root{--feds-breadcrumbs-height:52px}header.global-navigation{visibility:visible;z-index:10;--feds-popup-bg-height:100%;background:0 0;justify-content:center;width:100%;display:flex;position:fixed;top:0;left:0}header.feds-header-scrolled .feds-link{color:var(--s2a-color-gray-1000)}header.feds-header-scrolled nav{color:var(--s2a-color-gray-1000);box-shadow:0 67px 19px #0000,0 43px 17px #00000003,0 24px 14px #0000000a,0 11px 11px #00000012,0 3px 6px #00000014}.global-navigation .universal-nav-container .profile-signed-out button{color:var(--s2a-color-gray-1000);border:1px solid var(--s2a-color-gray-25);background-color:var(--s2a-color-gray-25);border-radius:var(--s2a-border-radius-round);height:40px}.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .universal-nav-container .profile-signed-out button,.global-navigation.dark-font .universal-nav-container .profile-signed-out button{color:inherit;border-color:var(--s2a-color-gray-1000);background-color:#0000}.global-navigation.feds-header-scrolled .universal-nav-container .profile-signed-out button:hover,.global-navigation.feds-header-scrolled .universal-nav-container .profile-signed-out button:focus-visible{color:inherit;background-color:var(--s2a-color-gray-25)}.global-navigation .universal-nav-container #universal-nav{justify-content:flex-end}.global-navigation .feds-utilities{padding-right:var(--s2a-spacing-md);margin-left:auto}.global-navigation .feds-product-entry-cta{margin-left:auto;margin-right:var(--s2a-spacing-sm);align-items:center;display:flex}@media (width<=1024px){.global-navigation .feds-product-entry-cta{display:none}}[dir=rtl] .global-navigation .feds-product-entry-cta{margin-left:var(--s2a-spacing-sm);margin-right:auto}[dir=rtl] .global-navigation .feds-product-entry-cta+.feds-utilities{padding-right:0;padding-left:var(--s2a-spacing-md);margin-left:0}.global-navigation .feds-product-entry-cta+.feds-utilities{margin-left:0}.global-navigation ul.feds-gnav-items>li>.feds-primary-cta,.global-navigation ul.feds-gnav-items>li>.feds-secondary-cta{margin-left:var(--s2a-spacing-sm)}.global-navigation ul.feds-gnav-items>li>.feds-primary-cta,.global-navigation ul.feds-gnav-items>li>.feds-secondary-cta,.global-navigation .feds-product-entry-cta .feds-primary-cta,.global-navigation .feds-product-entry-cta .feds-secondary-cta{box-sizing:content-box;padding:10px var(--s2a-spacing-lg);border-radius:var(--s2a-border-radius-round);border:var(--s2a-border-width-sm) solid transparent;font-family:var(--body-font-family);font-weight:var(--s2a-font-weight-adobe-clean-bold);font-size:var(--s2a-typography-font-size-label);line-height:var(--s2a-typography-line-height-label);letter-spacing:var(--s2a-typography-letter-spacing-label);text-align:center;white-space:nowrap;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.global-navigation ul.feds-gnav-items>li>.feds-primary-cta,.global-navigation .feds-product-entry-cta .feds-primary-cta{background-color:var(--s2a-color-gray-25);color:var(--s2a-color-gray-1000);border-color:var(--s2a-color-gray-25)}.global-navigation ul.feds-gnav-items>li>.feds-secondary-cta,.global-navigation .feds-product-entry-cta .feds-secondary-cta{color:var(--s2a-color-gray-25);border-color:var(--s2a-color-gray-25);background-color:#0000}.global-navigation.dark-font ul.feds-gnav-items>li>.feds-secondary-cta,.global-navigation.dark-font .feds-product-entry-cta .feds-secondary-cta{border-color:var(--s2a-color-gray-1000);color:var(--s2a-color-gray-1000)}.global-navigation ul.feds-gnav-items>li>.feds-primary-cta,.global-navigation.feds-header-scrolled .feds-product-entry-cta .feds-primary-cta{background-color:var(--s2a-color-gray-1000);color:var(--s2a-color-gray-25);border-color:var(--s2a-color-gray-1000)}.global-navigation ul.feds-gnav-items>li>.feds-secondary-cta,.global-navigation.feds-header-scrolled .feds-product-entry-cta .feds-secondary-cta{color:var(--s2a-color-gray-1000);border-color:var(--s2a-color-gray-1000)}.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-product-entry-cta .feds-primary-cta,.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-product-entry-cta .feds-secondary-cta{color:var(--s2a-color-gray-1000);border-color:var(--s2a-color-gray-1000);background-color:#0000}.global-navigation ul.feds-gnav-items>li>.feds-secondary-cta:hover,.global-navigation .feds-product-entry-cta .feds-secondary-cta:hover{background-color:var(--s2a-color-button-background-primary-transparent-on-light-hover,#00000014);color:var(--s2a-color-gray-1000)}.global-navigation ul.feds-gnav-items>li>.feds-primary-cta:hover,.global-navigation .feds-product-entry-cta .feds-primary-cta:hover,.global-navigation.feds-header-scrolled ul.feds-gnav-items>li>.feds-primary-cta:hover,.global-navigation.feds-header-scrolled .feds-product-entry-cta .feds-primary-cta:hover{background-color:var(--s2a-color-button-background-primary-solid-hover,#000000a3);color:var(--s2a-color-gray-25);border-color:var(--s2a-color-button-background-primary-solid-hover,#000000a3)}.global-navigation .feds-gnav-items>li>.mega-menu.feds-link{cursor:pointer}.global-navigation.feds-header-scrolled .feds-gnav-items>li:first-child+li:before,.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .feds-gnav-items>li:first-child+li:before{background-color:var(--s2a-color-transparent-black-16)}.global-navigation nav{height:var(--s2a-spacing-64);width:calc(100% - 2 * var(--s2a-spacing-xs));justify-content:flex-start;align-items:center;display:flex}header.global-navigation nav{width:calc(100% - var(--s2a-spacing-xs) * 2);max-width:calc(1920px - var(--s2a-spacing-xs) * 2);margin:var(--s2a-spacing-xs) auto;border-radius:var(--s2a-border-radius-16);background-color:#0000;border:none;padding:0;position:fixed;overflow:visible}header.global-navigation nav:after{content:"";width:100%;height:var(--feds-popup-bg-height);-webkit-backdrop-filter:blur();backdrop-filter:blur();border-radius:var(--s2a-border-radius-16);z-index:-1;background-color:#0000;padding:0;transition:all .48s cubic-bezier(.42,0,.2,1),height .35s;position:absolute;top:0;left:0}header.global-navigation.feds-header-scrolled nav:after{-webkit-backdrop-filter:blur(var(--s2a-blur-sm));backdrop-filter:blur(var(--s2a-blur-sm));box-shadow:0 67px 19px #0000,0 43px 17px #00000003,0 24px 14px #0000000a,0 11px 11px #00000012,0 3px 6px #00000014}header.global-navigation nav:has(>.feds-breadcrumbs):not(:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open)){--feds-popup-bg-height:calc(100% + var(--feds-breadcrumbs-height))}header.global-navigation nav:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open):after{border-radius:0 0 var(--s2a-border-radius-16) var(--s2a-border-radius-16);background-color:var(--s2a-color-gray-75);width:100vw;left:calc(0px - var(--s2a-spacing-xs));top:calc(0px - var(--s2a-spacing-xs) * 2);-webkit-backdrop-filter:blur();backdrop-filter:blur()}header.global-navigation nav.localnav:has(.feds-popup.is-open,.feds-menu-wrapper.is-open):after{top:calc(0px - var(--s2a-spacing-xs))}header.global-navigation.feds-header-scrolled nav:after{background-color:#ffffff82}.global-navigation nav>ul{width:100%;height:inherit;align-items:center;padding-left:0;display:flex}[dir=rtl] .global-navigation nav>ul{padding-right:0}.global-navigation nav>ul>li{align-items:center;display:flex}.global-navigation ul{margin:0;list-style:none}.feds-link{font-weight:var(--s2a-font-weight-adobe-clean-bold);font-family:var(--body-font-family);font-size:var(--s2a-typography-font-size-body-sm);line-height:var(--s2a-typography-line-height-body-sm);letter-spacing:var(--s2a-typography-letter-spacing-body-sm);padding:var(--s2a-spacing-sm);color:var(--s2a-color-gray-25);opacity:1;white-space:nowrap;background-color:#0000;border:0;align-items:center;text-decoration:none;display:flex}@media (width>=1024px){header.global-navigation:not(.is-compact) ul.feds-gnav-items{gap:var(--s2a-spacing-lg);display:flex}header.global-navigation:not(.is-compact) ul.feds-gnav-items>li>.feds-link{padding:0}header.global-navigation:not(.is-compact):has(.feds-popup.is-open) ul.feds-gnav-items>li .feds-link{padding:0}}.global-navigation.dark-font .feds-link{color:var(--s2a-color-gray-1000)}.feds-link:hover{text-decoration:underline}.feds-link__mobile-text{display:none}.global-navigation:has(.feds-popup.is-open,.feds-menu-wrapper.is-open,.feds-menu-wrapper.feds-menu-active) .feds-gnav-items>li>.feds-link{color:var(--s2a-color-gray-1000);font-size:var(--s2a-typography-font-size-heading-2);line-height:var(--s2a-typography-line-height-heading-2);letter-spacing:var(--s2a-typography-letter-spacing-heading-2);padding:var(--s2a-spacing-xs) 0}.global-navigation:not(.dark-font) nav:has(>.feds-menu-wrapper .feds-popup.is-open.small-menu)>ul.feds-gnav-items>li>.feds-link{color:var(--s2a-color-gray-25)}.global-navigation.feds-header-scrolled nav:has(>.feds-menu-wrapper .feds-popup.is-open.small-menu)>ul.feds-gnav-items>li>.feds-link{color:var(--s2a-color-gray-1000)}.global-navigation .feds-gnav-items>li>.feds-link:hover{opacity:1;color:var(--s2a-color-gray-25);text-decoration:none}.global-navigation.dark-font .feds-gnav-items>li>.feds-link:hover,.global-navigation.feds-header-scrolled .feds-gnav-items>li>.feds-link:hover{color:var(--s2a-color-gray-1000)}.global-navigation nav .feds-nav-toggle{box-shadow:none;color:var(--s2a-color-gray-25);cursor:pointer;width:20px;height:20px;font-size:var(--s2a-font-size-xl);background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;font-weight:300;display:flex}.global-navigation nav .feds-nav-toggle svg{width:14px;height:7px;color:var(--s2a-color-gray-25);flex-shrink:0}.global-navigation.dark-font nav .feds-nav-toggle,.global-navigation.dark-font nav .feds-nav-toggle svg,.global-navigation.feds-header-scrolled nav .feds-nav-toggle svg{color:var(--s2a-color-gray-1000)}header.global-navigation.thin nav .feds-nav-toggle{display:none}.global-navigation .unav-comp-app-switcher.unav-comp-icon svg,.global-navigation .unav-comp-external-notifications svg path,.global-navigation .unav-comp-cart svg{fill:var(--s2a-color-gray-25)}.global-navigation.dark-font .unav-comp-app-switcher.unav-comp-icon svg,.global-navigation.dark-font .unav-comp-external-notifications svg path,.global-navigation.dark-font .unav-comp-cart svg,.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .unav-comp-app-switcher.unav-comp-icon svg,.global-navigation .unav-comp-app-switcher.unav-comp-icon.unav-comp-app-switcher-open svg,.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .unav-comp-cart svg,.global-navigation:has(.feds-popup.is-open:not(.small-menu),.feds-menu-wrapper.is-open) .unav-comp-external-notifications svg path,.global-navigation.feds-header-scrolled .unav-comp-app-switcher.unav-comp-icon svg,.global-navigation.feds-header-scrolled .unav-comp-external-notifications svg path,.global-navigation.feds-header-scrolled .unav-comp-cart svg,.global-navigation .unav-comp-app-switcher.unav-comp-icon:hover svg,.global-navigation .unav-comp-app-switcher.unav-comp-icon:focus-visible svg,.global-navigation .unav-comp-external-notifications:hover svg path,.global-navigation .unav-comp-cart:hover svg,.global-navigation .unav-comp-cart:focus-visible svg{fill:var(--s2a-color-gray-1000)}.global-navigation.feds-header-scrolled .universal-nav-container .profile-signed-out button{color:var(--s2a-color-gray-1000);border:var(--s2a-border-width-sm) solid var(--s2a-color-gray-1000);background-color:#0000}header.global-navigation:has(.feds-popup.is-open:not(.small-menu)) .unav-comp-app-switcher.unav-comp-icon svg,header.global-navigation:has(.feds-popup.is-open:not(.small-menu)) .unav-comp-external-notifications svg path,header.global-navigation:has(.feds-popup.is-open:not(.small-menu)) .unav-comp-cart svg{fill:inherit}header.global-navigation:has(.feds-popup.is-open) .unav-comp-tooltip{display:none!important}.feds-popup{inset:calc(var(--s2a-spacing-64) + var(--s2a-spacing-8) - 1px) 0 auto 0;width:100%;max-width:none;max-height:calc(100dvh - var(--s2a-spacing-64));overscroll-behavior:contain;z-index:1;background-color:#0000;border:0;margin:0;padding:0;display:none;position:fixed;overflow:auto}.feds-popup.is-open{border-bottom-right-radius:18px;border-bottom-left-radius:18px;display:block}.feds-popup>*{box-sizing:border-box;width:min(1200px,100%)}.feds-popup .feds-popup-header{padding:var(--s2a-spacing-xs) var(--s2a-spacing-lg);justify-content:space-between;align-items:center;display:flex}.global-navigation:has(.mega-menu.small-menu[aria-haspopup=true]) .feds-popup .feds-popup-header{padding:var(--s2a-spacing-lg)}.global-navigation:has(.mega-menu.small-menu[aria-haspopup=true]) .feds-popup .links-card{margin-bottom:0}.feds-popup .feds-popup-header-left{align-items:center;gap:10px;display:flex}.feds-popup .feds-popup-back-button{color:var(--s2a-color-content-default);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex}.feds-popup .feds-popup-back-button svg{width:var(--s2a-spacing-20);height:var(--s2a-spacing-20);margin-right:10px}[dir=rtl] .feds-popup .feds-popup-back-button svg{transform:scaleX(-1)}.feds-popup .feds-popup-back-button .feds-popup-title{font-size:var(--s2a-typography-font-size-heading-3);line-height:var(--s2a-typography-line-height-heading-3);letter-spacing:var(--s2a-typography-letter-spacing-heading-3);font-weight:var(--s2a-font-weight-adobe-clean-black);font-family:var(--heading-font-family);color:var(--s2a-color-content-default);text-align:left}[dir=rtl] .feds-popup .feds-popup-back-button .feds-popup-title{text-align:right}.feds-popup .feds-product-card{grid-template-columns:var(--s2a-spacing-xl) minmax(0, 1fr);gap:var(--s2a-spacing-lg);border-radius:var(--s2a-border-radius-md);min-height:52px;padding:var(--s2a-spacing-lg);color:var(--s2a-color-content-default);align-items:start;text-decoration:none;display:grid}.feds-popup .feds-product-card:hover .feds-product-card__title,.feds-popup .feds-product-card:hover .feds-product-card__subtitle{color:var(--s2a-color-gray-25)}.feds-popup .feds-product-card__icons{align-items:center;gap:var(--s2a-spacing-2xs);flex-direction:row;display:flex}.feds-popup .feds-product-card__icon{width:var(--s2a-spacing-lg);height:var(--s2a-spacing-lg);margin-top:var(--s2a-spacing-2xs);display:block}.feds-popup .feds-product-card__icon-img{width:100%;height:100%;display:block}.feds-popup .feds-product-card__title{font-weight:var(--s2a-font-weight-adobe-clean-black);font-size:var(--s2a-typography-font-size-heading-4);line-height:var(--s2a-typography-line-height-heading-4);letter-spacing:var(--s2a-typography-letter-spacing-heading-4);font-family:var(--heading-font-family)}.feds-popup .feds-product-card__badges{margin-bottom:var(--s2a-spacing-xs);flex-wrap:wrap;justify-content:flex-end;gap:6px;display:inline-flex}.feds-popup .feds-product-card__badge{border:var(--s2a-border-width-sm) solid var(--s2a-color-gray-1000);border-radius:var(--s2a-border-radius-sm);font-size:var(--s2a-font-size-xs);font-weight:var(--s2a-font-weight-adobe-clean-bold);line-height:var(--s2a-typography-line-height-caption);color:var(--s2a-color-gray-1000);letter-spacing:var(--s2a-typography-letter-spacing-caption);align-items:center;padding:4px 8px;display:inline-flex}.feds-popup .feds-product-card__badge--filled{border-color:var(--s2a-color-gray-1000);background:var(--s2a-color-gray-1000);color:var(--s2a-color-gray-25)}.feds-popup .feds-product-card__subtitle{margin-top:var(--s2a-spacing-2xs);font-size:var(--s2a-typography-font-size-body-sm);font-weight:var(--s2a-font-weight-adobe-clean-regular);line-height:var(--s2a-typography-line-height-body-sm);letter-spacing:var(--s2a-typography-letter-spacing-body-sm);color:var(--s2a-color-content-body-subtle)}.feds-popup .feds-product-card__price{margin-top:var(--s2a-spacing-sm);align-items:baseline;gap:6px;display:flex}.feds-popup .feds-product-card__old-price{font-size:var(--s2a-font-size-xs);font-weight:var(--s2a-font-weight-adobe-clean-bold);color:var(--s2a-color-content-subtle);line-height:1;text-decoration:line-through}.feds-popup .feds-product-card__new-price{font-size:var(--s2a-font-size-xs);font-weight:var(--s2a-font-weight-adobe-clean-bold);color:var(--s2a-color-gray-1000);line-height:1}.feds-popup .feds-product-card--blue{background:var(--s2a-color-blue-100)}.feds-popup .feds-product-card--blue:hover{background:var(--s2a-color-blue-200)}.feds-popup .feds-product-card:hover .feds-product-card__old-price,.feds-popup .feds-product-card:hover .feds-product-card__new-price,.feds-popup .feds-product-card:hover .feds-product-card__badge{color:var(--s2a-color-gray-25);border-color:var(--s2a-color-gray-25)}.feds-popup .feds-product-card:hover .feds-product-card__badge--filled{background:var(--s2a-color-gray-25);color:var(--s2a-color-gray-1000)}.feds-product-card .feds-product-card-header{justify-content:space-between;width:100%;display:flex}.feds-popup .feds-primary-cta{border-radius:var(--s2a-border-radius-round);width:fit-content;font-weight:var(--s2a-font-weight-adobe-clean-bold);font-size:var(--s2a-typography-font-size-body-sm);line-height:var(--s2a-typography-line-height-body-sm);letter-spacing:var(--s2a-typography-letter-spacing-body-sm);color:var(--s2a-color-gray-25);background-color:#3b63fb;justify-content:center;align-items:center;padding:11px 14px 10px;text-decoration:none;display:inline-flex}.feds-popup .feds-primary-cta:hover{background-color:var(--s2a-color-button-background-accent-solid-on-light-hover,#274dea)}.feds-popup .feds-primary-cta:active{background-color:var(--s2a-color-button-background-accent-solid-on-light-active,#1e3bb8)}.feds-popup .feds-secondary-cta{border:var(--s2a-border-width-sm) solid var(--s2a-color-gray-1000);border-radius:var(--s2a-border-radius-round);width:fit-content;font-weight:var(--s2a-font-weight-adobe-clean-bold);font-size:var(--s2a-typography-font-size-body-sm);line-height:var(--s2a-typography-line-height-body-sm);letter-spacing:var(--s2a-typography-letter-spacing-body-sm);color:var(--s2a-color-content-default);justify-content:center;align-items:center;padding:11px 14px 10px;text-decoration:none;display:inline-flex}.feds-popup .feds-secondary-cta:hover{background-color:var(--s2a-color-button-background-primary-transparent-on-light-hover,#00000014)}@media (width>=1024px){header.global-navigation:not(.is-compact) nav .feds-nav-toggle{display:none}header.global-navigation:not(.is-compact) nav>ul>li.feds-menu-wrapper{width:auto;height:inherit;box-shadow:none;opacity:1;visibility:visible;translate:unset;background-color:#0000;border:0;outline:0;flex-direction:row;flex-grow:1;justify-content:space-between;transition:unset;display:flex;position:static}header.global-navigation:not(.is-compact) nav{justify-content:flex-start;align-items:center;display:flex}[dir=rtl] header.global-navigation:not(.is-compact) nav .feds-gnav-items{padding-right:0}header.global-navigation:not(.is-compact) nav .feds-gnav-items{height:inherit;align-items:center;margin:0;padding-left:0;display:flex}header.global-navigation:not(.is-compact) nav .feds-gnav-items>li{align-items:center;height:100%;display:flex}header.global-navigation:not(.is-compact) .feds-gnav-items>li>.feds-link{letter-spacing:var(--s2a-typography-letter-spacing-label)}header.global-navigation:not(.is-compact):has(.feds-popup.is-open,.feds-menu-wrapper.is-open) .feds-gnav-items>li>.feds-link{opacity:.6;font-weight:var(--s2a-font-weight-adobe-clean-bold);font-size:var(--s2a-typography-font-size-label);line-height:var(--s2a-typography-line-height-label);letter-spacing:var(--s2a-typography-letter-spacing-label);padding:var(--s2a-spacing-sm)}header.global-navigation:not(.is-compact):not(:has(.feds-popup.is-open,.feds-menu-wrapper.is-open)) .feds-gnav-items:has(.feds-link:hover)>li>.feds-link:not(:hover){opacity:.65}header.global-navigation:not(.is-compact):has(.feds-popup.is-open,.feds-menu-wrapper.is-open) .feds-gnav-items>li>.feds-link[aria-expanded=true],header.global-navigation:not(.is-compact):has(.feds-popup.is-open,.feds-menu-wrapper.is-open) .feds-gnav-items>li>.feds-link:hover{opacity:1}header.global-navigation:not(.is-compact) .feds-gnav-items>li>.mega-menu.feds-link{position:relative}[dir=rtl] header.global-navigation:not(.is-compact) .feds-gnav-items>li>.mega-menu.feds-link .chevron-down{margin-left:0;margin-right:6px}header.global-navigation:not(.is-compact) .feds-gnav-items>li>.mega-menu.feds-link .chevron-down{flex-shrink:0;margin-top:3px;margin-left:6px;transition:transform .15s}header.global-navigation:not(.is-compact) .feds-gnav-items>li>.mega-menu.feds-link[aria-expanded=true] .chevron-down{transform:rotate(180deg)}header.global-navigation:not(.is-compact) .feds-popup .feds-popup-header{display:none}header.global-navigation:not(.is-compact) .feds-popup>div{max-width:1920px}header.global-navigation:not(.is-compact) .feds-popup .feds-product-card__title{font-weight:var(--s2a-font-weight-adobe-clean-bold);font-size:var(--s2a-typography-font-size-eyebrow);line-height:var(--s2a-typography-line-height-eyebrow);letter-spacing:var(--s2a-typography-letter-spacing-eyebrow);font-family:var(--body-font-family)}header.global-navigation:not(.is-compact) nav.localnav ul.feds-gnav-items>li.active-element{border-bottom:2px var(--s2a-color-gray-25) solid}header.global-navigation:not(.is-compact):has(.feds-popup.is-open:not(.small-menu)) nav.localnav ul.feds-gnav-items>li.active-element,header.global-navigation.feds-header-scrolled:not(.is-compact) nav.localnav ul.feds-gnav-items>li.active-element,header.global-navigation.dark-font:not(.is-compact) nav.localnav ul.feds-gnav-items>li.active-element{border-bottom:2px var(--s2a-color-gray-1000) solid}header.global-navigation.is-compact .unav-comp-app-switcher-popover{z-index:4}}@media (width<=1023px){header.global-navigation nav:has(.feds-popup.is-open):after{height:calc(100dvh + var(--s2a-spacing-xs))}header.global-navigation nav:not(.localnav):has(.feds-menu-wrapper.is-open):after{height:calc(100dvh + var(--s2a-spacing-64))}header.global-navigation nav.localnav:has(.feds-menu-wrapper.is-open):after{height:var(--feds-popup-bg-height)}.global-navigation .feds-gnav-items>li>.mega-menu.feds-link{text-align:left;justify-content:space-between;width:100%}.global-navigation .feds-gnav-items>li>.feds-link{font-family:var(--heading-font-family);font-weight:var(--s2a-font-weight-adobe-clean-black)}.global-navigation .feds-gnav-items>li>.mega-menu.feds-link .chevron-down{margin-left:var(--s2a-spacing-xs);flex-shrink:0;order:2;transform:rotate(-90deg)scale(2.5)}[dir=rtl] .global-navigation .feds-gnav-items>li>.mega-menu.feds-link .chevron-down{margin-left:0;margin-right:var(--s2a-spacing-xs);transform:rotate(90deg)scale(2.5)}.global-navigation .feds-gnav-items>li>.mega-menu.feds-link .chevron-down path{stroke-width:.5px}.feds-popup{inset:calc(var(--s2a-spacing-64) + var(--s2a-spacing-8) - 1px) 0 0 0}.feds-popup.is-open{z-index:3}.feds-popup .feds-product-card{gap:var(--s2a-spacing-2xl);border-radius:var(--s2a-border-radius-24)}body:has(.feds-popup.is-open,.feds-menu-wrapper.is-open){scrollbar-gutter:stable;overflow:hidden}header.global-navigation nav:has(.feds-popup.is-open,.feds-menu-wrapper.is-open):after{border-radius:0}header.global-navigation nav.localnav:has(.feds-menu-wrapper.is-open):after{border-radius:0 0 var(--s2a-border-radius-16) var(--s2a-border-radius-16)}.feds-popup .feds-product-card__subtitle{margin-top:var(--s2a-spacing-xs)}.global-navigation:has(.mega-menu.small-menu[aria-haspopup=true]) .feds-popup .feds-gnav-cards{padding:0 var(--s2a-spacing-lg);margin-bottom:0}.global-navigation:has(.mega-menu.small-menu[aria-haspopup=true]) .feds-popup .links-card{margin-bottom:var(--s2a-spacing-sm)}.feds-link__desktop-text{display:none}.feds-link__mobile-text{display:inline}.feds-popup.is-open{position:fixed}.global-navigation nav>ul>li.feds-menu-wrapper{top:var(--s2a-spacing-64);left:0;right:var(--s2a-spacing-20);height:calc(100dvh - var(--s2a-spacing-64));opacity:0;visibility:hidden;width:100%;color:var(--s2a-color-gray-1000);background-color:#0000;border:0;flex-direction:column;padding:0;display:flex;position:fixed}[dir=rtl] .global-navigation nav>ul>li.feds-menu-wrapper{right:0;left:var(--s2a-spacing-20)}.global-navigation nav>ul>li.feds-menu-wrapper.feds-menu-active{transition:opacity .2s,visibility 0s linear .2s}.global-navigation nav>ul>li.feds-menu-wrapper.is-open{opacity:1;z-index:2;visibility:visible;align-items:flex-start;margin-top:0;padding:0;transition:opacity .4s,visibility linear;display:flex}.global-navigation nav>ul>li.feds-menu-wrapper.is-open .feds-gnav-items,.global-navigation nav>ul>li.feds-menu-wrapper.feds-menu-active .feds-gnav-items{padding:var(--s2a-spacing-xs) var(--s2a-spacing-lg) var(--s2a-spacing-sm);width:calc(100% - var(--s2a-spacing-3xl));align-items:flex-start}.global-navigation nav>ul>li.feds-menu-wrapper.is-open .feds-gnav-items>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){opacity:0;animation:.35s cubic-bezier(.42,0,0,1) forwards mobile-main-menu-slide-in;animation-delay:calc(.18s + var(--i,0) * 60ms);transform:translate(18px)}.feds-nav-toggle path{transform-origin:7px 3.5px;transition:transform .35s cubic-bezier(.4,0,.2,1)}.global-navigation:has(.feds-menu-wrapper.is-open,.feds-popup.is-open) .feds-nav-toggle svg{height:11px}.global-navigation:has(.feds-menu-wrapper.is-open,.feds-popup.is-open) .feds-nav-toggle path:first-child{transform:translateY(-2.75px)rotate(-45deg)scaleX(1.25)}.global-navigation:has(.feds-menu-wrapper.is-open,.feds-popup.is-open) .feds-nav-toggle path:last-child{transform:translateY(2.75px)rotate(45deg)scaleX(1.25)}header.global-navigation>nav>ul>li.feds-menu-wrapper>ul.feds-gnav-items.subscreen-opening>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){opacity:1;animation:.5s cubic-bezier(.42,0,0,1) forwards main-menu-items-exit;animation-delay:calc(var(--i,0) * 25ms);transform:translate(0)}header.global-navigation>nav>ul>li.feds-menu-wrapper>ul.feds-gnav-items.subscreen-closing>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){opacity:0;animation:.26s .24s forwards main-menu-items-re-enter;animation-delay:calc(.24s + var(--i,0) * 30ms);transform:translate(-18px)}header.global-navigation>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open>:not(.feds-breadcrumbs){opacity:0;animation:0s linear .3s forwards fade-in}header.global-navigation>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .feds-popup-header{opacity:0;animation:.5s cubic-bezier(.42,0,0,1) .3s forwards sub-menu-items-enter;transform:translate(18px)}header.global-navigation>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .tabs{opacity:0;animation:.5s cubic-bezier(.42,0,0,1) .36s forwards sub-menu-items-enter;transform:translate(18px)}header.global-navigation>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .feds-gnav-cards>li{opacity:0;animation:.5s cubic-bezier(.42,0,0,1) forwards sub-menu-items-enter;transform:translate(18px)}header.global-navigation>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .feds-gnav-cards>li:first-child{animation-delay:.36s}header.global-navigation>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .feds-gnav-cards>li:nth-child(2){animation-delay:.42s}header.global-navigation>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .feds-popup-header,header.global-navigation>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .tabs,header.global-navigation>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .feds-gnav-cards>li{opacity:1;animation:.2s forwards sub-menu-items-exit;transform:translate(0)}header.global-navigation>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .feds-gnav-cards>li:first-child{animation-delay:40ms}header.global-navigation>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .feds-gnav-cards>li:nth-child(2){animation-delay:80ms}header.global-navigation.feds-header-scrolled:has(.unav-comp-app-switcher-open) .feds-brand-image svg,header.global-navigation.feds-header-scrolled:has(.unav-comp-app-switcher-open) .feds-nav-toggle svg{color:var(--s2a-color-gray-1000);animation:none}}@media (width>=1920px){header.global-navigation:not(.is-compact) nav:has(.feds-popup.is-open,.feds-menu-wrapper.is-open):after{left:calc(0px - var(--s2a-spacing-xs) - (100vw - 1920px) / 2)}header.global-navigation:not(.is-compact) nav .feds-popup>div{margin:0 auto}}.feds-backdrop{-webkit-backdrop-filter:blur();backdrop-filter:blur();pointer-events:none;z-index:-2;background-color:#0000;transition:background-color .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s;position:fixed;inset:0}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-popup{opacity:0;max-height:calc(100dvh - var(--s2a-spacing-64));clip-path:polygon(0 0,100% 0,100% 0%,0 0%);transition:display .48s allow-discrete, opacity .48s cubic-bezier(.4, 0, .2, 1);background-color:#0000;border-bottom-right-radius:18px;border-bottom-left-radius:18px;transition-delay:0s;overflow:hidden}header.global-navigation:not(.is-compact) .feds-popup.is-open{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);margin-top:var(--s2a-spacing-xs);background-color:#0000;transition-delay:.15s}header.global-navigation:not(.is-compact):has(.feds-localnav-bar) :not(.small-menu).feds-popup.is-open{padding-top:var(--s2a-spacing-lg);border-top:1px solid var(--s2a-color-transparent-black-08);margin-top:1px}header.global-navigation:not(.is-compact) .feds-popup.is-open>:not(.feds-popup-header){max-height:calc(100dvh - var(--s2a-spacing-64));overflow-y:auto}.feds-gnav-items>li>.feds-link:first-child{outline-offset:var(--s2a-spacing-sm)}@starting-style{header.global-navigation:not(.is-compact) .feds-popup.is-open{opacity:0;clip-path:polygon(0 0,100% 0,100% 0%,0 0%);background-color:#ffffff82}}header.global-navigation:not(.is-compact) nav:has(.feds-popup.is-open,.feds-menu-wrapper.is-open) .feds-backdrop{-webkit-backdrop-filter:blur(32px);backdrop-filter:blur(32px);background-color:#0009}}header.global-navigation nav:has(.feds-menu-wrapper.is-open) .feds-backdrop{-webkit-backdrop-filter:blur(32px);backdrop-filter:blur(32px);background-color:#0009}@media (width<=768px){.global-navigation .feds-menu-wrapper:not(.feds-menu-active) .feds-primary-cta{box-sizing:border-box;width:100%}.feds-popup .feds-popup-back-button .feds-popup-title{font-size:var(--s2a-typography-font-size-heading-2);line-height:var(--s2a-typography-line-height-heading-2);letter-spacing:var(--s2a-typography-letter-spacing-heading-2)}}@keyframes feds-slide-up{0%{transform:translateY(6px)}to{transform:translateY(0)}}.feds-popup.is-open{--feds-anim-duration:.35s;--feds-anim-panel-delay:.18s;--feds-anim-stagger-interval:25ms;--feds-anim-stagger-start:.2s}.feds-popup.is-open .product-list ul[role=tabpanel]>li{animation:feds-slide-up var(--feds-anim-duration) ease-out forwards;animation:feds-slide-up var(--feds-anim-duration) ease-out forwards;transform:translateY(6px)}@media (width>=1024px){header.global-navigation:not(.is-compact) .feds-popup.is-open>div{animation:feds-slide-up var(--feds-anim-duration) ease-out forwards;animation-delay:var(--feds-anim-panel-delay);transform:translateY(6px)}header.global-navigation:not(.is-compact) .feds-popup.is-open .feds-gnav-cards>li,header.global-navigation:not(.is-compact) .feds-popup.is-open .product-list ul.tabs>li{animation:feds-slide-up var(--feds-anim-duration) ease-out forwards;transform:translateY(6px)}header.global-navigation:not(.is-compact) .product-list .tab-content [role=tabpanel]{opacity:0;transition:display .48s allow-discrete, opacity .48s cubic-bezier(.4, 0, .2, 1);transition-delay:.2s}header.global-navigation:not(.is-compact) .product-list .tab-content [role=tabpanel][hidden]{transition:unset}header.global-navigation:not(.is-compact) .product-list .tab-content [role=tabpanel]:not([hidden]){opacity:1}@starting-style{header.global-navigation:not(.is-compact) .product-list .tab-content [role=tabpanel]:not([hidden]){opacity:0}}}header.global-navigation:has(.unav-comp-app-switcher-open) nav{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;transition:none;transform:none}header.global-navigation .universal-nav-container .universal-nav-tray .unav-comp-overlay{width:100vw;height:100vh}@keyframes mobile-main-menu-slide-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes main-menu-items-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-40px)}}@keyframes sub-menu-items-enter{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes sub-menu-items-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(18px)}}@keyframes main-menu-items-re-enter{0%{opacity:0;transform:translate(-18px)}to{opacity:1;transform:translate(0)}}@keyframes fade-in{0%{opacity:0;display:none}to{opacity:1;display:block}}@keyframes fade-out{0%{opacity:1;display:block}to{opacity:0;display:none}}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:first-child{animation-delay:25ms}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:nth-child(2){animation-delay:50ms}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:nth-child(3){animation-delay:75ms}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:nth-child(4){animation-delay:.1s}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:nth-child(5){animation-delay:.125s}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:nth-child(6){animation-delay:.15s}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:nth-child(7){animation-delay:.175s}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:nth-child(8){animation-delay:.2s}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:nth-child(9){animation-delay:.225s}:is(ul.feds-gnav-cards,ul[role=tabpanel],.product-list ul.tabs)>li:nth-child(10){animation-delay:.25s}header.global-navigation.is-compact nav:has(.feds-popup.is-open):after{height:calc(100dvh + var(--s2a-spacing-xs))}header.global-navigation.is-compact nav:not(.localnav):has(.feds-menu-wrapper.is-open):after{height:calc(100dvh + var(--s2a-spacing-64))}header.global-navigation.is-compact nav.localnav:has(.feds-menu-wrapper.is-open):after{height:var(--feds-popup-bg-height)}header.global-navigation.is-compact .feds-link__desktop-text{display:none}header.global-navigation.is-compact .feds-link__mobile-text{display:inline}header.global-navigation.is-compact .feds-product-entry-cta{display:none}header.global-navigation.is-compact nav .feds-nav-toggle{display:flex}header.global-navigation.is-compact .feds-gnav-items>li>.mega-menu.feds-link{text-align:left;justify-content:space-between;width:100%}header.global-navigation.is-compact .feds-gnav-items>li>.feds-link{font-family:var(--heading-font-family);font-weight:var(--s2a-font-weight-adobe-clean-black)}header.global-navigation.is-compact .feds-gnav-items>li>.mega-menu.feds-link .chevron-down{margin-left:var(--s2a-spacing-xs);flex-shrink:0;order:2;transform:rotate(-90deg)scale(2.5)}header.global-navigation.is-compact .feds-gnav-items>li>.mega-menu.feds-link .chevron-down path{stroke-width:.5px}header.global-navigation.is-compact .feds-popup .feds-product-card{gap:var(--s2a-spacing-2xl);border-radius:var(--s2a-border-radius-24)}header.global-navigation.is-compact .feds-popup .feds-product-card__subtitle{margin-top:var(--s2a-spacing-xs)}header.global-navigation.is-compact:has(.mega-menu.small-menu[aria-haspopup=true]) .feds-popup .feds-gnav-cards{padding:0 var(--s2a-spacing-lg);margin-bottom:0}header.global-navigation.is-compact:has(.mega-menu.small-menu[aria-haspopup=true]) .feds-popup .links-card,header.global-navigation.is-compact:has(.mega-menu.small-menu[aria-haspopup=true]) .feds-popup .featured-card{margin-bottom:var(--s2a-spacing-sm)}header.global-navigation.is-compact .feds-popup{inset:calc(var(--s2a-spacing-64) + var(--s2a-spacing-8) - 1px) 0 0 0}header.global-navigation.is-compact .feds-popup.is-open{z-index:3;position:fixed}header.global-navigation.is-compact .feds-popup{opacity:1;clip-path:none;background-color:#0000;border-bottom-right-radius:0;border-bottom-left-radius:0;max-height:none;transition:none}header.global-navigation.is-compact .feds-popup .feds-popup-header{display:flex}body:has(header.global-navigation.is-compact .feds-popup.is-open),body:has(header.global-navigation.is-compact .feds-menu-wrapper.is-open){scrollbar-gutter:stable;overflow:hidden}header.global-navigation.is-compact nav:has(.feds-popup.is-open,.feds-menu-wrapper.is-open):after{border-radius:0}header.global-navigation.is-compact nav.localnav:has(.feds-menu-wrapper.is-open):after{border-radius:0 0 var(--s2a-border-radius-16) var(--s2a-border-radius-16)}header.global-navigation.is-compact nav>ul>li.feds-menu-wrapper{top:var(--s2a-spacing-64);left:0;right:var(--s2a-spacing-20);height:calc(100dvh - var(--s2a-spacing-64));opacity:0;visibility:hidden;width:100%;color:var(--s2a-color-gray-1000);translate:unset;box-shadow:none;background-color:#0000;border:0;outline:0;flex-direction:column;flex-grow:0;justify-content:flex-start;padding:0;transition:unset;display:flex;position:fixed}header.global-navigation.is-compact nav>ul>li.feds-menu-wrapper.feds-menu-active{transition:opacity .2s,visibility 0s linear .2s}header.global-navigation.is-compact nav>ul>li.feds-menu-wrapper.is-open{opacity:1;z-index:2;visibility:visible;align-items:flex-start;margin-top:0;padding:0;transition:opacity .4s,visibility linear;display:flex}header.global-navigation.is-compact nav>ul>li.feds-menu-wrapper.is-open .feds-gnav-items,header.global-navigation.is-compact nav>ul>li.feds-menu-wrapper.feds-menu-active .feds-gnav-items{padding:var(--s2a-spacing-xs) var(--s2a-spacing-lg) var(--s2a-spacing-sm);width:calc(100% - var(--s2a-spacing-3xl));align-items:flex-start}header.global-navigation.is-compact nav .feds-gnav-items{flex-direction:column;align-items:flex-start}header.global-navigation.is-compact nav>ul>li.feds-menu-wrapper.is-open .feds-gnav-items>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){opacity:0;animation:.35s cubic-bezier(.42,0,0,1) forwards mobile-main-menu-slide-in;animation-delay:calc(.18s + var(--i,0) * 60ms);transform:translate(18px)}header.global-navigation.is-compact .feds-nav-toggle path{transform-origin:7px 3.5px;transition:transform .35s cubic-bezier(.4,0,.2,1)}header.global-navigation.is-compact:has(.feds-menu-wrapper.is-open,.feds-popup.is-open) .feds-nav-toggle svg{height:11px}header.global-navigation.is-compact:has(.feds-menu-wrapper.is-open,.feds-popup.is-open) .feds-nav-toggle path:first-child{transform:translateY(-2.75px)rotate(-45deg)scaleX(1.25)}header.global-navigation.is-compact:has(.feds-menu-wrapper.is-open,.feds-popup.is-open) .feds-nav-toggle path:last-child{transform:translateY(2.75px)rotate(45deg)scaleX(1.25)}header.global-navigation.is-compact>nav>ul>li.feds-menu-wrapper>ul.feds-gnav-items.subscreen-opening>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){opacity:1;animation:.5s cubic-bezier(.42,0,0,1) forwards main-menu-items-exit;animation-delay:calc(var(--i,0) * 25ms);transform:translate(0)}header.global-navigation.is-compact>nav>ul>li.feds-menu-wrapper>ul.feds-gnav-items.subscreen-closing>li>:is(.feds-link,.feds-primary-cta,.feds-secondary-cta){opacity:0;animation:.26s .24s forwards main-menu-items-re-enter;animation-delay:calc(.24s + var(--i,0) * 30ms);transform:translate(-18px)}header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open>:not(.feds-breadcrumbs){opacity:0;animation:0s linear .3s forwards fade-in}header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .feds-popup-header{opacity:0;animation:.5s cubic-bezier(.42,0,0,1) .3s forwards sub-menu-items-enter;transform:translate(18px)}header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .tabs{opacity:0;animation:.5s cubic-bezier(.42,0,0,1) .36s forwards sub-menu-items-enter;transform:translate(18px)}header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .feds-gnav-cards>li{opacity:0;animation:.5s cubic-bezier(.42,0,0,1) forwards sub-menu-items-enter;transform:translate(18px)}header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .feds-gnav-cards>li:first-child{animation-delay:.36s}header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-opening) .feds-popup.is-open .feds-gnav-cards>li:nth-child(2){animation-delay:.42s}header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .feds-popup-header,header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .tabs,header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .feds-gnav-cards>li{opacity:1;animation:.2s forwards sub-menu-items-exit;transform:translate(0)}header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .feds-gnav-cards>li:first-child{animation-delay:40ms}header.global-navigation.is-compact>nav:has(.feds-gnav-items.subscreen-closing) .feds-popup.is-open .feds-gnav-cards>li:nth-child(2){animation-delay:80ms}header.global-navigation.is-compact.feds-header-scrolled:has(.unav-comp-app-switcher-open) .feds-brand-image svg,header.global-navigation.is-compact.feds-header-scrolled:has(.unav-comp-app-switcher-open) .feds-nav-toggle svg{color:var(--s2a-color-gray-1000);animation:none}',qe=new CSSStyleSheet;qe.replaceSync(Bt);document.adoptedStyleSheets.includes(qe)||(document.adoptedStyleSheets=[...document.adoptedStyleSheets,qe]);var ji=async e=>{let{gnavSource:a,mountpoint:t,unavEnabled:n,miloConfig:r,personalization:o}=e;if(!(a instanceof URL))throw D(`gnavSource is invalid: ${a}`),new g("gnavSource needs to be a URL object");try{aa(r)}catch(p){throw D(`Failed to initialize MiloConfig: ${p}`),new g(`Failed to initialize MiloConfig: ${p}`)}Ke(o),Ve(e.localizeLink??(p=>p)),Ne(Ue(e));let i=await Ga(e);if(i instanceof g)throw D(i.message),i;let{mainNav:l,aside:s}=i;if(l instanceof g)throw D(l.message),l;let c=Ha(l,n,await ee());if(c instanceof g)throw D(c.message),c;return await jt(c)(t),e.convertStageLinks?.({anchors:[...t.querySelectorAll("a")],hostname:window.location.hostname,href:window.location.href}),Ft(e)},jt=e=>async a=>{let t=Gt(e);document.querySelector("main")?.setAttribute("id","main-content"),a.innerHTML=t,e.components.filter(c=>c.type!=="Brand").length===0&&a.classList.add("thin"),e.darkFont&&a.classList.add("dark-font");let n=[...a.querySelectorAll(".mega-menu ~ .feds-popup")];n.forEach(c=>{c.innerHTML=""});let o=e.components.filter(c=>c.type==="MegaMenu").map(c=>c.content),i=await Promise.all(o.map(async(c,p)=>{try{let[f,h]=await c,m={type:"MegaMenuExtraData",breadcrumbs:e.breadcrumbs};return n[p].innerHTML=Le(f,n[p].id,m),h}catch(f){return[f]}}).flat()),l=[...a.querySelectorAll("button.small-menu ~ .feds-popup")];return e.components.filter(c=>c.type==="SmallMenu").forEach((c,p)=>{let[f]=c.content;l[p].innerHTML=Ta(f,l[p].id)}),a},Gt=({components:e,breadcrumbs:a,productCTA:t,unavEnabled:n,placeholders:r,localnav:o})=>{let i=o&&a!==null&&a.items.length>0?a.items[a.items.length-1]:null,l=i===null?"":typeof i=="string"?i:i.text;return` \n`;\n};\n\nexport const postRenderingTasks = async (\n input: Input,\n): Promise => {\n const errors = new Set();\n const unav = await loadUnav(input.mountpoint);\n if (unav instanceof RecoverableError) {\n errors.add(unav);\n lanaLog(unav.message);\n }\n else\n unav.errors.forEach((error: RecoverableError) => errors.add(error));\n\n const activeLink = findActiveLink(input.mountpoint);\n const activeDropDown = activeLink?.closest('ul.feds-gnav-items > li');\n activeDropDown?.classList.add('active-element');\n initGnavItemsStaggerIndex(input.mountpoint);\n initActiveTopLevelLinkClosesLocalnav(input.mountpoint);\n initClickListeners(input.mountpoint);\n wirePopups(input.mountpoint);\n initLightDismiss(input.mountpoint);\n initKeyboardNav(input.mountpoint);\n initAriaToggleListeners(input.mountpoint);\n initPopoverCloseOnResize(input.mountpoint);\n initPopoverCloseOnUnavInteraction(input.mountpoint);\n initHeaderScrollState(input.mountpoint);\n initHeaderAnalytics(input.mountpoint, input.mepMartech ?? '');\n initCompactOverflow(input.mountpoint);\n const merchLinkErrors = await initMerchLinks(input.mountpoint);\n merchLinkErrors.forEach((error: RecoverableError) => {\n errors.add(error);\n lanaLog(error.message);\n });\n\n const reloadUnav\n = unav instanceof RecoverableError\n ? (): void => {}\n : unav.reloadUnav;\n\n const localnavMarginTop = 8;\n const breadcrumbs = input.mountpoint.querySelector('nav > ul.feds-breadcrumbs');\n const mobileLocalnav = input.mountpoint.querySelector('li.feds-menu-wrapper');\n type NavType = \"Default\" | \"DefaultCompact\" | \"Localnav\" | \"LocalnavCompact\";\n const getGnavHeight = (): number => {\n const nav = input.mountpoint.firstElementChild;\n if (!nav) return 0;\n const navType = ((): NavType => {\n const isCompact = input.mountpoint.classList.contains('is-compact') || !isDesktop.matches;\n const defaultOrLocalnav = nav.classList.contains('localnav')\n ? \"Localnav\"\n : \"Default\";\n return `${defaultOrLocalnav}${isCompact ? \"Compact\" : \"\"}`;\n })();\n const breadcrumbsHeight = breadcrumbs\n ? (breadcrumbs as HTMLElement).offsetHeight\n : 0;\n const navHeight = (nav as HTMLElement).offsetHeight;\n const mobileLocalnavHeight = mobileLocalnav\n ? (mobileLocalnav as HTMLElement).offsetHeight\n : 0;\n switch (navType) {\n case \"Default\":\n case \"DefaultCompact\":\n case \"Localnav\": return navHeight + breadcrumbsHeight + localnavMarginTop;\n case \"LocalnavCompact\": return navHeight + mobileLocalnavHeight + localnavMarginTop;\n default: navType satisfies never;\n }\n return 0;\n };\n\n return {\n closeEverything: () => closePopovers(input.mountpoint),\n reloadUnav,\n errors,\n setGnavTopPosition: (_): void => {},\n getGnavTopPosition: (): number => 0,\n getGnavHeight,\n };\n};\n\nconst initAriaToggleListeners = (mountpoint: HTMLElement): void => {\n const menuWrapper = mountpoint.querySelector('#feds-menu-wrapper');\n const navToggle = mountpoint.querySelector('.feds-nav-toggle');\n\n menuWrapper?.addEventListener('toggle', () => {\n const isOpen = menuWrapper.classList.contains(IS_OPEN_CLASS);\n // Only reflect open-state on the hamburger when it actually controls the\n // menu-wrapper. In localnav the hamburger's aria-controls points at the\n // first mega-menu's popup (the menu-wrapper is opened via the localnav\n // bar instead), so reflecting menu-wrapper state on the hamburger here\n // would be incorrect.\n if (navToggle?.getAttribute('aria-controls') === 'feds-menu-wrapper') {\n navToggle.setAttribute('aria-expanded', String(isOpen));\n navToggle.setAttribute(\n 'daa-ll',\n isOpen ? 'hamburgermenu|close' : 'hamburgermenu|open'\n );\n }\n if (isOpen) menuWrapper.classList.add('feds-menu-active');\n });\n\n menuWrapper?.addEventListener('transitionend', () => {\n if (!menuWrapper.classList.contains(IS_OPEN_CLASS)) {\n menuWrapper.classList.remove('feds-menu-active');\n }\n });\n\n const megaMenuPopovers = mountpoint.querySelectorAll('.feds-popup');\n megaMenuPopovers.forEach(popup => {\n popup.addEventListener('toggle', () => {\n const trigger = mountpoint.querySelector(\n `[aria-controls=\"${popup.id}\"]`\n );\n const isOpen = popup.classList.contains(IS_OPEN_CLASS);\n trigger?.setAttribute('aria-expanded', String(isOpen));\n trigger?.setAttribute('daa-ll', isOpen ? 'header|Close' : 'header|Open');\n });\n });\n};\n\nconst initPopoverCloseOnResize = (mountpoint: HTMLElement): void => {\n isDesktop.addEventListener('change', () => {\n closePopovers(mountpoint);\n });\n};\n\nconst initPopoverCloseOnUnavInteraction = (mountpoint: HTMLElement): void => {\n [...mountpoint.querySelector('.feds-utilities #universal-nav')?.children ?? []].forEach(child => {\n child.addEventListener('click', () => closePopovers(mountpoint));\n child.addEventListener('keydown', (event) => {\n if ((event as KeyboardEvent).key === 'Enter')\n closePopovers(mountpoint);\n });\n });\n};\n\nconst initHeaderScrollState = (mountpoint: HTMLElement): void => {\n const header = mountpoint.closest(\"header\");\n if (!header) {\n return;\n }\n\n const menuWrapper = mountpoint.querySelector(\"#feds-menu-wrapper\");\n const isMenuOpen = (): boolean => isPopupOpen(menuWrapper);\n\n const nav = mountpoint.querySelector(\"nav\");\n const isLocalnav = (): boolean => nav?.classList.contains(\"localnav\") ?? false;\n\n // Track the most recent \"queued add\" so a subsequent toggle can cancel it.\n // Prevents a race where the user re-opens the bar mid-slide-down and the\n // deferred add still fires, applying `feds-header-scrolled` over an\n // already-open menu.\n let pendingAddCleanup: (() => void) | null = null;\n const cancelPendingAdd = (): void => {\n if (pendingAddCleanup !== null) {\n pendingAddCleanup();\n pendingAddCleanup = null;\n }\n };\n\n const updateHeaderState = (\n scrolledPast: boolean,\n fromToggle: boolean = false\n ): void => {\n cancelPendingAdd();\n if (isMenuOpen() || !scrolledPast) {\n header.classList.remove(\"feds-header-scrolled\");\n header.classList.remove(\"feds-localnav-closing\");\n return;\n }\n header.classList.add(\"feds-header-scrolled\");\n // Closing the localnav bar in scrolled state: the header's `top` animates\n // from -64px back to 0 over 0.3s. The `feds-header-scrolled` class is\n // needed immediately for color (the bar title would otherwise flash from\n // dark back to its default light shade during the slide-down). But the\n // same class pulls `inset: xs xs 0 xs` onto `nav` via\n // `header.feds-header-scrolled nav`, which would instantly pin nav to\n // `top: xs` and kill the slide (nav holds the visible content). The\n // `feds-localnav-closing` marker class is added in tandem and consumed by\n // a CSS rule that suppresses that inset for the duration of the\n // transition; we remove the marker on `transitionend`.\n if (fromToggle && isLocalnav()) {\n header.classList.add(\"feds-localnav-closing\");\n const onTransitionEnd = (event: TransitionEvent): void => {\n if (event.target !== header || event.propertyName !== \"top\") return;\n header.removeEventListener(\"transitionend\", onTransitionEnd);\n pendingAddCleanup = null;\n header.classList.remove(\"feds-localnav-closing\");\n };\n header.addEventListener(\"transitionend\", onTransitionEnd);\n pendingAddCleanup = (): void => {\n header.removeEventListener(\"transitionend\", onTransitionEnd);\n header.classList.remove(\"feds-localnav-closing\");\n };\n }\n };\n\n const SCROLL_THRESHOLD = 20;\n let scrolledPast = window.scrollY > SCROLL_THRESHOLD;\n let scrollRafId: number | null = null;\n\n // Set the initial state synchronously before the first paint.\n updateHeaderState(scrolledPast);\n\n const onScroll = (): void => {\n if (scrollRafId !== null) return;\n scrollRafId = requestAnimationFrame(() => {\n scrollRafId = null;\n const next = window.scrollY > SCROLL_THRESHOLD;\n if (next === scrolledPast) return;\n scrolledPast = next;\n updateHeaderState(scrolledPast);\n });\n };\n\n window.addEventListener(\"scroll\", onScroll, { passive: true });\n\n menuWrapper?.addEventListener(\"toggle\", () =>\n updateHeaderState(scrolledPast, true)\n );\n};\n\nconst initHeaderAnalytics = (\n mountpoint: HTMLElement,\n mepMartech: string\n): void => {\n const header = mountpoint.closest(\"header\");\n if (header === null) return;\n header.setAttribute('daa-lh', `gnav|${getExperienceName()}${mepMartech}`);\n};\n\nconst initCompactOverflow = (mountpoint: HTMLElement): void => {\n const header = mountpoint.closest('header.global-navigation');\n if (!header) return;\n\n const brandWrapper = mountpoint.querySelector('.feds-brand-wrapper');\n const gnavItems = mountpoint.querySelector('.feds-gnav-items');\n const utilities = mountpoint.querySelector('.feds-utilities');\n const productCta = mountpoint.querySelector('.feds-product-entry-cta');\n\n const check = (): void => {\n if (!isDesktop.matches) {\n header.classList.remove('is-compact');\n return;\n }\n // Temporarily strip is-compact so we measure the natural desktop widths,\n // then restore via toggle at the end.\n header.classList.remove('is-compact');\n\n // Sum individual li widths inside gnav-items \u2014 these are not flex-grow so\n // their offsetWidth reflects their true content width. Brand and utilities\n // are fixed-size flex items so offsetWidth is correct for them too.\n const brandWidth = brandWrapper?.offsetWidth ?? 0;\n const itemsWidth = gnavItems?.offsetWidth ?? 0;\n const utilitiesWidth = utilities?.offsetWidth ?? 0;\n const ctaWidth = productCta?.offsetWidth ?? 0;\n const contentWidth = brandWidth + itemsWidth +\n utilitiesWidth + ctaWidth + 40;\n\n header.classList.toggle('is-compact', contentWidth > header.clientWidth);\n };\n\n const observer = new ResizeObserver(check);\n observer.observe(header);\n isDesktop.addEventListener('change', check);\n check();\n};\n\nconst isCurrentPageHref = (href: string): boolean => {\n const url = `${window.location.origin}${window.location.pathname}`;\n return href === url\n || href.startsWith(`${url}?`)\n || href.startsWith(`${url}#`);\n};\n\nconst findActiveLink = (\n mountpoint: HTMLElement\n): HTMLAnchorElement | null => {\n return [...mountpoint.querySelectorAll('a:not(.feds-skip-link)')]\n .filter(a => !a.closest('.feds-breadcrumbs'))\n .find(a => isCurrentPageHref(a.href)) ?? null;\n};\n\n/**\n * Sets a `--i` CSS custom property on each top-level `
  • ` inside every\n * `ul.feds-gnav-items`, indexed from 0. This drives the staggered\n * open/close animations in `styles.css` via\n * `animation-delay: calc(var(--i) * ...)`, removing the need for a\n * hand-maintained `nth-child` table that must be extended every time the\n * menu grows.\n */\nconst initGnavItemsStaggerIndex = (mountpoint: HTMLElement): void => {\n const lists = mountpoint.querySelectorAll('ul.feds-gnav-items');\n lists.forEach(list => {\n const items = list.querySelectorAll(':scope > li');\n items.forEach((li, index) => {\n li.style.setProperty('--i', String(index));\n });\n });\n};\n\n/**\n * In localnav mode, clicking a TOP-LEVEL localnav link whose href points to\n * the current page (the very same URL, with optional ?query) is redundant \u2014\n * the page is already loaded. Instead of triggering a no-op navigation, we\n * suppress the default and close the localnav so the user sees the page\n * they're already on. Scope is strictly limited to\n * `nav.localnav ul.feds-gnav-items > li > a`; nested links (mega-menu\n * popups, links-card, CTAs, breadcrumbs, etc.) are left untouched and\n * continue to navigate normally. Hash-only same-page links also navigate\n * normally (so in-page anchor jumps still work) while still closing the\n * localnav.\n */\n// eslint-disable-next-line max-len\nconst initActiveTopLevelLinkClosesLocalnav = (mountpoint: HTMLElement): void => {\n const localnav = mountpoint.querySelector('nav.localnav');\n if (localnav === null) return;\n const topLevelAnchors = localnav.querySelectorAll(\n 'ul.feds-gnav-items > li > a'\n );\n topLevelAnchors.forEach(anchor => {\n if (!isCurrentPageHref(anchor.href)) return;\n anchor.addEventListener('click', (event) => {\n // Defensive: ensure DOM still matches the structural contract at\n // click-time (guards against late mutations broadening scope).\n const target = event.currentTarget as HTMLAnchorElement;\n if (!target.matches('ul.feds-gnav-items > li > a')) return;\n if (target.closest('nav')?.classList.contains('localnav') !== true) return;\n\n const href = target.href;\n const url = `${window.location.origin}${window.location.pathname}`;\n const isHashOnly = href.startsWith(`${url}#`);\n if (!isHashOnly) {\n event.preventDefault();\n event.stopPropagation();\n }\n closePopovers(mountpoint);\n const focusTarget\n = mountpoint.querySelector('.feds-localnav-bar')\n ?? mountpoint.querySelector('.feds-nav-toggle');\n focusTarget?.focus();\n });\n });\n};\n"], - "mappings": "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", + "sourcesContent": ["import { getMetadata, getMiloConfig } from \"./Utils\";\n\nexport type LanaSeverity = 'd' | 'debug' | 'i' | 'info' | 'w' | 'warn' | 'e' | 'error' | 'c' | 'critical';\n\nexport type LanaOptions = {\n clientId?: string;\n endpoint?: string;\n endpointStage?: string;\n errorType?: 'e' | 'i';\n sampleRate?: number;\n tags?: string;\n implicitSampleRate?: number;\n useProd?: boolean;\n isProdDomain?: boolean;\n severity?: LanaSeverity;\n};\n\nexport type LanaLogOptions = LanaOptions & {\n severity?: LanaSeverity;\n};\n\nexport type Lana = {\n log: (msg: string, options?: LanaLogOptions)\n => Promise | XMLHttpRequest\n debug: boolean;\n options: LanaOptions;\n localhost?: boolean;\n};\n\nconst LANA_CLIENT_ID = 'feds-milo';\n\nexport const lanaLog = (message: string, tags = 'default', errorType: 'e' | 'i' = 'e'): void => {\n const { locale } = getMiloConfig();\n const url = getMetadata('gnav-source') ?? `${locale.contentRoot?? ''}/gnav`; \n \n if (!window.lana)\n console.warn('lana logging unavailable in the gnav');\n\n window?.lana?.log(`${message} | gnav-source: ${url} | href: ${window.location.href}`, {\n clientId: LANA_CLIENT_ID,\n sampleRate: 1,\n tags,\n errorType,\n });\n};\n\n\n", "import { lanaLog } from \"../Utils/Log\";\n\nexport class IrrecoverableError extends Error {\n constructor(message: string) {\n super(message);\n // This is important for proper instanceof checks\n Object.setPrototypeOf(this, IrrecoverableError.prototype);\n }\n}\n\ntype Severity\n = \"Minor\"\n | \"Major\"\n | \"Critical\"\n\nexport class RecoverableError extends Error {\n constructor(message: string, severity: Severity = \"Minor\") {\n super(message);\n // This is important for proper instanceof checks\n Object.setPrototypeOf(this, RecoverableError.prototype);\n if (severity === \"Critical\") {\n lanaLog(message);\n }\n }\n}\n", "import { Input } from \"../Main\";\nimport { RecoverableError } from \"../Error/Error\";\nimport { lanaLog } from \"./Log\";\nimport { getFederatedContentRoot, getMiloConfig } from \"./Utils\";\n// TODO: avoid circular dependencies between Main and\n// This file (or any other file.\n\ntype PlaceholderResponse = {\n columns: string[];\n data: { key: string; value: string; }[];\n limit: number;\n offset: number;\n total: number;\n};\n\nexport const combineWithFederalPlaceholders = async (\n input: Input\n): Promise> => {\n const { placeholders } = input;\n const { locale } = getMiloConfig();\n const origin = getFederatedContentRoot();\n const url = `${origin}${locale.prefix}/federal/globalnav/placeholders.json`;\n const [\n cloudPlaceholders,\n federalPlaceholders\n ] = await Promise.all([\n placeholders,\n getFederalPlaceholders(url)\n ]);\n // if two keys are the same, cloudPlaceholders will be preferred\n return new Map([...federalPlaceholders, ...cloudPlaceholders]);\n};\n\nconst getFederalPlaceholders = async (\n url: string\n): Promise> => {\n try {\n const response = await fetch(url);\n if (!response.ok)\n throw new RecoverableError(`Federal placeholders not found at ${url}`);\n const obj = parseResponse(await response.json());\n if (obj instanceof RecoverableError)\n throw obj;\n return new Map(obj.data.map(({ key, value }) => [key, value]));\n } catch (e) {\n if (e instanceof RecoverableError) {\n console.error(e.message);\n } else {\n // @ts-expect-error errors usually have a message\n const err = new RecoverableError(e.message);\n console.error(err.message);\n }\n lanaLog(`Failed to fetch placeholders from ${url}`);\n return new Map([]);\n }\n};\n\nconst parseResponse = (\n obj: unknown\n): PlaceholderResponse | RecoverableError => {\n try {\n // For now, all we really care about is the\n // data field, though we could check everything\n const {\n data,\n } = obj as PlaceholderResponse;\n const validData = data.every(({ key, value }) => {\n return typeof key === \"string\"\n && typeof value === \"string\";\n });\n if (!validData)\n throw new Error(\"data is not valid\");\n return obj as PlaceholderResponse;\n } catch (e) {\n // @ts-expect-error errors usually have a message\n const err = new RecoverableError(e.message);\n return err;\n }\n}\n\nexport function replacePlaceholders(\n s: string,\n placeholders: Map\n): string {\n const regex = /{{(.*?)}}|%7B%7B(.*?)%7D%7D/g;\n const match = regex.test(s);\n if (!match) return s;\n return s.replace(regex, (_: string, p1?: string, p2?: string) => {\n const k = p1 ?? p2 ?? '';\n return placeholders.get(k) ?? k;\n });\n};\n\ntype PlaceholdersStateFunctions = [\n (p: Promise>) => void,\n () => Promise>,\n];\n\nexport const [\n setPlaceholders,\n getPlaceholders,\n] = ((): PlaceholdersStateFunctions => {\n let placeholdersPromise: Promise> | undefined;\n\n return [\n (p: Promise>): void => {\n if (placeholdersPromise) return;\n placeholdersPromise = p;\n },\n (): Promise> => {\n if (!placeholdersPromise) {\n throw new Error('Placeholders not initialized. Call setPlaceholders() first.');\n }\n return placeholdersPromise;\n },\n ];\n})();\n", "const MENU_WRAPPER_ID = 'feds-menu-wrapper';\n\n// Open-state class used in compound selectors (`.feds-popup.is-open`,\n// `.feds-menu-wrapper.is-open`). Replaces the HTML popover API so the gnav\n// stays out of the browser top layer.\nexport const IS_OPEN_CLASS = 'is-open';\n\nexport const triggerForPopupId = (\n root: ParentNode,\n id: string,\n): HTMLElement | null => {\n if (id === '') return null;\n return root.querySelector(`[aria-controls=\"${CSS.escape(id)}\"]`);\n};\n\nexport const triggersForPopupId = (\n root: ParentNode,\n id: string,\n): HTMLElement[] => {\n if (id === '') return [];\n return [\n ...root.querySelectorAll(`[aria-controls=\"${CSS.escape(id)}\"]`)\n ];\n};\n\nconst dispatchToggle = (el: HTMLElement, opening: boolean): void => {\n const init = {\n newState: opening ? 'open' : 'closed',\n oldState: opening ? 'closed' : 'open',\n bubbles: false,\n cancelable: false,\n } as const;\n // Fall back to a shaped Event for runtimes without ToggleEvent (older jsdom).\n const ToggleEventCtor = (window as unknown as {\n ToggleEvent?: typeof ToggleEvent\n }).ToggleEvent;\n const event = ToggleEventCtor !== undefined\n ? new ToggleEventCtor('toggle', init)\n : Object.assign(new Event('toggle', init), {\n newState: init.newState,\n oldState: init.oldState,\n });\n el.dispatchEvent(event);\n};\n\nexport const isPopupOpen = (el: HTMLElement | null | undefined): boolean =>\n el !== null && el !== undefined && el.classList.contains(IS_OPEN_CLASS);\n\nconst openPopup = (el: HTMLElement | null | undefined): void => {\n if (el === null || el === undefined) return;\n if (el.classList.contains(IS_OPEN_CLASS)) return;\n el.classList.add(IS_OPEN_CLASS);\n dispatchToggle(el, true);\n};\n\nexport const closePopup = (el: HTMLElement | null | undefined): void => {\n if (el === null || el === undefined) return;\n if (!el.classList.contains(IS_OPEN_CLASS)) return;\n el.classList.remove(IS_OPEN_CLASS);\n dispatchToggle(el, false);\n};\n\nexport const togglePopup = (el: HTMLElement | null | undefined): void => {\n if (el === null || el === undefined) return;\n if (el.classList.contains(IS_OPEN_CLASS)) closePopup(el);\n else openPopup(el);\n};\n\n// Click-to-toggle + aria reflection for every popup. Mutual exclusion only\n// applies between mega-menu popups; the hamburger does NOT close them\n// (light-dismiss owns that, matching original popover behaviour).\n// A single popup may have multiple triggers (e.g. in localnav the hamburger\n// and the mega-menu button both point at the same popup via aria-controls).\nexport const wirePopups = (mountpoint: HTMLElement): void => {\n const popups = mountpoint\n .querySelectorAll(`.feds-popup, #${MENU_WRAPPER_ID}`);\n\n popups.forEach(popup => {\n const triggers = triggersForPopupId(mountpoint, popup.id);\n if (triggers.length === 0) return;\n const isMenuWrapper = popup.id === MENU_WRAPPER_ID;\n\n triggers.forEach(trigger => {\n trigger.addEventListener('click', (event) => {\n event.preventDefault();\n const willOpen = !isPopupOpen(popup);\n if (willOpen && !isMenuWrapper) {\n mountpoint\n .querySelectorAll(`.feds-popup.${IS_OPEN_CLASS}`)\n .forEach(other => {\n if (other !== popup) closePopup(other);\n });\n }\n togglePopup(popup);\n });\n });\n\n popup.addEventListener('toggle', () => {\n const open = isPopupOpen(popup);\n triggers.forEach(trigger => {\n const isHamburger = trigger.classList.contains('feds-nav-toggle');\n const isLocalnavBar = trigger.classList.contains('feds-localnav-bar');\n trigger.setAttribute('aria-expanded', String(open));\n trigger.setAttribute(\n 'daa-ll',\n isHamburger\n ? (open ? 'hamburgermenu|close' : 'hamburgermenu|open')\n : isLocalnavBar\n ? (open ? 'localnav-bar|Close' : 'localnav-bar|Open')\n : (open ? 'header|Close' : 'header|Open'),\n );\n });\n popup.classList.toggle('feds-menu-active');\n });\n\n if (isMenuWrapper) {\n popup.addEventListener('transitionend', (event) => {\n // Ignore bubbled transitionend from descendants (e.g. .feds-link).\n if (event.target !== popup) return;\n if (!isPopupOpen(popup)) popup.classList.remove('feds-menu-active');\n });\n }\n });\n};\n\nexport const initLightDismiss = (mountpoint: HTMLElement): void => {\n document.addEventListener('click', (event) => {\n const target = event.target;\n if (!(target instanceof Node)) return;\n if (mountpoint.querySelector(`.${IS_OPEN_CLASS}`) === null) return;\n const openPopups = mountpoint.querySelectorAll(`.${IS_OPEN_CLASS}`);\n if ([...openPopups].some(open => open.contains(target))) return;\n openPopups.forEach(popup => {\n // A popup can have multiple triggers (e.g. in localnav the hamburger\n // and the mega-menu inline button both have aria-controls pointing at\n // the first mega-menu's popup). We must check ALL of them \u2014 using only\n // the first match would mis-classify clicks on the other trigger(s)\n // as outside-clicks and immediately close the popup the click was\n // trying to open.\n const triggers = triggersForPopupId(mountpoint, popup.id);\n if (triggers.some(trigger => trigger.contains(target))) return;\n closePopup(popup);\n });\n });\n};\n", "import { IrrecoverableError } from \"../Error/Error\";\nimport { lanaLog } from \"./Log\";\nimport { getPlaceholders, replacePlaceholders } from \"./Placeholders\";\nimport { IS_OPEN_CLASS, closePopup } from \"../PostRendering/PopupWiring\";\n\nexport const isDesktop = window.matchMedia('(min-width: 1024px)');\n\nexport const isNavDesktop = (): boolean =>\n isDesktop.matches &&\n document.querySelector('header.global-navigation')?.classList.contains('is-compact') !== true;\n\nexport const icons = {\n brand: '',\n company: '',\n search: '',\n home: '',\n chevronLeft: '',\n chevronRight: '',\n chevronDown: '',\n};\n\n// URL path segments that should receive the `merch` class\nconst MERCH_LINK_PATHS = ['/tools/ost?', '/miniplans'];\n\n/**\n * Checks if a URL should be decorated as a merch link\n * @param href - The URL to check\n * @returns true if the URL matches merch link paths\n */\nexport const isMerchLink = (href: string): boolean => {\n return MERCH_LINK_PATHS.some((path) => href.includes(path));\n};\n\n// split arrays based on a predicate\n// unlike string.prototype.split, it works on\n// all arrays.\nexport const split = (\n predicate: (_: T) => boolean\n) => (arr: T[]): T[][] => {\n const splitArrays = [];\n let currSubArray = [];\n for (let i = 0; i < arr.length; i++) {\n if (predicate(arr[i])) {\n splitArrays.push(currSubArray);\n currSubArray = [];\n continue;\n }\n currSubArray.push(arr[i]);\n }\n splitArrays.push(currSubArray);\n return splitArrays;\n};\n\nexport const zip = (\n xs: T[],\n ys: R[]\n): Array<[T, R]> => {\n const len = xs.length < ys.length\n ? xs.length\n : ys.length;\n const result = new Array(len) as Array<[T, R]>;\n for (let i = 0; i < len; i = i + 1) {\n result[i] = [xs[i], ys[i]];\n }\n return result;\n}\n\nexport const takeWhile = (\n predicate: (_: T) => boolean\n) => (arr: T[]): T[] => {\n if (arr.length === 0)\n return arr;\n const [firstItem, ...remainingItems] = arr;\n if (predicate(firstItem))\n return [firstItem].concat(takeWhile(predicate)(remainingItems));\n return [];\n};\n\nexport const dropWhile = (\n predicate: (_: T) => boolean\n) => (arr: T[]): T[] => {\n if (arr.length === 0)\n return arr;\n const [firstItem, ...remainingItems] = arr;\n if (predicate(firstItem))\n return dropWhile(predicate)(remainingItems);\n return remainingItems;\n};\n\nexport const getNextSiblings = (element: Element): Element[] => {\n const accumulator = [];\n let iterator = element.nextElementSibling as Element ?? null;\n while(iterator !== null) {\n accumulator.push(iterator);\n iterator = iterator.nextElementSibling as Element ?? null;\n }\n return accumulator;\n};\n\ntype Alternative = {\n or: (\n fallbackFn: (input: InputType) => ReturnType\n ) => Alternative;\n eval: (input: InputType) => ReturnType;\n};\n\nexport const alternative = (\n primaryFn: (input: InputType) => ReturnType\n): Alternative => {\n return {\n eval: primaryFn,\n or: (fallbackFn) => alternative((input) => {\n try {\n return primaryFn(input)\n } catch (_error) {\n return fallbackFn(input);\n }\n })\n }\n};\n\nexport const parseListAndAccumulateErrors = <\n UnParsedObj,\n ParsedObj,\n ErrorType\n >(\n elements: Array,\n parse: (element: UnParsedObj) => Parsed\n): Parsed, ErrorType> => elements.reduce(\n ([accElems, accErrors], element) => {\n try {\n const [parsedElement, parseErrors] = parse(element);\n return [\n [...accElems, parsedElement],\n [...accErrors, ...parseErrors]\n ];\n } catch (error) {\n if (error instanceof IrrecoverableError) {\n return [accElems, [\n error as ErrorType,\n ...accErrors]\n ];\n }\n return [accElems, accErrors];\n }\n },\n [[],[]] as Parsed, ErrorType>\n );\n\nexport type PersonalizationConfig = {\n commands: unknown[];\n handleCommands: (\n commands: unknown[],\n rootEl: Document | HTMLElement\n ) => unknown;\n};\n\nexport type LocalizeLink = (link: string) => string;\n\ntype PersonalizationStateFunctions = [\n (config: PersonalizationConfig) => void,\n () => PersonalizationConfig\n];\n\n// TODO: Consolidate all global state handlers into\n// a single file (but still probably keep them separate)\nexport const [setPersonalizationConfig, getPersonalizationConfig] =\n ((): PersonalizationStateFunctions => {\n let personalizationConfig: PersonalizationConfig | undefined;\n let isInitialized = false;\n\n return [\n (config: PersonalizationConfig): void => {\n if (isInitialized) {\n return;\n }\n\n personalizationConfig = config;\n isInitialized = true;\n },\n (): PersonalizationConfig => {\n if (!personalizationConfig) {\n throw new Error('PersonalizationConfig not initialized. Call setPersonalizationConfig() first.');\n }\n return personalizationConfig;\n },\n ];\n })();\n\ntype LocalizeLinkStateFunctions = [\n (localizeLink: LocalizeLink) => void,\n () => LocalizeLink\n];\n\nexport const [setLocalizeLink, getLocalizeLink] =\n ((): LocalizeLinkStateFunctions => {\n let localizeLink: LocalizeLink = (link: string): string => link;\n\n return [\n (nextLocalizeLink: LocalizeLink): void => {\n localizeLink = nextLocalizeLink;\n },\n (): LocalizeLink => localizeLink,\n ];\n })();\n\nexport const localizeHref = (href: string): string => {\n try {\n const absoluteHref = href.startsWith('/') ? `${window.location.origin}${href}` : href;\n return getLocalizeLink()(absoluteHref);\n } catch {\n return href;\n }\n};\n\nexport const fetchAndProcessPlainHTML = async (\n source: URL | null\n): Promise => {\n try {\n if (source === null)\n return new IrrecoverableError('URL is null');\n const plainHtmlSource = `${source.origin}${source.pathname.replace(/(\\.html$|$)/, '.plain.html')}${source.hash}`;\n const localizedSource = getLocalizeLink()(plainHtmlSource);\n const modifiedSource = federateUrl(localizedSource);\n const response = await fetch(modifiedSource);\n if (!response.ok) {\n lanaLog(`Request for ${modifiedSource} failed`);\n return new IrrecoverableError(`Request for ${modifiedSource} failed`);\n }\n const htmlText = await response.text();\n const resolvedPlaceholders = await getPlaceholders();\n const processedHtml = replacePlaceholders(htmlText, resolvedPlaceholders);\n const { body } = new DOMParser().parseFromString(processedHtml, \"text/html\");\n\n // Apply personalization to the fetched HTML\n try {\n const { handleCommands, commands } = getPersonalizationConfig();\n await handleCommands(commands, body);\n } catch (error) {\n // PersonalizationConfig not initialized or personalization failed\n // This is non-fatal, so we just log and continue\n // @ts-expect-error errors usually have a message\n lanaLog(`Personalization not applied: ${error?.message}`);\n }\n\n return body;\n } catch (error) {\n // @ts-expect-error errors usually have a message\n return new IrrecoverableError(error?.message);\n }\n};\n\n// TODO: refactor\nlet federatedContentRoot: string;\nexport const getFederatedContentRoot = (): string => {\n if (federatedContentRoot) return federatedContentRoot;\n\n const cdnWhitelistedOrigins = [\n 'https://www.adobe.com',\n 'https://business.adobe.com',\n 'https://blog.adobe.com',\n 'https://milo.adobe.com',\n 'https://news.adobe.com',\n 'graybox.adobe.com',\n ];\n // Non milo consumers will have its origin from config\n // TODO: allow the passing of a configured origin\n const origin = window.location.origin;\n\n const isAllowedOrigin = cdnWhitelistedOrigins.some((o) => {\n const originNoStage = origin.replace('.stage', '');\n return o.startsWith('https://')\n ? originNoStage === o\n : originNoStage.endsWith(o);\n });\n\n federatedContentRoot = isAllowedOrigin ? origin : 'https://www.adobe.com';\n\n const SLD = window.location.hostname.includes('.aem.') ? 'aem' : 'hlx';\n if (origin.includes('localhost') || origin.includes(`.${SLD}.`)) {\n federatedContentRoot = `https://main--federal--adobecom.aem.${origin.endsWith('.live') ? 'live' : 'page'}`;\n }\n\n return federatedContentRoot;\n};\n\n// TODO we should match the akamai patterns /locale/federal/\n// at the start of the url\n// and make the check more strict.\nexport const federateUrl = (url = ''): string => {\n // TEMPORARY REMOVE LATER\n if (url.includes('stage.adobe.com')) {\n return url.replace('c2-poc--milo--adobecom', 'main--federal--adobecom');\n }\n if (url.includes('c2-poc-feds-gnav--milo--adobecom')) {\n return url.replace('c2-poc-feds-gnav--milo--adobecom', 'main--federal--adobecom');\n }\n if (url.includes('localhost:3000')) {\n return url.replace('localhost:3000', 'main--federal--adobecom.aem.page');\n }\n if (typeof url !== 'string' || !url.includes('/federal/')) return url;\n if (url.startsWith('/')) return `${getFederatedContentRoot()}${url}`;\n try {\n const { pathname, search, hash } = new URL(url);\n return `${getFederatedContentRoot()}${pathname}${search}${hash}`;\n } catch (e: unknown) {\n const message = e instanceof Error ? e.message : String(e);\n console.warn(`getFederatedUrl errored parsing the URL: ${url}: ${message}`);\n }\n return url;\n};\n\n/**\n * Replaces relative media paths (./media_*) with absolute federated URLs.\n * @param path - The source path/URL used to resolve relative media references\n * @param ele - The DOM element containing media elements to process\n */\nexport const replaceDotMedia = (path: string, ele: Element): void => {\n /* Helper function to update media attributes for a specific element type */\n const resetAttributeBase = (\n tag: 'img' | 'source',\n attr: 'src' | 'srcset'\n ): void => {\n const selector = `${tag}[${attr}^=\"./media_\"]`;\n const elements = tag === 'img'\n ? ele.querySelectorAll(selector)\n : ele.querySelectorAll(selector);\n\n elements.forEach((el) => {\n const attrValue = el.getAttribute(attr);\n if (attrValue === null || attrValue === \"\") return;\n\n try {\n // Construct absolute URL by resolving\n // relative path against source location\n // Then federate the URL to ensure it\n // points to the correct content source\n const absoluteUrl = federateUrl(\n new URL(attrValue, new URL(path, window.location.href)).href\n );\n el.setAttribute(attr, absoluteUrl);\n } catch (error) {\n // This prevents one malformed URL from breaking all media processing\n console.warn(`[MediaPathError]: Failed to process relative media path (${attrValue}) for ${tag}`, error);\n }\n });\n };\n resetAttributeBase('img', 'src');\n resetAttributeBase('source', 'srcset');\n};\n\nexport const inlineNestedFragments = async (\n element: Element | HTMLElement\n): Promise => {\n const processElement = async (\n currentElem: Element | HTMLElement | IrrecoverableError,\n visitedUrls: Set\n ): Promise => {\n if (currentElem instanceof IrrecoverableError)\n return currentElem;\n try {\n const anchorElements = [\n ...currentElem.querySelectorAll('a[href*=\"#_inline\"]')\n ] as HTMLAnchorElement[];\n const inlineLinks = anchorElements\n .map(async (anchorElement: HTMLAnchorElement) => {\n try {\n if (visitedUrls.has(anchorElement.href)) return;\n const federatedUrl = federateUrl(anchorElement.href);\n const fragmentUrl = new URL(federatedUrl);\n const fragmentBody = await fetchAndProcessPlainHTML(fragmentUrl);\n visitedUrls.add(anchorElement.href);\n if (fragmentBody instanceof IrrecoverableError)\n throw fragmentBody;\n await processElement(fragmentBody, visitedUrls);\n anchorElement.replaceWith(...fragmentBody.children);\n return;\n } catch {\n return;\n }\n }, [] as Array<[HTMLAnchorElement, URL]>)\n await Promise.all(inlineLinks);\n return currentElem\n } catch (error) {\n return new IrrecoverableError(JSON.stringify(error));\n }\n }\n return processElement(element, new Set());\n};\n\nexport const renderListItems = (\n items: T[],\n renderFn: (item: T, index: number) => string\n): string => {\n return items.map((item, index) => `
  • ${renderFn(item, index)}
  • `).join('');\n};\n\nexport const sanitize = (str: string): string => {\n const sanitized = str\n .normalize('NFKC')\n .toLocaleLowerCase()\n .trim()\n // Replace any run of non-letter/number characters with a single hyphen.\n .replace(/[^\\p{L}\\p{N}\\p{M}]+/gu, '-')\n // Remove leading/trailing hyphens.\n .replace(/^-+|-+$/g, '');\n\n if (sanitized === '') return 'id';\n\n // Ensure IDs do not start with a number in any script.\n return /^\\p{N}/u.test(sanitized) ? `id-${sanitized}` : sanitized;\n};\n\nexport const getAnalyticsAttrs = (\n daaLh: string | null,\n daaLl: string | null\n): string => {\n const daaLhAttr = daaLh !== null && daaLh !== \"\"\n ? ` daa-lh=\"${daaLh}\"`\n : \"\";\n const daaLlAttr = daaLl !== null && daaLl !== \"\"\n ? ` daa-ll=\"${daaLl}\"`\n : \"\";\n return `${daaLhAttr}${daaLlAttr}`;\n};\n\n/**\n * Renders aria attributes from an object\n * @param ariaAttrs - Object containing aria attributes\n * @param ariaLabel - Optional aria-label that takes precedence\n * @returns Formatted string of aria attributes\n */\nexport const getAriaAttrs = (\n ariaAttrs?: Record,\n ariaLabel?: string\n): string => {\n const hasAriaLabel =\n ariaLabel !== null && ariaLabel !== undefined && ariaLabel !== '';\n const hasAriaAttrs = ariaAttrs !== undefined;\n if (!hasAriaAttrs && !hasAriaLabel) return '';\n\n const attrs: string[] = [];\n\n // ariaLabel takes precedence over ariaAttrs['aria-label']\n if (hasAriaLabel) {\n attrs.push(`aria-label=\"${ariaLabel}\"`);\n } else {\n const fallbackAriaLabel = ariaAttrs?.['aria-label'] ?? '';\n if (fallbackAriaLabel !== '') {\n attrs.push(`aria-label=\"${fallbackAriaLabel}\"`);\n }\n }\n\n // Add other aria attributes\n if (ariaAttrs) {\n Object.entries(ariaAttrs).forEach(([key, value]) => {\n // Skip aria-label if we already handled it\n if (key !== 'aria-label' && value) {\n attrs.push(`${key}=\"${value}\"`);\n }\n });\n }\n\n return attrs.length > 0 ? ` ${attrs.join(' ')}` : '';\n};\n\n\nexport const isDarkMode = (): boolean => {\n // TODO: Implement dark mode detection\n return true;\n};\n\n/**\n * Configuration options for dynamically loading link elements\n */\ntype LoadLinkOptions = {\n id?: string;\n as?: string;\n callback?: (type: string) => T;\n crossorigin?: string;\n rel: string;\n fetchpriority?: string;\n}\n\n/**\n * Dynamically loads a link element into the document head.\n * Prevents duplicate loading by checking if a link\n * with the same href already exists.\n *\n * @param href - URL of the resource to load\n * @param options - Configuration options for the link element\n * @returns The created or existing HTMLLinkElement\n *\n * @example\n * // Load a stylesheet with high priority\n * loadLink('/styles/main.css', {\n * rel: 'stylesheet',\n * fetchpriority: 'high',\n * callback: (type) => console.log(`Stylesheet ${type}`)\n * });\n */\nexport function loadLink(\n href: string,\n {\n id,\n as,\n callback,\n crossorigin,\n rel,\n fetchpriority,\n }: LoadLinkOptions = { rel: 'stylesheet' }\n): HTMLLinkElement {\n // Check if link already exists to prevent duplicates\n const existingLink = document.head.querySelector(`link[href=\"${href}\"]`);\n if (existingLink) {\n // Link already exists, invoke callback with\n // 'noop' to indicate no action taken\n callback?.('noop');\n return existingLink as HTMLLinkElement;\n }\n // Create new link element with specified attributes\n const link = document.createElement('link');\n link.setAttribute('rel', rel);\n if (id !== undefined) link.setAttribute('id', id);\n if (as !== undefined) link.setAttribute('as', as);\n if (crossorigin !== undefined) link.setAttribute('crossorigin', crossorigin);\n if (fetchpriority !== undefined) link.setAttribute('fetchpriority', fetchpriority);\n link.setAttribute('href', href);\n\n // Attach load/error event handlers if callback provided\n if (callback) {\n link.onload = (e: Event): T => callback(e.type);\n link.onerror = (e: string | Event): T => callback(typeof e === 'string' ? 'error' : e.type);\n }\n document.head.appendChild(link);\n return link;\n}\n\n/**\n * Convenience function to load a CSS stylesheet.\n *\n * @param href - URL of the stylesheet to load\n * @param callback - Optional callback invoked on load/error events\n * @returns The created or existing HTMLLinkElement\n */\nexport function loadStyle(\n href: string,\n callback?: (type: string) => void\n): HTMLLinkElement {\n return loadLink(href, { rel: 'stylesheet', callback });\n}\n\n/**\n * Conditionally loads a stylesheet based on the override flag.\n *\n * @param url - URL of the stylesheet to load\n * @param override - Whether to load the stylesheet (defaults to false)\n */\nexport function loadStyles(url: string, override = false): void {\n if (!override) return;\n loadStyle(url);\n}\n\n/**\n * Configuration options for dynamically loading script elements\n */\ntype LoadScriptOptions = {\n /** Loading strategy: 'async' for parallel execution,\n * 'defer' for sequential after DOM parsing */\n mode?: 'async' | 'defer';\n /** Unique identifier for the script element */\n id?: string;\n};\n\n/**\n * Dynamically loads a JavaScript file into the document head.\n * Returns a Promise that resolves when the script loads successfully\n * or rejects on error.\n * Prevents duplicate loading and tracks loaded state via data-loaded attribute.\n *\n * @param url - URL of the script to load\n * @param type - Script MIME type (e.g., 'module', 'text/javascript')\n * @param options - Configuration options for loading behavior\n * @returns Promise that resolves with the HTMLScriptElement on success\n *\n * @example\n * // Load a module script asynchronously\n * loadScript('/js/app.js', 'module', { mode: 'async' })\n * .then(script => console.log('Script loaded'))\n * .catch(error => console.error('Failed to load:', error));\n */\nexport const loadScript = (\n url: string,\n type?: string,\n { mode, id }: LoadScriptOptions = {}\n): Promise => new Promise((resolve, reject) => {\n // Check if script already exists to prevent duplicates\n let script: HTMLScriptElement | null = document.querySelector(`head > script[src=\"${url}\"]`);\n if (!script) {\n // Create new script element with specified attributes\n const { head } = document;\n script = document.createElement('script');\n script.setAttribute('src', url);\n if (id !== null && id !== undefined) script.setAttribute('id', id);\n if (type !== null && type !== undefined) {\n script.setAttribute('type', type);\n }\n // Set loading mode (async or defer) if specified\n if (mode !== undefined) script.setAttribute(mode, '');\n head.append(script);\n }\n\n // If script was previously loaded, resolve immediately\n const loaded = script.dataset.loaded;\n if (loaded !== null && loaded !== undefined) {\n resolve(script);\n return;\n }\n\n // Set up event handler for load and error events\n const onScript = (event: Event): void => {\n script.removeEventListener('load', onScript);\n script.removeEventListener('error', onScript);\n\n if (event.type === 'error') {\n reject(new Error(`error loading script: ${script.src}`));\n } else if (event.type === 'load') {\n // Mark script as loaded to prevent re-execution\n script.dataset.loaded = 'true';\n resolve(script);\n }\n };\n\n script.addEventListener('load', onScript);\n script.addEventListener('error', onScript);\n});\n\n/**\n * Retrieves metadata content from the document's head section.\n * Automatically determines whether to use 'name' or 'property'\n * attribute based on the metadata name.\n *\n * Uses 'property' attribute for Open Graph and other namespaced\n * metadata (containing ':'),\n * and 'name' attribute for standard HTML metadata.\n *\n * @param name - The metadata name or property to search for\n * (e.g., 'description', 'og:title')\n * @param doc - The document to search in (defaults to current document)\n * @returns The metadata content value, or null if not found\n *\n * @example\n * // Get standard meta tag\n * const description = getMetadata('description');\n *\n * @example\n * // Get Open Graph meta tag\n * const ogTitle = getMetadata('og:title');\n */\nexport function getMetadata(\n name: string,\n doc: Document = document\n): string | null {\n // Use 'property' for namespaced metadata (e.g., Open Graph), 'name'\n // for standard metadata\n const attr = name && name.includes(':') ? 'property' : 'name';\n const meta = doc.head.querySelector(`meta[${attr}=\"${name}\"]`);\n return meta instanceof HTMLMetaElement ? meta.content : null;\n}\n\ntype MiloConfigEnv = {\n name: string; // Env name: 'local', 'stage', or 'prod'\n ims?: string; // IMS environment: 'stg1' or 'prod'\n adobeIO?: string; // Adobe I/O hostname\n adminconsole?: string; // Admin Console hostname\n account?: string; // Account hostname\n edgeConfigId?: string; // Edge configuration ID\n pdfViewerClientId?: string; // PDF Viewer client ID\n consumer?: { // Consumer-specific configuration (optional)\n pdfViewerClientId: string;\n pdfViewerReportSuite: string;\n psUrl: string;\n odinEndpoint: string;\n };\n};\n\ntype MiloConfigLocale = {\n prefix: string; // e.g., '', '/fr', '/de', '/jp/ja'\n ietf?: string; // e.g., 'en-US', 'fr-FR', 'de-DE'\n tk?: string; // Typekit font ID, e.g., 'hah7vzn.css'\n region?: string; // Region/country code, e.g. 'us', 'gb', 'fr'\n regions?: Record; // Regional configuration mapping\n contentRoot?: string; // Full content path with origin\n language?: string; // Langcode (new routing)e.g., 'en','fr','de'\n dir?: string; // Text direction: 'ltr' or 'rtl'\n\n // Allow additional locale-specific properties\n [key: string]: unknown; // Additional locale configuration\n};\n\ntype UnavProfileConfig = {\n messageEventListener?: (event: CustomEvent) => void;\n complexConfig?: Record | null;\n config?: Record;\n signInCtaStyle?: 'primary' | 'secondary';\n}\n\ntype UnavConfig = {\n unavHelpChildren?: Array<{ type: string }>;\n profile?: UnavProfileConfig;\n uncAppId?: string;\n uncConfig?: Record;\n showSectionDivider?: boolean;\n}\n\ntype JarvisConfig = {\n id: string;\n callbacks?: Record unknown>;\n}\n\nexport type MiloConfig = {\n env: MiloConfigEnv;\n base: string;\n locale: MiloConfigLocale;\n unav?: UnavConfig;\n jarvis?: JarvisConfig;\n signInContext?: object; // IMS sign-in context for UNAV\n};\n\n/**\n * Validates MiloConfig structure at runtime\n * @param config - Configuration object to validate\n * @returns true if valid, false otherwise\n */\nconst isValidMiloConfig = (config: unknown): config is MiloConfig => {\n const cfg = config as MiloConfig;\n\n const invalid = (x: unknown): boolean => x === null || x === undefined || typeof x !== 'object';\n\n if (invalid(cfg)) return false;\n\n // Validate locale structure\n if (invalid(cfg.locale)) return false;\n const locale = cfg.locale as Record;\n if (typeof locale.prefix !== 'string') return false;\n\n // Validate env structure\n if (invalid(cfg.env)) return false;\n const env = cfg.env as Record;\n if (typeof env.name !== 'string') return false;\n\n // Validate optional unav structure\n if (cfg.unav !== undefined) {\n if (typeof cfg.unav !== 'object' || cfg.unav === null) return false;\n const unav = cfg.unav as Record;\n\n // Validate unav.profile if present\n if (unav.profile !== undefined) {\n if (typeof unav.profile !== 'object' || unav.profile === null) return false;\n const profile = unav.profile as Record;\n\n // Validate signInCtaStyle if present\n if (profile.signInCtaStyle !== undefined) {\n if (profile.signInCtaStyle !== 'primary' && profile.signInCtaStyle !== 'secondary') {\n return false;\n }\n }\n\n // Validate messageEventListener if present\n if (profile.messageEventListener !== undefined && typeof profile.messageEventListener !== 'function') {\n return false;\n }\n }\n }\n\n // Validate optional jarvis structure\n if (cfg.jarvis !== undefined) {\n if (typeof cfg.jarvis !== 'object' || cfg.jarvis === null) return false;\n const jarvis = cfg.jarvis as Record;\n\n // id is required if jarvis object exists\n if (typeof jarvis.id !== 'string') return false;\n }\n\n return true;\n};\n\n/**\n * MiloConfig Configuration State Management\n * Implements closure-based singleton pattern\n * for global configuration with validation\n *\n * @throws Error if config validation fails or if accessed before initialization\n */\n\n type ConfigStateFunctions = [ (config: unknown) => void, () => MiloConfig]\n\nexport const [setMiloConfig, getMiloConfig] = ((): ConfigStateFunctions => {\n let miloConfig: MiloConfig | undefined;\n let isInitialized = false;\n\n return [\n (config: unknown): void => {\n if (isInitialized) {\n return;\n }\n\n // Validate config structure\n if (!isValidMiloConfig(config)) {\n throw new Error('MiloConfig validation failed: Invalid structure');\n }\n\n miloConfig = config;\n isInitialized = true;\n },\n (): MiloConfig => {\n if (!miloConfig) {\n throw new Error('MiloConfig not initialized. Call setMiloConfig() first.');\n }\n return miloConfig;\n },\n ];\n})();\n\nconst LanguageMap = {\n en: 'US',\n 'en-gb': 'GB',\n 'es-mx': 'MX',\n 'fr-ca': 'CA',\n da: 'DK',\n et: 'EE',\n ar: 'DZ',\n el: 'GR',\n iw: 'IL',\n he: 'IL',\n id: 'ID',\n ms: 'MY',\n nb: 'NO',\n sl: 'SI',\n sv: 'SE',\n cs: 'CZ',\n uk: 'UA',\n hi: 'IN',\n 'zh-hans': 'CN',\n 'zh-hant': 'TW',\n ja: 'JP',\n ko: 'KR',\n fil: 'PH',\n th: 'TH',\n vi: 'VN',\n};\n\nconst GeoMap = {\n ar: 'AR_es',\n be_en: 'BE_en',\n be_fr: 'BE_fr',\n be_nl: 'BE_nl',\n br: 'BR_pt',\n ca: 'CA_en',\n ch_de: 'CH_de',\n ch_fr: 'CH_fr',\n ch_it: 'CH_it',\n cl: 'CL_es',\n co: 'CO_es',\n la: 'DO_es',\n mx: 'MX_es',\n pe: 'PE_es',\n africa: 'MU_en',\n dk: 'DK_da',\n de: 'DE_de',\n ee: 'EE_et',\n eg_ar: 'EG_ar',\n eg_en: 'EG_en',\n es: 'ES_es',\n fr: 'FR_fr',\n gr_el: 'GR_el',\n gr_en: 'GR_en',\n ie: 'IE_en',\n il_he: 'IL_iw',\n it: 'IT_it',\n lv: 'LV_lv',\n lt: 'LT_lt',\n lu_de: 'LU_de',\n lu_en: 'LU_en',\n lu_fr: 'LU_fr',\n my_en: 'MY_en',\n my_ms: 'MY_ms',\n hu: 'HU_hu',\n mt: 'MT_en',\n mena_en: 'DZ_en',\n mena_ar: 'DZ_ar',\n nl: 'NL_nl',\n no: 'NO_nb',\n pl: 'PL_pl',\n pt: 'PT_pt',\n ro: 'RO_ro',\n si: 'SI_sl',\n sk: 'SK_sk',\n fi: 'FI_fi',\n se: 'SE_sv',\n tr: 'TR_tr',\n uk: 'GB_en',\n at: 'AT_de',\n cz: 'CZ_cs',\n bg: 'BG_bg',\n ru: 'RU_ru',\n ua: 'UA_uk',\n au: 'AU_en',\n in_en: 'IN_en',\n in_hi: 'IN_hi',\n id_en: 'ID_en',\n id_id: 'ID_id',\n nz: 'NZ_en',\n sa_ar: 'SA_ar',\n sa_en: 'SA_en',\n sg: 'SG_en',\n cn: 'CN_zh-Hans',\n tw: 'TW_zh-Hant',\n hk_zh: 'HK_zh-hant',\n jp: 'JP_ja',\n kr: 'KR_ko',\n za: 'ZA_en',\n ng: 'NG_en',\n cr: 'CR_es',\n ec: 'EC_es',\n pr: 'US_es', // not a typo, should be US\n gt: 'GT_es',\n cis_en: 'TM_en',\n cis_ru: 'TM_ru',\n sea: 'SG_en',\n th_en: 'TH_en',\n th_th: 'TH_th',\n};\n\nfunction getDefaultLangstoreCountry(language: string): string {\n let country = LanguageMap[language as keyof typeof LanguageMap];\n if (!country && GeoMap[language as keyof typeof GeoMap]) {\n country = language; // es, fr, pt, de\n }\n if (!country && language.includes('-')) {\n [country] = language.split('-'); // variations like es-419, pt-PT\n }\n\n return country || 'US';\n}\n\nconst LANG_STORE_PREFIX = 'langstore/';\n\ntype MiloLocaleSettings = {\n language: string;\n country: string;\n locale: `${string}_${string}`;\n};\n\nexport function getMiloLocaleSettings(\n miloLocale: MiloConfigLocale\n): MiloLocaleSettings {\n const localePrefix = miloLocale?.prefix || 'US_en';\n const geo = localePrefix.replace('/', '') ?? '';\n let [country = 'US', language = 'en'] = (GeoMap[geo as keyof typeof GeoMap] ?? geo).split('_', 2);\n\n if (\n geo.startsWith(LANG_STORE_PREFIX)\n || window.location.pathname.startsWith(`/${LANG_STORE_PREFIX}`)\n ) {\n const localeLang = geo.replace(LANG_STORE_PREFIX, '').toLowerCase();\n country = getDefaultLangstoreCountry(localeLang);\n language = localeLang;\n }\n\n country = country.toUpperCase();\n language = language.toLowerCase();\n\n return {\n language,\n country,\n locale: `${language}_${country}`,\n };\n}\n\nexport const closePopovers = (mountpoint: HTMLElement): void => {\n const menuPopover = mountpoint.querySelector('#feds-menu-wrapper');\n menuPopover?.classList.remove('feds-menu-active');\n closePopup(menuPopover);\n mountpoint\n .querySelectorAll(`.feds-popup.${IS_OPEN_CLASS}`)\n .forEach(closePopup);\n};\n\nexport const animateInSequence = (xs: HTMLElement[], gap: number): void => {\n for (let i = 0; i < xs.length; i += 1) {\n xs[i].style.animationDelay = `${(i + 1) * gap}s`;\n }\n};\n\nexport function getExperienceName(): string {\n const explicitExperience = getMetadata('gnav-source')\n ?.split('#')[0]\n ?.split('/')\n .pop()\n ?.trim();\n if (explicitExperience !== undefined && explicitExperience !== '' && explicitExperience !== 'gnav')\n return explicitExperience;\n const imsClientId = (window as Window & {\n adobeid?: { client_id?: string };\n }).adobeid?.client_id;\n return typeof imsClientId === 'string' && imsClientId !== '' ? imsClientId : '';\n}\n", "import { localizeHref } from \"../../Utils/Utils\";\nimport { Breadcrumbs } from \"./Parse\";\n\nexport const breadcrumbs = ({ items }: Breadcrumbs): HTML => `\n
      \n ${items.map((item) =>\n typeof item === 'string'\n ? `
    • ${item}
    • `\n : `
    • ${item.text}
    • `\n ).join('')}\n
    \n`.trim();\n", "import { IrrecoverableError, RecoverableError } from \"../../Error/Error\";\n\nexport type ImageData = {\n type: 'svg';\n lightThemeImageSrc: string;\n lightThemeImageAlt: string;\n darkThemeImageSrc: string;\n darkThemeImageAlt: string;\n mobileLightThemeImageSrc: string;\n mobileLightThemeImageAlt: string;\n mobileDarkThemeImageSrc: string;\n mobileDarkThemeImageAlt: string;\n};\n\nexport type Brand = {\n type: 'Brand';\n data: {\n href: string; label: string; isDarkBg: boolean; imageData: ImageData\n }\n};\n\nconst ERRORS = {\n elementNull: \"Error when parsing Brand. Element is null\",\n noLinkSection: \"Error when parsing Brand. No link section found\",\n noLink: \"Error when parsing Brand. No link found\",\n noImageSection: \"Error when parsing Brand. No image section found\",\n missingImageSections:\n \"Error when parsing Brand. Missing mobile or desktop image section\",\n missingThemeImages:\n \"Error when parsing Brand. Missing mobile or desktop image section\",\n};\n\nexport const parseBrand = (\n element: Element | null,\n): Parsed => {\n const errors = new Set();\n if (element === null) {\n throw new IrrecoverableError(ERRORS.elementNull);\n }\n\n const isDarkBg = !!element.classList.contains('dark-bg');\n\n const [linkSection, imagesSection] = element.querySelectorAll(':scope > div');\n if (linkSection === undefined) {\n throw new IrrecoverableError(ERRORS.noLinkSection);\n }\n\n const linkElement = linkSection.querySelector('a');\n if (linkElement === null) {\n throw new IrrecoverableError(ERRORS.noLink);\n }\n\n const href = linkElement.getAttribute('href') ?? '';\n const label = linkElement.textContent?.trim() ?? '';\n\n if (imagesSection === undefined) {\n errors.add(new RecoverableError(ERRORS.noImageSection));\n }\n\n const [mobileImageSection, desktopImageSection] = imagesSection\n ?.querySelectorAll(':scope > div') ?? [];\n if (\n mobileImageSection === undefined\n || desktopImageSection === undefined\n ) {\n errors.add(new RecoverableError(ERRORS.missingImageSections));\n }\n\n const mobileImages = mobileImageSection\n ?.querySelectorAll('a[href$=\".svg\"]');\n const desktopImages = desktopImageSection\n ?.querySelectorAll('a[href$=\".svg\"]');\n\n const lightThemeMobileImageSrc =\n mobileImages?.[0]?.getAttribute('href') ?? '';\n const lightThemeMobileImageAlt =\n mobileImages?.[0]?.textContent?.split('|')[1]?.trim() ?? '';\n const darkThemeMobileImageSrc =\n mobileImages?.[1]?.getAttribute('href') ?? '';\n const darkThemeMobileImageAlt =\n mobileImages?.[1]?.textContent?.split('|')[1]?.trim() ?? '';\n const lightThemeDesktopImageSrc =\n desktopImages?.[0]?.getAttribute('href') ?? '';\n const lightThemeDesktopImageAlt =\n desktopImages?.[0]?.textContent?.split('|')[1]?.trim() ?? '';\n const darkThemeDesktopImageSrc =\n desktopImages?.[1]?.getAttribute('href') ?? '';\n const darkThemeDesktopImageAlt =\n desktopImages?.[1]?.textContent?.split('|')[1]?.trim() ?? '';\n\n if (\n !lightThemeMobileImageSrc\n || !lightThemeDesktopImageSrc\n || !darkThemeMobileImageSrc\n || !darkThemeDesktopImageSrc\n ) {\n errors.add(new RecoverableError(ERRORS.missingThemeImages));\n }\n\n return [{\n type: 'Brand',\n data: {\n href,\n label,\n isDarkBg,\n imageData: {\n type: 'svg',\n lightThemeImageSrc: lightThemeDesktopImageSrc,\n lightThemeImageAlt: lightThemeDesktopImageAlt,\n darkThemeImageSrc: darkThemeDesktopImageSrc,\n darkThemeImageAlt: darkThemeDesktopImageAlt,\n mobileLightThemeImageSrc: lightThemeMobileImageSrc,\n mobileLightThemeImageAlt: lightThemeMobileImageAlt,\n mobileDarkThemeImageSrc: darkThemeMobileImageSrc,\n mobileDarkThemeImageAlt: darkThemeMobileImageAlt,\n },\n },\n }, [...errors]]\n};\n", "import { Brand, ImageData } from \"./Parse\";\nimport { federateUrl, localizeHref } from \"../../Utils/Utils\";\n\nconst DESKTOP_SVG = `\n\n\n \n\n`.trim();\n\nconst MOBILE_SVG = `\n\n\n\n`.trim();\n\ntype RenderBrandData = {\n href: string;\n label: string;\n isDarkBg: boolean;\n imageData: ImageData;\n};\n\nconst renderBrand = (data: RenderBrandData): HTML => {\nconst { href, label, isDarkBg, imageData } = data;\n\n // Fallback behavior:\n // - If only light exists, use it for dark too\n // - If only dark exists, use it for light too\n const desktopLightSrc = imageData.lightThemeImageSrc?.trim() || imageData.darkThemeImageSrc?.trim() || '';\n const desktopDarkSrc = imageData.darkThemeImageSrc?.trim() || imageData.lightThemeImageSrc?.trim() || '';\n const mobileLightSrc = imageData.mobileLightThemeImageSrc?.trim() || imageData.mobileDarkThemeImageSrc?.trim() || '';\n const mobileDarkSrc = imageData.mobileDarkThemeImageSrc?.trim() || imageData.mobileLightThemeImageSrc?.trim() || '';\n\n const desktopLightAlt = imageData.lightThemeImageAlt || imageData.darkThemeImageAlt || '';\n const desktopDarkAlt = imageData.darkThemeImageAlt || imageData.lightThemeImageAlt || '';\n const mobileLightAlt = imageData.mobileLightThemeImageAlt || imageData.mobileDarkThemeImageAlt || '';\n const mobileDarkAlt = imageData.mobileDarkThemeImageAlt || imageData.mobileLightThemeImageAlt || '';\n\n const hasDesktopLight = !!desktopLightSrc;\n const hasDesktopDark = !!desktopDarkSrc;\n const hasMobileLight = !!mobileLightSrc;\n const hasMobileDark = !!mobileDarkSrc;\n\n const desktopLightImg = hasDesktopLight\n ? `\"${desktopLightAlt}\"`\n : '';\n const desktopDarkImg = hasDesktopDark\n ? `\"${desktopDarkAlt}\"`\n : '';\n\n const mobileLightImg = hasMobileLight\n ? `\"${mobileLightAlt}\"`\n : '';\n const mobileDarkImg = hasMobileDark\n ? `\"${mobileDarkAlt}\"`\n : '';\n\n const desktopSvg = hasDesktopLight && hasDesktopDark ? '' : DESKTOP_SVG;\n const mobileSvg = hasMobileLight && hasMobileDark ? '' : MOBILE_SVG;\n\n return ``.trim();\n};\n\nexport const brand = (brandData: Brand): HTML => {\n const { data } = brandData;\n return renderBrand(data);\n};\n", "import { RecoverableError } from \"../../Error/Error\";\nimport { alternative } from \"../../Utils/Utils\";\n\nexport type PrimaryCTA = {\n type: \"PrimaryCTA\";\n text: string;\n href: string;\n ariaLabel?: string;\n ariaAttrs?: Record;\n daaLl?: string | null;\n};\n\nexport type SecondaryCTA = {\n type: \"SecondaryCTA\";\n text: string;\n href: string;\n ariaLabel?: string;\n ariaAttrs?: Record;\n daaLl?: string | null;\n};\n\nexport type ProductEntryCTA = {\n type: \"ProductEntryCTA\";\n cta: PrimaryCTA | SecondaryCTA;\n};\n\nconst parseCTA = (\n type: Pick\n) => (\n element: Element | null\n): Parsed => {\n if (element === null)\n throw new Error('');\n\n const anchor = element.querySelector(getSelector(type));\n if (!anchor)\n throw new Error('');\n\n const textContent = anchor.textContent ?? '';\n const [text = '', pipeAriaLabel = ''] = textContent.split('|').map((s) => s.trim());\n if (text === '')\n throw new Error('');\n\n const href = anchor.getAttribute('href') ?? '';\n if (href === '')\n throw new Error('');\n\n const daaLl = anchor.getAttribute('daa-ll');\n const ariaLabelAttr = anchor.getAttribute('aria-label')?.trim() ?? '';\n const ariaLabel = ariaLabelAttr !== ''\n ? ariaLabelAttr\n : (pipeAriaLabel !== '' ? pipeAriaLabel : undefined);\n const es: RecoverableError[] = [];\n\n return [\n {\n type: type.type,\n text,\n href,\n ariaLabel,\n daaLl: typeof daaLl === 'string' && daaLl.trim() !== '' ? daaLl : text,\n },\n es\n ]\n}\n\nexport const parsePrimaryCTA = parseCTA({ type: \"PrimaryCTA\" });\n\nexport const parseSecondaryCTA = parseCTA({ type: \"SecondaryCTA\" });\n\nexport const parseProductEntryCTA = (\n element: Element | null\n): Parsed => {\n const [cta, errors] = alternative(parsePrimaryCTA)\n .or(parseSecondaryCTA)\n .eval(element);\n return [{ type: \"ProductEntryCTA\", cta }, errors];\n};\n\ntype CTA\n = PrimaryCTA\n | SecondaryCTA;\n\nconst getSelector = ({ type }: Pick): string => {\n switch (type) {\n case \"PrimaryCTA\": return 'strong > a';\n case \"SecondaryCTA\": return 'em > a';\n default: throw new Error('');\n }\n}\n\n", "import { getAnalyticsAttrs, getAriaAttrs, localizeHref } from \"../../Utils/Utils\";\nimport { PrimaryCTA, ProductEntryCTA, SecondaryCTA } from \"./Parse\";\n\nexport const primaryCTA = ({\n text,\n href,\n daaLl,\n ariaLabel,\n ariaAttrs,\n}: PrimaryCTA): HTML => `\n\n ${text}\n\n`;\n\nexport const secondaryCTA = ({\n text,\n href,\n daaLl,\n ariaLabel,\n ariaAttrs,\n}: SecondaryCTA): HTML => `\n\n ${text}\n\n`;\n\nexport const productEntryCTA = (\n { cta }: ProductEntryCTA\n): HTML => `
    ${\n cta.type === \"PrimaryCTA\" ? primaryCTA(cta) : secondaryCTA(cta)\n}
    `;\n\n", "import { IrrecoverableError, RecoverableError } from \"../../Error/Error\";\n\nexport type Link = {\n type: 'Link';\n text: string;\n mobileText?: string;\n href: string;\n daaLl?: string | null;\n ariaLabel?: string;\n ariaAttrs?: Record;\n svgIcon?: string;\n highlight?: boolean;\n};\n\nconst ERRORS = {\n elementNull: \"Error when parsing Link. Element is null\",\n notAnchor: \"Cannot parse non-anchor as Link\",\n textContentNotFound: \"Error when parsing Link. Element has no textContent\",\n hrefNotFound: \"Element has no href\",\n}\n\nexport const parseLink = (\n anchor: Element | null\n): Parsed => {\n if (anchor === null)\n throw new IrrecoverableError(ERRORS.elementNull);\n\n if (anchor.tagName !== 'A')\n throw new IrrecoverableError(ERRORS.notAnchor);\n\n const [rawText, ariaLabel] = anchor?.textContent?.split('|').map(s => s.trim()) ?? ['', ''];\n if (rawText === '')\n throw new IrrecoverableError(ERRORS.textContentNotFound)\n\n const [text, mobileText] = rawText.split('::').map(s => s.trim());\n\n const href = anchor?.getAttribute(\"href\") ?? '';\n if (href === '')\n throw new IrrecoverableError(ERRORS.hrefNotFound);\n const daaLl = anchor.getAttribute(\"daa-ll\");\n\n return [\n {\n type: \"Link\",\n text,\n ...(mobileText !== undefined && { mobileText }),\n href,\n daaLl,\n ariaLabel\n },\n []\n ];\n};\n", "import { getAnalyticsAttrs, getAriaAttrs, localizeHref } from \"../../Utils/Utils\";\nimport { Link } from \"./Parse\";\n\nexport const link = ({\n text,\n mobileText,\n href,\n daaLl,\n highlight,\n ariaLabel,\n ariaAttrs,\n svgIcon = '',\n}: Link): HTML => {\n const textHTML = mobileText !== undefined\n ? `${text}${mobileText}`\n : text;\n return `${textHTML}${svgIcon}`;\n};\n", "import { IrrecoverableError, RecoverableError } from \"../../Error/Error\";\nimport { Link, parseLink } from \"../Link/Parse\";\nimport { parseListAndAccumulateErrors } from \"../../Utils/Utils\";\nimport { parsePrimaryCTA, parseSecondaryCTA, PrimaryCTA, SecondaryCTA } from \"../CTA/Parse\";\n\nexport type LinksCard = {\n type: \"LinksCard\";\n card: LinksCardItem;\n};\n\nexport type LinksCardItem = {\n type: \"LinksCardItem\";\n title: string;\n links: Array;\n footerCTA: PrimaryCTA | SecondaryCTA | null;\n};\n\nexport const parseLinksCard = (\n element: HTMLElement | Element\n): Parsed => {\n const [card, errors] = parseCard(element);\n return [\n {\n type: \"LinksCard\",\n card,\n },\n errors\n ];\n};\n\nconst parseCard = (\n element: Element\n): Parsed => {\n const titleElement = element.querySelector('h2, h3, h4') || null;\n const footerCtaAnchor = element.querySelector('em > a')\n || element.querySelector(':not(h6) > strong > a')\n || null;\n const linkElements = [...element.querySelectorAll('a')]\n .filter((anchor) => anchor !== footerCtaAnchor);\n if (linkElements.length === 0) {\n throw new IrrecoverableError(\"Expected at least one link\");\n }\n const [links, linkErrors] = parseListAndAccumulateErrors(\n linkElements,\n (anchor) => {\n const [parsedLink, errors] = parseLink(anchor);\n const link: Link & { highlight?: boolean; description?: string }\n = parsedLink;\n link.highlight = anchor.parentElement?.tagName === 'STRONG'\n && anchor.parentElement?.parentElement?.tagName === 'H6';\n const anchorParentP = anchor.closest('p');\n const nextSibling = anchorParentP?.nextElementSibling;\n if (nextSibling?.tagName === 'P' && nextSibling.querySelector('a') === null) {\n link.description = nextSibling.textContent?.trim() ?? undefined;\n }\n return [link, errors];\n }\n );\n\n const isPrimary = footerCtaAnchor?.parentElement?.tagName === 'STRONG';\n const [footerCTA, ctaErrors]\n = (() : Parsed => {\n try {\n return isPrimary\n ? parsePrimaryCTA(element) as Parsed\n : parseSecondaryCTA(element) as Parsed<\n SecondaryCTA, RecoverableError\n >;\n } catch (_error) {\n return [null, []];\n }\n })();\n if (footerCTA) {\n footerCTA.daaLl = `${titleElement?.textContent ?? ''} - ${footerCTA?.daaLl}`;\n }\n return [\n {\n type: \"LinksCardItem\",\n title: titleElement?.textContent ?? \"\",\n links,\n footerCTA,\n },\n [...linkErrors, ...ctaErrors]\n ];\n};\n\n", "import { IrrecoverableError, RecoverableError } from \"../../Error/Error\";\nimport { alternative } from \"../../Utils/Utils\";\nimport { Link, parseLink } from \"../Link/Parse\";\n\nexport type ProductCardHeader = {\n type: \"ProductCardHeader\";\n title: string;\n classes: string[];\n daaLl: string | null;\n daaLh: string | null;\n};\n\ntype ProductCardIcons = {\n iconHref: string | null;\n iconAlt: string | null;\n};\n\nexport type ProductCardLink = {\n type: \"ProductCardLink\";\n icons: ProductCardIcons[];\n title: string;\n href: string;\n subtitle: string;\n badges?: {\n text: string;\n isFilled: boolean;\n }[];\n daaLl: string | null;\n daaLh: string | null;\n}\n\nexport type ProductCardBlue = {\n type: \"ProductCardBlue\";\n link: Link;\n daaLl: string | null;\n daaLh: string | null;\n};\n\nexport type ProductCard\n = ProductCardHeader\n | ProductCardLink\n | ProductCardBlue;\n\n\nexport const parseProductCard = (\n element: Element | null\n): Parsed => {\n if (!element)\n throw new IrrecoverableError(ERRORS.elementNull);\n\n if (!element.classList.contains('product-card'))\n throw new IrrecoverableError(ERRORS.notAProductCard);\n\n return alternative(parseProductCardHeader)\n .or(parseProductCardLink)\n .or(parseProductCardBlue)\n .eval(element);\n}\n\n/* example structure of a product card\n*\n* \n*\n* Sometimes it's slightly different\n*
    \n
    \n
    \n \n
    \n
    \n*\n*/\n\nconst ERRORS = {\n elementNull: \"Element not found\",\n noTitleAnchor: \"Title anchor not found\",\n noHref: \"Title Anchor has no href\",\n noTitle: \"Title text not found\",\n noSubtitleP: \"Subtitle

    not found\",\n noSubtitle: \"Subtitle text not found\",\n notAHeader: \"Expected a Header class\",\n notAProductCard: \"Expected a product-card class\",\n};\n\nconst parseProductCardLink = (\n element: Element | null\n): Parsed => {\n const errors = new Set();\n if (!element)\n throw new IrrecoverableError(ERRORS.elementNull);\n\n const titleElement\n = element.querySelector('p a:not([href$=\".svg\"])')\n ?? element.querySelector('div ~ div > a:not([href$=\".svg\"])');\n if (!titleElement)\n throw new IrrecoverableError(ERRORS.noTitleAnchor);\n\n const title = titleElement.textContent ?? '';\n if (title === '')\n errors.add(new RecoverableError(ERRORS.noTitle));\n\n const href = titleElement.getAttribute(\"href\") ?? '';\n if (href === '')\n errors.add(new RecoverableError(ERRORS.noHref));\n const daaLl = titleElement.getAttribute(\"daa-ll\");\n const daaLh = titleElement.getAttribute(\"daa-lh\");\n\n const subtitleElement = titleElement\n ?.closest(\"p\")\n ?.nextElementSibling;\n if (!subtitleElement)\n errors.add(new RecoverableError(ERRORS.noSubtitleP));\n\n const subtitle = subtitleElement?.textContent ?? '';\n if (subtitle === '')\n errors.add(new RecoverableError(ERRORS.noSubtitle));\n\n const badgePs = element.querySelectorAll(':scope > div:nth-child(2) > :first-child p') ?? [];\n const badges = Array.from(badgePs).map((p) => {\n const isFilled = p.querySelector('strong') !== null;\n return {\n text: p?.textContent?.trim() ?? '',\n isFilled,\n };\n });\n\n const iconAnchors = element.querySelectorAll('a[href$=\".svg\"]');\n const icons: ProductCardIcons[] = Array.from(iconAnchors).map((a) => {\n const [iconHref = null, iconAlt = null] = (a.textContent ?? \"\")\n .split(\"|\")\n .map((x) => x.trim());\n return { iconHref, iconAlt };\n });\n\n return [\n {\n type: \"ProductCardLink\",\n icons,\n title,\n href,\n subtitle,\n badges,\n daaLl,\n daaLh\n },\n [...errors]\n ]\n}\n\nconst parseProductCardHeader = (\n element: Element | null\n): Parsed => {\n if (!element)\n throw new IrrecoverableError(ERRORS.elementNull);\n\n const classes = [...element.classList];\n\n if(!classes.includes('header'))\n throw new IrrecoverableError(ERRORS.notAHeader);\n\n const title = element.querySelector('a')?.textContent ?? \"\";\n const daaLl = element.querySelector('a')?.getAttribute('daa-ll') ?? null;\n const daaLh = element.querySelector('a')?.getAttribute('daa-lh') ?? null;\n if(title === \"\")\n throw new IrrecoverableError(ERRORS.noTitle);\n\n return [\n {\n type: \"ProductCardHeader\",\n title,\n classes,\n daaLl,\n daaLh,\n },\n []\n ];\n};\n\nconst parseProductCardBlue = (\n element: Element | null\n): Parsed => {\n if (!element)\n throw new IrrecoverableError(ERRORS.elementNull);\n\n if (!element.classList.contains('blue'))\n throw new Error('Not a Blue Product Card');\n\n const a = element.querySelector('a');\n const [link, es] = parseLink(a);\n const daaLl = a?.getAttribute('daa-ll') ?? null;\n const daaLh = a?.getAttribute('daa-lh') ?? null;\n\n return [\n {\n type: \"ProductCardBlue\",\n link,\n daaLl,\n daaLh,\n },\n es\n ];\n};\n", "import { IrrecoverableError, RecoverableError } from \"../../Error/Error\";\nimport { getNextSiblings, parseListAndAccumulateErrors } from \"../../Utils/Utils\";\nimport { ProductCard, parseProductCard } from \"../ProductCard/Parse\";\nimport { Link, parseLink } from \"../Link/Parse\";\n\nexport type ProductList = {\n type: \"ProductList\";\n megaMenuTitle: string;\n categories: Array;\n links: Array;\n placeholders: Map;\n};\n\nexport type ProductCategory = {\n type: \"ProductCategory\";\n name: string;\n daaLl: string | null;\n links: Array;\n}\n\nexport const parseProductList = (\n element: HTMLElement | Element,\n megaMenuTitle = '',\n placeholders: Map = new Map(),\n): Parsed => {\n const unparsedCategories = [...element.querySelectorAll('li > div')];\n const unparsedLinks = [...element.querySelectorAll('li > a')];\n const [\n categories,\n categoryErrors\n ] = parseListAndAccumulateErrors(unparsedCategories, parseProductCategory);\n const [\n links,\n linkErrors\n ] = parseListAndAccumulateErrors(unparsedLinks, parseLink);\n return [\n {\n type: \"ProductList\",\n megaMenuTitle,\n categories,\n links,\n placeholders,\n },\n [...categoryErrors, ...linkErrors]\n ]\n};\n\nconst parseProductCategory = (\n element: Element\n): Parsed => {\n const h2 = element.firstElementChild;\n if (h2?.nodeName !== 'H2')\n throw new IrrecoverableError(\"Expected H2\");\n\n const name = h2.textContent ?? '';\n const daaLl = h2.textContent ?? '';\n const linkGroups = getNextSiblings(h2);\n const [\n links,\n errors\n ] = parseListAndAccumulateErrors(linkGroups, parseProductCard);\n return [\n {\n type: \"ProductCategory\",\n name,\n daaLl,\n links,\n },\n errors\n ]\n};\n", "import { IrrecoverableError, RecoverableError } from \"../../Error/Error\";\nimport { Link, parseLink } from \"../Link/Parse\";\nimport { parseSecondaryCTA, SecondaryCTA } from \"../CTA/Parse\";\n\nexport type FeaturedCard = {\n type: \"FeaturedCard\";\n card: Card;\n};\n\nexport type Card = {\n type: \"Card\";\n title: string;\n subtitle: string;\n eyeBrow: string;\n bodyLink: Link;\n footerCTA: SecondaryCTA;\n};\n\nexport const parseFeaturedCard = (\n element: HTMLElement | Element\n): Parsed => {\n const [card, errors] = parseCard(element);\n return [\n {\n type: \"FeaturedCard\",\n card,\n },\n errors\n ];\n};\n\nconst parseCard = (\n element: Element\n): Parsed => {\n const eyeBrowElement = element.querySelector('h5') || null;\n if (!eyeBrowElement)\n throw new RecoverableError(\"Eye brow element not found\");\n const titleElement = element.querySelector('h4') || null;\n const subtitleElement = titleElement?.nextElementSibling || null;\n if (!titleElement)\n throw new IrrecoverableError(\"Expected title\");\n if (!subtitleElement)\n throw new IrrecoverableError(\"Expected subtitle\");\n const linkElement\n = subtitleElement.nextElementSibling?.firstElementChild || null;\n if (!linkElement) {\n throw new IrrecoverableError(\"Expected card link after subtitle\");\n }\n\n const [cardLink, linkErrors] = parseLink(linkElement);\n\n const [\n footerCTA,\n ctaErrors\n ] = parseSecondaryCTA(element) as Parsed;\n\n return [\n {\n type: \"Card\",\n title: titleElement.textContent ?? '',\n subtitle: subtitleElement.textContent ?? '',\n bodyLink: cardLink,\n footerCTA,\n eyeBrow: eyeBrowElement.textContent ?? '',\n },\n [...ctaErrors, ...linkErrors]\n ];\n};\n\n", "import { IrrecoverableError, RecoverableError } from \"../../../Error/Error\";\nimport { parseSecondaryCTA, SecondaryCTA } from \"../../CTA/Parse\";\nimport { isMerchLink } from \"../../../Utils/Utils\";\n\nexport type PromoCard = {\n type: \"PromoCard\";\n card: PromoCardData;\n};\n\nexport type PromoCardData = {\n bgImageAlt: string;\n bgImageSrc: string;\n iconAlt: string;\n iconSrc: string;\n title: string;\n cta: SecondaryCTA | null;\n priceText: string;\n priceHref: string;\n isPriceMerchLink: boolean;\n};\n\nconst ERRORS = {\n MissingBackgroundImageSection: \"Promo card is missing background image section\",\n MissingBackgroundImage: \"Promo card is missing background image\",\n MissingBackgroundImageAlt: \"Promo card background image is missing alt text\",\n MissingBackgroundImageSrc: \"Promo card background image is missing src\",\n MissingContentSection: \"Promo card is missing card details section\",\n MissingIcon: \"Promo card is missing icon\",\n MissingIconSrc: \"Promo card icon is missing src\",\n MissingIconAlt: \"Promo card icon is missing alt text\",\n MissingTitleElement: \"Promo card is missing title element\",\n MissingTitleText: \"Promo card is missing title text\",\n MissingSecondaryCtaAnchor: \"Promo card is missing secondary CTA anchor\",\n MissingPriceLink: \"Promo card is missing price link\",\n};\n\nexport const parsePromoCard = (\n element: Element\n): Parsed => {\n const [bgImageSection, contentSection] = element.querySelectorAll(':scope > div');\n const errors = new Set();\n if (bgImageSection === undefined)\n throw new IrrecoverableError(ERRORS.MissingBackgroundImageSection);\n\n const bgImageElement: HTMLImageElement | null = bgImageSection.querySelector(':scope picture:not(:scope p picture) img') ?? null;\n if (bgImageElement === null)\n errors.add(new RecoverableError(ERRORS.MissingBackgroundImage));\n\n const bgImageAlt = bgImageElement?.getAttribute('alt') ?? \"\";\n if (bgImageAlt === \"\")\n errors.add(new RecoverableError(ERRORS.MissingBackgroundImageAlt));\n\n const bgImageSrc = bgImageElement?.getAttribute('src') ?? \"\";\n if (bgImageSrc === \"\")\n errors.add(new RecoverableError(ERRORS.MissingBackgroundImageSrc));\n\n if (contentSection === undefined)\n throw new IrrecoverableError(ERRORS.MissingContentSection);\n\n const icon: HTMLAnchorElement | null = contentSection.querySelector('a[href$=\".svg\"]') ?? null;\n if (icon === null)\n errors.add(new RecoverableError(ERRORS.MissingIcon));\n\n const [iconSrc, iconAlt] = (icon?.textContent?.split(\"|\") ?? [\"\", \"\"]).map(s => s.trim());\n if (iconSrc === \"\")\n errors.add(new RecoverableError(ERRORS.MissingIconSrc));\n\n if (iconAlt === \"\")\n errors.add(new RecoverableError(ERRORS.MissingIconAlt));\n\n const priceLink = contentSection.querySelector('p > a:not([href$=\".svg\"])') ?? null;\n const priceText = priceLink?.textContent?.trim() ?? \"\";\n const priceHref = priceLink?.getAttribute('href') ?? \"\";\n const isPriceMerchLink = priceHref ? isMerchLink(priceHref) : false;\n \n if (priceLink === null)\n errors.add(new RecoverableError(ERRORS.MissingPriceLink));\n\n const titleElement = contentSection.querySelector('p > strong') ?? null;\n if (titleElement === null)\n throw new IrrecoverableError(ERRORS.MissingTitleElement);\n\n const title = titleElement?.textContent ?? \"\";\n if (title === \"\")\n errors.add(new RecoverableError(ERRORS.MissingTitleText));\n\n const secondaryCtaAnchor = contentSection.querySelector('em > a');\n if (secondaryCtaAnchor === null)\n errors.add(new RecoverableError(ERRORS.MissingSecondaryCtaAnchor));\n\n\n const [cta, ctaErrors]\n = (() : Parsed => {\n try {\n return parseSecondaryCTA(element) as Parsed<\n SecondaryCTA,\n RecoverableError\n >;\n } catch (_error) {\n return [null, []];\n }\n })();\n ctaErrors.forEach(e => errors.add(e));\n if (cta) {\n cta.daaLl = `${title} - ${cta?.daaLl}`;\n }\n return [\n {\n type: \"PromoCard\",\n card: {\n bgImageAlt,\n bgImageSrc,\n iconAlt,\n iconSrc,\n title,\n cta,\n priceText,\n priceHref,\n isPriceMerchLink,\n },\n },\n [...errors]\n ];\n};", "import { IrrecoverableError, RecoverableError } from \"../../../Error/Error\";\nimport { parseSecondaryCTA, SecondaryCTA } from \"../../CTA/Parse\";\n\nexport type PromoCardSmall = {\n type: \"PromoCardSmall\";\n card: PromoCardSmallData;\n};\n\nexport type PromoCardSmallData = {\n title: string;\n body: string;\n cta: SecondaryCTA | null;\n bgImageAlt: string;\n bgImageSrc: string;\n};\n\nconst ERRORS = {\n MissingContentSection: \"Promo card small is missing content section\",\n MissingTitleElement: \"Promo card small is missing title element\",\n MissingTitleText: \"Promo card small is missing title text\",\n MissingBackgroundImageSection: \"Promo card is missing background image section\",\n MissingBackgroundImage: \"Promo card is missing background image\",\n MissingBackgroundImageAlt: \"Promo card background image is missing alt text\",\n MissingBackgroundImageSrc: \"Promo card background image is missing src\",\n};\n\nexport const parsePromoCardSmall = (\n element: Element\n): Parsed => {\n const errors = new Set();\n const [bgImageSection, contentSection] = element.querySelectorAll(':scope > div');\n\n if (bgImageSection === undefined)\n throw new IrrecoverableError(ERRORS.MissingBackgroundImageSection);\n\n const bgImageElement: HTMLImageElement | null = bgImageSection.querySelector(':scope picture:not(:scope p picture) img') ?? null;\n if (bgImageElement === null)\n errors.add(new RecoverableError(ERRORS.MissingBackgroundImage));\n\n const bgImageAlt = bgImageElement?.getAttribute('alt') ?? \"\";\n if (bgImageAlt === \"\")\n errors.add(new RecoverableError(ERRORS.MissingBackgroundImageAlt));\n\n const bgImageSrc = bgImageElement?.getAttribute('src') ?? \"\";\n if (bgImageSrc === \"\")\n errors.add(new RecoverableError(ERRORS.MissingBackgroundImageSrc));\n\n if (contentSection === undefined)\n throw new IrrecoverableError(ERRORS.MissingContentSection);\n\n const titleElement = contentSection.querySelector('p:not(:has(strong > a, em > a))') ?? null;\n if (titleElement === null)\n throw new IrrecoverableError(ERRORS.MissingTitleElement);\n\n const title = titleElement.textContent?.trim() ?? \"\";\n if (title === \"\")\n errors.add(new RecoverableError(ERRORS.MissingTitleText));\n\n const bodyElement = contentSection.querySelectorAll('p:not(:has(strong > a, em > a))')[1] ?? null;\n const body = bodyElement?.textContent?.trim() ?? \"\";\n\n const [cta, ctaErrors] =\n (() : Parsed => {\n try {\n return parseSecondaryCTA(contentSection) as\n Parsed;\n } catch (_error) {\n return [null, []];\n }\n })();\n ctaErrors.forEach(e => errors.add(e));\n if (cta) {\n cta.daaLl = `${title} - ${cta.daaLl}`;\n }\n\n return [\n {\n type: \"PromoCardSmall\",\n card: {\n title,\n body,\n cta,\n bgImageAlt,\n bgImageSrc,\n },\n },\n [...errors],\n ];\n};\n", "import { IrrecoverableError, RecoverableError } from \"../../Error/Error\";\nimport {\n fetchAndProcessPlainHTML,\n inlineNestedFragments,\n parseListAndAccumulateErrors,\n replaceDotMedia,\n} from \"../../Utils/Utils\";\nimport { getPlaceholders } from \"../../Utils/Placeholders\";\nimport { LinksCard, parseLinksCard } from \"../LinksCard/Parse\";\nimport { parseProductList, ProductList } from \"../ProductList/Parse\";\nimport { parseFeaturedCard, FeaturedCard } from \"../FeaturedCard/Parse\";\nimport { parsePromoCard, PromoCard } from \"../PromoCard/Standard/Parse\";\nimport { parsePromoCardSmall, PromoCardSmall } from \"../PromoCard/Small/Parse\";\nimport { Breadcrumbs } from \"../Breadcrumbs/Parse\";\n\nexport type MegaMenu = {\n type: \"MegaMenu\";\n title: string;\n content: Promise>;\n};\n\nexport type MegaMenuContent = ProductList\n | GnavCards;\n\nexport type MegaMenuExtraData = {\n type: \"MegaMenuExtraData\";\n breadcrumbs: Breadcrumbs | null;\n};\n\nexport type GnavColumn = {\n type: \"GnavColumn\";\n cards: Array;\n};\n\nexport type GnavCards = {\n type: \"GnavCards\";\n megaMenuTitle: string;\n sections: Array;\n};\n\nexport const parseMegaMenu = (\n element: Element | null\n): Parsed => {\n const errors = new Set();\n if (element === null)\n throw new IrrecoverableError(ERRORS.elementNull);\n\n const title = element.querySelector('h2')?.textContent ?? \"\";\n if (title === \"\")\n errors.add(new RecoverableError(ERRORS.noTitle))\n\n const content = (async ():\n Promise> => {\n try {\n const fragment: HTMLAnchorElement | null = element.querySelector('a');\n const fragmentURL = new URL(fragment?.href ?? \"\");\n const initialFragment =\n await fetchAndProcessPlainHTML(fragmentURL);\n if (initialFragment instanceof IrrecoverableError)\n throw new Error(initialFragment.message);\n const megaMenuFragment = await inlineNestedFragments(initialFragment);\n if (megaMenuFragment instanceof IrrecoverableError)\n throw new Error(megaMenuFragment.message);\n replaceDotMedia(fragmentURL.href, megaMenuFragment);\n if (element.classList.contains('product-list')) {\n const placeholders = await getPlaceholders();\n return parseProductList(megaMenuFragment, title, placeholders);\n }\n return parseGnavCards(megaMenuFragment, title);\n } catch (e) {\n // @ts-expect-error errors usually have a message\n throw new IrrecoverableError(e?.message);\n }\n })();\n\n return [\n {\n type: \"MegaMenu\",\n title,\n content,\n },\n [\n ...errors\n ]\n ]\n};\n\nconst ERRORS = {\n elementNull: \"Element is null\",\n noTitle: \"Large Menu has no Title\",\n};\n\nconst parseGnavCards = (\n fragment: Element | HTMLElement,\n megaMenuTitle: string,\n): Parsed => {\n // Get direct children divs - these represent columns\n const columnDivs = [...fragment.children];\n if (columnDivs.length === 0) {\n throw new IrrecoverableError(\n \"No mega menu items found (did you forget to add them correctly?)\"\n );\n }\n\n // Parse each column div and its child cards\n const [sections, errors]\n = parseListAndAccumulateErrors(columnDivs,\n (columnDiv) => parseGnavColumn(columnDiv));\n if (sections.length === 0) {\n throw new IrrecoverableError(\"Failed to parse gnav cards sections\");\n }\n return [\n {\n type: \"GnavCards\",\n megaMenuTitle,\n sections,\n },\n errors\n ];\n};\n\nconst parseGnavColumn = (\n columnDiv: Element\n): Parsed => {\n // Find cards within this specific column div\n const cardElements = [...columnDiv.querySelectorAll('.featured-card, .links-card, .promo-card, .promo-card-small')];\n if (cardElements.length === 0) {\n throw new IrrecoverableError(\n \"Column contains no cards (did you forget to label them correctly?)\"\n );\n }\n\n const [cards, errors]\n = parseListAndAccumulateErrors(cardElements,\n (card) => parseGnavCardSection(card));\n if (cards.length === 0) {\n throw new IrrecoverableError(\"Failed to parse cards in column\");\n }\n\n return [\n {\n type: \"GnavColumn\",\n cards,\n },\n errors\n ];\n};\n\nconst parseGnavCardSection = (\n section: Element\n): Parsed<\n FeaturedCard | LinksCard | PromoCard | PromoCardSmall,\n RecoverableError\n> => {\n if (section.classList.contains('featured-card')) {\n return parseFeaturedCard(section);\n }\n if (section.classList.contains('links-card')) {\n return parseLinksCard(section);\n }\n if (section.classList.contains('promo-card-small')) {\n return parsePromoCardSmall(section);\n }\n if (section.classList.contains('promo-card')) {\n return parsePromoCard(section);\n }\n throw new IrrecoverableError(\"Unsupported gnav cards section\");\n};\n", "import { link } from \"../Link/Render\";\nimport { Card, FeaturedCard } from \"./Parse\";\nimport { secondaryCTA } from \"../CTA/Render\";\nimport { icons, getAnalyticsAttrs, sanitize } from \"../../Utils/Utils\";\n\nexport const featuredcards = ({\n card\n}: FeaturedCard, megaMenuTitle: string): HTML =>\n renderCard(card, megaMenuTitle);\n\nconst renderCard = ({\n title,\n subtitle,\n eyeBrow,\n footerCTA,\n bodyLink,\n}: Card, megaMenuTitle: string): HTML => {\n const eyeBrowId = `featured-eyebrow-${sanitize(eyeBrow)}`;\n \n return `\n

    \n
    \n
    \n ${eyeBrow}\n
    \n

    ${title}

    \n
    ${subtitle}
    \n ${link({ ...bodyLink, ariaAttrs: { 'aria-describedby': eyeBrowId }, svgIcon: icons.chevronRight })}\n
    \n
    \n ${secondaryCTA({ ...footerCTA, ariaAttrs: { 'aria-describedby': eyeBrowId } })}\n
    \n
    \n`.trim();\n};\n", "import { primaryCTA, secondaryCTA } from \"../CTA/Render\";\nimport { link } from \"../Link/Render\";\nimport { LinksCard, LinksCardItem } from \"./Parse\";\nimport { getAnalyticsAttrs, sanitize, icons, localizeHref } from \"../../Utils/Utils\";\n\nexport const linkscard = ({\n card\n}: LinksCard): HTML => renderCard(card);\n\nconst renderCard = ({\n title,\n links,\n footerCTA,\n}: LinksCardItem): HTML => `\n \n`.trim();\n\n", "import { PromoCard, PromoCardData } from \"./Parse\";\nimport { secondaryCTA } from \"../../CTA/Render\";\nimport { localizeHref, sanitize, federateUrl } from \"../../../Utils/Utils\";\n\nexport const promoCard = ({ card }: PromoCard): HTML => renderCard(card);\n\nconst renderCard = ({\n bgImageAlt,\n bgImageSrc,\n iconAlt,\n iconSrc,\n title,\n cta,\n priceText,\n priceHref,\n isPriceMerchLink,\n}: PromoCardData): HTML => `\n
    \n ${\n bgImageSrc\n ? `\n \"${bgImageAlt}\"\n\n `\n : \"\"\n }\n\n
    \n ${\n iconSrc\n ? `\n \n `\n : \"\"\n }\n
    \n ${priceHref && isPriceMerchLink ? `

    \n ${priceText}\n

    ` : ''}\n

    \n ${title}\n

    \n ${\n cta === null\n ? \"\"\n : `
    \n ${secondaryCTA({...cta, ariaAttrs: { 'aria-describedby': `title-${sanitize(title)}${isPriceMerchLink ? ` price-${sanitize(title)}` : ''}` }})}\n
    `\n }\n
    \n
    \n
    \n`.trim();\n\n", "import { PromoCardSmall, PromoCardSmallData } from \"./Parse\";\nimport { secondaryCTA } from \"../../CTA/Render\";\nimport { sanitize, federateUrl } from \"../../../Utils/Utils\";\n\nexport const promoCardSmall = ({ card }: PromoCardSmall): HTML =>\n renderCard(card);\n\nconst renderCard = ({\n title,\n body,\n cta,\n bgImageAlt,\n bgImageSrc,\n}: PromoCardSmallData): HTML => `\n
    \n ${\n bgImageSrc\n ? `\n \n `\n : \"\"\n }\n
    \n
    \n

    \n ${title}\n

    \n ${body ? `

    ${body}

    ` : \"\"}\n
    \n ${cta === null\n ? \"\"\n : `
    \n ${secondaryCTA({ ...cta, ariaAttrs: { 'aria-describedby': `title-${sanitize(title)}` } })}\n
    `}\n
    \n
    \n`.trim();\n", "import { featuredcards } from \"../FeaturedCard/Render\";\nimport { linkscard } from \"../LinksCard/Render\";\nimport { promoCard } from \"../PromoCard/Standard/Render\";\nimport { promoCardSmall } from \"../PromoCard/Small/Render\";\nimport { GnavCards, GnavColumn } from \"../MegaMenu/Parse\";\n\nconst renderCard = (card: GnavColumn[\"cards\"][number], megaMenuTitle: string): HTML => {\n switch (card.type) {\n case \"FeaturedCard\":\n return featuredcards(card, megaMenuTitle);\n case \"LinksCard\":\n return linkscard(card);\n case \"PromoCard\":\n return promoCard(card);\n case \"PromoCardSmall\":\n return promoCardSmall(card);\n default: card satisfies never;\n }\n return \"\";\n};\n\nexport const gnavCards = ({\n sections,\n megaMenuTitle,\n}: GnavCards): HTML => `\n
    \n ${sections.map((column) => \n `
  • ${column.cards.map((card) => renderCard(card, megaMenuTitle)).join(\"\")}
  • `\n ).join(\"\")}\n
    \n`;\n", "import { ProductCard, ProductCardBlue, ProductCardHeader, ProductCardLink } from \"./Parse\";\nimport { getAnalyticsAttrs, localizeHref, federateUrl } from \"../../Utils/Utils\";\n\nexport const productCard = (card: ProductCard): HTML => {\n switch (card.type) {\n case \"ProductCardHeader\": return productCardHeader(card);\n case \"ProductCardLink\": return productCardLink(card);\n case \"ProductCardBlue\": return productCardBlue(card);\n default: {\n const exhaustivenessCheck: never = card;\n console.error(exhaustivenessCheck);\n return \"\";\n }\n }\n};\n\nconst productCardHeader = ({\n title,\n classes,\n daaLl,\n daaLh\n}: ProductCardHeader): HTML => {\n const classNames = classes.slice(1).map(cls => `feds-product-card--${cls}`).join(' ');\n const analyticsAttrs = getAnalyticsAttrs(daaLh, daaLl ?? title);\n return `\n
    \n
    \n
    ${title}
    \n
    \n
    \n `;\n};\n\nconst productCardLink = ({\n icons,\n title,\n href,\n subtitle,\n badges = [],\n daaLl,\n daaLh\n}: ProductCardLink): HTML => {\n const analyticsAttrs = getAnalyticsAttrs(daaLh, daaLl ?? title);\n const visibleIcons = icons.filter(\n ({ iconHref }) => iconHref !== null && iconHref !== \"\"\n );\n const iconsMarkup = visibleIcons.length === 0\n ? \"\"\n : `\n
    \n ${visibleIcons.map(({ iconHref }) => `\n \n \n \n `).join(\"\")}\n
    \n `;\n const badgesMarkup = badges.length === 0\n ? \"\"\n : `\n
    \n ${badges.map(({ text, isFilled }) => `\n \n ${text}\n \n `).join(\"\")}\n
    \n `;\n const subtitleMarkup = subtitle === \"\"\n ? \"\"\n : `
    ${subtitle}
    `;\n\n return `\n \n
    \n ${iconsMarkup}\n ${badgesMarkup}\n
    \n
    \n \n
    ${title}
    \n ${subtitleMarkup}\n
    \n
    \n `\n}\n\nconst productCardBlue = ({\n link,\n daaLl,\n daaLh\n}: ProductCardBlue): HTML => {\n const analyticsAttrs = getAnalyticsAttrs(daaLh, daaLl ?? link.text);\n return `\n \n
    \n
    ${link.text}
    \n
    \n
    \n`;\n};\n\n", "import { productCard } from \"../ProductCard/Render\";\nimport { getAnalyticsAttrs, icons, localizeHref } from \"../../Utils/Utils\";\nimport { ProductCategory, ProductList } from \"./Parse\";\n\nexport const productlist = (\n { categories, links, placeholders }: ProductList\n): HTML => {\n const tabs = `\n \n `.trim();\n const tabcontent = `\n
      \n ${categories.map(({ links }: ProductCategory, i: number) => {\n const includesText = placeholders.get('product-list-includes') ?? 'includes';\n const productText = placeholders.get('product-list-product') ?? 'product';\n const productsText = placeholders.get('product-list-products') ?? 'products';\n const productWord = links.length === 1 ? productText : productsText;\n return `\n
    • \n ${includesText} ${links.length} ${productWord}\n \n ${links.map(link => `
    • ${productCard(link)}
    • `).join('')}\n
    \n \n `.trim();\n }).join('')}\n \n `.trim();\n\n return `\n
    \n ${tabs}\n
    ${tabcontent}
    \n
    \n `.trim();\n};\n\nconst renderTab = (\n {\n name,\n daaLl,\n }: ProductCategory,\n i: number\n): string => `\n
  • \n \n ${name}\n \n
  • \n `.trim();\n\n", "import { getAnalyticsAttrs, sanitize, icons, localizeHref } from \"../../Utils/Utils\";\nimport { breadcrumbs } from \"../Breadcrumbs/Render\";\nimport { gnavCards } from \"../GnavCards/Render\";\nimport { productlist } from \"../ProductList/Render\";\nimport { MegaMenu, MegaMenuContent, MegaMenuExtraData } from \"./Parse\";\n\nexport const megaMenu = ({\n title,\n}: MegaMenu, index = 0): HTML => `\n \n
    \n
    \n`;\n\nexport const popup = (\n data: MegaMenuContent,\n _popupId: string,\n extraData?: MegaMenuExtraData,\n): HTML => {\n const { megaMenuTitle: title } = data;\n const headerContent = `\n \n ${icons.chevronLeft}\n ${title}\n \n `\n const productLink = data.type === \"ProductList\" && data.links.length > 0\n ? data.links[data.links.length - 1]\n : null;\n const popupHeader = `\n
    \n
    ${headerContent}
    \n ${productLink\n ? ``\n : ''}\n
    \n `.trim();\n const renderedBreadCrumbs: HTML =\n extraData !== null\n && extraData !== undefined\n && extraData.breadcrumbs !== null\n ? breadcrumbs(extraData.breadcrumbs)\n : '';\n\n let popupContent: HTML = '';\n switch (data.type) {\n case \"ProductList\":\n popupContent = productlist(data);\n break;\n case \"GnavCards\":\n popupContent = gnavCards(data);\n break;\n default: data satisfies never;\n }\n return `${renderedBreadCrumbs}${popupHeader}${popupContent}`;\n}\n", "import { IrrecoverableError, RecoverableError } from \"../../Error/Error\";\nimport { parseLinksCard } from \"../LinksCard/Parse\";\nimport { GnavCards, GnavColumn } from \"../MegaMenu/Parse\";\n\nexport type SmallMenu = {\n type: \"SmallMenu\";\n title: string;\n content: Parsed;\n};\n\nexport const parseSmallMenu = (\n element: Element | null\n): Parsed => {\n if (element === null)\n throw new IrrecoverableError(ERRORS.elementNull);\n\n const title = element.querySelector('h5')?.textContent ?? \"\";\n\n const linksCardEl = element.querySelector('.links-card');\n if (linksCardEl === null)\n throw new IrrecoverableError(ERRORS.noLinksCard);\n\n const [linksCard, cardErrors] = parseLinksCard(linksCardEl);\n\n const column: GnavColumn = {\n type: \"GnavColumn\",\n cards: [{ type: \"LinksCard\", card: linksCard.card }],\n };\n\n const content: Parsed = [\n {\n type: \"GnavCards\",\n megaMenuTitle: title,\n sections: [column],\n },\n cardErrors,\n ];\n\n return [\n {\n type: \"SmallMenu\",\n title,\n content,\n },\n cardErrors,\n ];\n};\n\nconst ERRORS = {\n elementNull: \"Element is null\",\n noLinksCard: \"Small Menu has no links-card\",\n};\n", "import { megaMenu, popup } from \"../MegaMenu/Render\";\nimport { SmallMenu } from \"./Parse\";\nimport { MegaMenuContent } from \"../MegaMenu/Parse\";\n\nexport const smallMenu = (data: SmallMenu, index = 0): HTML =>\n megaMenu({ ...data, type: \"MegaMenu\", content: Promise.resolve(data.content) }, index)\n .replace('class=\"mega-menu feds-link\"', 'class=\"mega-menu small-menu feds-link\"')\n .replace('class=\"feds-popup\"', 'class=\"feds-popup small-menu\"');\n\nexport const smallMenuPopup = (\n data: MegaMenuContent,\n popupId: string,\n): HTML => popup(data, popupId);\n", "import { RecoverableError } from \"../../Error/Error\";\n\nexport type Text = {\n type: \"Text\";\n content: string;\n};\n\nconst ERRORS = {\n elementNull: \"Error when parsing text. Element is null\",\n textContentNull: \"Error when parsing text. Element has no textContent\",\n}\n\nexport const parseText = (\n element: Element | null\n): Parsed => {\n if (element === null)\n return [\n {\n type: \"Text\" ,\n content: \"\"\n },\n [new RecoverableError(ERRORS.elementNull, \"Minor\")]\n ]; \n const content = element.textContent;\n if (content === null)\n return [\n {\n type: \"Text\",\n content: \"\",\n },\n [new RecoverableError(ERRORS.textContentNull, \"Minor\")]\n ];\n return [\n {\n type: \"Text\",\n content,\n },\n []\n ]\n};\n\n", "import { Text } from \"./Parse\";\n\nexport const text = ({ content }: Text): HTML => content;\n", "import { IrrecoverableError, RecoverableError } from \"../Error/Error\";\nimport { Brand, parseBrand } from \"./Brand/Parse\";\nimport { brand } from \"./Brand/Render\";\nimport {\n parsePrimaryCTA,\n parseProductEntryCTA,\n parseSecondaryCTA,\n PrimaryCTA,\n ProductEntryCTA,\n SecondaryCTA,\n} from \"./CTA/Parse\";\nimport { primaryCTA, productEntryCTA, secondaryCTA } from \"./CTA/Render\";\nimport { Link, parseLink } from \"./Link/Parse\";\nimport { link } from \"./Link/Render\";\nimport { MegaMenu, parseMegaMenu } from \"./MegaMenu/Parse\";\nimport { megaMenu } from \"./MegaMenu/Render\";\nimport { SmallMenu, parseSmallMenu } from \"./SmallMenu/Parse\";\nimport { smallMenu } from \"./SmallMenu/Render\";\nimport { parseText, Text } from \"./Text/Parse\";\nimport { text } from \"./Text/Render\";\n\nexport type Component\n = Text\n | Link\n | SecondaryCTA\n | PrimaryCTA\n | ProductEntryCTA\n | Brand\n | MegaMenu\n | SmallMenu;\n\nexport const parseComponent = (\n element: Element\n): Parsed => {\n if (element === null)\n throw new IrrecoverableError(ERRORS.elementNull);\n\n const brandElem = element.querySelector('.gnav-brand');\n if (brandElem !== null)\n return parseBrand(brandElem);\n\n const largeMenu = element.querySelector('.large-menu');\n if (largeMenu !== null)\n return parseMegaMenu(largeMenu);\n\n if (element.querySelector('h5') !== null && element.querySelector('.links-card') !== null)\n return parseSmallMenu(element);\n\n if (element.querySelector('.product-entry-cta') !== null)\n return parseProductEntryCTA(element);\n\n if (element.querySelector('strong') !== null)\n return parsePrimaryCTA(element);\n\n if (element.querySelector('em') !== null)\n return parseSecondaryCTA(element);\n\n if (element.querySelector('a') === null)\n return parseText(element);\n\n return parseLink(element.querySelector('a'));\n};\n\nexport const component = (\n c: Component,\n index?: number\n): HTML => {\n switch (c.type) {\n case \"Text\": return text(c);\n case \"Link\": return link(c);\n case \"SecondaryCTA\": return secondaryCTA(c);\n case \"PrimaryCTA\": return primaryCTA(c);\n case \"ProductEntryCTA\": return productEntryCTA(c);\n case \"Brand\": return brand(c);\n case \"MegaMenu\": return megaMenu(c, index);\n case \"SmallMenu\": return smallMenu(c, index);\n default: {\n const exhaustive : never = c;\n console.error(`Failed to recognize component: ${exhaustive}`);\n return '';\n }\n }\n};\n\nconst ERRORS = {\n elementNull: \"Element is null\",\n};\n\n", "import { IrrecoverableError, RecoverableError } from \"../../Error/Error\";\nimport { Link, parseLink } from \"../Link/Parse\";\nimport { parseListAndAccumulateErrors } from \"../../Utils/Utils\";\n\nexport type Breadcrumbs = {\n type: 'Breadcrumbs';\n items: Array;\n};\n\nconst ERRORS = {\n elementNull: \"Error when parsing Breadcrumbs. Element is null\",\n noItems: \"Error when parsing Breadcrumbs. No items found\",\n};\n\nexport const parseBreadcrumbs = (\n element: Element | null,\n): Parsed => {\n if (element === null)\n throw new IrrecoverableError(ERRORS.elementNull);\n\n // The breadcrumbs block is authored as \n ${productCTA === null ? '' : productEntryCTA(productCTA)}\n ${unavEnabled ? '
    ' : ''}\n ${breadcrumbs === null ? '' : renderBreadcrumbs(breadcrumbs)}\n .\n\n`;\n};\n\nexport const postRenderingTasks = async (\n input: Input,\n): Promise => {\n const errors = new Set();\n const unav = await loadUnav(input.mountpoint);\n if (unav instanceof RecoverableError) {\n errors.add(unav);\n lanaLog(unav.message);\n }\n else\n unav.errors.forEach((error: RecoverableError) => errors.add(error));\n\n const activeLink = findActiveLink(input.mountpoint);\n const activeDropDown = activeLink?.closest('ul.feds-gnav-items > li');\n activeDropDown?.classList.add('active-element');\n initGnavItemsStaggerIndex(input.mountpoint);\n initActiveTopLevelLinkClosesLocalnav(input.mountpoint);\n initClickListeners(input.mountpoint);\n wirePopups(input.mountpoint);\n initLightDismiss(input.mountpoint);\n initKeyboardNav(input.mountpoint);\n initAriaToggleListeners(input.mountpoint);\n initPopoverCloseOnResize(input.mountpoint);\n initPopoverCloseOnUnavInteraction(input.mountpoint);\n initHeaderScrollState(input.mountpoint);\n initHeaderAnalytics(input.mountpoint, input.mepMartech ?? '');\n initCompactOverflow(input.mountpoint);\n const merchLinkErrors = await initMerchLinks(input.mountpoint);\n merchLinkErrors.forEach((error: RecoverableError) => {\n errors.add(error);\n lanaLog(error.message);\n });\n\n const reloadUnav\n = unav instanceof RecoverableError\n ? (): void => {}\n : unav.reloadUnav;\n\n const localnavMarginTop = 8;\n const breadcrumbs = input.mountpoint.querySelector('nav > ul.feds-breadcrumbs');\n const mobileLocalnav = input.mountpoint.querySelector('li.feds-menu-wrapper');\n type NavType = \"Default\" | \"DefaultCompact\" | \"Localnav\" | \"LocalnavCompact\";\n const getGnavHeight = (): number => {\n const nav = input.mountpoint.firstElementChild;\n if (!nav) return 0;\n const navType = ((): NavType => {\n const isCompact = input.mountpoint.classList.contains('is-compact') || !isDesktop.matches;\n const defaultOrLocalnav = nav.classList.contains('localnav')\n ? \"Localnav\"\n : \"Default\";\n return `${defaultOrLocalnav}${isCompact ? \"Compact\" : \"\"}`;\n })();\n const breadcrumbsHeight = breadcrumbs\n ? (breadcrumbs as HTMLElement).offsetHeight\n : 0;\n const navHeight = (nav as HTMLElement).offsetHeight;\n const mobileLocalnavHeight = mobileLocalnav\n ? (mobileLocalnav as HTMLElement).offsetHeight\n : 0;\n switch (navType) {\n case \"Default\":\n case \"DefaultCompact\":\n case \"Localnav\": return navHeight + breadcrumbsHeight + localnavMarginTop;\n case \"LocalnavCompact\": return navHeight + mobileLocalnavHeight + localnavMarginTop;\n default: navType satisfies never;\n }\n return 0;\n };\n\n return {\n closeEverything: () => closePopovers(input.mountpoint),\n reloadUnav,\n errors,\n setGnavTopPosition: (_): void => {},\n getGnavTopPosition: (): number => 0,\n getGnavHeight,\n };\n};\n\nconst initAriaToggleListeners = (mountpoint: HTMLElement): void => {\n const menuWrapper = mountpoint.querySelector('#feds-menu-wrapper');\n const navToggle = mountpoint.querySelector('.feds-nav-toggle');\n\n menuWrapper?.addEventListener('toggle', () => {\n const isOpen = menuWrapper.classList.contains(IS_OPEN_CLASS);\n // Only reflect open-state on the hamburger when it actually controls the\n // menu-wrapper. In localnav the hamburger's aria-controls points at the\n // first mega-menu's popup (the menu-wrapper is opened via the localnav\n // bar instead), so reflecting menu-wrapper state on the hamburger here\n // would be incorrect.\n if (navToggle?.getAttribute('aria-controls') === 'feds-menu-wrapper') {\n navToggle.setAttribute('aria-expanded', String(isOpen));\n navToggle.setAttribute(\n 'daa-ll',\n isOpen ? 'hamburgermenu|close' : 'hamburgermenu|open'\n );\n }\n if (isOpen) menuWrapper.classList.add('feds-menu-active');\n });\n\n menuWrapper?.addEventListener('transitionend', () => {\n if (!menuWrapper.classList.contains(IS_OPEN_CLASS)) {\n menuWrapper.classList.remove('feds-menu-active');\n }\n });\n\n const megaMenuPopovers = mountpoint.querySelectorAll('.feds-popup');\n megaMenuPopovers.forEach(popup => {\n popup.addEventListener('toggle', () => {\n const trigger = mountpoint.querySelector(\n `[aria-controls=\"${popup.id}\"]`\n );\n const isOpen = popup.classList.contains(IS_OPEN_CLASS);\n trigger?.setAttribute('aria-expanded', String(isOpen));\n trigger?.setAttribute('daa-ll', isOpen ? 'header|Close' : 'header|Open');\n });\n });\n};\n\nconst initPopoverCloseOnResize = (mountpoint: HTMLElement): void => {\n isDesktop.addEventListener('change', () => {\n closePopovers(mountpoint);\n });\n};\n\nconst initPopoverCloseOnUnavInteraction = (mountpoint: HTMLElement): void => {\n [...mountpoint.querySelector('.feds-utilities #universal-nav')?.children ?? []].forEach(child => {\n child.addEventListener('click', () => closePopovers(mountpoint));\n child.addEventListener('keydown', (event) => {\n if ((event as KeyboardEvent).key === 'Enter')\n closePopovers(mountpoint);\n });\n });\n};\n\nconst initHeaderScrollState = (mountpoint: HTMLElement): void => {\n const header = mountpoint.closest(\"header\");\n if (!header) {\n return;\n }\n\n const menuWrapper = mountpoint.querySelector(\"#feds-menu-wrapper\");\n const isMenuOpen = (): boolean => isPopupOpen(menuWrapper);\n\n const nav = mountpoint.querySelector(\"nav\");\n const isLocalnav = (): boolean => nav?.classList.contains(\"localnav\") ?? false;\n\n // Track the most recent \"queued add\" so a subsequent toggle can cancel it.\n // Prevents a race where the user re-opens the bar mid-slide-down and the\n // deferred add still fires, applying `feds-header-scrolled` over an\n // already-open menu.\n let pendingAddCleanup: (() => void) | null = null;\n const cancelPendingAdd = (): void => {\n if (pendingAddCleanup !== null) {\n pendingAddCleanup();\n pendingAddCleanup = null;\n }\n };\n\n const updateHeaderState = (\n scrolledPast: boolean,\n fromToggle: boolean = false\n ): void => {\n cancelPendingAdd();\n if (isMenuOpen() || !scrolledPast) {\n header.classList.remove(\"feds-header-scrolled\");\n header.classList.remove(\"feds-localnav-closing\");\n return;\n }\n header.classList.add(\"feds-header-scrolled\");\n // Closing the localnav bar in scrolled state: the header's `top` animates\n // from -64px back to 0 over 0.3s. The `feds-header-scrolled` class is\n // needed immediately for color (the bar title would otherwise flash from\n // dark back to its default light shade during the slide-down). But the\n // same class pulls `inset: xs xs 0 xs` onto `nav` via\n // `header.feds-header-scrolled nav`, which would instantly pin nav to\n // `top: xs` and kill the slide (nav holds the visible content). The\n // `feds-localnav-closing` marker class is added in tandem and consumed by\n // a CSS rule that suppresses that inset for the duration of the\n // transition; we remove the marker on `transitionend`.\n if (fromToggle && isLocalnav()) {\n header.classList.add(\"feds-localnav-closing\");\n const onTransitionEnd = (event: TransitionEvent): void => {\n if (event.target !== header || event.propertyName !== \"top\") return;\n header.removeEventListener(\"transitionend\", onTransitionEnd);\n pendingAddCleanup = null;\n header.classList.remove(\"feds-localnav-closing\");\n };\n header.addEventListener(\"transitionend\", onTransitionEnd);\n pendingAddCleanup = (): void => {\n header.removeEventListener(\"transitionend\", onTransitionEnd);\n header.classList.remove(\"feds-localnav-closing\");\n };\n }\n };\n\n const SCROLL_THRESHOLD = 20;\n let scrolledPast = window.scrollY > SCROLL_THRESHOLD;\n let scrollRafId: number | null = null;\n\n // Set the initial state synchronously before the first paint.\n updateHeaderState(scrolledPast);\n\n const onScroll = (): void => {\n if (scrollRafId !== null) return;\n scrollRafId = requestAnimationFrame(() => {\n scrollRafId = null;\n const next = window.scrollY > SCROLL_THRESHOLD;\n if (next === scrolledPast) return;\n scrolledPast = next;\n updateHeaderState(scrolledPast);\n });\n };\n\n window.addEventListener(\"scroll\", onScroll, { passive: true });\n\n menuWrapper?.addEventListener(\"toggle\", () =>\n updateHeaderState(scrolledPast, true)\n );\n};\n\nconst initHeaderAnalytics = (\n mountpoint: HTMLElement,\n mepMartech: string\n): void => {\n const header = mountpoint.closest(\"header\");\n if (header === null) return;\n header.setAttribute('daa-lh', `gnav|${getExperienceName()}${mepMartech}`);\n};\n\nconst initCompactOverflow = (mountpoint: HTMLElement): void => {\n const header = mountpoint.closest('header.global-navigation');\n if (!header) return;\n\n const brandWrapper = mountpoint.querySelector('.feds-brand-wrapper');\n const gnavItems = mountpoint.querySelector('.feds-gnav-items');\n const utilities = mountpoint.querySelector('.feds-utilities');\n const productCta = mountpoint.querySelector('.feds-product-entry-cta');\n\n const check = (): void => {\n if (!isDesktop.matches) {\n header.classList.remove('is-compact');\n return;\n }\n // Temporarily strip is-compact so we measure the natural desktop widths,\n // then restore via toggle at the end.\n header.classList.remove('is-compact');\n\n // Sum individual li widths inside gnav-items \u2014 these are not flex-grow so\n // their offsetWidth reflects their true content width. Brand and utilities\n // are fixed-size flex items so offsetWidth is correct for them too.\n const brandWidth = brandWrapper?.offsetWidth ?? 0;\n const itemsWidth = gnavItems?.offsetWidth ?? 0;\n const utilitiesWidth = utilities?.offsetWidth ?? 0;\n const ctaWidth = productCta?.offsetWidth ?? 0;\n const contentWidth = brandWidth + itemsWidth +\n utilitiesWidth + ctaWidth + 40;\n\n header.classList.toggle('is-compact', contentWidth > header.clientWidth);\n };\n\n const observer = new ResizeObserver(check);\n observer.observe(header);\n isDesktop.addEventListener('change', check);\n check();\n};\n\nconst isCurrentPageHref = (href: string): boolean => {\n const url = `${window.location.origin}${window.location.pathname}`;\n return href === url\n || href.startsWith(`${url}?`)\n || href.startsWith(`${url}#`);\n};\n\nconst findActiveLink = (\n mountpoint: HTMLElement\n): HTMLAnchorElement | null => {\n return [...mountpoint.querySelectorAll('a:not(.feds-skip-link)')]\n .filter(a => !a.closest('.feds-breadcrumbs'))\n .find(a => isCurrentPageHref(a.href)) ?? null;\n};\n\n/**\n * Sets a `--i` CSS custom property on each top-level `
  • ` inside every\n * `ul.feds-gnav-items`, indexed from 0. This drives the staggered\n * open/close animations in `styles.css` via\n * `animation-delay: calc(var(--i) * ...)`, removing the need for a\n * hand-maintained `nth-child` table that must be extended every time the\n * menu grows.\n */\nconst initGnavItemsStaggerIndex = (mountpoint: HTMLElement): void => {\n const lists = mountpoint.querySelectorAll('ul.feds-gnav-items');\n lists.forEach(list => {\n const items = list.querySelectorAll(':scope > li');\n items.forEach((li, index) => {\n li.style.setProperty('--i', String(index));\n });\n });\n};\n\n/**\n * In localnav mode, clicking a TOP-LEVEL localnav link whose href points to\n * the current page (the very same URL, with optional ?query) is redundant \u2014\n * the page is already loaded. Instead of triggering a no-op navigation, we\n * suppress the default and close the localnav so the user sees the page\n * they're already on. Scope is strictly limited to\n * `nav.localnav ul.feds-gnav-items > li > a`; nested links (mega-menu\n * popups, links-card, CTAs, breadcrumbs, etc.) are left untouched and\n * continue to navigate normally. Hash-only same-page links also navigate\n * normally (so in-page anchor jumps still work) while still closing the\n * localnav.\n */\n// eslint-disable-next-line max-len\nconst initActiveTopLevelLinkClosesLocalnav = (mountpoint: HTMLElement): void => {\n const localnav = mountpoint.querySelector('nav.localnav');\n if (localnav === null) return;\n const topLevelAnchors = localnav.querySelectorAll(\n 'ul.feds-gnav-items > li > a'\n );\n topLevelAnchors.forEach(anchor => {\n if (!isCurrentPageHref(anchor.href)) return;\n anchor.addEventListener('click', (event) => {\n // Defensive: ensure DOM still matches the structural contract at\n // click-time (guards against late mutations broadening scope).\n const target = event.currentTarget as HTMLAnchorElement;\n if (!target.matches('ul.feds-gnav-items > li > a')) return;\n if (target.closest('nav')?.classList.contains('localnav') !== true) return;\n\n const href = target.href;\n const url = `${window.location.origin}${window.location.pathname}`;\n const isHashOnly = href.startsWith(`${url}#`);\n if (!isHashOnly) {\n event.preventDefault();\n event.stopPropagation();\n }\n closePopovers(mountpoint);\n const focusTarget\n = mountpoint.querySelector('.feds-localnav-bar')\n ?? mountpoint.querySelector('.feds-nav-toggle');\n focusTarget?.focus();\n });\n });\n};\n"], + "mappings": "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", "names": ["LANA_CLIENT_ID", "lanaLog", "message", "tags", "errorType", "locale", "getMiloConfig", "url", "getMetadata", "IrrecoverableError", "_IrrecoverableError", "message", "RecoverableError", "_RecoverableError", "severity", "lanaLog", "combineWithFederalPlaceholders", "input", "placeholders", "locale", "getMiloConfig", "url", "getFederatedContentRoot", "cloudPlaceholders", "federalPlaceholders", "getFederalPlaceholders", "response", "RecoverableError", "obj", "parseResponse", "key", "value", "e", "err", "lanaLog", "data", "replacePlaceholders", "s", "regex", "_", "p1", "p2", "k", "setPlaceholders", "getPlaceholders", "placeholdersPromise", "p", "MENU_WRAPPER_ID", "IS_OPEN_CLASS", "triggerForPopupId", "root", "id", "triggersForPopupId", "dispatchToggle", "el", "opening", "init", "ToggleEventCtor", "event", "isPopupOpen", "openPopup", "closePopup", "togglePopup", "wirePopups", "mountpoint", "popup", "triggers", "isMenuWrapper", "trigger", "other", "open", "isHamburger", "isLocalnavBar", "initLightDismiss", "target", "openPopups", "isDesktop", "isNavDesktop", "icons", "MERCH_LINK_PATHS", "isMerchLink", "href", "path", "getNextSiblings", "element", "accumulator", "iterator", "alternative", "primaryFn", "fallbackFn", "input", "parseListAndAccumulateErrors", "elements", "parse", "accElems", "accErrors", "parsedElement", "parseErrors", "error", "IrrecoverableError", "setPersonalizationConfig", "getPersonalizationConfig", "personalizationConfig", "isInitialized", "config", "setLocalizeLink", "getLocalizeLink", "localizeLink", "link", "nextLocalizeLink", "localizeHref", "href", "absoluteHref", "fetchAndProcessPlainHTML", "source", "plainHtmlSource", "localizedSource", "modifiedSource", "federateUrl", "response", "lanaLog", "htmlText", "resolvedPlaceholders", "getPlaceholders", "processedHtml", "replacePlaceholders", "body", "handleCommands", "commands", "federatedContentRoot", "getFederatedContentRoot", "cdnWhitelistedOrigins", "origin", "o", "originNoStage", "SLD", "url", "pathname", "search", "hash", "e", "message", "replaceDotMedia", "path", "ele", "resetAttributeBase", "tag", "attr", "selector", "el", "attrValue", "absoluteUrl", "inlineNestedFragments", "processElement", "currentElem", "visitedUrls", "inlineLinks", "anchorElement", "federatedUrl", "fragmentUrl", "fragmentBody", "sanitize", "str", "sanitized", "getAnalyticsAttrs", "daaLh", "daaLl", "daaLhAttr", "daaLlAttr", "getAriaAttrs", "ariaAttrs", "ariaLabel", "hasAriaLabel", "attrs", "fallbackAriaLabel", "key", "value", "loadLink", "href", "id", "as", "callback", "crossorigin", "rel", "fetchpriority", "existingLink", "link", "e", "loadStyle", "loadStyles", "url", "override", "loadScript", "type", "mode", "resolve", "reject", "script", "head", "loaded", "onScript", "event", "getMetadata", "name", "doc", "attr", "meta", "isValidMiloConfig", "config", "cfg", "invalid", "x", "unav", "profile", "setMiloConfig", "getMiloConfig", "miloConfig", "isInitialized", "LanguageMap", "GeoMap", "getDefaultLangstoreCountry", "language", "country", "LANG_STORE_PREFIX", "getMiloLocaleSettings", "miloLocale", "geo", "localeLang", "closePopovers", "mountpoint", "menuPopover", "closePopup", "IS_OPEN_CLASS", "getExperienceName", "explicitExperience", "getMetadata", "imsClientId", "breadcrumbs", "items", "item", "localizeHref", "ERRORS", "parseBrand", "element", "errors", "IrrecoverableError", "isDarkBg", "linkSection", "imagesSection", "linkElement", "href", "label", "RecoverableError", "mobileImageSection", "desktopImageSection", "mobileImages", "desktopImages", "lightThemeMobileImageSrc", "lightThemeMobileImageAlt", "darkThemeMobileImageSrc", "darkThemeMobileImageAlt", "lightThemeDesktopImageSrc", "lightThemeDesktopImageAlt", "darkThemeDesktopImageSrc", "darkThemeDesktopImageAlt", "DESKTOP_SVG", "MOBILE_SVG", "renderBrand", "data", "href", "label", "isDarkBg", "imageData", "desktopLightSrc", "desktopDarkSrc", "mobileLightSrc", "mobileDarkSrc", "desktopLightAlt", "desktopDarkAlt", "mobileLightAlt", "mobileDarkAlt", "hasDesktopLight", "hasDesktopDark", "hasMobileLight", "hasMobileDark", "desktopLightImg", "federateUrl", "desktopDarkImg", "mobileLightImg", "mobileDarkImg", "desktopSvg", "mobileSvg", "localizeHref", "brand", "brandData", "parseCTA", "type", "element", "anchor", "getSelector", "textContent", "text", "pipeAriaLabel", "s", "href", "daaLl", "ariaLabelAttr", "ariaLabel", "es", "parsePrimaryCTA", "parseSecondaryCTA", "parseProductEntryCTA", "cta", "errors", "alternative", "primaryCTA", "text", "href", "daaLl", "ariaLabel", "ariaAttrs", "localizeHref", "getAriaAttrs", "getAnalyticsAttrs", "secondaryCTA", "productEntryCTA", "cta", "ERRORS", "parseLink", "anchor", "IrrecoverableError", "rawText", "ariaLabel", "s", "text", "mobileText", "href", "daaLl", "link", "text", "mobileText", "href", "daaLl", "highlight", "ariaLabel", "ariaAttrs", "svgIcon", "textHTML", "localizeHref", "getAriaAttrs", "getAnalyticsAttrs", "parseLinksCard", "element", "card", "errors", "parseCard", "titleElement", "footerCtaAnchor", "linkElements", "anchor", "IrrecoverableError", "links", "linkErrors", "parseListAndAccumulateErrors", "parsedLink", "parseLink", "link", "nextSibling", "isPrimary", "footerCTA", "ctaErrors", "parsePrimaryCTA", "parseSecondaryCTA", "parseProductCard", "element", "IrrecoverableError", "ERRORS", "alternative", "parseProductCardHeader", "parseProductCardLink", "parseProductCardBlue", "errors", "titleElement", "title", "RecoverableError", "href", "daaLl", "daaLh", "subtitleElement", "subtitle", "badgePs", "badges", "p", "isFilled", "iconAnchors", "a", "iconHref", "iconAlt", "x", "classes", "link", "es", "parseLink", "parseProductList", "element", "megaMenuTitle", "placeholders", "unparsedCategories", "unparsedLinks", "categories", "categoryErrors", "parseListAndAccumulateErrors", "parseProductCategory", "links", "linkErrors", "parseLink", "h2", "IrrecoverableError", "name", "daaLl", "linkGroups", "getNextSiblings", "errors", "parseProductCard", "parseFeaturedCard", "element", "card", "errors", "parseCard", "eyeBrowElement", "RecoverableError", "titleElement", "subtitleElement", "IrrecoverableError", "linkElement", "cardLink", "linkErrors", "parseLink", "footerCTA", "ctaErrors", "parseSecondaryCTA", "ERRORS", "parsePromoCard", "element", "bgImageSection", "contentSection", "errors", "IrrecoverableError", "bgImageElement", "RecoverableError", "bgImageAlt", "bgImageSrc", "icon", "iconSrc", "iconAlt", "s", "priceLink", "priceText", "priceHref", "isPriceMerchLink", "isMerchLink", "titleElement", "title", "cta", "ctaErrors", "parseSecondaryCTA", "e", "ERRORS", "parsePromoCardSmall", "element", "errors", "bgImageSection", "contentSection", "IrrecoverableError", "bgImageElement", "RecoverableError", "bgImageAlt", "bgImageSrc", "titleElement", "title", "body", "cta", "ctaErrors", "parseSecondaryCTA", "e", "parseMegaMenu", "element", "errors", "IrrecoverableError", "ERRORS", "title", "RecoverableError", "content", "fragment", "fragmentURL", "initialFragment", "fetchAndProcessPlainHTML", "megaMenuFragment", "inlineNestedFragments", "replaceDotMedia", "placeholders", "getPlaceholders", "parseProductList", "parseGnavCards", "e", "megaMenuTitle", "columnDivs", "sections", "parseListAndAccumulateErrors", "columnDiv", "parseGnavColumn", "cardElements", "cards", "card", "parseGnavCardSection", "section", "parseFeaturedCard", "parseLinksCard", "parsePromoCardSmall", "parsePromoCard", "featuredcards", "card", "megaMenuTitle", "renderCard", "title", "subtitle", "eyeBrow", "footerCTA", "bodyLink", "eyeBrowId", "sanitize", "getAnalyticsAttrs", "link", "icons", "secondaryCTA", "linkscard", "card", "renderCard", "title", "links", "footerCTA", "getAnalyticsAttrs", "sanitize", "icons", "item", "localizeHref", "link", "primaryCTA", "secondaryCTA", "promoCard", "card", "renderCard", "bgImageAlt", "bgImageSrc", "iconAlt", "iconSrc", "title", "cta", "priceText", "priceHref", "isPriceMerchLink", "federateUrl", "sanitize", "localizeHref", "secondaryCTA", "promoCardSmall", "card", "renderCard", "title", "body", "cta", "bgImageAlt", "bgImageSrc", "federateUrl", "sanitize", "secondaryCTA", "renderCard", "card", "megaMenuTitle", "featuredcards", "linkscard", "promoCard", "promoCardSmall", "gnavCards", "sections", "column", "productCard", "card", "productCardHeader", "productCardLink", "productCardBlue", "title", "classes", "daaLl", "daaLh", "classNames", "cls", "analyticsAttrs", "getAnalyticsAttrs", "icons", "href", "subtitle", "badges", "visibleIcons", "iconHref", "iconsMarkup", "federateUrl", "badgesMarkup", "text", "isFilled", "subtitleMarkup", "localizeHref", "link", "productlist", "categories", "links", "placeholders", "tabs", "renderTab", "localizeHref", "getAnalyticsAttrs", "icons", "tabcontent", "includesText", "productText", "productsText", "productWord", "link", "productCard", "name", "daaLl", "i", "megaMenu", "title", "index", "sanitize", "getAnalyticsAttrs", "icons", "popup", "data", "_popupId", "extraData", "headerContent", "productLink", "popupHeader", "localizeHref", "renderedBreadCrumbs", "breadcrumbs", "popupContent", "productlist", "gnavCards", "parseSmallMenu", "element", "IrrecoverableError", "ERRORS", "title", "linksCardEl", "linksCard", "cardErrors", "parseLinksCard", "column", "smallMenu", "data", "index", "megaMenu", "smallMenuPopup", "popupId", "popup", "ERRORS", "parseText", "element", "RecoverableError", "content", "text", "content", "parseComponent", "element", "IrrecoverableError", "ERRORS", "brandElem", "parseBrand", "largeMenu", "parseMegaMenu", "parseSmallMenu", "parseProductEntryCTA", "parsePrimaryCTA", "parseSecondaryCTA", "parseText", "parseLink", "component", "c", "index", "text", "link", "secondaryCTA", "primaryCTA", "productEntryCTA", "brand", "megaMenu", "smallMenu", "ERRORS", "parseBreadcrumbs", "element", "IrrecoverableError", "listItems", "parseItem", "li", "anchor", "parseLink", "items", "errors", "parseListAndAccumulateErrors", "parseNavigation", "mainNav", "unavEnabled", "placeholders", "breadcrumbsEl", "breadcrumbs", "breadcrumbErrors", "parseBreadcrumbs", "parsedComponents", "componentErrors", "parseListAndAccumulateErrors", "parseComponent", "productCTA", "c", "components", "localnav", "getMetadata", "darkFont", "errors", "POPOVER_BG_HEIGHT_OFFSET_PX", "TOP_OFFSET", "setPopoverBgHeight", "gnav", "value", "initClickListeners", "skipLink", "onSkipLinkClick", "e", "mainContent", "tabButtons", "tabPanels", "tabButtonClickCallbacks", "button", "i", "popup", "IS_OPEN_CLASS", "tabButton", "tabPanel", "isNavDesktop", "newHeight", "tabButtonFocusCallbacks", "firstTabOffsetLeft", "container", "tabList", "updateTablistOrientation", "isDesktop", "animations", "linksCardListeners", "mainMenuButtons", "fedsGnavItems", "isLocalNav", "getMetadata", "popupHeightObserverCallback", "popupSelector", "offset", "openPopup", "localnav", "height", "resizeObserver", "entries", "event", "tabsList", "activeTab", "firstTab", "triggersForPopupId", "trigger", "closePopup", "hamburger", "mountpoint", "article", "articleTitle", "updateExpanded", "syncMobileAttrs", "toggle", "wasClosed", "$$", "root", "selector", "setTabindex", "enabled", "el", "isLocalnavMobile", "gnav", "isNavDesktop", "localnavBar", "menuWrapperEl", "gnavItemsList", "barItemStops", "list", "barTabStops", "items", "bar", "applyBarTabIndex", "open", "popupFocusables", "popup", "ARROW_DELTA", "HORIZONTAL", "VERTICAL", "SELECTED_TAB", "wrapIndex", "index", "delta", "length", "gridNextIndex", "key", "grid", "next", "cols", "children", "cellOf", "i", "parent", "currentCol", "targetRow", "maxRow", "best", "bestDist", "j", "dist", "initKeyboardNav", "cleanups", "onToggle", "isPopupOpen", "triggerForPopupId", "tabPressed", "onKeyDown", "event", "onFocusOut", "closePopup", "gnavItems", "wrap", "onWrapToggle", "onBreakpointChange", "isDesktop", "focusAndPrevent", "target", "openPopup", "IS_OPEN_CLASS", "selectedTab", "scope", "visiblePanel", "handleEscape", "menuWrapper", "backButton", "isSubscreenOpening", "handleBarTrap", "shift", "stops", "nextIndex", "handleBarArrows", "handlePopupTrap", "handleTopBar", "handleTabs", "firstTabOffsetLeft", "tabArrowDelta", "container", "panel", "firstLink", "handlePanel", "handleCards", "handleCtaSpace", "onKeydown", "trapLink", "onTrapFocus", "e", "fn", "initMerchLinks", "mountpoint", "errors", "merchLinks", "config", "getMiloConfig", "base", "RecoverableError", "decorateMerchLink", "link", "error", "SIGNED_OUT_ICONS", "PROFILE_RESOLUTION_TIMEOUT_MS", "SIGN_IN_BUTTON_WIDTH_PX", "LANGMAP", "setUserProfile", "getUserProfile", "profileData", "profileResolve", "profileTimeout", "profilePromise", "resolve", "data", "isCartEnabled", "getVisibleUnavComponents", "unavComponents", "signedOut", "list", "cartFiltered", "c", "getUnavWidthCSS", "sectionDivider", "getMiloConfig", "dividerCss", "l", "n", "getUniversalNavLocale", "locale", "prefix", "lang", "country", "customLang", "key", "OS_MAP", "getDevice", "agent", "os", "osName", "getVisitorGuid", "windowWithAlloy", "getSignInContext", "getMiloConfig", "getSignInCtaStyle", "config", "getMetadata", "getMessageEventListener", "configListener", "event", "name", "payload", "executeDefaultAction", "data", "setUserProfile", "profile", "getHelpChildren", "unav", "getUnavComponents", "uncAppId", "setProfileSignUpRequired", "children", "value", "profileChild", "attributes", "loadUnav", "nav", "_config", "utilitiesContainer", "RecoverableError", "errors", "meta", "rawValue", "trimmedValue", "signedOut", "unavComponents", "option", "component", "getUnavComponents", "visibleComponents", "getVisibleUnavComponents", "width", "getUnavWidthCSS", "config", "getMiloConfig", "locale", "getUniversalNavLocale", "environment", "visitorGuid", "getVisitorGuid", "unavVersion", "loadScript", "loadStyles", "getChildren", "unavComponentsConfig", "unavComponent", "getConfiguration", "getMiloLocaleSettings", "getDevice", "isDesktop", "_mutations", "observer", "reloadUnav", "_", "error", "message", "getInitialHTML", "gnavSource", "asideSource", "mainNav", "fetchAndProcessPlainHTML", "IrrecoverableError", "aside", "css", "sheet", "main", "input", "gnavSource", "mountpoint", "unavEnabled", "miloConfig", "personalization", "lanaLog", "IrrecoverableError", "setMiloConfig", "error", "setPersonalizationConfig", "setLocalizeLink", "link", "setPlaceholders", "combineWithFederalPlaceholders", "initial", "getInitialHTML", "mainNav", "_aside", "gnavData", "parseNavigation", "getPlaceholders", "renderGnav", "postRenderingTasks", "data", "navHTML", "renderGnavString", "megaMenus", "mm", "mmPromises", "com", "_errors_", "mmPromise", "idx", "content", "errors", "extraData", "popup", "smallMenus", "smallMenuPopup", "components", "breadcrumbs", "productCTA", "placeholders", "localnav", "lastBreadcrumb", "localnavBarLabel", "brandComponent", "c", "menuComponents", "firstMegaMenu", "toggleButton", "sanitize", "brandHTML", "component", "menuItemsHTML", "lis", "index", "first", "rest", "productEntryCTA", "unav", "loadUnav", "RecoverableError", "findActiveLink", "initGnavItemsStaggerIndex", "initActiveTopLevelLinkClosesLocalnav", "initClickListeners", "wirePopups", "initLightDismiss", "initKeyboardNav", "initAriaToggleListeners", "initPopoverCloseOnResize", "initPopoverCloseOnUnavInteraction", "initHeaderScrollState", "initHeaderAnalytics", "initCompactOverflow", "initMerchLinks", "reloadUnav", "localnavMarginTop", "mobileLocalnav", "closePopovers", "_", "nav", "navType", "isCompact", "isDesktop", "breadcrumbsHeight", "navHeight", "mobileLocalnavHeight", "menuWrapper", "navToggle", "isOpen", "IS_OPEN_CLASS", "trigger", "child", "event", "header", "isMenuOpen", "isPopupOpen", "isLocalnav", "pendingAddCleanup", "cancelPendingAdd", "updateHeaderState", "scrolledPast", "fromToggle", "onTransitionEnd", "SCROLL_THRESHOLD", "scrollRafId", "onScroll", "next", "mepMartech", "getExperienceName", "brandWrapper", "gnavItems", "utilities", "productCta", "check", "brandWidth", "itemsWidth", "utilitiesWidth", "ctaWidth", "contentWidth", "isCurrentPageHref", "href", "url", "list", "li", "anchor", "target"] } diff --git a/federal/libs/global-navigation/src/Components/ProductList/productlist.css b/federal/libs/global-navigation/src/Components/ProductList/productlist.css index fff962a..72839b9 100644 --- a/federal/libs/global-navigation/src/Components/ProductList/productlist.css +++ b/federal/libs/global-navigation/src/Components/ProductList/productlist.css @@ -113,7 +113,11 @@ flex: 1; background-color: var(--s2a-color-gray-25); justify-content: space-between; - outline-offset: -1px; + outline: none; +} + +.product-list .tab-content [role="tabpanel"] .feds-product-card:focus-visible { + box-shadow: inset 0 0 0 2px var(--s2a-color-blue-800); } .feds-popup .product-list .tab-content [role="tabpanel"] .feds-product-card:hover {