/* ============================================
   Base — reset léger, typo, accessibilité
   ============================================ */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    font-family: var(--me5rine-lab-font);
    color: var(--me5rine-lab-text, #11161E);
    background: var(--me5rine-lab-bg, #ffffff);
    line-height: 1.5;
}

img,
video,
svg {
    max-width: 100%;
    height: auto;
}

a {
    color: var(--me5rine-lab-secondary, #0485C8);
}

a:hover {
    color: var(--me5rine-lab-primary, #2E576F);
}

.ml-ui a,
.lab-ds-page a,
.lab-ds-page--front a {
    color: inherit;
}

:focus-visible {
    outline: 2px solid var(--me5rine-lab-secondary, #0485C8);
    outline-offset: 2px;
}

.screen-reader-text,
.me5rine-skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 100000;
}

.me5rine-skip-link:focus {
    left: var(--me5rine-lab-spacing-md, 15px);
    top: var(--me5rine-lab-spacing-md, 15px);
    padding: var(--me5rine-lab-spacing-sm, 10px) var(--me5rine-lab-spacing-md, 15px);
    background: var(--me5rine-lab-primary, #2E576F);
    color: #fff;
    text-decoration: none;
    border-radius: var(--me5rine-lab-radius-sm, 6px);
}

.me5rine-main {
    min-height: 50vh;
    min-width: 0;
    max-width: 100%;
}

.me5rine-main__inner,
.me5rine-main__shell {
    width: var(--me5rine-chrome-width, min(1280px, calc(100% - 2 * var(--me5rine-lab-spacing-lg, 20px))));
    max-width: 100%;
    min-width: 0;
    margin: 0 auto;
}

.me5rine-main__inner {
    padding: var(--me5rine-lab-spacing-xl, 25px) 0;
}

.me5rine-main--canvas {
    width: 100%;
    max-width: none;
    padding: 0;
    margin: 0;
}

.me5rine-main--canvas .me5rine-main__inner {
    padding: 0;
}

.me5rine-entry {
    margin-bottom: var(--me5rine-lab-spacing-xl, 25px);
}

/* Public H1: primitives.css (.me5rine-lab-page-title / .me5rine-entry__title). */

.me5rine-entry__content:not(.lab-ds-page--front) > *:first-child {
    margin-top: 0;
}

.me5rine-no-results,
.me5rine-archive-header {
    margin-bottom: var(--me5rine-lab-spacing-xl, 25px);
}

.entry-content .ml-ui-dashboard {
    margin-top: 0;
    margin-bottom: 0;
}

.alignwide {
    max-width: 100%;
}

.alignfull {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
}

.me5rine-main--canvas .alignfull,
.me5rine-canvas .alignfull,
.ml-ui .alignfull {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
}
