/* Site header: translucent bar with backdrop blur and a compact menu whose motion follows the apple.com global nav
   (easing cubic-bezier(.4,0,.6,1), panel height rate clamp(240ms, viewport/2, 480ms), 20ms item stagger). */
:root{--fn-ease:cubic-bezier(.4,0,.6,1);--fn-bar-bg:rgba(255,255,255,.92);--fn-blur:none;--fn-panel-bg:var(--gray-a,#f1efee);--fn-curtain:rgba(241,239,238,.4)}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){:root{--fn-bar-bg:rgba(255,255,255,.62);--fn-blur:saturate(180%) blur(28px)}}

.fn-burger{display:none;align-items:center;justify-content:center;width:44px;height:44px;margin-right:-8px;padding:0;border:0;border-radius:9px;background:transparent;color:var(--gray-d,#1f1d1d);cursor:pointer;opacity:.85;-webkit-tap-highlight-color:transparent;transition:opacity .32s var(--fn-ease)}
.fn-burger:hover{opacity:1}
.fn-burger:focus-visible{outline:2px solid var(--primary-1,#e8412c);outline-offset:-4px}
.fn-burger svg{display:block;width:24px;height:24px;overflow:visible}
.fn-curtain{display:none}

@media(min-width:992px){
 .navbar-wrapper:not(.inside-image-bg-section) .navbar{position:relative;isolation:isolate;background-color:transparent}
 .navbar-wrapper:not(.inside-image-bg-section) .navbar::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:var(--fn-bar-bg);-webkit-backdrop-filter:var(--fn-blur);backdrop-filter:var(--fn-blur);pointer-events:none}
 .navbar-wrapper .nav-link{transition:background-color .32s var(--fn-ease),color .32s var(--fn-ease)}
}

@media(max-width:991px){
 html{scroll-padding-top:72px}
 /* Focusing header controls must not scroll the page to clear the sticky header's own scroll padding. */
 .navbar-wrapper:not(.inside-image-bg-section),.navbar-wrapper:not(.inside-image-bg-section) *{scroll-margin-top:-72px}
 html.fn-noscroll{overflow:hidden;overscroll-behavior:none}
 .navbar-wrapper:not(.inside-image-bg-section){position:sticky;top:0;z-index:999;isolation:isolate;background-color:transparent}
 .navbar-wrapper:not(.inside-image-bg-section)::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--fn-bar-bg);-webkit-backdrop-filter:var(--fn-blur);backdrop-filter:var(--fn-blur);pointer-events:none}
 .navbar-wrapper:not(.inside-image-bg-section) .navbar{background-color:transparent}
 .fn-burger{display:flex}
 /* Compact bar: no phone number, a smaller contact button. */
 .navbar-wrapper:not(.inside-image-bg-section) .navbar-right-contents{gap:12px}
 .navbar-wrapper:not(.inside-image-bg-section) .navbar-right-contents>a[href^="tel:"]{display:none}
 .navbar-wrapper:not(.inside-image-bg-section) .navbar-right-contents>.button.nav-button{display:inline-flex;align-items:center;min-height:36px;padding:6px 14px;font-size:14px;line-height:1.2;white-space:nowrap}

 /* Bar items sit above the growing panel; logo and actions fade out while the menu is open. */
 .navbar-wrapper .navbar-row>a:first-child,.navbar-wrapper .navbar-right-contents{position:relative;z-index:2}
 /* Opacity only (no visibility transition): WebKit could leave the button border painted while its label was hidden. nav.js makes them inert while open. */
 .navbar-wrapper .navbar-row>a:first-child,.navbar-wrapper .navbar-right-contents>:not(.fn-burger){will-change:opacity;transition:opacity .24s var(--fn-ease) 80ms}
 .navbar-wrapper.is-open .navbar-row>a:first-child,.navbar-wrapper.is-open .navbar-right-contents>:not(.fn-burger){opacity:0;pointer-events:none;transition:opacity .24s var(--fn-ease)}

 /* Panel grows from the bar height to the full viewport; blurred only while it is still translucent. */
 .navbar-wrapper .nav-menu{display:block;position:fixed;inset:0 0 auto 0;z-index:1;height:var(--fn-bar-h,60px);overflow:hidden;visibility:hidden;background-color:var(--fn-bar-bg);
  transition:height var(--fn-rate,420ms) var(--fn-ease) 80ms,background-color var(--fn-rate,420ms) var(--fn-ease) 80ms,visibility 0s linear calc(var(--fn-rate,420ms) + 80ms)}
 .navbar-wrapper.is-open .nav-menu{height:100vh;height:100dvh;visibility:visible;overflow-y:auto;overscroll-behavior:contain;background-color:var(--fn-panel-bg);transition-delay:0s,0s,0s}
 .navbar-wrapper.is-animating .nav-menu{overflow:hidden;-webkit-backdrop-filter:var(--fn-blur);backdrop-filter:var(--fn-blur)}

 .navbar-wrapper .nav-links{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:calc(var(--fn-bar-h,60px) + 20px) 18px 84px}
 .navbar-wrapper .nav-links>.mobile-logo{display:none}
 .navbar-wrapper .nav-links>a.nav-link{display:block;width:auto;margin:0;padding:8px 0;border:0;border-radius:0;background:transparent;color:var(--gray-d,#1f1d1d);font-size:28px;line-height:1.15;letter-spacing:-.01em;
  opacity:0;transform:translateY(-8px);visibility:hidden;
  transition-property:opacity,transform,visibility;transition-duration:.24s;transition-timing-function:var(--fn-ease),var(--fn-ease),step-start;transition-delay:calc(.2s + var(--fn-i,0) * 20ms)}
 .navbar-wrapper.is-open .nav-links>a.nav-link{opacity:1;transform:none;visibility:visible}
 .navbar-wrapper.is-closing .nav-links>a.nav-link{transition-delay:0s;transition-duration:min(calc(.16s + (var(--fn-n,6) - var(--fn-i,0)) * 20ms),.24s);transition-timing-function:var(--fn-ease),var(--fn-ease),step-end}

 /* Curtain over the page behind the menu. */
 .fn-curtain{display:block;position:fixed;inset:0;z-index:998;background:var(--fn-curtain);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);opacity:0;visibility:hidden;transition:opacity .32s var(--fn-ease) 80ms,visibility 0s linear .4s}
 .navbar-wrapper.is-open~.fn-curtain{opacity:1;visibility:visible;transition:opacity .32s var(--fn-ease) 80ms,visibility 0s linear 80ms}
 .navbar-wrapper.is-open:not(.is-animating)~.fn-curtain{-webkit-backdrop-filter:none;backdrop-filter:none}

 .navbar-wrapper.fn-instant,.navbar-wrapper.fn-instant *,.navbar-wrapper.fn-instant~.fn-curtain{transition:none!important;animation:none!important}
}
@media(max-width:479px){.navbar-wrapper .nav-links{padding-left:12px;padding-right:12px}}
@media(prefers-reduced-motion:reduce){.navbar-wrapper,.navbar-wrapper *,.fn-curtain{transition-duration:1ms!important;transition-delay:0s!important;animation-duration:1ms!important}}
