/*
 Theme Name:   Buchanan Solutions Child Theme
 Theme URI:    https://buchanan-solutions.com
 Description:  Custom GeneratePress child theme
 Author:       Keith Buchanan
 Author URI:   https://buchanan-solutions.com
 Template:     generatepress
 Version:      1.1
*/

/* Site Wrapper */
.site-wrapper {
    width: 100%;
    max-width: 1920px;
    margin-inline: auto;
    background-color: var(--surface-10);
}

/* Set the main content area height */
#main {
    min-height: 65vh;
}

/* Container Padding Overrides */
.inside-header {
    padding-inline: 0px !important;
    padding: .5rem 0;
}

.site-header {
    padding-inline: clamp(1rem, 0.848rem + 0.758vw, 1.5rem) !important;
}

.site-footer {
    display:none;
}

.site-top-bar-inner-section {
    padding-inline: clamp(1rem, 0.848rem + 0.758vw, 1.5rem) !important;
}

/* Post Editor Width (BACKEND) */
.post-type-post .block-editor-block-list__layout {
    max-width: 728px !important;
    margin-inline: auto !important;
    padding-inline: 200px !important;
}

.post-type-post .edit-post-visual-editor__post-title-wrapper .editor-post-title {
    max-width: 728px !important;
    margin-inline: auto !important;
    padding-inline: 200px !important;
}

/* -- Search Tweaks -- */

/* Clears the ‘X’ from Chrome */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
    filter: grayscale(100) opacity(.3);
    cursor: pointer;
}

/* Search Block */
.wp-block-search {
    border-radius: 4px;
    overflow: hidden;
    outline: 1px solid var(--surface-30);
    box-shadow: 0px 0px 0px #00000010;
    transition: all 250ms ease-in;
}

.wp-block-search:focus-within {
    outline: 1px solid var(--surface-30);
    box-shadow: 0px 4px 10px #00000010;
}

.wp-block-search input {
    border: none;
    padding: 0px 1em;
    border-radius: 4px;
    outline: none;
}

.wp-block-search button {
    background: var(--surface-20);
    color: var(--surface-70);
    padding: 10px 12px;
    border-left: 1px solid var(--surface-30);
}

.wp-block-search button:hover {
    background: var(--surface-30);
    color: var(--surface-80);
}

/* Search in Navigation */

#site-navigation .menu-bar-item a {
    padding-right: 0;
}

/* Modal */
.search-modal-fields button {
    background: var(--surface-20) !important;
    color: var(--surface-70) !important;
    line-height: 1;
    font-weight: 600;
    border-left: 1px solid var(--surface-30);
    padding: 10px 12px;
}

.search-modal-fields button:hover {
    background: var(--surface-30) !important;
    color: var(--surface-90) !important;
}

.search-modal-fields:focus-within {
    outline: 1px solid var(--surface-30);
    box-shadow: 0px 4px 10px #0000010;
}

.gp-search-modal .gp-modal_overlay {
    background-color: #1f293399;
}

/* Search Results / No Search Results template */
.search-title-wrapper {
    display: flex;
    align-items: flex-start;
    margin-top: 40px;
    padding-top: 40px;
    border-top: 1px solid var(--surface-30);
}

.search-for {
    line-height: 1.4;
}

.search-title {
    font-size: var(--fs-body);
    text-transform: capitalize;
    margin-left: 0.4em;
    line-height: 1.4;
}

/* Hamburger Menu */
.mobile-menu-control-wrapper .menu-toggle,
.mobile-menu-control-wrapper .menu-toggle:hover,
.mobile-menu-control-wrapper .menu-toggle:focus,
.has-inline-mobile-toggle #site-navigation.toggled {
    background-color: transparent;
    margin-right: -1rem;
    font-size: 1em;
    line-height: 8px;
}

/* Primary Menu Button Styles */
@media (min-width: 1025px) {
    .main-navigation .main-nav ul li.nav-cta a {
        background: var(--contrast) !important;
        color: var(--surface-10) !important;
        padding: 1em 1.5em;
        margin-left: 16px;
        border-radius: 4px;
        line-height: 1;
        font-weight: 600;
    }

    .main-navigation .main-nav ul li.nav-cta a:hover {
        background: var(--contrast-alt) !important;
        color: var(--surface-0) !important;
    }
}

@media (max-width: 1024px) {
    .main-navigation .main-nav ul li.nav-cta a {
        margin-left: 0px;
    }
}

/* Post Editor Width & Title */
body .editor-styles-wrapper .post-type-post .block-editor-block-list__layout,
body .editor-styles-wrapper .post-type-post .edit-post-visual-editor__post-title-wrapper .editor-post-title {
    max-width: 768px !important;
    margin-inline: auto !important;
}

/* Password Protected Pages */
.post-password-form {
    max-width: 768px;
    padding: 8rem 0px;
    margin-inline: auto;
    text-align: center;
}

.mobile-action-bar {
    position:fixed;
    width:100%;
    bottom:0;
    z-index:999;
    border-top: 1px solid lightgray;
    background-color: var(--surface-0);
    box-shadow: 0 -5px 10px 0 rgba(0,0,0,0.05);
}
.mobile-action-bar > *:not(:last-child) {
    border-right:1px solid lightgray;
}

.cookie_action_close_header {
    background-color:var(--primary) !important;
    color:var(--surface-0) !important;
}

/* Back to top button */
.generate-back-to-top {
    border-radius: 50%;
}

/* home page - set nav colours for merged header */
.home .header-wrap .gb-headline-text a {
    color:var(--surface-0);
}
.home .header-wrap .gb-headline {
    color:var(--surface-0);
}

/* copyright notice */
.kb-copyright-notice {
    color:var(--primary);
    font-size:.9rem;
}
.kb-copyright-notice a {
    color:var(--primary);
}
.kb-copyright-notice a:hover {
    color:var(--primary-alt);
}

/*  Sticky nav */
.sticky-enabled .main-navigation.is_stuck {
    background: var(--surface-10);
    box-shadow: 0 10px 10px -10px rgba(0, 0, 0, .2);
}

/********************************************/
/* List styles */
/********************************************/

/* Price list */
/* remove margin */
ul.pricing {
    margin: 0;
}

/* remove bullets */
ul.pricing li {
    list-style-type: none;
}

/* style the list items */
ul.pricing li:not(:last-child) {
    border: var(--primary);
    border-bottom-style: solid;
    border-bottom-width: 1px;
    padding-bottom: 0.25rem;
    margin-bottom: 0.25rem;
    margin-left: auto;
    margin-right: auto;
    width: max-content;
}

ul.pricing li:is(:last-child) {
    margin-bottom: 30px;
    text-align: center;
}

/* Checklist */
/* adjust margin */
ul.checklist {
    margin-left: 20px;
}

/* add icon and text style */
ul.checklist li {
    list-style-image: url("#");
    padding-left: 8px !important;
    font-size: 1rem;
}

/* icon sizing */
ul.checklist li::marker {
    font-size: 2em;
}


/*** 2. UTILITIES ***/

/* Visually Hidden */
.visually-hidden:not(:focus):not(:active) {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

/* Line Limits */
.line-limit-3, .line-limit-2 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.line-limit-3 {
    -webkit-line-clamp: 3;
}

.line-limit-2 {
    -webkit-line-clamp: 2;
}

/* No Underline */
.no-ul, .no-ul a {
    text-decoration: none;
}

/* Text Balance / Pretty */
.balance {
    text-wrap: balance;
}

p, div, blockquote, li {
    text-wrap: pretty;
}

/*** 3. TYPOGRAPHY ***/
:root {
    /* These HAVE TO match what is in the Customizer > Typography. Pull in font familys using font manager. Set headline-font as 'All Headings', set body-font as HTML */

    --headline-font: Roboto, sans-serif;
    --body-font: Roboto, sans-serif;
    --fs-body: clamp(1rem, calc(0.96rem + 0.21vw), 1.125rem);
    --fs-menu: clamp(1.25rem, calc(1.21rem + 0.21vw), 1.138rem);
    --fs-menu-button: clamp(1.1rem, calc(1.21rem + 0.21vw), 1rem);
    --fs-headline-xl: clamp(3.05rem, calc(2.24rem + 4.08vw), 5.5rem);
    --fs-headline-h1: clamp(2.44rem, calc(1.96rem + 2.41vw), 3.89rem);
    --fs-headline-h2: clamp(1.95rem, calc(1.69rem + 1.33vw), 2.75rem);
    --fs-headline-h3: clamp(1.56rem, calc(1.44rem + 0.64vw), 1.94rem);
    --fs-headline-h4: clamp(1.25rem, calc(1.21rem + 0.21vw), 1.38rem);
    --fs-headline-h5: clamp(1.25rem, calc(1.21rem + 0.21vw), 1.38rem);
    --fs-headline-h6: clamp(1.25rem, calc(1.21rem + 0.21vw), 1.38rem);
    --fs-headline-pre: clamp(0.97rem, calc(1.01rem + -0.05vw), 1rem);
    --fs-headline-body-xl: clamp(1.27rem, calc(1.15rem + 0.59vw), 1.62rem);
    --fs-headline-body-l: clamp(1.13rem, calc(1.05rem + 0.38vw), 1.35rem);
    --fs-headline-body-s: clamp(0.89rem, calc(0.87rem + 0.08vw), 0.94rem);
    --fs-headline-body-xs: clamp(0.78rem, calc(0.79rem + -0.01vw), 0.79rem);
    --text-s: clamp(0.89rem, calc(0.87rem + 0.08vw), 0.94rem);
    --text-xs: clamp(0.78rem, calc(0.79rem + -0.01vw), 0.79rem);
}

/* Default Body / p font settings */
p {
    font-size: var(--fs-body);
    font-weight: 400;
    line-height: 1.5;
    margin-bottom: 1.5rem;
    font-family: var(--body-font);
}

/* Default Headings weight, margin, font-family */
h1, h2, h3, h4, h5, h6, .gb-headline-xxl, .gb-headline-xl, .gb-headline-h1,
.gb-headline-h2, .gb-headline-h3, .gb-headline-h4, .gb-headline-h5, .gb-headline-h6 {
    font-weight: 700;
    margin-bottom: .5em;
    font-family: var(--headline-font);
}

/* Heading font-size and line-height */
.gb-headline-xl {
    font-size: var(--fs-headline-xl);
    line-height: 1.05;
}

h1, .gb-headline-h1 {
    font-size: var(--fs-headline-h1);
    line-height: 1.05;
}

h2, .gb-headline-h2 {
    font-size: var(--fs-headline-h2);
    line-height: 1.1;
}

h3, .gb-headline-h3 {
    font-size: var(--fs-headline-h3);
    line-height: 1.15;
}

h4, .gb-headline-h4 {
    font-size: var(--fs-headline-h4);
    line-height: 1.25;
}

h5, .gb-headline-h5 {
    font-size: var(--fs-headline-h5);
    line-height: 1.25;
}

h6, .gb-headline-h6 {
    font-size: var(--fs-headline-h6);
    line-height: 1.4;
}

.gb-headline-pre {
    font-size: var(--fs-headline-pre);
    text-transform: uppercase;
    letter-spacing: .1em;
}

/* Additional Body font-size */
.gb-headline-body-xl {
    font-family: var(--body-font);
    font-size: var(--fs-headline-body-xl);
}

.gb-headline-body-l {
    font-family: var(--body-font);
    font-size: var(--fs-headline-body-l);
}

.gb-headline-body-s {
    font-family: var(--body-font);
    font-size: var(--fs-headline-body-s);
}

.gb-headline-body-xs {
    font-family: var(--body-font);
    font-size: var(--fs-headline-body-xs);
}

/* Main navigation */
.main-navigation .main-nav ul li a {
    text-transform: uppercase;
    font-size: var(--fs-menu);
    font-family: var(--body-font);
}
.main-navigation .main-nav ul ul li a {
    text-transform: uppercase;
    font-size: var(--fs-menu);
}
.main-navigation a.nav-menu-button {
    font-size: var(--fs-menu-button);
    text-transform: uppercase;
    background-color: var(--primary);
    color: var(--surface-0);
    margin-left:15px;
}
.main-navigation a.nav-menu-button:hover {
    background-color: var(--primary-alt);
}

/* Hamburger menu */
.main-navigation .menu-toggle .gp-icon svg {
    height: 2em;
    width: 2em;
}


/* Add top margin to blog post H2-H6 */
.single-post :is(h2, h3, h4, h5, h6) {
    margin-top: 1.5em;
}

/* Button Global Line Height */
.gb-button {
    line-height: 1em;
}

/* Remove bottom margin on last paragraph */
.gb-container p:last-child:last-of-type {
    margin-bottom: 0px;
}

.block-editor-block-list__layout .gb-container p:nth-last-child(2) {
    margin-bottom: 0px;
}

/* SECTIONS */
.gb-container-section-xs {
    padding: clamp(1rem, 0.848rem + 0.758vw, 1.5rem) 1rem clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

.gb-container-section-s {
    padding: clamp(1.5rem, 1.5rem + 0vw, 1.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem) clamp(1.5rem, 1.5rem + 0vw, 1.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

.gb-container-section-m {
    padding: clamp(1.5rem, 1.197rem + 1.515vw, 2.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem) clamp(1.5rem, 1.197rem + 1.515vw, 2.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

.gb-container-section-d {
    padding: clamp(3rem, 2.394rem + 3.03vw, 5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem) clamp(3rem, 2.394rem + 3.03vw, 5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

.gb-container-section-l {
    padding: clamp(4.5rem, 3.591rem + 4.545vw, 7.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem) clamp(4.5rem, 3.591rem + 4.545vw, 7.5rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

.gb-container-section-xl {
    padding: clamp(6rem, 4.788rem + 6.061vw, 10rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem) clamp(6rem, 4.788rem + 6.061vw, 10rem) clamp(1rem, 0.848rem + 0.758vw, 1.5rem);
}

.gb-page-header mark, mark {
    background-color:transparent;
    color:var(--primary);
}

/* Container Widths */
:root {
    --width-m: 64rem;
    --width-s: 48rem;
    --width-xs: 40rem;
}

/* Logo float on hover */
.site-logo img {
    transform: translate3d(0,0,0);
    transition: all 0.5s ease;
}
.site-logo img:hover {
    transform: translate3d(0,-10px,0);
    transition: all 0.5s ease;
}

/* Hover float */
.gb-hover {
    transform: translate3d(0,0,0);
    transition: all 0.5s ease;
}
.gb-hover:hover {
    transform: translate3d(0,-10px,0);
    transition: all 0.5s ease;
}

/* Sticky container */
.my-sticky-element {
    position: sticky;
    position: -webkit-sticky;
    top: 50px; /* Offset from top of container */
}

/* gravity forms styles */


.gform-theme--foundation .gfield input, .gform-theme--foundation .gfield textarea
{
    border:0;
    border-radius:1.5rem;
    color: var(--surface-80);
}
.gform-theme--foundation .gfield select option {
    color: var(--surface-80);
}

.gform-theme--foundation .gfield select {
    border:0;
    border-radius:1.5rem;
    color: var(--surface-80);
}

.gform_footer .gform_button {
    background-color: var(--primary) !important;
    border-radius:4rem !important;
    color: var(--surface-0) !important;
    font-size:1.1em !important;
}
.gform_footer .gform_button:hover {
    background-color: var(--primary-alt) !important;
}

.gform_required_legend {
    display:none;
}

.gform_confirmation_message {
    background:var(--surface-0);
    padding:1rem;
    border-radius:1.5rem;
}

/*********************************/

/* Laptop */
@media only screen and (max-width: 1024px) {
    /* Turn off Sticky container */
    .my-sticky-element {
        position: relative;
        position: relative;
        top:auto;
    }


}