/* V13.0.0-RC1.26-p12 — shared frontend vertical rhythm + notice optical alignment.
 * This file intentionally loads after page/theme CSS. It owns only shell-level
 * navigation/notice/main/breadcrumb spacing so portal and classic cannot drift. */
:root{--xq-shell-gap-desktop:5px}

/* Nav + notice are one physical stack. Flex formatting prevents sibling-margin
 * collapse and makes a white/gradient seam impossible even when the notice is hidden. */
.xq-p2-nav-notice-stack{display:flex;flex-direction:column;gap:0!important;width:100%;margin:0!important;padding:0!important}
.xq-p2-nav-notice-stack>.xq-p2-nav,
.xq-p2-nav-notice-stack>.xq-p2-notice{flex:0 0 auto;width:100%;margin:0!important}
.xq-p2-nav-notice-stack>.xq-p2-notice{border-top:0!important}

/* RC1.26-p12: announcement internals moved to components/site-notice.css.
 * This file now owns only shared shell rhythm to avoid duplicated notice authorities. */

/* Desktop shell rhythm: nav/notice -> first content = 5px; breadcrumb -> first
 * card = 5px. This applies identically to portal and classic pages. */
@media (min-width:768px){
  body.xq-p2-body main.xq-p2-main{padding-top:var(--xq-shell-gap-desktop)!important}
  body.xq-p2-body .xq-breadcrumb--global{margin-top:0!important;margin-bottom:var(--xq-shell-gap-desktop)!important}
  body.xq-storefront-style-classic.xq-storefront-home-page .kphyper-home-page,
  body.xq-storefront-style-current.xq-storefront-home-page .xq-storefront-home{margin-top:0!important}
  body.xq-storefront-style-current.xq-storefront-home-page .xq-storefront-home>.xq-home-slider:first-child{margin-top:0!important}
}

/* Home mobile already uses a compact shell; announcement -> first content stays 5px. */
@media (max-width:767.98px){
  body.xq-storefront-home-page main.xq-p2-main{padding-top:5px!important}
}

