/*
Theme Name: Keyport LLC
Theme URI: https://keyportllc.com/
Description: Divi Child Theme
Author: JF Designs
Author URI: https://jfdesigns.com
Template:    Divi
Version:     1.2
*/

/* HIDE DIVI FRONT END THEME BUILDER HEADER/FOOTER EDIT */


/* MAKE DIVI MODAL WIDOW MENU FIXED */
.mce-panel .mce-stack-layout-item.mce-first {
    position: sticky !important;
    top: -60px;
}



/* add space above headings
* when in text flow */
p + h1,
p + h2,
p + h3,
p + h4,
p + h5,
p + h6 {
    margin-top: .75em;
}

/* padding-bottom on last  
* p not in blockquote */
.et_pb_module:not(.has-background) > p:last-of-type {
    padding-bottom: 0 !important;
}

blockquote > p:not(.has-background):last-of-type {
    padding-bottom: 0 !important;
}

/* utility class to remove */
.padding-0,
.no-padding {
    padding: 0 !important;
}

.padding-bottom-0 {
    padding-bottom: 0 !important;
}

/* add space above header
* if following list */
ul + h1,
ul + h2,
ul + h3,
ul + h4,
ul + h5,
ul + h6,
ol + h1,
ol + h2,
ol + h3,
ol + h4,
ol + h5,
ol + h6 {
    padding-top: .375em !important;
}

/* add space below list items */
.et_pb_text ul,
.et_pb_text ol {
    margin-left: 1.5em
}

.et_pb_text li,
.et_pb_post_content li {
    margin-bottom: .75em
}

.et_pb_text ol li,
.et_pb_post_content ol li {
    margin-left: 1em;
}

.et_pb_row.col-bot-margin-none .et_pb_column {
    margin-bottom: 0px !important
}

/* BUTTON ARROW STYLING  */

.kp-button-arrow.et_pb_button:after {
    color: rgba(210, 211, 212, 1);
    font-size: 1em !important;
    font-weight: 700;
    top: 50%;
    transform: translateY(-50%);
}

/* Present Divi buttons inline. In use on Wholesale Crab page. */
.btn-inline .et_pb_button_module_wrapper {
    display: inline-block;
}

/* END BUTTON STYLING */


/* BEGIN MASTHEAD STYLING */

.kp-masthead .et_parallax_bg {
    background-size: 2560px !important;
}

@media (max-width:767px) {
    .kp-masthead .et_parallax_bg {
        background-size: 1920px !important;
    }
}

/* Headline styling */
.kp-masthead .et_pb_text h1 {
    font-size: clamp(48px, 5.2vw + 23.3px, 80px);
    letter-spacing: 0.2em;
    line-height: 1.04em;
}

.kp-masthead h1 span {
    display: block;
    font-size: .5em;
    margin: 0;
    padding: 0;
    line-height: 1em;
}

/* Wild Choice Registration Mark */
.kp-masthead h1 span sup {
    position: absolute;
    font-size: .5em;
    line-height: 1;
    top: 4px;
    margin-left: -9px;
}

/* END MASTHEAD STYLING */

/* BEGIN HOME PAGE STYLE ADJUSTMENTS */
.et_pb_text.kp-intro-text-module h2 {
    font-size: clamp(67px, 6.6vw + 35.4px, 108px);
    letter-spacing: 0.025em;
    line-height: max(1.03em, 0.97em)
}

.et_pb_text.kp-intro-text-module h4 {
    font-size: clamp(24px, 2.4vw + 12.4px, 39px);
    letter-spacing: -0.01em;
    line-height: 1.33em;
}

/* END HOME PAGE STYLE ADJUSTMENTS */

/* DEFAULT TEXT MODULE HEADER SIZING */
.et_pb_text.kp-default-text-module h1 {
    font-size: clamp(60px, 3.2vw + 44.6px, 80px);
    letter-spacing: 0.02em;
    line-height: 1.04em;
}

.et_pb_text.kp-default-text-module h2 {
    font-size: clamp(57px, 3.7vw + 39.3px, 80px);
    letter-spacing: 0.025em;
    line-height: max(1.03em, 0.97em)
}

.et_pb_text.kp-default-text-module h3 {
    font-size: clamp(49px, 2.6vw + 36.7px, 65px);
    letter-spacing: 0.025em;
    line-height: 0.98em;
}

.et_pb_text.kp-default-text-module.add-margin h3 {
    margin-bottom: 1rem;
}

.et_pb_text.kp-default-text-module.add-margin-h4 h4 {
    margin-bottom: 1rem;
}

.et_pb_text.kp-default-text-module h4 {
    font-size: clamp(22px, 1.1vw + 16.6px, 29px);
    letter-spacing: -0.01em;
    line-height: 1.33em;
}

.et_pb_text.kp-default-text-module strong {
    font-family: 'Public Sans Bold', Helvetica, Arial, Lucida, sans-serif;
    font-weight: normal;
}


/* END DEFAULT TEXT MODULE HEADER SIZING */


/* CONTACT FORM STYLING */
p.et_pb_contact_field {
     margin-bottom: 24px; 
}

.et_pb_contact p input, .et_pb_contact p textarea {
   padding: 20px;
}


/* HOME PAGE CRAB PARTS TEXT MODULE STYLING */
@media only screen and (min-width: 981px) {

    .crab-parts-slide {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
        grid-template-areas: "crab-section-nav crab-section-nav"
            "crab-text crab-image"
            "pagination  pagination";
        justify-content: center;
        align-items: end;
    }
}

@media only screen and (max-width: 980px) {

    .crab-parts-slide {
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: 60px minmax(275px, 1fr) 250px 50px;
        grid-template-areas: "crab-section-nav"
            "crab-image"
            "crab-text"
            "pagination";
        justify-content: center;
        align-items: end;
        padding: 0;
        margin: 0;
    }
}


.et_pb_text.kp-crab-parts-text-module h3 {
    font-size: clamp(20px, 2vw + 11px, 30px);
    letter-spacing: -0.01em;
    line-height: 1.33em;
    margin-bottom: clamp(0px, 1vw + -6px, 10px);
}

.et_pb_text.kp-crab-parts-text-module h4 {
    font-size: clamp(30px, 3vw + 17px, 44px);
    letter-spacing: 0.025em;
    line-height: 0.98em;
}

.et_pb_text.kp-crab-parts-text-module p {
    font-size: clamp(11px, 1vw + 8px, 16px);
    line-height: 1.65em;
    padding-bottom: 0 !important;
}

.et_pb_text.kp-crab-parts-text-module p .small-type {
    font-size: clamp(10px, 0vw + 8px, 12px);
    line-height: 1.4em;
}

.et_pb_text.kp-crab-parts-text-module hr:nth-of-type(1) {
    border: 0;
    height: 1px;
    background: #52626F;
    margin-top: 0px;
    margin-bottom: clamp(10px, 1vw + 7px, 15px);
}

.et_pb_text.kp-crab-parts-text-module hr:nth-of-type(2) {
    border: 0;
    height: 2px;
    background: #52626F;
    margin-top: clamp(10px, 1vw + 7px, 15px);
    margin-bottom: clamp(10px, 1vw + 7px, 15px);
}

.secDiv .crab-sect-select {
    font-size: clamp(12px, 1vw + 9px, 15.5px);
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color: rgba(124, 152, 171, 0.84);
    cursor: pointer;
    display: inline-block;
    transition: all 300ms ease-in-out;
}

.secDiv .crab-sect-select:hover,
.secDiv span.active-sec {
    color: rgba(255, 255, 255, 1);
}

.secDiv .crab-sect-divider {
    font-size: clamp(12px, 1vw + 9px, 15.5px);
    letter-spacing: 0.3em;
    color: rgba(124, 152, 171, 0.84);
    display: inline-block;
    margin: 0px 15px;
}

/* END CRAB PARTS TEXTS STYLING */

/* BEGIN GOLDEN CRAB TEXTS STYLING */

@media (min-width:981px) and (max-width:1169px) {
    .gk-pristine-col-text {
        width: 100%;
        max-width: 100%;
        display: flex;
        flex-wrap: wrap-reverse
    }

    .gk-pristine-col-text .gk-pristine-text {
        padding-top: 30px !important;
        max-width: 100%;
    }
}

@media (min-width:1170px) {
    .gk-pristine-col-text {
        max-width: calc(1305px + 5%);
        display: flex;
    }

    .gk-pristine-text {
        max-width: 768px;
    }
}

/* END GOLDEN CRAB TEXTS STYLING */

/* BEGIN BLOG ARCHIVE STYLING */

.el-dbe-post-categories li a {
	padding:10px 20px !important
}

/* categories drop menu functionality */


@media screen and (max-width:980px) {
    .el-dbe-post-categories {
        display: none
    }

    .el-dbe-filterable-categories[data-hamburger-filter=on] {
        position: relative
    }

    .el-dbe-filterable-categories[data-hamburger-filter=on] .el-dbe-filterable-mobile-categories {
        display: block;
        border: 1px solid #63849b !important;
        background: #63849b !important;
        padding: 10px;
    }

    .el-dbe-filterable-categories[data-hamburger-filter=on] .el-dbe-menu-mobile-categories {
        background: #63849b;
    }

    .el-dbe-filterable-categories[data-hamburger-filter=on] .el-dbe-mobile-active-category {
        display: block;
        width: calc(100% - 42px);
        line-height: normal;
        cursor: pointer
    }

    .el-dbe-filterable-categories[data-hamburger-filter=on] .el-dbe-post-categories {
        display: block;
        position: absolute;
        top: 100%;
        left: 0;
        background: #63849b;
        width: 100%;
        z-index: 1
    }

    .el-dbe-filterable-categories[data-hamburger-filter=on] .el-dbe-post-categories li {
        display: block;
        border-bottom: 1px dotted #969696;
        margin: 0 !important
    }

    .el-dbe-filterable-categories[data-hamburger-filter=on] .el-dbe-category-mobile-menu {
        position: absolute;
        right: 10px;
        top: calc(50% - 16px);
        z-index: 1;
        cursor: pointer
    }

    .el-dbe-filterable-categories[data-hamburger-filter=on] .el-dbe-category-mobile-menu:before {
        font-family: ETModules;
        font-size: 32px;
        font-weight: 700;
        content: "\33";
        color: #fff;
        line-height: 1;
        vertical-align: middle
    }


    .el-dbe-filterable-categories[data-hamburger-filter=on] {
        position: relative;
        width: 100%;
    }

    .el-dbe-filterable-mobile-categories span {
        font-size: 0px !important;
    }

    .el-dbe-filterable-mobile-categories span:before {
        content: 'Categories';
        font-size: 24px;
        text-transform: uppercase;
        letter-spacing: 0.1em;
    }
}

/* categories drop menu functionality end */



.et_pb_post_extra.el_dbe_vertical_grid .entry-title {
    border-bottom: 0px;
    margin-top: 0;
}

.et_pb_post_extra .post-categories a {
    font-family: 'Averia Serif Libre Bold', Helvetica, Arial, Lucida, sans-serif;
    font-size: clamp(12px, 1vw + 5px, 14.5px) !important;
    text-transform: uppercase;

}

.el-dbe-blog-extra .el-pagination-button {
    width: 100%;
}

/* END BLOG ARCHIVE STYLING */

/* BEGIN BLOG POST TEXT STYLING */

/* 1080 > 767 */
.kp-blog-post-module h1, 
.kp-blog-post-module h2{
    font-size: clamp(36px, 4vw + 7px, 48px);
	text-transform:uppercase;
    letter-spacing: 0.025em;
    line-height: 1.25em;
	padding-bottom: 2rem;
}

.kp-blog-post-module h3 {
    font-size: clamp(24px, 4vw + -5px, 36px);
    letter-spacing: 0.025em;
    line-height: 1.1em;
	padding-top: 1rem;
}

.kp-blog-post-module h4 {
    font-size: clamp(20px, 1vw + 10px, 24px);
    letter-spacing: -0.01em;
    line-height: 1.33em;
	padding-top: 1rem;
}

.kp-blog-post-module h5 {
    font-size: 16px;
    letter-spacing: .03em;
    line-height: 1.33em;
}
.kp-blog-post-module sup {
    font-size: .8em;
    height: 0;
    line-height:1em;
    position: relative;
    vertical-align: baseline;
	bottom: 0.3em;
}

/* begin pagination styling */
.kp-blog-pagination.et_pb_posts_nav {
    display: grid;
    grid-template-columns: 1fr auto !important;
    grid-gap: 15px;
}


.kp-blog-pagination span.nav-previous,
.kp-blog-pagination span.nav-next {
    float: none;
    /*width:248px; */
    margin-top: 5px !important;
    margin-bottom: 0px !important;
    transition: all 300ms ease 0ms;

}

.kp-blog-pagination span.nav-previous a {
    padding-top: 0.35em !important;
    padding-right: 1em !important;
    padding-bottom: 0.35em !important;
    padding-left: 1.8em !important;
}

.kp-blog-pagination span.nav-next a {
    padding-top: 0.35em !important;
    padding-right: 1.8em !important;
    padding-bottom: 0.35em !important;
    padding-left: 1em !important;
}

.kp-blog-pagination span.nav-previous a,
.kp-blog-pagination span.nav-next a {
    display: inline-block !important;
    font-family: 'Chairdrobe Grunge Bold', Helvetica, Arial, Lucida, sans-serif;
    line-height: 1.7em !important;
    font-size: clamp(18px, 1vw + 13px, 24px);
    color: #FFFFFF !important;
    border-width: 0px !important;
    border-radius: 1px;
    letter-spacing: 0.2em;
    text-transform: uppercase !important;
    background-color: #5B7E96;
    transition: all 300ms ease 0ms !important;

}

.kp-blog-pagination span.nav-previous a:hover,
.kp-blog-pagination span.nav-next a:hover {
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0.25) 100%);
    background-color: #5B7E96;
    transition: all 300ms ease 0ms !important;
}

.kp-blog-pagination span.nav-previous .meta-nav,
.kp-blog-pagination span.nav-next .meta-nav {
    display: none
}

.kp-blog-pagination span.nav-previous a:before {
    font-family: ETmodules !important;
    content: "\34";
    font-size: 1em !important;
    font-weight: 700;
    line-height: 1em;
    color: rgba(210, 211, 212, 1);
    opacity: 1;
    display: inline-block;
    margin-right: 0.3em;
    left: .4em;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

.kp-blog-pagination span.nav-next a:after {
    font-family: ETmodules !important;
    content: "\35";
    font-size: 1em !important;
    font-weight: 700;
    line-height: 1em;
    color: rgba(210, 211, 212, 1);
    opacity: 1;
    display: inline-block;
    margin-left: 0.3em;
    left: auto;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

/* end pagination styling */



/* END BLOG POST TEXT STYLING */

/* MONARCH PLUGIN SHARING STYLING */
.et_monarch .et_social_autowidth li {
    width: auto;
    margin: 0 !important;
}

.et_monarch .et_pb_section .et_social_inline_top,
.et_monarch .et_pb_section .et_social_inline_bottom {
    position: relative;
}

.et_monarch .et_social_networks:before {
    content: 'SHARE';
    font-family: 'Chairdrobe Grunge Bold', Helvetica, Arial, Lucida, sans-serif;
    font-size: 20px;
    letter-spacing: 0.1em;
    line-height: 1.7em !important;
    display: inline-block;
    position: absolute;
    top: 2px;
    left: 0;
}

.et_monarch .et_social_networks {
    /* width: 100%; */
    display: inline-block;
    text-align: left;
    padding-left: 50px;

}

/* BEGIN NAVIGATION */






/* KEYPORT COLORS */
.kp-blue {
    color: #5b7e96;
}

.kp-lt-orange {
    color: #e6653d;
}

.kp-btn-grey {
    color: #8c8e92;
}


/* UTLITY STYLES */
.kp-inline-align {
    display: inline-block;
}

.reg-mark {
    position: relative;
    font-size: .8em;
    top: -3px;
}

/* MOBILE MENU BLACKOUT */
/* adds full screen dark overlay for mobile */

.screen-overlay {
    opacity: 0;
    background-color: rgba(0, 0, 0, 0.0) !important;
    transition: all 600ms ease 0ms;
}

.black-out {
    opacity: 1;
    width: 100vw;
    height: auto;
    z-index: 1;
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.8) !important;
    transition: all 300ms ease 0ms;
}
@media (min-width:1080px) {
  .screen-overlay {
      display:none;
}

.black-out {
   display:none;
}
  
}


/****************************/
/* BEGIN TOP MENU STYLING */
/****************************/

#kp-top-menu-section {}

.kp-top-menu-section {}

.kp-top-menu-row .et_pb_column {
    display: flex;
    justify-content: space-between;
}

@media (max-width:980px) {
    .kp-top-menu-row .et_pb_column {
        display: flex;
        align-items: center;
        justify-content: center;
    }
}

/* Remove Divi text module paragraph padding */
.kp-top-menu-section p:not(.has-background):last-of-type {
    padding-bottom: 0;
}

.slogan {}

.cta {
    display: flex;
    align-content: center;
    justify-content: flex-end;
    width: 100%;
    margin-right: 120px
}

@media (max-width:980px) {
    .cta {
        width: 100%;
        height: 40px;
        display: flex;
        align-content: center;
        justify-content: center;
        margin-right: auto;
    }
}

.cta-text {
    color: #fff;
    font-family: 'Averia Serif Libre Bold', Helvetica, Arial, Lucida, sans-serif;
    font-size: 16px !important;
    letter-spacing: 0.03em;
    margin-top: auto;
    margin-bottom: auto;
    margin-right: 24px !important;
    padding-top: 0px;
}

@media (max-width:980px) {
    .cta-text {
        width: auto;
        font-size: 14px !important;
        margin-right: 12px !important;
        padding-bottom: 2px;
    }
}


@media (max-width:1290px) {

    /* Hide Slogan image and center CTA elements */
    .slogan {
        display: none;
    }

    .cta {
        display: flex;
        align-content: center;
        justify-content: center;
        width: 100%;
        margin-left: auto;
        margin-right: auto;
    }
}

.cta-btn-tel {
    font-family: 'Chairdrobe Grunge Bold', Helvetica, Arial, Lucida, sans-serif;
    font-size: 21px !important;
    letter-spacing: 0.11em;
    color: #fff;
    background-color: #8c8e92;
    padding: 14px 24px 12px 24px !important;
    margin-top: auto !important;
    margin-right: 12px !important;
    margin-bottom: auto !important;
    width: auto;
    height: 49px;
    text-align: center;
    align-content: center;
    justify-content: center;
    box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.15);
    transition: background-color 300ms ease 0ms, background-image 300ms ease 0ms;
}

.cta-btn-tel p,
.cta-btn-chat p {
    transform: scale(1.06, .9) !important;
}

.cta-btn-tel:hover {
    background-color: #939598;
}

@media (max-width:980px) {
    .cta-btn-tel {
        font-size: 18px !important;
        letter-spacing: 0.11em;
        color: #fff;
        background-color: #8c8e92;
        padding: 8px 10px 12px 10px !important;
        margin-top: auto !important;
        margin-right: 1vw !important;
        margin-bottom: auto !important;
        width: auto;
        height: 38px;
        text-align: center;
        align-content: center;
        justify-content: center;
        box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.15);
        transition: background-color 300ms ease 0ms, background-image 300ms ease 0ms;
    }
}

.cta-btn-chat {
    font-family: 'Chairdrobe Grunge Bold', Helvetica, Arial, Lucida, sans-serif;
    font-size: 21px !important;
    letter-spacing: 0.11em;
    color: #fff;
    background-color: #e45d33;
    padding: 14px 24px 12px 24px !important;
    margin-top: auto !important;
    margin-right: 12px !important;
    margin-bottom: auto !important;
    width: auto;
    height: 49px;
    text-align: center;
    align-content: center;
    justify-content: center;
    box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.15);
    transition: background-color 300ms ease 0ms, background-image 300ms ease 0ms;
}

.cta-btn-chat:hover {
    background-color: #ef5e34;
}

@media (max-width:980px) {
    .cta-btn-chat {
        font-family: 'Chairdrobe Grunge Bold', Helvetica, Arial, Lucida, sans-serif;
        font-size: 18px !important;
        letter-spacing: 0.11em;
        color: #fff;
        background-color: #e45d33;
        padding: 8px 10px 12px 10px !important;
        margin-top: auto !important;
        margin-right: 0px !important;
        width: auto;
        height: 38px;
        box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.15);
        transition: background-color 300ms ease 0ms, background-image 300ms ease 0ms;
    }
}

/****************************/
/* END TOP MENU STYLING */
/****************************/



/****************************/
/* BEGIN MAIN MENU STYLING */
/****************************/

/* Desktop Menu Grid Layout */

.kp-main-menu-section {
    position: relative;

}

.kp-main-menu-section .desktop-menu-logo {
    grid-area: desktop-menu-logo
}

.kp-main-menu-section .et_pb_menu {
    grid-area: desktop-menu
}

.kp-main-menu-section .et_pb_column {
    align-content: center;
    display: grid;
    grid-template-columns: minmax(72px, auto) 1fr minmax(84px, auto);
    grid-template-areas:
        "desktop-menu-logo 	desktop-menu .";
}

@media (max-width:1080px) {
    .kp-main-menu-section .et_pb_column {
        display: flex;
        justify-content: space-evenly;
    }
}

#kp-main-menu-row {}

.kp-main-menu-row {}


/* Desktop Menu System */

#kp-desktop-menu {
    transition: all 0.5s 0s ease !important;
}

.kp-desktop-menu.et_pb_menu {
    width: 100%;
    padding-top: 30px !important;
    padding-bottom: 0px;
    margin-top: 0px !important;
    margin-bottom: 0px !important;
}

.kp-desktop-menu.et_pb_menu .et_pb_menu__menu ul {}

.kp-desktop-menu.et_pb_menu .et_pb_menu__menu ul li {
    padding-left: clamp(10px, 2.2vw, 48px);
    padding-bottom: 30px;
}

.kp-desktop-menu.et_pb_menu .et_pb_menu__menu ul li a {
    color: #ffffff;
    font-family: 'Averia Serif Libre Bold', Helvetica, Arial, Lucida, sans-serif;
    text-transform: uppercase;
    /* font-size: clamp(14px, 1.1vw, 16px); */
	font-size: clamp(10px, 4.44vw + -38px, 14px);
    letter-spacing: 0.1em;
}

.kp-desktop-menu.et_pb_menu .et_pb_menu__menu ul li a:hover {
    color: #5b7e96 !important
}

/* navigation hover jquery override during transpearnet menu */
.bg-main-nav-off .kp-desktop-menu.et_pb_menu .et_pb_menu__menu ul li a:hover {
     color: #ccdbe7 !important
}


.kp-desktop-menu.et_pb_menu .et_pb_menu__menu ul li ul {
    /* Adjusts drop menu position  */
    top: calc(100% - 0px);
    left: 30px;
    padding: 10px 15px;
    width: 220px;
    /*background-color: rgba(75, 77, 83, 0.98) !important; */
    border-top: 0 !important;
}

.kp-desktop-menu.et_pb_menu .et_pb_menu__menu ul li li {
    padding-left: 0;
    padding-bottom: initial;
}

.kp-desktop-menu.et_pb_menu .et_pb_menu__menu ul li li a {
    color: #ffffff !important;
    font-family: 'Averia Serif Libre Bold', Helvetica, Arial, Lucida, sans-serif !important;
    font-size: clamp(14px, 1.1vw, 16px) !important;
    letter-spacing: 0.025em !important;
    line-height: 1.3em;
    padding: 15px 0px !important;
    border-bottom: 1px solid rgba(148, 176, 195, 0.2);
    transition: all 0.4s 0s ease-in-out !important;
    width: 185px !important;
    text-transform: none !important;
}

.kp-desktop-menu.et_pb_menu .et_pb_menu__menu ul li ul li:last-child a {
    border: 0;
}

.kp-desktop-menu.et_pb_menu .et_pb_menu__menu ul li:hover li a:hover,
.kp-desktop-menu.et_pb_menu .et_pb_menu__menu ul li li a:hover {
    color: #94b0c3 !important;
    /* Indent drop menu item on hover  */
    font-family: 'Averia Serif Libre Bold', Helvetica, Arial, Lucida, sans-serif !important;
    opacity: 1;
    padding: 15px 0px 15px 6px !important;
}

.kp-desktop-menu.et_pb_menu .menu-item-has-children > a:first-child:after {
    font-family: ETmodules;
    content: "3";
    font-size: 16px;
    color: #628dac !important;
    position: absolute;
    right: 0;
    top: 0;
    font-weight: 800;
}
/* navigation hover jquery override during transpearnet menu */
.bg-main-nav-off .kp-desktop-menu.et_pb_menu .menu-item-has-children > a:first-child:after {
    font-family: ETmodules;
    content: "3";
    font-size: 16px;
    color: #ccdbe7 !important;
    position: absolute;
    right: 0;
    top: 0;
    font-weight: 800;
}
/* FUNCTION FOR SPECIFIC PAGE  */
@media all and (max-width:1080px) {

    body:not(.home) #kp-top-menu,
    body:not(.home) #kp-main-menu {
        /* display: none !important; */
    }
}

/* Toggle Hide Main Navigation on Scroll  */
.add-box-shadow {
    box-shadow: inset 0px 2px 3px 0px rgba(0, 0, 0, 0.2),
        0px 3px 7px -2px rgba(0, 0, 0, 0.35) !important;
}

.remove-box-shadow {
    box-shadow: none !important;
}

.hide-main-nav {
   /* transform: translateY(-100%) translateY(-15px);
    transition: all 0.5s 0s ease !important; */
}

.bg-main-nav-on {
    background-color: rgba(255, 255, 255, 1) !important;
    box-shadow: 0px 2px 3px 0px rgba(0, 0, 0, 0.2) !important;
    transition: all 300ms 0s ease !important;
}

.bg-main-nav-off {
    background-color: rgba(255, 255, 255, 0.0) !important;
    box-shadow: none ! important;
    transition: all 300ms 0s ease !important;
}

.logo-main-nav-hide {
    opacity: 0;
    transition: all 300ms 0s ease !important;
}

.logo-full {
    display: block;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    background: url('/wp-content/uploads/2021/12/keyport-logo-home.svg') no-repeat !important;
    top: 50%;
    left: 0;
    width: 189px !important;
    height: 36px !important;
}

.logo-full-mobile {
    display: block;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    background: url('/wp-content/uploads/2021/12/keyport-logo-home.svg') no-repeat !important;
    top: 50%;
    left: 0;
    width: 189px !important;
    height: 36px !important;
    margin-top: 13px;
    padding: 19px 0px 19px 0px;
}

.logo-icon {
    display: block;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    background: url(/wp-content/uploads/2022/03/keyport-logo-2color.svg) no-repeat !important;
    top: 50%;
    left: 0;
    width: 189px !important;
    height: 36px !important;
}

.logo-icon-mobile {
    display: block;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    background: url('/wp-content/uploads/2022/03/keyport-logo-2color.svg') no-repeat !important;
    top: 50%;
    left: 0;
    width: 189px !important;
    height: 36px !important;
    margin-top: 13px;
    padding: 19px 0px 19px 0px;
}

.logo-icon-mobile-hide {
    opacity: 0;
    display: block;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    background: url('/wp-content/uploads/2021/09/keyport-icon-tag.svg') !important;
    top: 50%;
    left: 0;
    width: 252px !important;
    height: 54px !important;
    margin: 10px 0px 10px 0px;
}

.kp-mobile-menu-section .logo-full-mobile img {
    padding: 35px 0px 35px 0px;
}






/****************************/
/* END MAIN MENU STYLING */
/****************************/

/****************************/
/* BEGIN MOBILE MENU STYLING */
/****************************/

/* Begin Menu Functionality for Collapsing Drop Menu */



#kp-mobile-menu-section {}

.kp-mobile-menu-section {}

#kp-mobile-menu-row {}

kp-mobile-menu-row {}

#kp-mobile-menu {}

.kp-mobile-menu {}

.kp-mobile-menu.et_pb_menu .et_mobile_nav_menu ul {}

.kp-mobile-menu.et_pb_menu .et_mobile_nav_menu ul li {}

.kp-mobile-menu.et_pb_menu .et_mobile_nav_menu ul li a {
    font-family: 'Averia Serif Libre Bold', Helvetica, Arial, Lucida, sans-serif;
    text-transform: uppercase;
    font-size: clamp(14px, 1.1vw, 16px);
    letter-spacing: 0.125em;
    border-bottom: 1px solid rgba(0, 0, 0, .03);
    color: #666;
    padding: 15px 5%;
    display: block;
}

.kp-mobile-menu.et_pb_menu .et_mobile_nav_menu ul li a:hover {
    color: #63849b !important;
}

.kp-mobile-menu.et_pb_menu .et_mobile_nav_menu ul li ul {
    background-color: #4b4d53 !important;
    padding-left: 0;
    display: none !important;
    visibility: hidden !important;
    transition: all 1.5s ease-in-out;
}

.kp-mobile-menu.et_pb_menu .et_mobile_nav_menu ul li li {
    border-bottom: 1px solid rgba(255, 255, 255, .1);
}

.kp-mobile-menu.et_pb_menu .et_mobile_nav_menu ul li li a {
    font-family: 'Averia Serif Libre Bold', Helvetica, Arial, Lucida, sans-serif;
    text-transform: none;
    font-size: clamp(14px, 1.1vw, 16px);
    letter-spacing: 0;
    color: #ffffff !important;
    padding: 10px 15px;
}

.kp-mobile-menu.et_pb_menu .et_mobile_nav_menu ul li li a:hover {
    font-family: 'Averia Serif Libre Bold', Helvetica, Arial, Lucida, sans-serif;
    text-transform: none;
    font-size: clamp(14px, 1.1vw, 16px);
    letter-spacing: 0;
    color: #ffffff !important;
    padding: 10px 15px;
}

.kp-mobile-menu.et_pb_menu .et_mobile_menu .menu-item-has-children > a {
    background-color: transparent;
    position: relative;
}

.kp-mobile-menu.et_pb_menu .et_mobile_menu .menu-item-has-children > a:after {
    font-family: 'ETmodules';
    color: #5b7e96 !important;
    text-align: center;
    speak: none;
    font-weight: 600;
    font-variant: normal;
    text-transform: none;
    -webkit-font-smoothing: antialiased;
    position: relative;
    font-size: 18px;
    content: '3';
    top: 3px;
    left: 3px;
}

.kp-mobile-menu.et_pb_menu .et_mobile_menu .menu-item-has-children.visible > a:after {
    content: '3';
}

.kp-mobile-menu.et_pb_menu .et_mobile_menu li.visible > ul.sub-menu {
    display: block !important;
    visibility: visible !important;
}

/* Begin Adjust Divi Menu Module Breakpoint*/
@media (min-width:1080px) {
    #kp-main-menu {
        display: block
    }

    #kp-mobile-menu {
        display: none
    }

    #kp-desktop-menu .et_pb_menu__menu {
        display: block !important;
    }

    #kp-desktop-menu .et_mobile_nav_menu {
        /* HIDE DESKTOP: MOBILE MENU */
        display: none !important;
    }

    #kp-mobile-menu .et_pb_menu__menu,
    #kp-mobile-menu .et_mobile_nav_menu {
        /* HIDE MOBILE MENU */
        display: none !important;
    }

}

@media (max-width:1079px) {
    #kp-main-menu {
        display: none;
    }

    #kp-mobile-menu {
        display: block
    }

    #kp-desktop-menu .et_pb_menu__menu,
    #kp-desktop-menu .et_mobile_nav_menu {
        /* HIDE DESKTOP: DESKTOP MENU */
        display: none !important;
    }

    #kp-mobile-menu .et_pb_menu__menu {
        /* HIDE MOBILE: DESKTOP MENU */
        display: none !important;
    }

    #kp-mobile-menu .et_mobile_nav_menu {
        /* SHOW MOBILE: MOBILE MENU */
        display: block !important;
    }

    #kp-mobile-menu .et_pb_menu__wrap {
        justify-content: flex-end;
        flex: 1 1 auto;
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        opacity: 1;
    }

    #kp-mobile-menu .et_mobile_menu {
        top: calc(100% + 0px);
        padding: 0;
    }

    #kp-mobile-menu ul {
        list-style: none !important;
        text-align: left;
    }
}

/* End Adjust Divi Menu Module Breakpoint*/


/*Change Divi Hamburger Menu To X*/
.mobile_nav.opened .mobile_menu_bar:before {
    content: '\4d';
}

/*Rotate The Divi Menu Icon On Click*/
.mobile_menu_bar:before {
    font-size: 48px;
    color: #FFFFFF !important;
    transition: all .4s ease;
    transform: rotate(0deg);
    display: block;
}

.change-color.mobile_menu_bar:before {
    color: #5b7e96 !important;
    transition: all .4s ease;
}

.et_pb_menu__wrap .mobile_menu_bar {
    transform: translateX(-25px) translateY(5px) !important;
}

/*Rotate The Divi Menu Icon On Click*/

.mobile_nav.opened .mobile_menu_bar::before {
    transition: all .4s ease;
    transform: rotate(90deg);
    display: block;
}



/****************************/
/* END MOBILE MENU STYLING */
/****************************/







/* END NAVIGATION */


/* CONTACT FORM 7 STYLE OVERRIDES */
/* Removes a stubborn left border on containers set by Divi Theme */
 #main-content .container:before {
     content: none;
}
/* Containers set to 100% Override */
 .cf7sg-container .cf7-smart-grid.has-grid .container {
     max-width: 100% !important;
     padding: 0 0 !important;
     margin: 0 auto !important;
     width: 100% !important;
     flex-wrap: wrap;
     display: block;
}
 @media (max-width: 980px) {
    /* Sets Tablet Column Width Breakpoints */
     .cf7sg-container .cf7-smart-grid.has-grid form .container .row .columns {
         float: none !important;
         margin: 0 !important;
         width: 100% !important;
    }
     .cf7sg-container .cf7-smart-grid.has-grid form .container .row .columns.one-half {
         float: left !important;
         margin: 0 0 0 2.12766% !important;
         width: 48.93617% !important;
    }
     .cf7sg-container .cf7-smart-grid.has-grid form .container .row .columns.one-half:first-child {
         float: left !important;
         margin: 0 0 0 0 !important;
         width: 48.93617% !important;
    }
     .cf7sg-container .cf7-smart-grid.has-grid form .container .row .columns.one-third {
         float: left !important;
         margin: 0 0 0 2.12766% !important;
         width: 31.91489% !important;
    }
     .cf7sg-container .cf7-smart-grid.has-grid form .container .row .columns.one-third:first-child {
         float: left !important;
         margin: 0 0 0 0 !important;
         width: 31.91489% !important;
    }
}
 @media (max-width: 768px) {
    /* Sets Mobile Column Width Breakpoints */
     .cf7sg-container .cf7-smart-grid.has-grid form .container .row .columns, .cf7sg-container .cf7-smart-grid.has-grid form .container .row .columns.one-half, .cf7sg-container .cf7-smart-grid.has-grid form .container .row .columns.one-half:first-child, .cf7sg-container .cf7-smart-grid.has-grid form .container .row .columns.one-third, .cf7sg-container .cf7-smart-grid.has-grid form .container .row .columns.one-third:first-child {
         float: none !important;
         margin: 0 0 0 0 !important;
         width: 100% !important;
    }
    /* Adds Margin-top to School Listing Rows on Mobile */
     .cf7sg-container .cf7-smart-grid.has-grid .container.spacer-margin-top {
         margin-top: 15px !important;
    }
}
/* Sets line-height to the form paragraphs */
 .cf7sg-container {
     line-height: 1.7!important;
}
/* Adds Margin-top to a Module */
 .spacer-margin-top {
     margin-top: 30px !important;
}
/* Adds Margin-top to a Field Labels */
 .cf7-smart-grid.has-grid .field > label {
     display: block;
     margin-top: 15px;
     margin-bottom: 5px;
}
 span.wpcf7-list-item {
     display: block !important;
}
 span.desc-caption {
     font-size: .75em 
}
/* Sets Font Size for File Upload Field */
 .codedropz-upload-inner h3 {
     font-size: 1em !important 
}
 .numbered-list ol {
     list-style-type: decimal;
     margin-left: 1.5em;
     list-style-position: outside!important;
     padding-left: 15px!important;
     padding-bottom: 1em;
}
 .numbered-list li{
     margin-bottom: .75em;
}
 .cf7-smart-grid.has-grid .info-tip {
     font-size: 80%;
     font-style: italic;
     color: grey;
     margin: 5px 0 5px 0;
}
/* Styling the Signature Box*/
 .wpcf7-form-control-signature-body canvas{
     width:100%;
     height:150px;
     border: 1px solid #e0e0e0;
     border-radius: 5px;
     color:#333333;
     background:#eee;
}
 .wpcf7-form-control-signature-wrap {
     width:70% !important;
     height:165px !important;
}
 @media screen and (max-width: 768px) {
     .wpcf7-form-control-signature-wrap {
         width:100% !important;
    }
}
 input[type="button" i] {
     color: #800000!important;
     border-color: #800000;
     font-size: 14px;
     font-weight: 500;
     padding: .3em 1em;
     line-height: 1.7em!important;
     background-color: transparent;
     background-size: cover;
     background-position: 50%;
     background-repeat: no-repeat;
     border: 2px solid;
     border-radius: 3px;
}
 input[type="button" i]:hover {
     background-color: rgba(0,0,0,.05);
}
 .wpcf7-response-output {
    /*display: none !important;
     */
     display: block 
}
 .wpcf7 form.sent .cf7sg-response-output {
     /*display: none !important; */
}
 .wpcf7-not-valid-tip {
    /* display: none !important;
     */
     font-size:10px !important;
     letter-spacing:.5px !important;
     font-weight: 700 !important;
     display: block !important;
     position: relative !important;
     left: 0 !important;
     top: 100% !important;
     padding:3px 0px 0px 0px !important;
     min-width: auto !important;
     line-height: 1.2em !important;
     z-index: 7777 !important;
    ;
     background:none !important;
}
 .wpcf7-not-valid {
     border: 1px solid red !important;
}
 .wpcf7-form.sent div.container {
     display:none !important;
     -webkit-transition: all 0.5s 0s ease;
     -moz-transition: all 0.5s 0s ease;
     -o-transition: all 0.5s 0s ease;
     transition: all 0.5s 0s ease;
}
 .wpcf7 div.wpcf7-response-output {
     font-size:22px;
     text-align:center;
}

input[type=text], input[type="email"], input[type="tel"], select, textarea {
	font-family: 'Public Sans Regular',Helvetica,Arial,Lucida,sans-serif;
	/*font-size: clamp(13px, 0.5vw + 10.7px, 16px); */
	font-size: 16px;
    background-color: #e6e6e7;
    border: none;
    padding: 20px;
    color: #4e4e4e;
    text-align: center;
}::placeholder {
	color:#4e4e4e;
}
input[type="submit"] {
	display:block;
	float:right;
	max-width:150px;
	font-family: 'Chairdrobe Grunge Bold',Helvetica,Arial,Lucida,sans-serif;
    color: #FFFFFF!important;
    border:none;
    letter-spacing: 0.2em;
    font-size: 24px;
	font-weight: normal;
    font-style: normal;
    text-transform: uppercase;
    text-decoration: none;
    background-color: #e45d33!important;
    padding-top: 10px!important;
    padding-right: 20px!important;
    padding-bottom: 10px!important;
    padding-left: 20px!important;
    margin: 0 0 0 18px;
    cursor: pointer;
}
/* hide em asterisk */
.cf7-smart-grid.has-grid .field>label em {
    display: none !important;
}
