@charset "utf-8";
/*------------------------------------------------------------------------- FONTS 
*/
@font-face {
    font-family: 'clear-sans';
    src: url('fonts/clear-sans-thin.woff2') format('woff2');
    font-weight: 100;
    font-style: normal;
}
@font-face {
    font-family: 'clear-sans';
    src: url('fonts/clear-sans-regular.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'clear-sans';
    src: url('fonts/clear-sans-italic.woff2') format('woff2');
    font-weight: normal;
    font-style: italic;
}
@font-face {
    font-family: 'clear-sans';
    src: url('fonts/clear-sans-bold.woff2') format('woff2');
    font-weight: bold;
    font-style: normal;
}
@font-face {
    font-family: 'clear-sans';
    src: url('fonts/clear-sans-bold-italic.woff2') format('woff2');
    font-weight: bold;
    font-style: italic;
}
@font-face {
    font-family: 'domyouji';
    src: url('fonts/domyouji.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
}

/*------------------------------------------------------------------------- RESET 
*/
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
	outline: 0;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
:focus {
	outline: 0;
}
*,
*::before,
*::after {
	box-sizing: border-box;
}
.hidden {
	display: none;	
}
strong {
    font-weight: bold;
}
em {
    font-style: italic;
}
strong em,
em strong {
    font-weight: bold;
    font-style: italic;
}

@keyframes fadeInAnimation {
    0%   {  opacity: 0;  }
    100% {  opacity: 1;  }
}

/*------------------------------------------------------------------------- CORE COLOURS 
*/
:root {
	--c3Yellow: #e7e517;
    --c3BlackBlue: #060918;
    --c3DarkBlue: #072552;
    --c3Grey: #2f3235;
    --c3LightGrey: #d4d5d6;
    --c3Menu: rgba(52,46,60,0.8);

    --wfBlue: #0479d8;
    --dfBlue: #2e65ed;

    --filterYellow: invert(71%) sepia(87%) saturate(462%) hue-rotate(10deg) brightness(113%) contrast(86%);
    --filterDarkBlue: invert(8%) sepia(33%) saturate(7033%) hue-rotate(211deg) brightness(94%) contrast(95%);
}
/*------------------------------------------------------------------------- CORE STYLES
*/
html {
    height: 100%;
}
body {
    height: auto;
	font-family: 'clear-sans', sans-serif;
	margin: 0;
	color: #fff;
	font-size: 15px;
	line-height: 1.4em;
    display: flex;
    flex-flow: column;
    background: linear-gradient(180deg, #072552 50%, #031127 100%);
    background-attachment: fixed;
    overflow-x: hidden;
}
body::before {
    content: '';
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 800px;
    background: url(/images/standard-page-bg.jpg) center top no-repeat;
    mask: radial-gradient(circle at top, black 30%, transparent 70%);
    mask-size: cover;
    mask-position: center;
    mask-repeat: no-repeat;
    -webkit-mask: radial-gradient(circle at top, black 30%, transparent 70%);
    -webkit-mask-size: cover;
    -webkit-mask-position: center;
    -webkit-mask-repeat: no-repeat;
}
section {
    position: relative;
}
.container {
    max-width: 1440px;
    width: 100%;
    margin: 0 auto;
    padding: 0 40px;
    position: relative;
}
sup {
	vertical-align: super;
	font-size: 70%;
}
a {
    text-decoration: none;
}
.yellow {
    color: var(--c3Yellow);
}
.wfblue {
    color: var(--wfBlue);
}
.dfBlue {
    color: var(--dfBlue);
}
/*------------------------------------------------------------------------- ICON
*/
.icon {
    display: inline-block;
}
.icon::before {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 1;
    background: center center / 100% no-repeat;
    transition: inherit;
}
.icon-admin::before {
    background-image: url(/images/icons/admin.svg);
}
.icon-automation::before {
    background-image: url(/images/icons/automation.svg);
}
.icon-apps::before {
    background-image: url(/images/icons/apps.svg);
}
.icon-calendar::before {
    background-image: url(/images/icons/calendar.svg);
}
.icon-changes::before {
    background-image: url(/images/icons/changes.svg);
}
.icon-chat::before {
    background-image: url(/images/icons/chat.svg);
}
.icon-code::before {
    background-image: url(/images/icons/code.svg);
}
.icon-coding::before {
    background-image: url(/images/icons/coding.svg);
}
.icon-coins::before {
    background-image: url(/images/icons/coins.svg);
}
.icon-corporation::before {
    background-image: url(/images/icons/corporation.svg);
}
.icon-c-sharp::before {
    background-image: url(/images/icons/c-sharp.svg);
}
.icon-dashboard::before {
    background-image: url(/images/icons/dashboard.svg);
}
.icon-dictionary::before {
    background-image: url(/images/icons/dictionary.svg);
}
.icon-expertise::before {
    background-image: url(/images/icons/expertise.svg);
}
.icon-email::before {
    background-image: url(/images/icons/email.svg);
}
.icon-explanation::before {
    background-image: url(/images/icons/explanation.svg);
}
.icon-experience::before {
    background-image: url(/images/icons/experience.svg);
}
.icon-export::before {
    background-image: url(/images/icons/export.svg);
}
.icon-e-commerce::before {
    background-image: url(/images/icons/e-commerce.svg);
}
.icon-format::before {
    background-image: url(/images/icons/format.svg);
}
.icon-grammar::before {
    background-image: url(/images/icons/grammar.svg);
}
.icon-graph::before {
    background-image: url(/images/icons/graph.svg);
}
.icon-inconsistent::before {
    background-image: url(/images/icons/inconsistent.svg);
}
.icon-incorrect::before {
    background-image: url(/images/icons/incorrect.svg);
}
.icon-insight::before {
    background-image: url(/images/icons/insight.svg);
}
.icon-integrity::before {
    background-image: url(/images/icons/integrity.svg);
}
.icon-languages::before {
    background-image: url(/images/icons/languages.svg);
}
.icon-menu::before {
    background-image: url(/images/icons/menu.svg);
}
.icon-missing-words::before {
    background-image: url(/images/icons/missing-words.svg);
}
.icon-mobile::before {
    background-image: url(/images/icons/mobile.svg);
}
.icon-monitor::before {
    background-image: url(/images/icons/monitor.svg);
}
.icon-no-credit-card::before {
    background-image: url(/images/icons/no-credit-card.svg);
}
.icon-partnership::before {
    background-image: url(/images/icons/partnership.svg);
}
.icon-payment::before {
    background-image: url(/images/icons/payment.svg);
}
.icon-people::before {
    background-image: url(/images/icons/people.svg);
}
.icon-person::before {
    background-image: url(/images/icons/person.svg);
}
.icon-phrase::before {
    background-image: url(/images/icons/phrase.svg);
}
.icon-piggy-bank::before {
    background-image: url(/images/icons/piggy-bank.svg);
}
.icon-product::before {
    background-image: url(/images/icons/product.svg);
}
.icon-puzzle::before {
    background-image: url(/images/icons/puzzle.svg);
}
.icon-report::before {
    background-image: url(/images/icons/report.svg);
}
.icon-rocket::before {
    background-image: url(/images/icons/rocket.svg);
}
.icon-secure::before {
    background-image: url(/images/icons/secure.svg);
}
.icon-signature::before {
    background-image: url(/images/icons/signature.svg);
}
.icon-small-business::before {
    background-image: url(/images/icons/small-business.svg);
}
.icon-spanner::before {
    background-image: url(/images/icons/spanner.svg);
}
.icon-stopwatch::before {
    background-image: url(/images/icons/stopwatch.svg);
}
.icon-target::before {
    background-image: url(/images/icons/target.svg);
}
.icon-tax::before {
    background-image: url(/images/icons/tax.svg);
}
.icon-team::before {
    background-image: url(/images/icons/team.svg);
}
.icon-telephone::before {
    background-image: url(/images/icons/telephone.svg);
}
.icon-template::before {
    background-image: url(/images/icons/template.svg);
}
.icon-tick::before {
    background-image: url(/images/icons/tick.svg);
}
.icon-trophy::before {
    background-image: url(/images/icons/trophy.svg);
}
.icon-example::before {
    background-image: url(/images/icons/example.svg);
}
.icon-what-if::before {
    background-image: url(/images/icons/what-if.svg);
}
.icon-whatsapp::before {
    background-image: url(/images/icons/whatsapp.svg);
}

/*------------------------------------------------------------------------- LOGOS
*/
.logo-rect {
    display: block;
    background: url(/images/c3-software-logo-wide-RGB.svg) center center / 100% no-repeat;
    aspect-ratio: 3.42;
    font-size: 0;
}
.logo-square {
    display: block;
    background: url(/images/c3-software-logo-square-RGB.svg) center center / 100% no-repeat;
    aspect-ratio: 1.15;
    font-size: 0;
}
.software-logo {
    background: left center / 100% no-repeat;
    background-size: contain;
    font-size: 0;
}
.software-logo.waiverform {
    background-image: url(/images/waiverform/waiverform-logo-blue.svg);
}
.software-logo.wssc {
    background-image: url(/images/website-spellchecker-header-logo.svg);
}
.software-logo.dailyforecast {
    background-image: url(/images/dailyforecast-logo-dark-horizontal.svg);
}

/*------------------------------------------------------------------------- MAIN NAVIGATION
*/
nav {
    position: sticky;
    top: 0;
    width: 100%;
    height: 50px;
    flex: 0 0 50px;
    z-index: 99;
    transition: background 0.3s linear;
}
nav.fixed {
    background-color: rgba(0,0,0,0.7);
}
nav .container {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    justify-content: space-between;
    height: 100%;
}
nav .logo-rect {
    width: 120px;
}
.main-navigation {
    position: relative;
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    gap: 10px;
    height: 100%;
    font-family: 'domyouji';
    margin: 0;
    list-style-type: none;
}
.main-navigation > li {
    position: relative;
    height: 100%;
}
.main-navigation > li.dropdown::after {
    content: '';
    display: block;
    width: 16px;
    height: 16px;
    position: absolute;
    left: 0;
    right: 0;
    margin: 0 auto;
    bottom: 4px;
    background: url(/images/icons/arrow-down.svg) center center / 100% no-repeat;
    filter: invert(1);
    transition: all 0.25s ease;
}
.main-navigation > li.dropdown.open::after {
    color: var(--c3Yellow);
    filter: var(--filterYellow);
    bottom: 2px;
}
.main-navigation > li > a {
    font-size: 12px;
    text-transform: uppercase;
    display: flex;
    height: 100%;
    flex-direction: column;
    justify-content: center;
    color: #fff;
    transition: color 0.25s ease, background 0.25s ease;
}
.main-navigation > li.dropdown.open > a,
.main-navigation > li > a:hover {
    color: var(--c3Yellow);
    text-decoration: none;
}

@media (min-width: 768px) {
    .main-navigation .chat-bubble {
        aspect-ratio: 3.07;
        color: var(--c3BlackBlue);
        font-family: 'clear-sans';
        text-transform: none;
        font-weight: bold;
        transform: translateY(5px);
        padding: 6px 5px 0;
        white-space: nowrap;
        font-size: 14px;
        display: block;
        text-align: center;
        height: 90%;
    }
    .main-navigation .chat-bubble::before {
        content: '';
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: url(/images/chat-bubble.svg) center center / 100% no-repeat;
        z-index: -1;
    }
    .main-navigation .chat-bubble:hover {
        color: var(--c3BlackBlue);
    }
    .main-navigation .chat-bubble:hover::before {
        filter: brightness(0) saturate(100%) invert(1); 
    }
}
/*------------------------------------------------------------------------- ACTIVE PAGES
*/
body.services .main-navigation .menu-services a,
body.articles .main-navigation .menu-articles a,
body.about .main-navigation .menu-about a,
body.services .main-navigation .menu-services a,
body.products .main-navigation .menu-products a {
    color: var(--c3LightGrey);
}

/*------------------------------------------------------------------------- SUB-MENUS
*/
.main-navigation .dropdown-menu {
    display: block;
    position: absolute;
    left: 0;
    top: 100%;
    min-width: 160px;
    background-color: var(--c3Menu);
    max-height: 0;
    overflow: hidden;
    transition: all 1s linear;
    margin: 0;
}
.main-navigation .dropdown-menu > li {
    padding: 5px 10px 0;
}
.main-navigation .dropdown-menu > li a {
    display: block;
    color: var(--c3LightGrey);
    font-size: 14px;
    white-space: nowrap;
    padding: 5px;
    transition: all 0.25s ease;
}
.main-navigation .dropdown-menu > li a:hover {
    color: #fff;
    background-color: rgba(255,255,255,0.2);
    text-decoration: none;
}
.main-navigation .dropdown-menu > li:last-of-type {
    margin-bottom: 10px;
}
.main-navigation .dropdown.open .dropdown-menu {
    max-height: 800px;
}

/*------------------------------------------------------------------------- MENU BUTTON
*/
.menu-button {
    display: none;
    flex-flow: row nowrap;
    align-items: center;
    gap: 10px;
    text-transform: lowercase;
    color: #fff;
    transition: all 0.25s ease;
}
.menu-button .icon {
    border-radius: 50%;
    border: 2px solid #fff;
    width: 30px;
    height: 30px;   
    transition: inherit;
}
.menu-button .icon::before {
    filter: invert(1);
    background-size: 50%;
}
nav.open .menu-button .icon::before {
    background-image: url(/images/icons/close.svg);
    background-size: 40%;
    filter: invert(1) brightness(80%);
}
nav.open .menu-button .icon {
    border-color: #ccc;
}
.menu-button:hover {
    color: var(--c3Yellow);
    text-decoration: none;
}
.menu-button:hover .icon {
    border-color: var(--c3Yellow) !important;
}
.menu-button:hover .icon::before {
    filter: var(--filterYellow);
}

@media (max-width: 320px)
{
    .menu-button {
        font-size: 0;
    }
}

/*------------------------------------------------------------------------- MOBILE NAVIGATION
*/
@media (max-width: 767px)
{
    .menu-button {
        display: flex;
    }
    .main-navigation {
        flex-direction: column;
        background-color: var(--c3Menu);
        border: 1px solid rgba(255,255,255,0.2);
        border-top: 0;
        position: absolute;
        top: 50px;
        right: 40px;
        width: calc(100% - 80px);
        max-width: 300px;
        height: auto;
        backdrop-filter: blur(5px);
        -webkit-backdrop-filter: blur(5px);
        box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s linear;
    }
    nav.open .main-navigation {
        max-height: 800px;
        overflow: unset;
    }
    .main-navigation li {
        width: 100%;
        padding: 5px 10px 0;
    }
    .main-navigation li:first-of-type {
        padding-top: 10px;
    }
    .main-navigation li:last-of-type {
        padding-bottom: 10px;
    }
    .main-navigation a {
        text-align: left;
        padding: 5px;
    }
    .main-navigation a:hover {
        background-color: rgba(255,255,255,0.2);
    }
    .main-navigation > li.dropdown::after {
        left: auto;
        right: 20px;
        bottom: calc(100% - 25px);
    }
    .main-navigation > li.dropdown.open::after {
         bottom: calc(100% - 28px);
    }
    .main-navigation .dropdown-menu {
        position: relative;
        top: auto;
        background: transparent;
    }
}

/*------------------------------------------------------------------------- PAGE BODY
*/
main {
    flex: 1;
    animation: fadeInAnimation ease 1s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}

/*------------------------------------------------------------------------- BREADCRUMBS
*/
.breadcrumbs {
    margin: 30px 0 0;
    position: relative;
    z-index: 2;
}
.crumbs {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    margin: 0;
}
.crumbs li {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    padding: 0;
}
.crumbs li:not(:first-of-type)::before {
    content: '';
    display: block;
    width: 10px;
    height: 10px;
    background: url(/images/icons/arrow-right.svg) center center / 100% no-repeat;
    filter: var(--filterYellow);
    margin: 0 5px;
}
.crumbs li a {
    font-family: 'domyouji';
    text-transform: uppercase;
    color: #ccc;
    font-size: 11px;
    transition: color 0.25s ease;
}
.crumbs li a:hover {
    color: #fff;
}
.crumbs li.active a {
    font-weight: bold;
    color: var(--c3Yellow);
}

/*------------------------------------------------------------------------- SECTION: STANDARD LAYOUT
*/
.standard-layout {
    padding: 40px 0;
}
.standard-layout .row {
    display: flex;
}
.standard-layout .row > .column {
    flex: 1 1 50%;
    position: relative;
}
@media (max-width: 767px)
{
    .standard-layout .row {
        flex-direction: column;
    }
}
/*------------------------------------------------------------------------- SECTION: RIGHT THIRD LAYOUT
*/
.right-third-layout {
    padding: 40px 0;
}
.right-third-layout .row {
    display: flex;
}
.right-third-layout .row > .column:first-of-type {
    flex: 1 0 67%;
    position: relative;
}
.right-third-layout .row > .column:last-of-type {
    flex: 0 1 33;
    position: relative;
}
@media (max-width: 767px)
{
    .right-third-layout .row {
        flex-direction: column;
    }
}
/*------------------------------------------------------------------------- SECTION: RIGHT QAURTER LAYOUT
*/
.right-quarter-layout {
    padding: 40px 0;
}
.right-quarter-layout .row {
    display: flex;
}
.right-quarter-layout .row > .column:first-of-type {
    flex: 1 0 75%;
    position: relative;
}
.right-quarter-layout .row > .column:last-of-type {
    flex: 0 1 25%;
    position: relative;
}
@media (max-width: 767px)
{
    .right-quarter-layout .row {
        flex-direction: column;
    }
}

/*------------------------------------------------------------------------- GLOBAL TEXT STYLING (HEADINGS)
*/
.sub-header {
    font-size: 12px;
    color: var(--c3Yellow);
    font-family: 'domyouji';
    text-transform: uppercase;
    margin: 0 0 10px;
}
.page-heading {
    font-size: 32px;
    font-weight: bold;
    letter-spacing: -1px;
    line-height: 1.0em;
    margin: 0 0 20px;
}
h3 {
    font-size: 20px;
    font-family: 'domyouji';
    text-transform: uppercase;
    margin: 40px 0 20px;
}
h6 {
    font-family: 'domyouji';
    color: #ccc;
    text-transform: uppercase;
    margin: 30px 0 10px;
}

/*------------------------------------------------------------------------- GLOBAL TEXT STYLING (PARAGRAPHS)
*/
p {
    margin: 0 0 10px;
}

/*------------------------------------------------------------------------- GLOBAL TEXT STYLING (LISTS)
*/
ol {
    margin: 0 0 20px 30px;
    list-style-type: decimal;
    line-height: 1.4em;
}
ul {
    margin: 0 0 20px 30px;
    list-style-type: square;
    line-height: 1.4em;
}
ol.alpha {
    list-style-type: lower-alpha;
}
ol.alpha li::marker {
    font-style: italic;
}
ul li,
ol li {
    position: relative;
    margin: 0 0 5px;
    padding-left: 10px;
    line-height: 1.4em;
}
ul li::marker,
ol li::marker {
    font-weight: bold;
    color: var(--c3Yellow);
}
ul li ul,
ol li ol {
    margin-left: 15px;
}
ul.check-list {
    list-style-type: none;
    margin: 0 0 10px 30px;
}
ul.check-list li::before {
    content: '';
    width: 16px;
    height: 16px;
    background:  var(--c3Yellow) url(/images/icons/tick.svg) center center / 70% no-repeat;
    border-radius: 50%;
    display: block;
    position: absolute;
    left: -25px;
    top: 2px;
}
ul.check-list h5 {
    font-family: 'domyouji';
    color: #ccc;
    text-transform: uppercase;
}
ul.icon-list {
    display: flex;
    flex-flow: row wrap;
    list-style-type: none;
    margin: 40px 0 20px;
    gap: 20px;
}
ul.icon-list li {
    display: flex;
    gap: 20px;
    padding: 0;
    flex: 1 1 40%;
    min-width: 220px;
    margin: 0;
}
ul.icon-list.full-width-items li {
    flex: 1 0 100%;
    align-items: center;
}

ul.icon-list li h4 {
    font-weight: bold;
    letter-spacing: -1px;
    font-size: 20px;
    margin: 0 0 10px;
}
ul.icon-list .icon {
    flex: 0 0 50px;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    border: 2px solid var(--wfBlue);
}
ul.icon-list li .icon::before {
    background-size: 50%;
}
ul.icon-list.small,
ul.icon-list.small li {
    gap: 10px;
}
ul.icon-list.small .icon {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
}

/*------------------------------------------------------------------------- GLOBAL TEXT STYLING (LINKS)
*/
a {
    color: var(--c3Yellow);
    font-weight: bold;
    transition: all 0.25s ease;
}
a:hover {
    color: #fff;
    text-decoration: underline 1px dotted;
    text-underline-offset: 5px;
}

/*------------------------------------------------------------------------- GLOBAL TEXT STYLING (TABLES)
*/
table {
    border-collapse: collapse;
    margin: 20px 0 40px;
}
table th {
    border: 1px solid rgba(255,255,255,0.3);
    background-color: rgba(255,255,255,0.3);
    text-align: left;
    padding: 15px;
    font-weight: bold;
}
table td {
    border: 1px solid rgba(255,255,255,0.3);
    padding: 10px;
    align-content: center;
}
table tr:nth-child(odd) {
    background-color: rgba(255,255,255,0.1);
}

@media (max-width: 640px)
{
    table, 
    table tbody, 
    table td, 
    table tr {
	    display: block;
    }
    table thead, 
    table th {
        display: none;
    }

    table tr:nth-child(2n+1) {
        background-color: rgba(255,255,255,0.1);
    }
}

/*------------------------------------------------------------------------- BODY IMAGES
*/
.image-wrapper {
    margin: 0;
}
.image-wrapper img {
    display: block;
    margin: 0;
    width: 100%;
}
.image-wrapper img.reflected {
    -webkit-box-reflect: below 2px linear-gradient(180deg, rgba(0,0,0,0.0) 75%, rgba(0,0,0,0.4) 100%);
}

/*------------------------------------------------------------------------- LIGHT BACKGROUND AREAS
*/
.dark-text,
.dark-text .sub-header {
    color: var(--c3BlackBlue);
}
.dark-text ul.icon-list .icon {
    border-color: var(--c3BlackBlue);
}
.dark-text ul.icon-list.inverted li .icon {
    background-color: var(--c3BlackBlue);
    border: 0;
}
.dark-text ul.icon-list.inverted li .icon::before {
    filter: var(--filterYellow);
}

/*------------------------------------------------------------------------- CORE ELEMENT - BUTTON
*/
.button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 160px;
    height: 40px;
    background-color: transparent;
    border: 1px solid rgba(255,255,255,.6);
    border-radius: 20px;
    text-transform: uppercase;
    text-decoration: none;
    color: rgba(255,255,255,.6);
    font-family: 'domyouji';
    font-size: 12px;
    text-align: center;
    padding: 8px 24px;
    transition: all 0.25s ease;
    background: rgba(255, 255, 255, 0.05);
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}
.button:hover {
    color: var(--c3Yellow);
    border-color: rgba(255,255,255,.8);
    background-color: rgba(0,0,0,0.05);
    text-decoration: none !important;
    animation-name: hvr-pop;
    animation-duration: 0.5s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: 1;
}

/*------------------------------------------------------------------------- STANDARD HEADER BLOCK
*/
section.header-block .logo-rect {
    max-width: 150px;
    margin: 0 0 30px;
}
section.header-block h2 {
    font-size: 40px;
}
section.header-block p.intro {
    width: 100%;
    max-width: 320px;
}
@media (min-width: 768px) {
    body.products::before {
        background-image: url(/images/software-products-bg.jpg);
    }
}

/*------------------------------------------------------------------------- CATEGORY INDEX PAGE
*/
.index.header {
    margin: 0 0 40px;
}
.index.header .container {
    display: flex;
}
.category-intro {
    width: 50%;
    margin: 0 0 0 auto;
    display: flex;
    flex-flow: column nowrap;
    justify-content: center;
    min-height: 320px;
    transition: all 0.3s linear;
}
.category-intro .logo-rect {
    max-width: 150px;
    margin: 0 0 30px;
}
.category-intro .page-heading {
    font-family: 'domyouji';
    font-size: 48px;
    margin: 0 0 30px;
    line-height: 1em;
}
.category-intro p {
    line-height: 1.4em;
    margin: 0 0 15px;
    font-size: 16px;
}
.category-intro a {
    color: var(--c3Yellow);
    transition: all 0.25s ease;
}
.category-intro a:hover {
    color: #fff;
    text-decoration: underline dotted rgba(255,255,255,0.8);
    text-underline-offset: 2px;
}

@media (max-width: 767px)
{
    .category-intro {
        margin: 0;
        width: 100%;
        max-width: 480px;
    }
}

/*------------------------------------------------------------------------- INDEX SNIPPETS
*/
.snippets {
    padding: 40px 0;
}
.snippets .container {
    display: flex;
    flex-flow: row wrap;
    align-items: stretch;
    justify-content: center;
    gap: 20px;
}
.snippet {
    width: 100%;
    max-width: 280px;
    min-width: 200px;
    display: flex;
    flex-flow: column nowrap;
    align-items: center;
    padding: 10px;
    flex: 1;
}
.snippet .snippet-image-wrapper {
    height: 180px;
    background: transparent;
    width: 100%;
    margin: 0 0 40px;
    -webkit-box-reflect: below 2px linear-gradient(180deg, rgba(0,0,0,0.0) 50%, rgba(0,0,0,0.4) 100%);
}
.snippet .snippet-image-wrapper img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: all 0.25s ease;
}
.snippet .snippet-image-wrapper a:hover img {
    opacity: 0.6;
}
.snippet-text-wrapper {
    position: relative;
    padding: 0 20px;
}
.snippet h4 {
    font-family: 'domyouji';
    font-size: 18px;
    color: var(--c3Yellow);
    margin: 0 0 20px;
    text-align: center;
}
.snippet p {
    text-align: center;
    margin: 0 0 20px;
}
.snippet .button {
    margin: auto auto 0 auto;
    border-radius: 20px;
}
.snippet .software-logo {
    width: 100%;
    height: 40px;
    margin: 0 0 20px;
}

/*------------------------------------------------------------------------- PRODUCT PAGES
*/
.product-banner {
    height: 600px;
    background: radial-gradient(ellipse,rgba(255, 255, 255, 0.1) 0%, var(--c3BlackBlue) 50%);
    padding: 40px 0;
    position: relative;
    margin: -50px 0 0;
    transition: height 0.3s linear;
    z-index: 2;
}
.product-banner::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.6) 50%, rgba(255,255,255,0) 100%);
}
.product-banner::after {
    content: '';
    display: block;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: 40px;
    background: linear-gradient(0deg,rgba(0,0,0,0) 0%, rgba(0,0,0,1) 100%);
    opacity: 0.6;
    filter: blur(2px);
    mask: linear-gradient(to right, transparent 0%, black 50%, transparent 100%);
    mask-size: cover;
    mask-position: center;
    mask-repeat: no-repeat;
    -webkit-mask: linear-gradient(to right, transparent 0%, black 50%, transparent 100%);
    -webkit-mask-size: cover;
    -webkit-mask-position: center;
    -webkit-mask-repeat: no-repeat;
}
.product-banner .container {
    height: 100%;
    display: flex;
    align-items: flex-start;
    flex-direction: column;
}
.product-banner .container::before {
    content: '';
    width: 100%;
    height: 80px;
    background: radial-gradient(ellipse,rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0) 50%);
    clip-path: polygon(0 50%, 100% 50%, 100% 100%, 0% 100%);
    position: absolute;
    top: -20px;
}
.product-banner .text-block {
    padding: 20px;
    border-radius: 10px;
    width: 100%;
    max-width: 360px;
    margin: 20px 0 0 -20px;
    z-index: 2;
    position: relative;
}
.product-banner .text-block::before {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    border-radius: 20px;
    backdrop-filter: blur(25px);
    -webkit-backdrop-filter: blur(25px);
    mask-image: 
            linear-gradient(180deg,transparent 0%,black 10%,black 80%,transparent 100%),
            linear-gradient(90deg,transparent 0%,black 30%,black 80%,transparent 100%);
            mask-composite: intersect;
     -webkit-mask-image:
            linear-gradient(180deg,transparent 0%,black 10%,black 80%,transparent 100%),
            linear-gradient(90deg,transparent 0%,black 30%,black 90%,transparent 100%);
            -webkit-mask-composite: destination-in;
    z-index: -1;
}

section.product-banner h2 {
    font-size: 40px;
    line-height: 1.1em;
    font-weight: bold;
    margin: 0 0 20px;
}
p.intro {
    font-size: 18px;
}
.product-banner .software-logo {
    width: 100%;
    max-width: 320px;
    height: 60px;
    margin-top: 40px;
}
.product-banner .breadcrumbs {
    margin: auto 0 0 0;
}

@media (max-width: 1080px) {
    section.product-banner .container {
        background-size: 90%;
    }
}
@media (max-width: 767px) {
    .product-banner {
        height: 480px;
        background-size: 640px auto;
    }
    section.product-banner h2 {
        font-size: 28px;
    }
    section.product-banner .intro {
        font-size: 14px;
    }
}
@media (max-width: 480px) {
    .product-banner .text-block {
        max-width: 100%;
    }
}

/*------------------------------------------------------------------------- FOOTER
*/
footer {
    position: relative;
    text-align: center;
    font-size: 14px;
    padding: 40px;
    color: #fff;
}
footer::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 40px;
    background: linear-gradient(0deg,rgba(0,0,0,0) 0%, rgba(0,0,0,1) 100%);
    opacity: 0.3;
    filter: blur(2px);
    mask: linear-gradient(to right, transparent 0%, black 50%, transparent 100%);
    mask-size: cover;
    mask-position: center;
    mask-repeat: no-repeat;
    -webkit-mask: linear-gradient(to right, transparent 0%, black 50%, transparent 100%);
    -webkit-mask-size: cover;
    -webkit-mask-position: center;
    -webkit-mask-repeat: no-repeat;
}
footer .row {
    margin: 0 auto 20px;
}
footer p {
    margin: 0 auto 5px;
}
footer p.copyright {
    margin-bottom: 20px;
}
footer .logo-square {
    width: 60px;
    margin: 0 auto 20px;
}
.partner-links,
.footer-links {
     display: flex;
     flex-flow: row nowrap;
     justify-content: center;
     font-size: 13px;
     list-style-type: none;
}
.footer-links li {
     display: flex;
     flex-flow: row nowrap;
     align-items: center;
     margin-top: 20px;
     padding-left: 0;
}
.footer-links li:not(:first-of-type)::before {
    content: '';
    display: block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    margin: 0 10px;
    background-color: var(--c3Yellow);
}
footer a {
    color: #fff;
    transition: color 0.25s ease;
}
footer a:hover {
    color: var(--c3Yellow);
    text-decoration: none;
}
.partner-links {
    gap: 20px;
    position: relative;
    padding: 20px;
}
.partner-links li {
    padding: 0;
}
.partner-links .partner {
    display: block;
    background: center center / 100% no-repeat;
    font-size: 0;
    padding: 20px 0;
}
.partner-links::before,
.partner-links::after {
    content: '';
    display: block;
    width: 100%;
    max-width: 400px;
    height: 1px;
    background: linear-gradient(90deg,rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0) 100%);
    position: absolute;
}
.partner-links::before {
    top: 0;
}
.partner-links::after {
    bottom: 0;
}
.partner.microsoft {
    width: 94px;
    height: 35px;
    background-image: url(/images/microsoft-partner-stacked.svg);
}
.partner.fasthosts {
    width: 116px;
    height: 38px;
    background-image: url(/images/fh-technology-partner-a32127.svg);
}

@media (max-width: 520px)
{
    .partner-links,
    .footer-links {
        flex-direction: column;
        align-items: center;
    }
    .footer-links li {
        margin: 0 auto 10px;
    }
    .footer-links li:not(:first-of-type)::before {
        display: none;
    }
}

/*------------------------------------------------------------------------- MODALS
*/
#modal-wrapper {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background-color: rgba(6,9,24,0.75);
	z-index: 99;
	opacity: 0;
	transition: all 0.5s ease;
	pointer-events: none;
    backdrop-filter: blur(25px);
    -webkit-backdrop-filter: blur(25px);
}
#modal-wrapper:has(div.active) {
	opacity: 1;
	pointer-events: auto;
}
#modal {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-flow: column;
	width: 100%;
	height: calc(90%);
	max-width: 1920px;
	padding: 40px;
	margin: auto auto 0 auto;
}
#modal .image-wrapper {
	width: 100%;
	overflow: hidden;
}
#modal .image-wrapper img {
	display: block;
	width: auto;
	height: auto;
	object-fit: contain;
    max-width: 100%;
    margin: 0 auto;
	box-shadow: 0 0 20px 0 rgba(0,0,0,0.7);
}
#modal .image-caption {
	position: relative;
	display: block;
	width: 100%;
	color: var(--c3Yellow);
	font-size: 16px;
    font-weight: bold;
	padding: 20px 0;
    text-align: center;
}

/*------------------------------------------------------------------------- HOVER ANIMATION: Pop
*/
@keyframes hvr-pop {
  50% {
    transform: scale(1.1);
  }
}
.hvr-pop {
  display: inline-block;
  vertical-align: middle;
  transform: perspective(1px) translateZ(0);
}
.hvr-pop:hover, .hvr-pop:focus, .hvr-pop:active {
  animation-name: hvr-pop;
  animation-duration: 0.5s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: 1;
}

body.articles .snippet .date {
    display: none;
}
/* Keeps useful document structure available to assistive technology without
   changing layouts whose primary headings are represented by banner artwork. */
.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
