.gp-skip-link{
  position:fixed;
  top:.5rem;
  left:.5rem;
  z-index:calc(var(--z-modal) + 20);
  transform:translateY(-160%);
  padding:.7rem 1rem;
  border-radius:var(--radius-sm);
  background:var(--gp-charcoal-950);
  color:var(--gp-white);
  font-weight:750;
  text-decoration:none;
  transition:transform var(--transition-fast);
}
.gp-skip-link:focus{transform:translateY(0)}

html,body{max-width:100%}
body{min-width:0}
img,video,iframe{max-width:100%}
svg{max-width:100%}
.gp-mobile-bottom{display:none}
[id]{scroll-margin-top:calc(var(--header-height) + 1rem)}

@media(max-width:1119px){
  :root{--header-height:72px}
}
@media(max-width:767px){
  :root{
    --page-gutter:clamp(.9rem,4vw,1.25rem);
    --section-space:clamp(2.75rem,9vw,4.25rem);
  }
  .gp-mobile-bottom{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:calc(var(--z-sticky) + 5);
    min-height:64px;
    padding-bottom:env(safe-area-inset-bottom);
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    background:rgb(255 255 255 / .985);
    border-top:1px solid var(--color-border);
    box-shadow:0 -10px 30px rgb(31 41 34 / .08);
  }
  .gp-mobile-bottom a,.gp-mobile-bottom button{
    position:relative;
    min-width:0;
    min-height:64px;
    border:0;
    background:transparent;
    color:var(--color-text-secondary);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:.2rem;
    padding:.3rem;
    font-size:.69rem;
    font-weight:700;
    line-height:1.15;
    text-align:center;
    text-decoration:none;
    cursor:pointer;
  }
  .gp-mobile-bottom svg{width:21px!important;height:21px!important;max-width:21px!important;max-height:21px!important}
  .gp-mobile-bottom a[aria-current="page"]{color:var(--color-primary-dark)}
  .gp-mobile-bottom__icon-wrap{position:relative;display:inline-flex}
  .gp-mobile-bottom__badge{
    position:absolute;
    top:-8px;
    right:-10px;
    min-width:17px;
    height:17px;
    padding-inline:4px;
    display:grid;
    place-items:center;
    border-radius:999px;
    background:var(--color-secondary-dark);
    color:#fff;
    font-size:.6rem;
  }
  .gp-site-main{padding-bottom:8px}
}
@media(max-width:359px){
  .gp-mobile-bottom a,.gp-mobile-bottom button{font-size:.64rem;padding-inline:.15rem}
}
@media(orientation:landscape) and (max-height:520px) and (max-width:1119px){
  .gp-mobile-nav__head{min-height:58px}
  .gp-mobile-nav__logo{max-height:44px}
}
@media print{
  .gp-topbar,.gp-site-header,.gp-mobile-nav,.gp-search-overlay,.gp-mobile-bottom,.gp-footer{display:none!important}
  .gp-site-main{padding:0!important}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}

/* Step 49 — full mobile audit hardening (320px–480px). */
@media(max-width:767px){
  .gp-site-shell{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  .gp-site-main{padding-bottom:0}
  .gp-container,.gp-container--wide,.gp-container--sm{min-width:0}
  .gp-site-main input,.gp-site-main select,.gp-site-main textarea,.gp-site-main button{max-width:100%}
  .gp-site-main img,.gp-site-main video,.gp-site-main iframe{height:auto}
  .gp-site-main table{max-width:100%}
  .gp-table-wrap{max-width:100%;overscroll-behavior-inline:contain}
  .gp-modal{padding:max(.75rem,env(safe-area-inset-top)) .75rem max(.75rem,env(safe-area-inset-bottom))}
  .gp-modal__dialog{width:min(100%,640px);max-height:calc(100dvh - 1.5rem);padding:clamp(1rem,4vw,1.5rem)}
  .gp-home-popup{padding:max(.75rem,env(safe-area-inset-top)) .75rem max(.75rem,env(safe-area-inset-bottom))}
  .gp-home-popup__dialog{width:100%;max-height:calc(100dvh - 1.5rem);padding:1.15rem}
  .gp-home-popup__close{width:44px;height:44px;top:.5rem;right:.5rem}
  .gp-home-popup__dialog h2{margin-right:2.75rem;overflow-wrap:anywhere}
  .gp-cart-quantity__controls{grid-template-columns:44px minmax(54px,62px) 44px}
  .gp-cart-quantity__controls button{min-width:44px;min-height:44px}
  .gp-pagination,.admin-pagination{max-width:100%}
  .gp-page-link{min-width:44px;height:44px}
  .gp-article-citation-line a,.gp-article-sidebar dd,.gp-order-reference strong{overflow-wrap:anywhere;word-break:normal}
  .gp-article-prose table,.gp-cms-content table,.gp-blog-content table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .gp-article-prose pre,.gp-cms-content pre,.gp-blog-content pre{max-width:100%;overflow-x:auto}
}

@media(max-width:599px){
  .gp-icon-action{width:44px;height:44px;min-width:44px;min-height:44px}
}

@media(max-width:480px){
  .gp-mobile-nav__panel{width:min(92vw,390px)}
  .gp-mobile-nav__head{padding-inline:1rem}
  .gp-mobile-nav__body{padding-inline:1rem}
  .gp-home-announcement .gp-container{overflow-wrap:anywhere}
  .gp-home-search__form input{font-size:1rem}
  .gp-btn{min-height:44px}
  .gp-checkout-items>div,.gp-cart-summary__row,.gp-checkout-summary dl>div,.gp-confirmation-totals>div{min-width:0}
  .gp-checkout-items p,.gp-cart-item__identity,.gp-cart-summary__row>*,.gp-checkout-summary dl>div>*{min-width:0;overflow-wrap:anywhere}
}

@media(max-width:359px){
  .gp-brand__logo{width:118px}
  .gp-header__inner{gap:.25rem}
  .gp-header__actions{gap:.15rem}
  .gp-icon-action{width:44px;height:44px;min-width:44px;min-height:44px}
  .gp-mobile-bottom a,.gp-mobile-bottom button{min-height:64px;font-size:.62rem;padding-inline:.1rem}
  .gp-home-popup__dialog{padding:1rem}
}


/* Step 50 — tablet/laptop/desktop audit hardening (768px+). */
@media(min-width:768px) and (max-width:1119px){
  .gp-modal__dialog{max-height:calc(100dvh - 2rem)}
}
@media(min-width:1120px){
  .gp-mega--wide{max-width:calc(100vw - (var(--page-gutter) * 2))}
  .gp-mega__link{overflow-wrap:anywhere}
}
@media(min-width:1440px){
  .gp-article-prose,.gp-cms-content,.gp-blog-content{overflow-wrap:anywhere}
}

/* 2026-10-02 — prevent fixed mobile navigation from covering page content */
@media(max-width:767px){
  .gp-site-shell{
    padding-bottom:calc(76px + env(safe-area-inset-bottom));
  }
  .gp-mobile-bottom{
    min-height:68px;
  }
  .gp-mobile-bottom a,.gp-mobile-bottom button{
    min-height:68px;
  }
}
