:root {
  --spacing: 2.5rem;
  --inner-spacing: 1rem;
  --primary-colour: ;
  --secondary-colour: ;
  --body-font-family: sans-serif;
  --body-font-size: 16px;
  --body-line-height: 1.65;
  --body-background-colour: #ffffff;
  --body-colour: #111111;
  --link-colour: #000000;
  --header1-font-family: sans-serif;
  --header1-font-size: 2.5rem;
  --header1-line-height: 1.2;
  --header1-colour: #111111;
  --header2-font-family: sans-serif;
  --header2-font-size: 2rem;
  --header2-line-height: 1.2;
  --header2-colour: #111111;
  --header3-font-family: sans-serif;
  --header3-font-size: 1.75rem;
  --header3-line-height: 1.2;
  --header3-colour: #111111;
  --header4-font-family: sans-serif;
  --header4-font-size: 1.5rem;
  --header4-line-height: 1.2;
  --header4-colour: #111111;
}

.grid {
    display: grid;
    grid-gap: var(--spacing);
    min-width: 0;
}

.fr-view .grid {
    grid-gap: 0.5rem;
}

.fr-view .grid > * {
    outline: rgba(0, 0, 0, 0.05) 1px dashed;
    padding: 0.5rem;
}

.grid.no-gap {
    grid-gap: 0;
}

.grid.small-gap {
    grid-gap: var(--inner-spacing);
}

.grid.big-gap {
    grid-gap: var(--spacing);
}

.grid.two-columns {
    grid-template-columns: 1fr 1fr;
}

.grid.three-columns {
    grid-template-columns: 1fr 1fr 1fr;
}

.grid.four-columns {
    grid-template-columns: 1fr 1fr 1fr 1fr;
}

.grid.columns {
    grid-template-columns: min-content;
}

/* a|bbb */
.grid.two-columns.one-quarter-left {
    grid-template-columns: 1fr 3fr
}

/* aaa|b */
.grid.two-columns.three-quarters-left {
    grid-template-columns: 3fr 1fr;
}

/* a|bb */
.grid.two-columns.one-third-left {
    grid-template-columns: 1fr 2fr;
}

/* aa|b */
.grid.two-columns.two-thirds-left {
    grid-template-columns: 2fr 1fr;
}

/* a|bbbbbb */
.grid.two-columns.one-sixth-left {
    grid-template-columns: 1fr 5fr;
}

/* a|bb|c */
.grid.three-columns.big-centre {
    grid-template-columns: 1fr 50% 1fr;
}

.grid.two-rows {
    grid-template-rows: 1fr 1fr;
}

.grid.three-rows {
    grid-template-rows: 1fr 1fr 1fr;
}

.grid.four-rows {
    grid-template-rows: 1fr 1fr 1fr 1fr;
}

.grid.rows {
    grid-template-rows: min-content;
}

.grid.two-rows.one-quarter-top {
    grid-template-rows: 1fr 3fr
}

.grid.two-rows.three-quarters-top {
    grid-template-rows: 3fr 1fr;
}
.grid.two-rows.one-third-top {
    grid-template-rows: 1fr 2fr;
}

.grid.two-rows.two-thirds-top {
    grid-template-rows: 2fr 1fr;
}

.grid.three-rows.big-centre {
    grid-template-rows: 1fr 50% 1fr;
}

@media (max-width: 768px) {
    .grid.two-columns,
    .grid.three-columns,
    .grid.four-columns,
    .grid.two-columns.one-quarter-left,
    .grid.two-columns.three-quarters-left,
    .grid.two-columns.one-third-left,
    .grid.two-columns.two-thirds-left,
    .grid.two-columns.one-sixth-left,
    .grid.three-columns.big-centre {
        grid-template-columns: 1fr;
    }
    .grid.two-rows,
    .grid.three-rows,
    .grid.four-rows,
    .grid.two-rows.one-quarter-top,
    .grid.two-rows.three-quarters-top,
    .grid.two-rows.one-third-top,
    .grid.two-rows.two-thirds-top,
    .grid.three-rows.big-centre {
        grid-template-rows: 1fr;
    }
}
* {
    box-sizing: border-box;
    min-height: 0;
    min-width: 0;
}

body {
    min-height: 0;
    min-width: 0;
    margin: 0;
    padding: 0;
    font-family: var(--body-font-family);
    font-size: var(--body-font-size);
    line-height: var(--body-line-height);
    background-color: var(--body-background-colour);
    color: var(--body-colour);
}

h1 {
    color: var(--header1-colour);
    font-family: var(--header1-font-family);
    font-size: var(--header1-font-size);
    line-height: var(--header1-line-height);
}

h2 {
    color: var(--header2-colour);
    font-family: var(--header2-font-family);
    font-size: var(--header2-font-size);
    line-height: var(--header2-line-height);
}

h3 {
    color: var(--header3-colour);
    font-family: var(--header3-font-family);
    font-size: var(--header3-font-size);
    line-height: var(--header3-line-height);
}

h4 {
    color: var(--header4-colour);
    font-family: var(--header4-font-family);
    font-size: var(--header4-font-size);
    line-height: var(--header4-line-height);
}

a {
    color: var(--link-colour);
    transition: color 0.3s ease-out;
}

a:hover {
    color: #4492bb;
}

img {
    width: 100%;
    height: auto;
}

.container {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
}

.responsive-container {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
}

.responsive-container iframe, .responsive-container embed {
    position: absolute;
    top:0;
    left: 0;
    width: 100%;
    height: 100%;
}

div > *:first-child, section > *:first-child, main > *:first-child, article > *:first-child {
    margin-top: 0;
}

div > *:last-child, section > *:last-child, main > *:last-child, article > *:last-child {
    margin-bottom: 0;
}

article[itemProp="blogPost"] h2 {
    margin-top: 0;
}

.text-columns {
    columns: 2;
}

.text-columns.three-columns {
    columns: 3;
}

.text-columns > p {
    -webkit-column-break-inside: avoid;
    page-break-inside: avoid;
    break-inside: avoid;
}

@media (max-width: 768px) {
    .text-columns, .text-columns-three-columns {
        columns: 1;
    }
}
@font-face {
    font-family: 'AvantGarde Book';
    src: url('/themes/Launching%20Point%20Theme/assets/fonts/AvantGardeLT-Book.woff2') format('woff2'),
         url('/themes/Launching%20Point%20Theme/assets/fonts/AvantGardeLT-Book.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'AvantGarde Regular';
    src: url('/themes/Launching%20Point%20Theme/assets/fonts/AvantGardeLT-Regular.woff2') format('woff2'),
         url('/themes/Launching%20Point%20Theme/assets/fonts/AvantGardeLT-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

body {
    font-family: 'AvantGarde Regular', sans-serif;
    padding: var(--inner-spacing) var(--spacing) var(--spacing) var(--spacing);
}

@media (max-width: 768px ) {
    body {
        padding: var(--inner-spacing);
    }
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'AvantGarde Book', sans-serif;
    text-transform: uppercase;
}

h1 {
    letter-spacing: 0.3rem;
}

a {
    text-decoration: none;
}

strong {
    font-family: 'AvantGarde Book', sans-serif;
}

iframe {
    border: none;
}

.grid {
    grid-gap: var(--inner-spacing);
}

main {
    font-size: 0.95rem;
    margin-top: var(--inner-spacing);
}

.slideshow {
    height: calc(100vh - var(--spacing) * 3.75);
}

div.nav {
    max-height: calc(100vh - var(--spacing) * 3.75);
}

@media (max-width: 768px) {
    .slideshow {
        height: calc(100vh - var(--spacing) * 3);
    }
}

header {
    display: flex;
    background-color: var(--body-background-colour);
    justify-content: space-between;
    padding-bottom: var(--inner-spacing);
    z-index: 9;
    text-transform: uppercase;
}

header .tag {
    font-size: 1.5rem;
    text-decoration: none;
    letter-spacing: 0.5rem;
    display: flex;
    align-items: flex-end;
}

header .logo {
    width: 150px;
}

header .tag span {
    margin-left: 1rem;
}

.nav-toggle {
    display: none;
    border: none;
    background: none;
    font-size: 1.25rem;
}

@media (max-width: 806px) {
    header {
        padding: 0;
        padding-bottom: calc(var(--inner-spacing) / 2);
        display: block;
        position: relative;
    }
    header .logo {
        display: none;
    }
    header .tag {
        display: block;
    }
    header strong, header .tag span {
        display: block;
        margin-left: 0;
    }
    .nav-toggle {
        position: absolute;
        top: 0rem;
        right: 0rem;
        display: block;
    }
}

body > .main {
    grid-template-columns: 250px minmax(0, 1fr);
    grid-gap: var(--spacing);
}

div.nav {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    margin-top: var(--inner-spacing);
}

div.nav .nav-toggle {
    position: absolute;
    z-index: 11;
    right: 1rem;
    top: 0.9rem;
    height: 2rem;
}

@media (max-width: 768px) {
    div.nav {
        position: fixed;
        width: 250px;
        top: 0;
        right: 0;
        transform: translateX(250px);
        box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px;
        z-index: 10;
        height: 100vh;
        transition: color 0.3s ease-out;
        background-color: var(--body-background-colour);
        padding: var(--spacing) var(--inner-spacing);
        max-height: inherit;
        margin-top: 0;
    }
    div.nav.active {
        transform: translateX(0);
        box-shadow: rgba(0, 0, 0, 0.75) 0px 0px var(--spacing);
    }
    div.nav .logos {
        max-width: 75%;
    }
}

nav {
    text-transform: uppercase;
    letter-spacing: 0.3rem;
    font-family: 'AvantGarde Book', sans-serif;
    font-weight: bold;
    background-color: var(--body-background-colour);
    font-size: 1rem;
}

nav a {
    text-decoration: none;
    transition: color 0.3s ease-out;
    margin-bottom: 0.5rem;
    display: block;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

nav a:hover, nav li.active > a {
    color: #4492bb;
    color: #888;
}

nav li.expand ul {
    display: none;
}

nav li.expand.active ul {
    display: block;
    margin-left: 1rem;
}

nav li.right {
    margin-right: 0;
    float: right;
    font-size: 0.75rem;
    letter-spacing: 0.1rem;
}

.main nav li.right {
    float: none;
}

nav ul, nav ul li {
    list-style: none;
    margin: 0;
    padding: 0;
}

nav .container {
    position: sticky;
    top: var(--inner-spacing);
}

nav .social {
    font-weight: normal;
    font-size: 1.5rem;
    line-height: 1rem;
    margin-left: -0.25rem;
}

div.nav .logos {
    align-items: end;
}

body main.home {
    margin-top: 0;
}

body main.home nav > ul > li {
    display: inline-block;
    position: relative;
    margin-right: 1rem;
}

body main.home nav > ul > li ul {
    position: fixed;
    width: 100%;
}

body main.home nav li.expand.active ul {
    margin-left: 0;
}

body main.home nav > ul > li ul li {
    display: inline-block;
    margin: 0 1rem 0 0;
}

@media (max-width: 768px) {
    body main.home nav > ul > li {
        display: block;
    }
    body main.home nav li.expand.active ul {
        margin-left: 1rem;
    }
    body main.home nav > ul > li ul {
        position: relative;
    }
}

body main.home .slideshow {
    max-height: 75vh;
}

@media (max-width: 1024px) {
    body > .main {
        grid-template-columns: 200px 1fr;
    }
}

@media (max-width: 768px) {
    body > .main {
        grid-template-columns: 1fr;
    }
    nav {
        z-index: 9;
        background-color: var(--body-background-colour);
        padding: 0;
    }
    nav .container {
        position: relative;
        display: grid;
        justify-content: space-between;
        grid-template-columns: 1fr 3fr;
    }
}

@media (max-width: 768px) and (orientation: landscape) {
    div.nav .logos {
        width: 100px;
    }
    div.nav .logos.grid {
        grid-template-columns: 1fr 1fr;
    }
    div.nav .logos img {
        display: inline;
    }
}

main {
    position: relative;
    width: 100%;
}

main img {
    max-width: 100%;
}

.slideshow {
    overflow: hidden;
}

.slideshow .slick-dots {
    background-color: rgba(255, 255, 255, 0.5);
    width: auto;
    left: 50%;
    transform: translateX(-50%);
    padding: 0.5rem 0 0.4rem 0;
    bottom: 1rem;
    display: flex;
}

.slideshow .slick-list, .slideshow .slick-track, .slideshow .slick-track div {
    height: 100%;
    position: relative;
}

.slideshow img {
    object-fit: contain;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-position: center;
}

.slideshow .portrait {
    width: 62.5vh;
    margin-left: auto;
}

@media (max-width: 768px) {
    body .slideshow {
        max-width: calc(100vw - 2rem);
    }
    body .slideshow {
        height: auto;
    }
    body .slideshow img {
        position: relative;
    }
    .slideshow img.portrait {
        width: 100% !important;
    }
}

.gallery div, article[itemprop="blogPost"] a {
    overflow: hidden;
    position: relative;
}

.project div span {
    position: absolute;
    width: 100%;
    height: auto;
    bottom: var(--inner-spacing);
    left: 0;
    opacity: 0;
    background-color: rgba(255, 255, 255, 0.65);
    backdrop-filter: blur(2px);
    transition: all 0.3s ease-out;
    display: flex;
    justify-content: center;
    align-items: start;
    font-size: 1.25rem;
    text-align: left;
    padding: var(--inner-spacing);
    flex-direction: column;
    line-height: calc(var(--spacing) / 1.75);
}

.project div:hover span {
    opacity: 1;
}

.project div span small {
    font-size: 0.75rem;
    font-weight: normal
}

.project div:hover img {
    filter: grayscale(90%);
}

@media (max-width: 768px) {
    .project div span {
        position: relative;
        opacity: 1;
        background: none;
        bottom: inherit;
    }
}

/*
.project-image {
    margin-bottom: var(--spacing);
}

.project-image .portrait {
    width: 70vh;
    margin-left: auto;
    display: block;
}

main .project-image:last-child {
    margin-bottom: 0;
}

.project-image span {
    display: block;
}

*/

.project-images {
    direction: rtl;
}

.project-image {
    grid-column: 1 / -1;
}

.project-image.portrait {
    grid-column: inherit;
}

.mobile-info {
    display: none;
}

.gallery a {
    display: block;
}

.gallery img, article[itemprop="blogPost"] img {
    transition: all 0.3s ease-out;
    margin-bottom: -8px;
}

.project-info {
    text-transform: uppercase;
}

.project-info .title {
    display: inline-block;
    width: 7.5rem;
}

.spacing {
    display: inline-block;
    width: 1rem;
}

@media (max-width: 768px) {
    .mobile-info {
        display: block;
        margin-bottom: var(--spacing);
    }
}

#about .grid {
    grid-gap: var(--spacing);
}

footer {
    margin-top: var(--inner-spacing);
    padding: 0 var(--spacing) 0.5rem var(--spacing);
    text-align: right;
    font-size: 0.75rem;
}

@media (max-width: 768px) {
    footer {
        padding: 0 var(--inner-spacing);
    }
}

footer img {
    width: auto;
}

form label {
    display: block;
    margin-top: var(--inner-spacing);
    text-transform: uppercase;
    letter-spacing: 0.3rem;
}

form label:first-of-type {
    margin-top: 0;
}

form input, form textarea, form select {
    display: block;
    width: 100%;
    padding: calc(var(--inner-spacing) / 2);
    background-color: #dddddd;
    border: none;
    color: #000;
    font-family: 'AvantGarde Regular', sans-serif;
}

form textarea {
    width: 100%;
    height: 6rem;
}

form button {
    margin-top: calc(var(--inner-spacing) * 1.5);
    width: 100%;
    border: none;
    border-top: 1px solid var(--body-colour);
    background: none;
    text-transform: uppercase;
    letter-spacing: 0.3rem;
    text-align: left;
    font-size: 1rem;
    color: var(--black);
    padding: var(--inner-spacing) 0 0 0;
    cursor: pointer;
    margin-bottom: -4px;
    text-align: right;
}

form label.required:after {
    content: '*';
    color: red;
    margin-left: 0.25rem;
}

#form-message p {
    background-color: #c9c9c9;
    display: block;
    padding: var(--inner-spacing);
    margin-bottom: var(--inner-spacing);
}

/* Template changes */


body.padding > .main {
    padding: 0 var(--spacing);
}

blockquote {
    padding: 0 calc(var(--spacing) * 0.25) 0 calc(var(--spacing) * 1.25);
    position: relative;
    margin: 0 var(--inner-spacing) var(--spacing) 0;
    text-align: justify;
}

@media (max-width: 768px) {
    blockquote {
        margin-right: var(--spacing);
    }
}

blockquote div {
    position: relative;
}

blockquote > div > p:first-child {
    margin-top: 0;
}

blockquote > p:last-child {
    margin-bottom: 0;
}

blockquote .author {
    text-transform: uppercase;
    letter-spacing: calc(var(--inner-spacing) / 4);
}

blockquote .author .location {
    font-weight: bold;
}

blockquote div:before, blockquote div:after {
    position: absolute;
    top: 0;
    left: calc(var(--spacing) * -1.25);
    content: '';
    background: url('/storage/app/media/quote.png') center center no-repeat;
    background-size: cover;
    width: var(--spacing);
    height: var(--spacing);
}

blockquote div:after {
    left: inherit;
    top: inherit;
    right: calc(var(--spacing) * -1.25);
    bottom: 0;
    transform: rotate(180deg);
}
