/* Entry — imports */
@import url('./_variables.css');
@import url('./header.css');
@import url('./footer.css');
@import url('./contest.css');
@import url('./advice.css');
@import url('./legal.css');
@import url('./pagination.css');

/* Base/reset */
* { box-sizing: border-box; }
html, body { height: 100%; }
body {
    margin: 0;
    min-height: 100dvh;                 /* sticky footer grid */
    display: grid;
    grid-template-rows: auto 1fr auto;  /* header | main | footer */
    background: var(--color-bg);
    color: var(--color-text);
    font-family: var(--font-sans);
    line-height: 1.6;
}
img { max-width: 100%; height: auto; display: block; }
.container { width: 100%; max-width: var(--container-max); margin-inline: auto; padding-inline: var(--space-4); }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

a { color: var(--color-text); text-decoration: none; }
a:hover { color: var(--color-primary); }
:focus-visible { outline: 2px solid var(--color-secondary); outline-offset: 2px; }

/* Shared buttons */
.btn { display: inline-flex; align-items: center; gap: .5rem; padding: .6rem .9rem; border-radius: 12px; border: 1px solid var(--color-border); cursor: pointer; font-weight: 600; text-decoration: none; }
.btn-primary { background: linear-gradient(135deg, var(--color-primary), var(--color-secondary)); color: #111; border: none; box-shadow: var(--shadow); }
.btn-primary:hover { filter: brightness(1.05); }
.btn-ghost { background: #fff; color: var(--color-text); }
.btn-ghost:hover { color: var(--color-primary); border-color: var(--color-primary); }

.page-title { margin: var(--space-8) 0 var(--space-6); font-size: clamp(1.5rem, 2.5vw, 2rem); }
