/* ==========  Util  ========== */
@import "util/_all";

/* ==========  Config  ========== */
@import "config/_all";

/* ==========  Third party  ========== */
@import "vendor/_all";

/* ==========  Global  ========== */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html,
body {
  position: relative;
  width: 100%;
  min-width: 320px;
  font-size: 10px;
}

html {
  height: 100%;
}

body {
  position: relative;

  overflow-x: hidden;
  display: flex;
  flex-direction: column;

  min-height: 100%;

  font-family: var(--font);
  font-size: 1.6rem;
  font-weight: var(--font-regular);
  line-height: 1.5;
  color: var(--color-text);

  background: var(--color-body);

  &.disable-scroll {
    touch-action: none;
    overflow: hidden;
  }
}

h1, h2, h3, h4, h5, h6 {
  margin: 0;

  font: inherit;
  font-weight: var(--font-medium);
  line-height: 1.2;
  color: var(--color-heading);
}

h1 {
  font-size: 3.4rem;
}

h2 {
  font-size: 2.8rem;
}

h3 {
  font-size: 2rem;
}

h4 {
  font-size: 1.6rem;
}

h5 {
  font-size: 1.4rem;
}

h6 {
  font-size: 1.2rem;
}

p {
  margin: 0;
}

a {
  color: var(--color-link);
  text-decoration: none;
  transition: var(--transition);

  &:hover, &:focus, &:active {
    color: var(--color-link-hover);
  }

  &[href^="tel:"], &[href^="mailto:"] {
    text-decoration: underline;

    &:hover, &:focus, &:active {
      text-decoration: none;
    }
  }
}

b, strong {
  font-weight: var(--font-bold);
}

img, svg, picture {
  display: inline-block;
  max-width: 100%;
}

svg {
  display: inline;
  height: 1em;
}

blockquote {
  display: block;

  width: 100%;
  margin: 0;
  padding: 0.5em 0 0.5em 1.5em;
  border-left: 4px solid var(--color-text-muted);

  font-style: italic;
}

ul, ol {
  margin: 0;
  padding-left: 1.4em;

  & > li::marker {
    color: var(--color-text-muted);
  }
}

figure {
  display: inline-block;
  margin: 0;
}

iframe {
  display: block;

  width: 100%;
  margin: 0;
  border: none;

  box-shadow: none;
}

hr {
  display: block;
  margin: 1rem 0;
  border: var(--border);
}

code, kbd, pre, samp {
  overflow: auto;
  color: var(--color-heading);
}

::placeholder {
  color: var(--color-text-muted);
  opacity: 1;
}

/* ==========  Custom  ========== */
.container {
  display: block;

  width: 100%;
  max-width: 72em;
  margin: 0 auto;
  padding: 0 var(--gap);
}

.container-fluid {
  display: block;
  width: 100%;
  padding: 0 var(--gap);
}

.page-content {
  display: flex;
  flex: 1 0 auto;
  flex-direction: column;
}

@import "component/box";
@import "component/button";
@import "component/form";
@import "component/grid";
@import "component/helper";
@import "component/label";
@import "component/loader";
@import "component/section";
@import "component/table";
@import "component/toast";

@import "component/header";
@import "component/hero";
@import "component/footer";
