/* Constant footprint: only the floating bar changes geometry. */
.header-spacer { height: var(--header); flex: 0 0 var(--header); }
.header-shell { position: fixed; top: 0; left: 0; right: 0; height: var(--header); z-index: 30; }
body.studio-mode .header-shell, body.studio-mode .header-spacer { display: none; }
.header-shell .site-header {
  position: absolute !important;
  inset: 0 0 auto !important;
  margin-inline: auto;
  width: 100% !important;
  overflow: visible;
  border: 1px solid transparent !important;
  border-bottom-color: var(--easyshirt-header-border) !important;
  border-radius: 0;
  transition: width 280ms cubic-bezier(.22,1,.36,1), top 280ms cubic-bezier(.22,1,.36,1), height 280ms cubic-bezier(.22,1,.36,1), min-height 280ms cubic-bezier(.22,1,.36,1), padding 280ms cubic-bezier(.22,1,.36,1), gap 280ms cubic-bezier(.22,1,.36,1), background-color 280ms ease, border-color 280ms ease, border-radius 280ms ease, box-shadow 280ms ease, backdrop-filter 280ms ease !important;
}
.header-shell .site-header .brand img { transition: height 300ms cubic-bezier(.22,1,.36,1), transform 180ms ease, opacity 180ms ease; }
.header-shell .site-header nav { transition: gap 300ms cubic-bezier(.22,1,.36,1); }
.header-shell.is-compact .site-header {
  top: 0 !important;
  width: min(1180px, calc(100% - 32px)) !important;
  height: 58px !important;
  min-height: 58px !important;
  padding-inline: 18px !important;
  gap: 16px !important;
  background: rgba(247, 244, 238, .8) !important;
  backdrop-filter: blur(18px) saturate(125%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(125%) !important;
  border-color: var(--easyshirt-header-border) !important;
  border-radius: 0 0 20px 20px;
  box-shadow: 0 8px 24px rgba(7, 17, 27, .08) !important;
}
.header-shell.is-compact .site-header .brand img { height: 46px !important; }
.header-shell.is-compact .site-header nav { gap: 14px !important; }
.header-shell.is-compact .site-header .header-actions { gap: 6px !important; }
.header-shell.is-compact .site-header .header-cta-btn { padding-inline: 14px !important; }
.header-shell.is-compact .site-header .account-button { padding-inline: 5px 9px !important; }
.header-shell.is-compact .site-header .nav-cart-btn { padding-inline: 9px 7px !important; }
.header-shell .site-header .brand { min-width: 44px; min-height: 44px; justify-content: center; }
.header-shell .site-header nav a { white-space: nowrap; min-height: 44px; }
.header-shell .session-slot { min-width: 0; }
.header-shell .site-header .header-actions {
  gap: clamp(12px, 1.2vw, 18px) !important;
  flex-shrink: 0;
}
.header-shell .site-header :is(.header-cta-btn, .account-button, .nav-cart-btn) {
  min-height: 44px !important;
  white-space: nowrap;
}
.header-shell .site-header .account-button[data-route="auth"] {
  padding-inline: 14px !important;
  background: var(--easyshirt-header-hover);
  border-color: var(--easyshirt-header-border) !important;
  font-size: .88rem;
}
.header-shell.is-compact .site-header .account-button[data-route="auth"] { padding-inline: 10px !important; }
.header-shell .user-menu .menu-account { margin-bottom: 10px; }
.header-shell .user-menu .user-menu-action + .user-menu-action { margin-top: 10px; }
.header-shell :is(.site-header button, .site-header a, .user-menu-action):focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 3px;
}
.mobile-nav-intro,
.mobile-nav-icon,
.mobile-nav-detail,
.mobile-nav-chevron,
.mobile-nav-section-label,
.mobile-nav-account-copy,
.mobile-nav-backdrop { display: none; }
.header-shell .user-menu {
  position: absolute;
  z-index: 950;
  left: var(--user-menu-left, auto) !important;
  right: var(--user-menu-right, clamp(20px, 4vw, 64px)) !important;
  top: var(--user-menu-top, calc(var(--header) - 2px)) !important;
}
.header-shell .user-menu::before {
  left: var(--user-menu-arrow-left, auto) !important;
  right: var(--user-menu-arrow-right, 86px) !important;
}
@media (min-width: 901px) and (max-width: 1200px) {
  .header-shell .site-header { padding-inline: 16px !important; gap: 16px !important; }
  .header-shell .site-header nav { gap: 16px !important; }
  .header-shell .site-header .header-actions { gap: 12px !important; }
  .header-shell .site-header .account-copy { max-width: 90px; }
  .header-shell.is-compact .site-header { width: calc(100% - 24px) !important; padding-inline: 16px !important; gap: 14px !important; }
  .header-shell.is-compact .site-header nav { gap: 14px !important; }
  .header-shell.is-compact .site-header .header-cta-btn { padding-inline: 14px !important; }
}
@media (min-width: 901px) and (max-width: 1000px) {
  .header-shell .site-header { padding-inline: 12px !important; gap: 12px !important; }
  .header-shell .site-header .brand img { height: 44px !important; }
  .header-shell .site-header nav { gap: 10px !important; }
  .header-shell .site-header nav a { font-size: .85rem; }
  .header-shell .site-header .header-actions { gap: 10px !important; }
  .header-shell .site-header .header-cta-btn { font-size: .8rem !important; padding-inline: 12px !important; }
  .header-shell .site-header .account-button[data-route="auth"] { font-size: .8rem; padding-inline: 12px !important; }
  .header-shell .site-header .account-copy { max-width: 48px; }
  .header-shell .site-header .nav-cart-btn { font-size: .8rem; padding-inline: 8px !important; gap: 6px !important; }
}
@media (max-width: 900px) {
  .header-shell { z-index: 900; }
  .header-shell .site-header .header-actions { gap: 10px !important; }
  .header-shell.is-compact .site-header {
    top: 0 !important;
    width: calc(100% - 16px) !important;
    height: 56px !important;
    min-height: 56px !important;
    padding-inline: 12px !important;
    gap: 8px !important;
    background: rgba(247, 244, 238, .84) !important;
    border-radius: 0 0 18px 18px;
  }
  .header-shell.is-compact .site-header .brand img { height: 40px !important; }
  .header-shell .site-header .mobile-menu-button,
  .header-shell .site-header .nav-cart-btn,
  .header-shell .site-header .account-button { min-width: 44px !important; min-height: 44px !important; }
  .header-shell .site-header #main-nav {
    position: absolute !important;
    top: calc(100% + 10px) !important;
    bottom: auto !important;
    left: auto !important;
    right: 8px !important;
    width: min(430px, calc(100vw - 24px)) !important;
    max-width: 430px !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100dvh - var(--header) - 24px) !important;
    overflow: hidden !important;
    overscroll-behavior: none;
    touch-action: manipulation;
    padding: 16px !important;
    gap: 7px !important;
    border: 1px solid rgba(7, 17, 27, .1) !important;
    border-radius: 24px !important;
    background: rgba(255, 255, 255, .985) !important;
    box-shadow: 0 28px 72px rgba(7, 17, 27, .2), 0 2px 8px rgba(7, 17, 27, .08) !important;
    backdrop-filter: blur(18px) saturate(120%) !important;
    -webkit-backdrop-filter: blur(18px) saturate(120%) !important;
    opacity: 0;
    transform: translateY(-10px) scale(.975) !important;
    transform-origin: top right;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 180ms ease, transform 220ms cubic-bezier(.22,1,.36,1), visibility 0s linear 220ms !important;
  }
  .header-shell .site-header #main-nav.open {
    opacity: 1;
    transform: none !important;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s !important;
  }
  .header-shell .site-header .mobile-nav-intro {
    display: grid;
    gap: 3px;
    padding: 2px 4px 10px;
  }
  .header-shell .site-header .mobile-nav-intro span,
  .header-shell .site-header .mobile-nav-section-label {
    color: #a54500;
    font-size: .69rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
  }
  .header-shell .site-header .mobile-nav-intro strong {
    color: #07111b;
    font-family: var(--display);
    font-size: 1.08rem;
    line-height: 1.25;
  }
  .header-shell .site-header #main-nav > a,
  .header-shell .site-header #main-nav .mobile-nav-link {
    width:100% !important;
    min-height:54px !important;
    padding:8px 10px !important;
    border:1px solid transparent !important;
    border-radius:15px !important;
    background:#f7f4ee !important;
    color:#07111b !important;
    font-size:.95rem !important;
    font-weight:700 !important;
    text-align:left !important;
    align-items:center !important;
    gap:11px !important;
    box-shadow:none !important;
  }
  .header-shell .site-header #main-nav > a:hover,
  .header-shell .site-header #main-nav > a:focus-visible,
  .header-shell .site-header #main-nav > a.active { background:#fff0df !important; border-color:#ffc88f !important; color:#7a3300 !important; }
  .header-shell .site-header .mobile-nav-icon {
    display:grid;
    flex:0 0 40px;
    width:40px;
    height:40px;
    place-items:center;
    color:#07111b;
    background:#fff;
    border:1px solid rgba(7,17,27,.08);
    border-radius:12px;
  }
  .header-shell .site-header #main-nav > a.active .mobile-nav-icon { color:#fff; background:#f27600; border-color:#f27600; }
  .header-shell .site-header .mobile-nav-copy { display:grid; min-width:0; flex:1; gap:1px; }
  .header-shell .site-header .mobile-nav-copy strong { font-size:.98rem; line-height:1.2; }
  .header-shell .site-header .mobile-nav-detail { display:block; color:#66717d; font-size:.76rem; font-weight:550; line-height:1.25; }
  .header-shell .site-header .mobile-nav-chevron {
    display:block;
    flex:0 0 8px;
    width:8px;
    height:8px;
    margin-right:5px;
    border-top:2px solid currentColor;
    border-right:2px solid currentColor;
    transform:rotate(45deg);
    opacity:.5;
  }
  .header-shell .site-header .mobile-nav-cta-wrap { width:100% !important; margin-top:5px !important; display:grid !important; gap:7px !important; align-items:stretch !important; }
  .header-shell .site-header .mobile-nav-section-label { display:block; padding:4px 4px 0; }
  .header-shell .site-header .mobile-nav-btn-studio {
    width:100% !important;
    min-height:54px !important;
    padding:8px 14px !important;
    border-radius:15px !important;
    background:#f27600 !important;
    color:#fff !important;
    justify-content:flex-start !important;
    gap:11px !important;
    box-shadow:0 12px 28px rgba(242,118,0,.25) !important;
    white-space:nowrap;
  }
  .header-shell .site-header .mobile-nav-btn-studio > svg:last-child { margin-left:auto; }
  .header-shell .site-header .mobile-nav-cta-icon { display:grid; width:36px; height:36px; place-items:center; border-radius:10px; background:rgba(255,255,255,.18); }
  .header-shell .site-header .mobile-nav-session-block {
    width:100% !important;
    margin-top:5px !important;
    padding-top:11px !important;
    border-top:1px solid #e6e1d9 !important;
    gap:7px !important;
    display:grid !important;
    align-items:stretch !important;
  }
  .header-shell .site-header #main-nav .mobile-nav-login {
    display:grid !important;
    grid-template-columns:auto minmax(0,1fr) auto;
    gap:10px;
    min-height:56px !important;
    padding-inline:12px !important;
    background:#07111b !important;
    color:#fff !important;
    font-weight:800 !important;
  }
  .header-shell .site-header #main-nav .mobile-nav-login > span:nth-child(2) { display:grid; min-width:0; flex:1; }
  .header-shell .site-header #main-nav .mobile-nav-login strong { font-size:.94rem; }
  .header-shell .site-header #main-nav .mobile-nav-login small { color:#c9d0d7; font-size:.73rem; font-weight:550; }
  .header-shell .site-header #main-nav .mobile-nav-account { width:100% !important; min-height:56px !important; align-self:stretch; background:#f7f4ee !important; }
  .header-shell .site-header .mobile-nav-avatar-wrap { flex:0 0 42px; width:42px; height:42px; overflow:hidden; border:2px solid #fff; border-radius:50%; box-shadow:0 0 0 1px rgba(7,17,27,.1); }
  .header-shell .site-header .mobile-nav-avatar-media { width:100% !important; height:100% !important; }
  .header-shell .site-header .mobile-nav-account-copy { display:grid; flex:1; min-width:0; gap:2px; }
  .header-shell .site-header .mobile-nav-account-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.94rem; }
  .header-shell .site-header .mobile-nav-account-copy small { color:#66717d; font-size:.75rem; }
  .header-shell .site-header #main-nav .mobile-nav-logout { width:100% !important; min-height:48px !important; padding:7px 12px !important; align-self:stretch; justify-content:center !important; color:#a1261b !important; background:#fff3f1 !important; border-color:#f4d2ce !important; cursor:pointer; gap:9px !important; font-size:.84rem !important; }
  .header-shell .site-header #main-nav .mobile-nav-logout:hover,
  .header-shell .site-header #main-nav .mobile-nav-logout:focus-visible { background:#fff0ee !important; border-color:#ffd0ca !important; }
  .header-shell .site-header .mobile-nav-backdrop {
    position:fixed;
    inset:var(--header) 0 0;
    z-index:998;
    display:block;
    border:0;
    background:rgba(7,17,27,.38);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
    cursor:default;
    overscroll-behavior:none;
    touch-action:none;
  }
  .header-shell .site-header .mobile-nav-backdrop[hidden] { display:none !important; }
  .header-shell .site-header .mobile-menu-button span:not(.sr-only) { transform-origin:center; }
  .header-shell .site-header .mobile-menu-button[aria-expanded="true"] span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
  .header-shell .site-header .mobile-menu-button[aria-expanded="true"] span:nth-child(2) { opacity:0; }
  .header-shell .site-header .mobile-menu-button[aria-expanded="true"] span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }
}
@media (max-width: 767px) {
  .header-shell.is-compact .site-header {
    width: calc(100% - 12px) !important;
    height: 52px !important;
    min-height: 52px !important;
    padding-inline: 8px !important;
    gap: 6px !important;
    border-radius: 0 0 16px 16px;
  }
  .header-shell.is-compact .site-header .brand img { height: 36px !important; }
  .header-shell .site-header #main-nav { right:6px !important; width:calc(100vw - 20px) !important; padding:14px !important; border-radius:22px !important; }
  .header-shell.is-compact .site-header .mobile-nav-backdrop { top:52px; }
}
html.mobile-nav-open,
html.mobile-nav-open body {
  overflow:hidden !important;
  overscroll-behavior:none !important;
  touch-action:none !important;
}
html.mobile-nav-open body {
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
}
@media (max-width: 900px) and (max-height: 720px) {
  .header-shell .site-header #main-nav {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:5px !important;
    padding:10px !important;
  }
  .header-shell .site-header #main-nav.open { display:grid !important; }
  .header-shell .site-header .mobile-nav-intro,
  .header-shell .site-header .mobile-nav-cta-wrap,
  .header-shell .site-header .mobile-nav-session-block { grid-column:1 / -1; }
  .header-shell .site-header .mobile-nav-intro { padding-bottom:4px; }
  .header-shell .site-header .mobile-nav-detail { display:none; }
  .header-shell .site-header #main-nav > a { min-height:48px !important; padding:6px !important; gap:7px !important; }
  .header-shell .site-header .mobile-nav-icon { width:34px; height:34px; flex-basis:34px; }
  .header-shell .site-header #main-nav > a .mobile-nav-copy strong { font-size:.82rem; }
  .header-shell .site-header #main-nav > a .mobile-nav-chevron { display:none; }
  .header-shell .site-header .mobile-nav-cta-wrap,
  .header-shell .site-header .mobile-nav-session-block { margin-top:2px !important; }
  .header-shell .site-header .mobile-nav-session-block { padding-top:6px !important; }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .header-shell.is-compact .site-header { background: rgba(247, 244, 238, .96) !important; }
}
@media (prefers-reduced-motion: reduce) {
  .header-shell .site-header,
  .header-shell .site-header .brand img,
  .header-shell .site-header nav,
  .header-shell .site-header .mobile-menu-button span,
  .header-shell .site-header #main-nav > *,
  .header-shell .site-header .mobile-nav-backdrop { transition: none !important; }
}
