/*
 * Base styles — global resets, root typography, and shared utility classes.
 * Loaded AFTER tokens.css and BEFORE main.css.
 */

*{
    margin: 0;
    padding: 0;
    line-height: 1.2;
    font-weight: 400;
}

:focus {
  outline: none;
  box-shadow: none;
}

html {
  font-family: "Inter", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}

body {
    font-family: inherit;
    overflow-x: hidden;
}

@media (max-width: 640px) {
    body {
        background-color: var(--moba_grey, var(--moba_light_grey));
    }
}

*, *::before, *::after {
  font-family: inherit;
}

html.no-scroll, body.no-scroll {
  overflow: hidden;
  height: 100%;
  overscroll-behavior: none;
}

button,
input,
select,
textarea {
  font: inherit;
}

pre, code, kbd, samp {
  font-family: inherit;
}

svg, svg * {
  font-family: inherit;
}

h3 {
    font-size: 22px;
}

.wpcf7, .wpcf7 * {
  font-family: inherit;
}

body.menu_open {
    overflow: hidden;
}

.camp_event_page{
    background: var(--moba_beige);
}

a{
    text-decoration: none;
}

ul{
    list-style: none;
}

/* Layout containers */
.max_container{
    max-width: 1400px;
    margin: 0 auto;
}

.fixed_container{
    max-width: 1360px;
    margin: 0 auto;
}

/* Layout helpers */
.ta_right{
    text-align: right;
    display: flex;
    justify-content: flex-end;
}
.d_flex{
    display: flex;
}

.moba-page {
    /* Use padding-top (not margin-top) so the page's own background
       fills the area BEHIND the fixed header. The fixed header overlays
       on z-index: 1000, but if --header-offset is slightly taller than
       the actual header height on a given breakpoint, a margin-top
       would leave a strip of body background showing through. With
       padding-top, the page's background covers all the way up to the
       viewport top — no body bleed-through. */
    padding-top: calc(var(--header-offset) - 1px);
    margin-top: 0;
}
