/**
 * Theme name: TLD
 * Author: Talbot
 * Author Uri: https://talbot.cx/
 **/


/** reset **/

* {
    border-radius: 0;

    border: 0;
    margin: 0;
    padding: 0;

    resize: none;
    outline: none;

    background: transparent;
}

*,
*::after,
*::before {
    box-sizing: border-box;
}

p {
    text-wrap: pretty;
}

a {
    text-decoration: none;
}

button {
    cursor: pointer
}

ul, ol, li {
    list-style: none;
}

h1, h2, h3, h4, h5, h6 {
    text-wrap: balance;
}

h1, h2, h3, h4, h5, h6, p {
    overflow-wrap: break-word;
}

button, input, select, textarea {
    -webkit-appearance: none;
            appearance: none;

    font: inherit;
}

img, svg, video, canvas, iframe, picture {
    height: auto;
    display: block;
    max-width: 100%;
    max-height: 100%;
}

body {
    overflow-x: hidden;
    padding-top: 8.0rem;
}

body, html {
    color: black;

    font-size: 10px;
    line-height: 1.2;

    -webkit-font-smoothing: antialiased;
            font-smoothing: antialiased;

    background: #F4F4F4;
}


@media (max-width: 1430px) {
    body, html {
        font-size: 8px;
    }
}


/** btns **/

.btn {
    transition: transform 0.2s ease-out;

    padding: 1.6rem 2.4rem;
    border-radius: 0.8rem;

    background: #011028;
}

.btn:not(.flex) { display: inline-block }

.btn svg {
    top: -0.1rem;
    width: 1.2rem;
    margin: 0 0 0 2.6rem;
    position: relative;
    transition: transform 0.2s ease-out;
}

.btn.transparent {
    background: transparent;

    padding-left: 0;
    padding-right: 0;

    transition: font-weight 0.2s ease-out;
}

.btn.with-circle {
    padding: 0;
}

.btn.with-circle .circle {
    width: 4.8rem;
    height: 4.8rem;
    margin: 0 0 0 1.1rem;
    background: #93D1FF;
    border-radius: 50%;
}

.btn.with-circle .circle svg { margin: 0 }
.btn.with-circle .circle svg path { fill: #ffffff }


@media (any-hover: hover) {
    .btn:hover {
        transform: scale(1.05);
    }

    .btn:hover svg {
        transform: translateX(0.5rem) rotate(45deg);
    }

    .btn.transparent:hover {
        transform: none;
        font-weight: 700;
    }

    .btn.with-circle:hover svg {
        transform: rotate(45deg);
    }
}


/** texts **/

.text {
    color: #2A2A2A;
    color: #011028;

    font-size: 1.8rem;
    font-weight: 400;
    font-family: Manrope, sans-serif;

    line-height: 152%;
}

.text.btn {
    font-size: 1.6rem;
    line-height: 100%;
    font-family: Sora, sans-serif;
}

.text.lead {
    font-size: 4.8rem;
    line-height: 128%;
    font-family: Sora, sans-serif;
}

.text.lead.small { font-size: 4.0rem }

.text.label {
    font-size: 1.4rem;
    line-height: 100%;
    font-family: Sora, sans-serif;
}

.text.label.small { font-size: 1.2rem }

.text.title {
    font-size: 2.6rem;
    line-height: 132%;
    font-family: Sora, sans-serif;
}

.text.title.small { font-size: 2.0rem }
.text.title.large { font-size: 3.2rem }

.text.gray       { color: #707070 }
.text.blue       { color: #0F6FCE }
.text.white      { color: #F0F6FF }
.text.black      { color: #000000 }
.text.blue-dark  { color: #0A5299 }
.text.blue-light { color: #2CA5FF }

.text.lower { text-transform: lowercase }
.text.upper { text-transform: uppercase }

.text.editor.small { font-size: 1.6rem }

.text.editor b,
.text.editor strong {
    font-weight: 700;
}

.text.editor ul,
.text.editor ol {
    margin-left: 2rem;
}

.text.editor ul,
.text.editor ol,
.text.editor li {
    list-style: disc;
}

.text.editor p:not(:last-child),
.text.editor ul:not(:last-child),
.text.editor ol:not(:last-child) {
    margin-bottom: 1em;
}

.text.editor iframe {
	height: revert-layer;
}

.text.blue-dot::after {
    color: #2CA5FF;
    content: '.';
    display: inline;
    font-weight: 700;
}

/*.text.lead.blue-dot::after {
    margin: 0;
}*/

.text.no-balanced-text-wrap {
    text-wrap: auto;
}


@media (any-hover: hover) {

}

@media (max-width: 800px) {
    .text {
        font-size: 1.7rem;
    }

    .text.btn {
        font-size: 1.5rem;
    }

    .text.lead {
        font-size: 3.0rem;
    }

    .text.lead.small { font-size: 2.6rem }

    .text.label {
        font-size: 1.4rem;
    }

    .text.label.small { font-size: 1.2rem }

    .text.title {
        font-size: 2.2rem;
    }

    .text.title.small { font-size: 1.8rem }
    .text.title.large { font-size: 2.8rem }
    .text.editor.small { font-size: 1.5rem }
}


/** wcag **/

.for-display { speak: none }
.for-sreader, .screen-reader-text {
    width: 0;
    height: 0;

    display: block;
    overflow: hidden;

    font-size: 14px;
}


/** flexbox **/

.flex        { display: flex        }
.flex.inline { display: inline-flex }

.flex.wrap   { flex-wrap: wrap        }
.flex.column { flex-direction: column }

.flex.al-end    { align-items: flex-end   }
.flex.al-start  { align-items: flex-start }
.flex.al-center { align-items: center     }

.flex.jf-end     { justify-content: flex-end      }
.flex.jf-start   { justify-content: flex-start    }
.flex.jf-center  { justify-content: center        }
.flex.jf-around  { justify-content: space-around  }
.flex.jf-between { justify-content: space-between }

.flex > * {
    flex-grow: 0;
    flex-shrink: 0;
}

.flex > .grow   { flex-grow: 1   }
.flex > .shrink { flex-shrink: 1 }

@media (max-width: 800px) {
    .flex.wrap-mobile {
        flex-wrap: wrap;
    }
}


/** containers **/

:root {
    --wrapper: 1260px;
    --wrapper-offset: calc((100% - 1260px) / 2);
}

.wrapper {
    width: calc(100% - 40px);

    margin-left: auto;
    margin-right: auto;

    max-width: var(--wrapper);
}

@media (max-width: 1430px) {
    :root {
        --wrapper: 940px;
        --wrapper-offset: calc((100% - 940px) / 2);
    }
}



/** object position **/

.cover,
.contain {
    object-fit: cover;
    object-position: center;
}

.contain { object-fit: contain }

.cover.left,  .contain.left  { object-position: left center  }
.cover.right, .contain.right { object-position: right center }

.cover.top,       .contain.top       { object-position: center top }
.cover.top.left,  .contain.top.left  { object-position: left top   }
.cover.top.right, .contain.top.right { object-position: right top  }

.cover.bottom,       .contain.bottom       { object-position: center bottom }
.cover.bottom.left,  .contain.bottom.left  { object-position: left bottom   }
.cover.bottom.right, .contain.bottom.right { object-position: right bottom  }


/** splide arrows and pagination **/

.splide {
    position: relative;
}

.splide__arrows {
    z-index: 3;

    top: 50%;
    left: 50%;
    width: calc(100vw - 30px);
    height: 0%;
    max-width: 1580px;

    overflow: visible;
    position: absolute;
    transform: translate(-50%,-50%);

    display: flex;
    align-items: center;
    justify-content: space-between;
}

.splide__arrows .splide__arrow {
    width: auto;
    height: 12.0rem;
    margin: -6.0rem 0 0;
}

.splide__pagination {
    margin: 3.0rem 0 0;
}

.splide__pagination .splide__pagination__page {
    width: 0.8rem;
    height: 0.8rem;
    margin: 0 0.6rem;

    transition: width 0.2s ease-out,
                background 0.2s ease-out;

    background: #93D1FF;
}

.splide__pagination .splide__pagination__page.is-active {
    width: 4.8rem;
    background: #0A5299;
}


@media (max-width: 1080px) {
    .splide__arrows {
        display: none;
    }
}


/** checkbox **/

.checkbox {
    width: 100%;
    margin: 1rem 0 0;
}

.checkbox a {
    color: #0F6FCE;
    text-decoration: underline;
}

.checkbox input {
    width: 3.0rem !important;
    height: 3.0rem !important;
    margin: 0 1rem 0 0 !important;
    padding: 0 !important;
    border-radius: 0.6rem !important;
    border: #676969 solid 1px;
}

.checkbox input:checked {
    background: #011028 !important;
}


/** form validations **/

.error-message {
    color: #990000;
}

.error-message.success {
    color: #0f6fce;
    margin: 2rem 0 0;
    font-weight: 600;
}
