/* Shared layout contract. A change here explicitly requires all-module regression. */
body.dj-modular{--dj-content:1160px;--dj-gutter:28px;--dj-ink:#242723;--dj-line:#e4e5df;--dj-warm:#f6f4ef;margin:0;background:#fff;color:var(--dj-ink)}
body.dj-modular .wp-site-blocks{padding:0;margin:0}
body.dj-modular .dj-container,body.dj-modular .ldp-wrap{box-sizing:border-box;width:calc(100% - 2*var(--dj-gutter))!important;max-width:var(--dj-content)!important;margin-inline:auto!important;padding-inline:0!important}
body.dj-modular .wp-site-blocks>.wp-block-template-part{margin-block:0}
body.dj-modular main.dj-main{max-width:none;margin-block:0;padding:0}
body.dj-modular main.ldp-page{width:100%;max-width:none;margin:0;padding:0}
.dj-sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.dj-header-shell *, .dj-desktop-footer *, .dj-mobile-footer *{box-sizing:border-box}
@media(max-width:780px){body.dj-modular{--dj-gutter:18px}}
@media(max-width:359px){body.dj-modular{--dj-gutter:14px}}

/* The outer Core Template Part must not trap sticky header inside its own height. */
body.dj-modular .wp-block-template-part.dj-header-host{display:contents}

/* Own containers only: Core constrained wrappers must not narrow individual modules. */
body.dj-modular .dj-main>.wp-block-post-content{max-width:none;margin-inline:0;padding-inline:0}
body.dj-modular .dj-home-page>.wp-block-post-content>*{max-width:none}
body.dj-modular .dj-home-page a{color:inherit}

/* Product wrapper keyboard access; hidden until focus, not a visitor-facing debug row. */
body.dj-modular .dj-skip{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
body.dj-modular .dj-skip:focus{position:fixed;z-index:100000;top:10px;left:10px;width:auto;height:auto;margin:0;padding:12px 16px;clip-path:none;overflow:visible;background:#fff;color:#262c29;border:1px solid currentColor}
