/**
Theme Name: Astra Child
Author: Kevin Bourke
Author URI: https://create.ie/
Description: A child theme for use with Astra parent theme. Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. 
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/
:root {
    --global-color-primary: #0F1428;
    --global-color-secondary: #03A9F4;
    --global-color-text: #0F1428;
    --global-color-accent: #14DC8C;
    --global-color-offwhite: #F7f7fa;
    --global-color-lighter-primary: #122338;
    --logo-top-desktop: 24px;
    --logo-top-mobile: 18px;
}

/* HEADER floating */
/* @media (min-width: 1025px) { */
    header.elementor.elementor-121.elementor-location-header {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 999;
    }
    /* Content padding to replace header height;
    Use class 'no-head-space' on page body class, available from default WP block editor page */
    body:not(.home, .no-head-space) #content.site-content {
        padding-top: 90px;
    }
/* } */
/* MENU */
.elementor-nav-menu--main li.menu-item.current_page_item {
    border: 0;
    border-radius: 50px;
    background-color: rgb(255 255 255 / 100%);
    box-shadow: 0 4px 10px rgba(69,69,61,.05);
}
.elementor-nav-menu--main li.menu-item.current_page_item a {
    color: var(--global-color-secondary);
}
.elementor-nav-menu--main li.menu-item.current_page_item a:hover {
    color: var(--global-color-06);
}
/* Elementor spacing of first and last item */
.elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:first-child > a {
    margin-left: var(--e-nav-menu-horizontal-menu-item-margin); /* variable is elementor nav spacing; divides spacing by 2 */
}
/* To be used with DT type elementor header with 2 buttons.
For example, the links in the menu should use following classes:
Blue button: btn blue hide-desktop hide-xl hide-xxl
Green button: btn green hide-desktop hide-xl hide-xxl
/* MENU BUTTONS */
/* uncomment to use
 */
.menu-item.btn a {
    margin-left: 0 !important;
}
.btn a.menu-link {
    display: inline-block!important;
    font-family: "Instrument Sans", Sans-serif;
    font-size: 16px;
    font-weight: 400;
    font-style: normal;
    text-decoration: none;
    text-align: center;
    transition: all .3s;
    line-height: 1em;
    letter-spacing: 0px;
    word-spacing: 0em;
    /* box-shadow: 1px 2px 5px 0px rgba(0, 0, 0, 0.2); */
    border-style: solid;
    border-width: 1px 1px 1px 1px;
    border-color: black;
    border-radius: 100px 100px 100px 100px;
    padding: 10px 20px 10px 20px!important;
}
.btn.w-icon a.menu-link {
    padding: 10px 35px 10px 20px!important;
}
.btn.w-icon a.menu-link::after {
    content: " ";
    background-color: transparent!important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14.79 14.24'%3E%3Cpath d='M.5,7.12h13.79M14.29,7.12l-6.62,6.62M14.29,7.12L7.67.5' fill='none' stroke='%230F1428' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
    display: inline-block;
    font-size: 80%;
    width: 20px;
    height: 20px;
    margin-left: 5px;
    opacity: 1!important;
    margin-top: -1px;
    transform: rotate(0);
    transform-origin: 30%;
    transition: transform .3s;
}
.btn.w-icon a.menu-link:hover::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14.79 14.24'%3E%3Cpath d='M.5,7.12h13.79M14.29,7.12l-6.62,6.62M14.29,7.12L7.67.5' fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
    transform: rotate(-45deg);
}
/* G form buttons . Cannot use ::pseudo elements on inout because it is a 'replaced element' */
.steps-radio input.gform_next_button.button,
.steps-radio input.gform_button.button {
    border-radius: 50px !important;
    background-color: var(--global-color-lighter-primary) !important;
    padding: 10px 35px 10px 20px!important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14.79 14.24'%3E%3Cpath d='M.5,7.12h13.79M14.29,7.12l-6.62,6.62M14.29,7.12L7.67.5' fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
    background-repeat: no-repeat;
    background-position: calc(100% - 10px) center!important;
    background-size: 20px 20px!important;
    font-size: 16px!important;
}
.steps-radio input.gform_next_button.button:hover,
.steps-radio input.gform_button.button:hover {
    background-color: var(--global-color-primary) !important;
}
.steps-radio input.gform_previous_button.button {
    border-radius: 50px !important;
    padding: 10px 20px 10px 35px!important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M16.3,9.4H2.5M2.5,9.4l6.6-6.6M2.5,9.4l6.6,6.6' fill='none' stroke='%230F1428' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
    background-repeat: no-repeat;
    background-position: calc(0% + 10px) center!important;
    background-size: 20px 20px!important;
    font-size: 16px!important;
}
.gf_progressbar_wrapper {
    padding-top: 50px;
}
.e--pointer-double-line .menu-item.btn a.menu-link.elementor-item:after,
.e--pointer-underline .menu-item.btn a.menu-link.elementor-item:after {
    display: none;
}
.btn a.menu-link:hover {
    background-color: var(--global-color-accent);
    border-color: var(--global-color-accent);
}
.btn.white a.menu-link {
    color: var(--global-color-primary);
    background-color: transparent;
    border-color: var(--global-color-primary);
}
.btn.white a.menu-link:hover {
    color: white!important;
    background-color: var(--global-color-primary);
}
@media screen and (max-width: 1024px) {
    .btn a.menu-link {
        width: 100%;
        font-weight: 500!important;
        margin-top: 15px;
    }
}
 /* END OF BUTTON IN MENU */
/*  MENU   */
/*. Dropdown menu  */
.elementor-nav-menu--dropdown a.menu-link {
    align-items: center;
    display: flex;
    justify-content: space-between;
}
.elementor-nav-menu--dropdown a.menu-link::after {
    content: " ";
    background-image: url(assets/images/create-logo-colon-2026.svg);
    width: 14px;
    height: 14px;
    display: block;
    position: relative;
    /* padding-top: 16px; */
    background-repeat: no-repeat;
    background-size: contain;
    background-position: top right;
    opacity: 1!important;
}
.elementor-nav-menu--dropdown .btn a.menu-link::after {
    display: none;
}
nav.elementor-nav-menu--dropdown li.border-btm-none.menu-item {
    border-bottom: none !important;
}
/*. END MENU. */
/* BLENDING LOGO WITH CONTENT BELOW IT ALL PAGES */
/* Ensure ast-container allows blending */
.ast-container {
    position: relative;
}
.page-template-page-logoblend .elementor-location-header {
    /* position: relative; */
    z-index: 999;
}
.brand {
    position: fixed;
    top: var(--logo-top-mobile);
    left: 5%;
    z-index: 9999;
    mix-blend-mode: difference;
}
.admin-bar .brand {
    top: calc( var(--logo-top-mobile) + 46px );
}

.logo-blend {
    width: 100px;
    height: auto;
    /* filter: invert(1); /* If logo Navy */
}
/* Ensure Elementor content can be blended with */
.elementor {
    position: relative;
}

.elementor-element {
    position: relative;
    z-index: 1;
}
/* END OF BLENDING LOGO WITH CONTENT BELOW IT */

/* BLENDING LOGO WITH CONTENT BELOW IT TEMPLATE ONLY*/
/* Ensure ast-container allows blending */
/*.page-template-page-logoblend .ast-container {
    position: relative;
}

.page-template-page-logoblend .brand {
    position: fixed;
    top: 28px;
    left: 5%;
    z-index: 9999;
    mix-blend-mode: difference;
}
.admin-bar.page-template-page-logoblend .brand {
  top: 60px;
}

.page-template-page-logoblend .logo-blend {
    width: 100px;
    height: auto;
    margin-left: 2.5%;
    /* filter: invert(1);  If logo Navy 
} */
/* Ensure Elementor content can be blended with */
/*.page-template-page-logoblend .elementor {
    position: relative;
}

.page-template-page-logoblend .elementor-element {
    position: relative;
    z-index: 1;
}*/
/* END OF BLENDING LOGO WITH CONTENT BELOW IT  TEMPLATE ONLY */
/** GRAVITY FORMS **/
input[type='radio'] {
    accent-color: var(--global-color-lighter-primary);
}
.gform_wrapper {
    padding-top: 30px;
}
h3.gsection_title {
    font-size: 1.6rem;
}
.gsection_description {
    font-size: 1.2rem;
    margin-top: 10px;
}
.gform-theme--foundation span.gfield_required.gfield_required_text {
    color: var(--global-color-lighter-primary);
}
/* Radio btn dot */
body .gform-theme--framework input[type=radio]:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *))::before {
    background-color: var(--global-color-lighter-primary);
}
body .gform-theme--framework .gfield--type-choice .gfield_checkbox, body .gform-theme--framework .gfield--type-choice .gfield_radio {
    gap: 10px;
}
form.steps-radio .gfield_label.gform-field-label {
    font-size: 1.4rem;
    margin-bottom: 1.5rem;
}
.gform-theme--framework form.steps-radio .gchoice {
    padding: 14px 16px;
    background: white;
    border: 1px solid #dad8d5;
    border-radius: 10px;
}
.gform-theme--framework form.steps-radio .gchoice:has(input:checked) {
    background-color: #d9d9d9;
    /* background-color: #d9d8ed;*/
}
.gform-theme--framework .gfield--type-choice .gchoice:has(.opt-desc) input {
    margin-bottom: -18px;
}
.gform-page-footer.gform_page_footer.top_label {
    justify-content: space-between;
}
/* force next button right */
form.steps-radio .gform_next_button {
    order: 3;
}
.gform_confirmation_message {
    border: 2px solid green;
    border-radius: 3px;
    padding: 15px;
    color: green;
}
/*. Elementor Adjustments */
/* Elementor shrink effect */
body .elementor-animation-shrink:active,
body .elementor-animation-shrink:focus,
body .elementor-animation-shrink:hover {
    transform: scale(.98);
}
/* CUSTOM CLASS TO REPLICATE ELEMENTOR SHRINK EFFECT */
.hover-shrink {
    transition: transform 0.3s ease;
    transform: scale(1);
}
body .hover-shrink:active,
body .hover-shrink:focus,
body .hover-shrink:hover {
    transform: scale(.98);
}

.elementor-element.elementor-widget-text-editor a,
.underline-anim .elementor-icon-list-item > a{
    text-decoration: underline;
    text-underline-offset: .1em;
    transition: all .1s linear;
}
.elementor-element.elementor-widget-text-editor a:hover,
.underline-anim .elementor-icon-list-item > a:hover {
    text-underline-offset: .25em;
}
.elementor-element.txt-white.elementor-widget-text-editor a,
.underline-anim.txt-white .elementor-icon-list-item > a {
    color:white;
}
/* Fix Unwanted Whitespace After Adding Hyperlink To An Image */
.elementor-widget-image a {
    width: 100%;
}
/* divider before horiz icon list */
.elementor-icon-list--layout-inline.divider-before {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
}
.elementor-icon-list--layout-inline.divider-before::before {
    content: ' ';
    display: inline-block;
    height: 12px;
    border-width: 0 0 0 1px;
    border-color: white;
    border-style: solid;
    margin-top: 2px;
}

/* DISPLAY Base: general utility */
.hide { display: none !important; }
.show { display: block !important; }

/* screen reader only */
.sr-only,.sr-only-focusable:not(:focus) {
    clip: rect(0,0,0,0)!important;
    white-space: nowrap!important;
    border: 0!important;
    width: 1px!important;
    height: 1px!important;
    margin: -1px!important;
    padding: 0!important;
    position: absolute!important;
    overflow: hidden!important
}
/* MOBILE: under 480px */
@media (min-width: 479px) {
    .brand {
        top: var(--logo-top-desktop);
    }
    .logo-blend {
        width: 132px;
    }
    .admin-bar .brand {
        top: calc( var(--logo-top-desktop) + 32px );
    }
}
/* MOBILE landscape: max 640px */
@media (max-width: 640px) {
    .work-card-container {
        padding-left: 0;
        padding-right: 0;
    }
    .work-card-container .elementor-widget-custom-heading,
    .work-card-container .elementor-widget-text-editor {
        margin-left: 6%;
        max-width: 88%!important;
    }
}
/* MOBILE: under 768px */
@media (max-width: 767px) {
  .show-mobile { display: block !important; }
  .hide-mobile { display: none !important; }
}

/* TABLET: 768px to 1024px */
@media (min-width: 768px) and (max-width: 1024px) {
  .show-tablet { display: block !important; }
  .hide-tablet { display: none !important; }
}

/* DESKTOP: 1025px to 1199px */
@media (min-width: 1025px) and (max-width: 1199px) {
  .show-desktop { display: block !important; }
  .hide-desktop { display: none !important; }
}

/* XL: 1200px to 1440px */
@media (min-width: 1200px) and (max-width: 1440px) {
  .show-xl { display: block !important; }
  .hide-xl { display: none !important; }
}

/* XXL: 1441px and up */
@media (min-width: 1441px) {
  .show-xxl { display: block !important; }
  .hide-xxl { display: none !important; }
}