/* Base Reset & Typography */
body {
    margin: 0;
    padding: 0;
    font-family: 'Noto Sans', sans-serif;
    color: #333;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Sora', sans-serif;
    margin-top: 0;
}

p {
    margin-top: 0;
}

/* Layout System */
.zpsection {
    position: relative;
    padding: 20px 0;
    width: 100%;
}

.zpcontainer {
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
    width: 100%;
}

@media (min-width: 576px) { .zpcontainer { max-width: 540px; } }
@media (min-width: 768px) { .zpcontainer { max-width: 720px; } }
@media (min-width: 992px) { .zpcontainer { max-width: 960px; } }
@media (min-width: 1200px) { .zpcontainer { max-width: 1140px; } }

.zprow {
    display: flex;
    flex-wrap: wrap;
    margin-right: -15px;
    margin-left: -15px;
}

.zpalign-items-center { align-items: center; }
.zpalign-items-flex-end { align-items: flex-end; }
.zpalign-items-flex-start { align-items: flex-start; }

.zpjustify-content-center { justify-content: center; }
.zpjustify-content-flex-start { justify-content: flex-start; }
.zpjustify-content-flex-end { justify-content: flex-end; }
.zpjustify-content-space-between { justify-content: space-between; }

/* Grid Columns */
.zpelem-col {
    position: relative;
    width: 100%;
    min-height: 1px;
    padding-right: 15px;
    padding-left: 15px;
}

.zpcol-12 { flex: 0 0 100%; max-width: 100%; }

@media (min-width: 768px) {
    .zpcol-md-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
    .zpcol-md-3 { flex: 0 0 25%; max-width: 25%; }
    .zpcol-md-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
    .zpcol-md-5 { flex: 0 0 41.666667%; max-width: 41.666667%; }
    .zpcol-md-6 { flex: 0 0 50%; max-width: 50%; }
    .zpcol-md-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
    .zpcol-md-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
    .zpcol-md-9 { flex: 0 0 75%; max-width: 75%; }
    .zpcol-md-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
    .zpcol-md-12 { flex: 0 0 100%; max-width: 100%; }
}

/* Visibility Utilities */
@media (max-width: 767px) {
    .zp-hidden-xs { display: none !important; }
}
@media (min-width: 768px) and (max-width: 991px) {
    .zp-hidden-sm { display: none !important; }
}
@media (min-width: 992px) {
    .zp-hidden-md { display: none !important; }
}

/* Elements */
.zpelem-heading { margin-bottom: 10px; }
.zpheading-style-none { line-height: 1.2; }
.zpheading-align-center { text-align: center; }
.zpheading-align-left { text-align: left; }

.zpelem-text { margin-bottom: 20px; }
.zptext-align-center { text-align: center; }
.zptext-align-left { text-align: left; }

.zpelem-image { margin-bottom: 20px; }
.zpimage-container { overflow: hidden; }
.zpimage-align-center { text-align: center; }
.zpimage-align-left { text-align: left; }
.zpimage { display: inline-block; max-width: 100%; height: auto; }

/* Box / Cards */
.zpelem-box {
    background: transparent;
}

/* Image Heading Text Element (Cards) */
.zpelem-imageheadingtext {
    margin-bottom: 20px;
    height: 100%;
}
.zpimageheadingtext-container figure {
    margin: 0 0 15px 0;
}
.zpimage-heading {
    margin-bottom: 15px;
    font-size: 1.25rem;
}
.zpimage-text ul {
    padding-left: 20px;
    margin: 0;
}
.zpimage-text ul li {
    margin-bottom: 5px;
}

/* Specific Section Overrides */
.zpdefault-section-bg {
    background-color: transparent;
}

/* Custom Utilities found in HTML */
.sora { font-family: 'Sora', sans-serif; }
