
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap');

/* mobile first */

:root {
    --dark-text: #2B2B2B;
    --coral: #C7665B;
    --max-width-large: 1400px;
    --hover: #B14E43;;
    --section-vertical-spacing: 180px;

}
/* preloader */
/* #preloader {
position: fixed;
height: 100svh;
width: 100vw;
background-color: #fff;
z-index:999999;
display: flex;
align-items: center;
}
#preload-logo {
width:100px;
height:100px;
position:relative;
background-image:url(../images/aspire-logo-stack-white.svg);
background-size: 100%;
background-repeat:no-repeat;
background-position:center center;
margin: 0 auto;
} */
#top {
    position: fixed;
    top: 0px;
    z-index: 9999;
    width: 100%;
    padding-top: clamp(12px, 2vw, 18px);
    padding-bottom: clamp(12px, 2vw, 18px);
    transition: all .45s ease-out;
    background: rgba(255, 255, 255, .88);
    -webkit-backdrop-filter: blur(15px);
    backdrop-filter: blur(15px);
}
.top-wrap {
    margin: 0 auto;
    width: 90%;
    max-width: var(--max-width-large);
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: 1fr;
    grid-column-gap: 0px;
    grid-row-gap: 0px;
    align-items: center;
}
.top-right  {
    justify-content: right;
    align-items: stretch;
    text-align: right;
}
.top-right .button  {
    background: var(--coral);
    margin-bottom: 0;
    padding: 0 20px;
    height: 40px;
    line-height: 41px;
    font-size: 1.2rem;
}
.top-left{
    justify-content: left;
    align-items: center;
    text-align: left;
    display: flex;
}
.logo {
    display: flex;
}
.hero {
    background: url('../images/hero-bg.svg') center center no-repeat;
    background-size: cover;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    height: auto;
    padding: 60px 0;
}
.hero-outer {
    display: table;
    position: initial;
    height: auto;
    width: 100%;
    top: 160px;
}
.hero-middle {
    display: table-cell;
    vertical-align: middle
}
.hero-inner {
    margin-left: auto;
    margin-right: auto;
}
.container {
    position: relative;
    width: 90%;
    max-width: var(--max-width-large);
    margin: 0 auto;
    box-sizing: border-box;
}
.hero h1 {
    font-size:  clamp(4.0rem, 7.7vw, 12rem);
    line-height: 95%;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: clamp(-0.2rem, -.4vw, -0.4rem);
    margin-top: 10vw;
}
.hero h2 {
    font-size:  2.2rem;
    line-height: 120%;
    font-weight: 600;
    letter-spacing: -.01rem;
}
.tag {
    padding-top: 10px;
    padding-bottom: 30px;
    display: flex;
}
.tag-copy {
    flex-direction: column;
    display: flex;
    width: 75%;
}
.tag-copy p {
    margin-bottom: 20px;
    flex-grow: 1;
}
.hero-action  {
    padding-top: 20px;
}
.tag-copy .hero-action {
    margin-top: auto;
    position: relative;
}
.hero-action a {
    display: block;
}
.tag .hero-action a:after {
    content: "";
    width: 8px;
    height: 8px;
    border-top: 1px solid var(--dark-text);
    border-right: 1px solid var(--dark-text);
    transform: rotate(45deg);
    position: absolute;
    top: 61%;
    right: 0;
}
.tag .hero-action a:before {
    content: "";
    border-top: 1px solid var(--dark-text);
    width: calc(100% - 120px);
    position: absolute;
    right: 0;
    top: 71%;
    transition: all .35s;
}
.tag .hero-action a:hover:before {
    content: "";
    width: calc(40% - 90px);
    position: absolute;
    right: 0;
    top: 71%;
}
.family {
    position: relative;
    width: 100%;
    margin-top: 50px;
}
.family h4 {
    font-size: 1.6rem;
    font-weight: 600;
    margin-bottom: 5px;
    position: relative;
}
.family h4:before {
    content: "";
    border-top: 2px solid var(--coral);
    width: 20px;
    position: absolute;
    top: -16px;
}
.family p {
    font-size: 1.3rem;
    line-height: 160%;
}
.about {
    padding: clamp(60px, 9vw, 180px) 0;
    overflow: hidden;
}
.about .featured-img img {
    width: 100%;
    height: auto;
    display: block;
    margin-bottom: 30px;
}
.office img{
    margin-top: clamp(30px, 5vw, 80px);
}
.family-section {
    padding: clamp(60px, 9vw, 180px) 0;
}
.family-section .container {
    margin-bottom: clamp(60px, 9vw, 120px);
}
.family-section .container:last-child {
    margin-bottom: 0;
}
.fam-box {
    display: flex;
    flex-direction: column;
}
.order1 {
    order: 1
}
.order2 {
    order: 2
}
.family-section img {
    margin-bottom: 20px;
    width: 100%;
    height: 50vw;
    object-fit: cover;
}
.shape1 {
    position: absolute;
    z-index: 3;
    background: rgba(255, 221, 182, .9);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    right: -160px;
    border-radius: 74% 26% 81% 19% / 86% 61% 39% 14% ;
    width: 300px;
    height: 300px;
    top: 55%;
    overflow: hidden;

}
.contact {
    padding: clamp(60px, 9vw, 180px) 0;
    background: #FFF6F3;
}
.form-group {
    margin-bottom: 10px;
}
.contact form {
    margin-bottom: 0;
}







img {
    width: 100%;
    display: block;
    border-radius: 6px;
}
.shadows {
    -webkit-box-shadow: 0px 3px 35px 0px rgba(0,0,0,.15);
    -moz-box-shadow: 0px 3px 35px 0px rgba(0,0,0,.15);
    box-shadow: 0px 3px 35px 0px rgba(0,0,0,.15);
}
.footer {
    padding: clamp(50px, 3vw, 200px) 0;
}













.red {
    background-color: red;
}
.green {
    background-color: green;
}











@media (min-width: 1000px) {
    .hero {
        height: 100vh;
        min-height: 800px;
        padding: 0;
    }

    .hero h1 {
        margin-top: 0;
    }
    .hero-outer {
        position: absolute !important;
    }
    .tag {
        margin-left: 13.7% !important;
    }
    .tag-copy {
        width: auto;
    }
    .tag-copy p {
        margin-bottom: auto;
        flex-grow: 1;
    }
    .tag-copy .hero-action {
        margin-top: auto;
    }
    .family {
        position: absolute !important;
        bottom: 30px;
        width: 100%;
    }
    .family h4 {
        position: relative;
    }
    .family h4:before {
        content: "";
        border-top: 2px solid var(--coral);
        width: 20px;
        position: absolute;
        top: -16px;
    }
    .fam-box {
        display: block;
        flex-direction: row;
    }
    .order1 {
        order: 0;
    }
    .order2 {
        order: 0;
    }
    .about .featured-img img {
        margin-bottom: 0;
    }
    .family-section img {
        margin-bottom: 0;
        width: 100%;
        height: auto;
    }
}








/* Note
html is set to 62.5% so that all the REM measurements throughout Skeleton
are based on 10px sizing. So basically 1.5rem = 15px :) */
html {
    font-size: 62.5%;
}
body {
    font-size: 1.4rem;
    line-height: 2.4rem;
    font-weight: 400;
    letter-spacing: 0.018rem;
    font-family: "Inter", sans-serif;
    color: var(--dark-text);
}

.subheader {
    font-size: 3.0rem;
    font-weight: 400;
    line-height: 125%;

}
h1, h2, h3, h4, h5, h6 {
    margin-top: 0;
    margin-bottom: 2rem;
    font-family: "Inter", sans-serif;
    color: var(--dark-text);
    text-wrap: balance;
}
h1 { font-size: 3.8rem; font-weight: 600; }
h2 {
    font-size: 3.0rem;
    line-height: 110%;
    font-weight: 600;
    letter-spacing: -0.07rem;
}
h3 { font-size: 2.4rem; line-height: 110%; font-weight: 500; letter-spacing: -.016rem; }
h4 { font-size: 1.5rem; line-height: 110%; font-weight: 400; }
h5 { font-size: 1.8rem; line-height: 110%; font-weight: 400; }
h6 { font-size: 1.6rem; line-height: 110%; font-weight: 400; }

/* Larger than phablet */
@media (min-width: 550px) {
    body {
        font-size: 1.4rem;
        line-height: 2.4rem;

    }
    h1 { font-size: 6.0rem; font-weight: 600;}
    h2 { font-size: 5.0rem; letter-spacing: -.18rem;}
    h3 { font-size: 2.5rem; }
    h4 { font-size: 2.6rem; }
    h5 { font-size: 2.0rem; }
    h6 { font-size: 1.8rem; }
}

p {
    margin-top: 0;
}
.last-p p:last-of-type {
    margin-bottom: 0;
}
/* Links  */
a {
    color: var(--coral);
    text-decoration: none;
    transition: color .25s ease;
    text-transform: uppercase;
    font-weight: 600;
}
a:hover {
    color: var(--hover);
    text-decoration: none;
}
/* Buttons  */
.button,
button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
    display: inline-block;
    height: 40px;
    padding: 0 25px;
    color: #fff;
    text-align: center;
    font-size: 1.4rem;
    font-weight: 600;
    line-height: 42px;
    letter-spacing: .05rem;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
    background-color: var(--coral);
    border-radius: 3px;
    cursor: pointer;
    box-sizing: border-box;
    font-family: 'inter', sans-serif;
    border: none;
    transition: background-color .15s ease;
}
.button:hover,
button:hover,
input[type="submit"]:hover,
input[type="reset"]:hover,
input[type="button"]:hover,
.button:focus,
button:focus,
input[type="submit"]:focus,
input[type="reset"]:focus,
input[type="button"]:focus {
    color: #fff;
    outline: 0;
    background-color: var(--hover);
    text-decoration: none;
}
.button.button-primary,
button.button-primary,
input[type="submit"].button-primary,
input[type="reset"].button-primary,
input[type="button"].button-primary {
    color: #FFF;
    background-color: #33C3F0;
    border-color: #33C3F0;
}
.button.button-primary:hover,
button.button-primary:hover,
input[type="submit"].button-primary:hover,
input[type="reset"].button-primary:hover,
input[type="button"].button-primary:hover,
.button.button-primary:focus,
button.button-primary:focus,
input[type="submit"].button-primary:focus,
input[type="reset"].button-primary:focus,
input[type="button"].button-primary:focus {
    color: #FFF;
    background-color: #1EAEDB;
    border-color: #1EAEDB;
}
button:disabled,
button[disabled] {
    border: 1px solid #4d4d4d;
    background-color: white;
    color: #4d4d4d;
    cursor: not-allowed;
    text-transform: uppercase;
}


/* Forms  */
input[type="email"],
input[type="number"],
input[type="search"],
input[type="text"],
input[type="tel"],
input[type="url"],
input[type="password"],
textarea,
select {
    height: 38px;
    padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */
    background-color: #fff;
    border: 1px solid #D1D1D1;
    border-radius: 4px;
    box-shadow: none;
    box-sizing: border-box;
    width: 100%;
}
/* Removes awkward default styles on some inputs for iOS */
input[type="email"],
input[type="number"],
input[type="search"],
input[type="text"],
input[type="tel"],
input[type="url"],
input[type="password"],
textarea {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
textarea {
    min-height: 120px;
    padding-top: 6px;
    padding-bottom: 6px;
}
input[type="email"]:focus,
input[type="number"]:focus,
input[type="search"]:focus,
input[type="text"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
textarea:focus,
select:focus {
    border: 1px solid #FED8A8;
    outline: 0;
}
label,
legend {
    display: block;
    margin-bottom: .5rem;
    font-weight: 600;
}
fieldset {
    padding: 0;
    border-width: 0;
}
input[type="checkbox"],
input[type="radio"] {
    display: inline;
}
label > .label-body {
    display: inline-block;
    margin-left: .5rem;
    font-weight: normal;
}


/* Lists  */
ul {
    list-style: circle inside;
}
ol {
    list-style: decimal inside;
}
ol, ul {
    padding-left: 0;
    margin-top: 0;
}
ul ul,
ul ol,
ol ol,
ol ul {
    margin: 1.5rem 0 1.5rem 3rem;
    font-size: 90%;
}
li {
    margin-bottom: 1rem;
}


/* Code */
code {
    padding: .2rem .5rem;
    margin: 0 .2rem;
    font-size: 90%;
    white-space: nowrap;
    background: #F1F1F1;
    border: 1px solid #E1E1E1;
    border-radius: 4px;
}
pre > code {
    display: block;
    padding: 1rem 1.5rem;
    white-space: pre;
}
pre {  overflow: scroll; }


/* Tables  */
th,
td {
    padding: 12px 15px;
    text-align: left;
    border-bottom: 1px solid #E1E1E1;
}
th:first-child,
td:first-child {
    padding-left: 0;
}
th:last-child,
td:last-child {
    padding-right: 0;
}


/* Spacing */
button,
.button {
    margin-bottom: 1rem;
}
input,
textarea,
select,
fieldset {
    margin-bottom: 1.5rem;
}
pre,
blockquote,
dl,
figure,
table,
p,
ul,
ol,
form {
    margin-bottom: 2.5rem;
}

figure {
    margin: 0 0 0 0;
}

iframe {
    margin-bottom: 40px;
    width: 100%;
    aspect-ratio: 16 / 9;
}
p {
    text-wrap: pretty;
}

/* Grid
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.flex-grid-thirds, .flex-grid-fourths {
    display: flex;
    flex-wrap: wrap;
}
.flex-grid-thirds .col, .flex-grid-fourths .col {
    flex: none;
}
.flex-grid-thirds .col:nth-child(4n+0) {
    margin-left: 0;
}

.flex-grid-fourths .col:nth-child(4n+1) {
    margin-left: 0;
}

.flex-grid {
    display: flex;
    flex-direction:row;
    flex-wrap: wrap;
    align-content: space-between;

}
.col {
    flex: 1;
}

.container-wide {
    position: relative;
    width: 90%;
    max-width: 1800px;
    margin: 0 auto;
    box-sizing: border-box;
}

.container {
    position: relative;
    width: 90%;
    max-width: var(--max-width-large);
    margin: 0 auto;
    box-sizing: border-box;
}
.column,
.columns {
    width: 100%;
    float: left;
    box-sizing: border-box;
}

/* For devices larger than 768px */
@media (min-width: 768px) {
    .container {
        width: 90%;
    }
}

/* For devices larger than 768px */
@media (min-width: 1000px) {

    .column,
    .columns {
        margin-left: 5%;
    }
    .column:first-child,
    .columns:first-child {
        margin-left: 0;
    }


    .c1.column,
    .c1.columns                    { width: 3.75%; }
    .c2.columns                    { width: 12.5%; }
    .c3.columns                  { width: 21.25%;            }
    .c4.columns                   { width: 30%; }
    .c5.columns                   { width: 38.75%; }
    .c6.columns                    { width: 47.5%;            }
    .c7.columns                  { width: 56.25%; }
    .c8.columns                  { width: 65%; }
    .c9.columns                   { width: 73.75%;          }
    .c10.columns                    { width: 82.5%; }
    .c11.columns                 { width: 91.25%; }
    .c12.columns                 { width: 100%; margin-left: 0; }


    /* Offsets */
    .offset-by-one.column,
    .offset-by-one.columns          { margin-left: 13.66666666667%; }
    .offset-by-two.column,
    .offset-by-two.columns          { margin-left: 22.5%; }
    .offset-by-three.column,
    .offset-by-three.columns        { margin-left: 27%;}
    .offset-by-four.column,
    .offset-by-four.columns         { margin-left: 35.6666666667%; }
    .offset-by-five.column,
    .offset-by-five.columns         { margin-left: 44.3333333333%; }
    .offset-by-six.column,
    .offset-by-six.columns          { margin-left: 52.5%;            }
    .offset-by-seven.column,
    .offset-by-seven.columns        { margin-left: 61.6666666667%; }
    .offset-by-eight.column,
    .offset-by-eight.columns        { margin-left: 70.3333333333%; }
    .offset-by-nine.column,
    .offset-by-nine.columns         { margin-left: 79.0%;          }
    .offset-by-ten.column,
    .offset-by-ten.columns          { margin-left: 87.6666666667%; }
    .offset-by-eleven.column,
    .offset-by-eleven.columns       { margin-left: 96.3333333333%; }
}


@media (min-width: 800px) and (max-width: 1250px) {
    .services .c4.columns {
        width: 47.5%;
    }

    .services .c4.columns:nth-child(odd)  {
        margin-left: 0;
    }
    .services .c4.columns:nth-child(even)  {
        margin-left: 5%;
    }

    .mission .c3.columns {
        width: 47.5%;
    }

    .mission .c3.columns:nth-child(odd)  {
        margin-left: 0;
    }
    .mission .c3.columns:nth-child(even)  {
        margin-left: 5%;
    }

}


/* utilities
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.u-full-width {
    width: 100%;
    box-sizing: border-box;
}
.u-max-full-width {
    max-width: 100%;
    box-sizing: border-box;
}
.u-pull-right {
    float: right;
}
.u-pull-left {
    float: left;
}


hr {
    margin-top: 30px;
    margin-bottom: 48px;
    border-width: 0;
    border-top: 1px solid #E1E1E1;
}
@media (min-width: 700px) {
    hr {
        margin-top: 80px;
        margin-bottom: 88px;
        border-width: 0;
        border-top: 1px solid #E1E1E1;
    }
}


/* Clearing */

/* Self Clearing Goodness */
.container:after,
.row:after,
.u-cf {
    content: "";
    display: table;
    clear: both;
}






/* Typography Utilities */
.u-caps { text-transform: uppercase; letter-spacing: .u-15em }
.u-text-right { text-align: right; }
.u-text-left { text-align: left; }
.u-text-center { text-align: center; }
.u-bold     { font-weight: bold; }
.u-regular  { font-weight: normal; }
.u-italic   { font-style: italic; }
.u-white	{ color: #fff; }
.u-gray { color: #848484; }
.u-dark-gray { color: #282828; }
.u-red { color: #bd2c00;}
.u-green { color: #6cc644;}

/* layout */
.u-relative { position: relative; }
.u-absolute { position: absolute; }
.u-fixed { position: fixed; }
.u-zindex-1 { z-index: 1; }
.u-zindex-2 { z-index: 2; }
.u-zindex-3 { z-index: 3; }

.u-hide { display: none; }
.u-show .u-block  { display: block; }

.u-inline       { display: inline; }
.u-inline-block { display: inline-block; }
.u-flex         { display: flex; }

.u-table { display: table; }
.u-cell { display: table-cell; }

.u-m0 { margin: 0;}
.u-mt0 { margin-top: 0; }
.u-mr0 { margin-right: 0;}
.u-mb0 { margin-bottom: 0;}
.u-ml0 { margin-left: 0;}

.u-fit         { max-width: 100%; }
.u-half-width  { width: 50% }
.u-full-width  { width: 100%; }
.u-full-height { height: 100%; }

.u-right { float: right; }
.u-left { float: left; }
.u-centered { display: block; float: none; margin-right: auto; margin-left: auto }

.u-bg-white         { background-color: #fff; }
.u-bg-gray          { background-color: #848484; }
.u-bg-dark-gray     { background-color: #282828; }
.u-bg-light-gray {background-color: #eeeeee;}
.u-bg-green     { background-color: #6cc644; }
.u-bg-red     { background-color: #bd2c00; }

.u-img-circle { border-radius: 50%; }

.u-bg-fixed { background-attachment:inherit !important; }
@media (min-width: 980px) {
    .u-bg-fixed {	background-attachment: fixed !important; 	}
}

/* Clearing */
.u-container:after, .u-row:after,  .u-cf {
    content: "";
    display: table;
    clear: both;
}
/* Clear Fix */
.u-clearfix:before, .u-clearfix:after {
    content: "";
    display: table;
}
.u-clearfix:after {
    clear: both;
}
.u-clearfix {
    zoom: 1; /* ie 6/7 */
}




/* Nomrmalize
–––––––––––––––––––––––––––––––––––––––––––––––––– */

html {
    line-height: 1.15; /* 1 */
    -webkit-text-size-adjust: 100%; /* 2 */
}

body {
    margin: 0;
}

main {
    display: block;
}

/* h1 {
font-size: 2em;
margin: 0.67em 0;
}
*/
hr {
    box-sizing: content-box; /* 1 */
    height: 0; /* 1 */
    overflow: visible; /* 2 */
}

pre {
    font-family: monospace, monospace; /* 1 */
    font-size: 1em; /* 2 */
}

a {
    background-color: transparent;
}

abbr[title] {
    border-bottom: none; /* 1 */
    text-decoration: underline; /* 2 */
    text-decoration: underline dotted; /* 2 */
}

b,
strong {
    font-weight: bolder;
}

code,
kbd,
samp {
    font-family: monospace, monospace; /* 1 */
    font-size: 1em; /* 2 */
}

small {
    font-size: 80%;
}

sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

img {
    border-style: none;
}

button,
input,
optgroup,
select,
textarea {
    font-family: inherit; /* 1 */
    font-size: 100%; /* 1 */
    line-height: 1.15; /* 1 */
    margin: 0; /* 2 */
}

button,
input { /* 1 */
    overflow: visible;
}

select { /* 1 */
    text-transform: none;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
    -webkit-appearance: button;
}

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
    border-style: none;
    padding: 0;
}

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
    outline: 1px dotted ButtonText;
}

fieldset {
    padding: 0.35em 0.75em 0.625em;
}

legend {
    box-sizing: border-box; /* 1 */
    color: inherit; /* 2 */
    display: table; /* 1 */
    max-width: 100%; /* 1 */
    padding: 0; /* 3 */
    white-space: normal; /* 1 */
}

progress {
    vertical-align: baseline;
}

textarea {
    overflow: auto;
}

[type="checkbox"],
[type="radio"] {
    box-sizing: border-box; /* 1 */
    padding: 0; /* 2 */
}

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
    height: auto;
}

[type="search"] {
    -webkit-appearance: textfield; /* 1 */
    outline-offset: -2px; /* 2 */
}

[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
}

::-webkit-file-upload-button {
    -webkit-appearance: button; /* 1 */
    font: inherit; /* 2 */
}

details {
    display: block;
}

summary {
    display: list-item;
}

template {
    display: none;
}

[hidden] {
    display: none;
}



.grid .row > * {
    background: #000;
    margin-bottom: 3rem;
    color: #fff;
}
.show-grid {
    position: fixed;
    width: 100%;
    z-index: 99;
    top: 0;
}
.show-grid .row > * {
    background: rgba(196,146,11, .5);
    height: 100vh;
    border: 1px solid rgba(196,146,11, .4);
    border-style: dashed ;
    box-sizing: border-box;
}
