	/**
Theme Name: GGA Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: 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. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
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: gga-astra-child
Template: astra
*/



h1 {
	line-height: 1.25 !important;
}

.tuition-wrapper {
	margin-left: 100px;
}

/* Style for the homepage menu */
body.home .main-navigation {

}

body.home .main-navigation:a {
  color: #ffffff;
}

body:not(.home) .main-navigation {

}




/* Style for the Contact Form 7 submit button */


input.wpcf7-submit,
button.wpcf7-submit {
  background: #b01f24 !important;  /* Overrides background-color and any shorthand */
  background-image: none !important; /* Remove any background images */
  color: #fff !important;
  border: none !important;
  display: block;           /* Makes the button block-level so it can be centered */
  margin: 20px auto 0;      /* Auto left/right margins center it horizontally */
  padding: 15px 25px;
  border-radius: 5px;
  cursor: pointer;
  font-size: 17px;
}

.chat-widget {
    position: fixed;
    bottom: 20px;
    left: 20px;
    z-index: 1000;
}


textarea[name="your-message"] {
  height: auto;
  min-height: 6em; /* adjusts height based on ~6 rows */
}





.chat-bubble {
    display: flex;
    align-items: center;
    background: white;
    padding: 10px;
    border-radius: 10px;
    box-shadow: 0px 4px 8px rgba(0,0,0,0.2);
    margin-bottom: 18px;
    max-width: 280px;
    font-size: 16px;
    position: relative;
    white-space: normal;
    word-wrap: break-word;
    text-align: left;
    padding-right: 30px;
    cursor: pointer;
}
.chat-bubble::after {
    content: "";
    position: absolute;
    bottom: -10px;
    left: 20px;
    width: 0;
    height: 0;
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    border-top: 12px solid white;
}
.chat-box-bubble {
    width: 100%;
    max-width: 100%;
    border-radius: 10px 10px 0 0;
    box-shadow: none;
}
.chat-bubble img {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    margin-right: 8px;
    border-color: #b01f24;
  border-style: solid;
  border-width: 1px;
}
.close-bubble {
    position: absolute;
    top: 5px;
    right: 10px;
    cursor: pointer;
    font-size: 16px;
}
.close-chat {
    position: absolute;
    top: 5px;
    right: 10px;
    cursor: pointer;
    font-size: 20px;
    color: #b01f24;
}


/* Default chat button styling */
.chat-button {
    background-color: #b01f24;
    color: white;
    border: none;
    padding: 15px;
    border-radius: 50px;
    cursor: pointer;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.3s ease;
    background-image: url('/wp-content/uploads/2025/02/bubble2.png');
    background-size: 50%;
    background-position: center;
    background-repeat: no-repeat;
}

/* Styling for the chat button when the chat box is open */
.chat-widget.chat-open .chat-button {
    background-color: #yourNewColor !important; /* Replace with your desired color */
    /* Add any additional styling changes here */

}


.chat-widget.chat-open .chat-bubble::after {
  display: none;
}



/* Optional: Hover styling for the chat button when open */
.chat-widget.chat-open .chat-button:hover {
    background-color: #yourNewHoverColor !important; /* Replace with your desired hover color */
}




.chat-button:hover {
    background-color: #D6B83F;
}
.chat-box {
    display: none;
    position: fixed;
    top: 50px;
    left: 20px;
    width: 90%;
    max-width: 400px;
    max-height: 90vh;
    overflow-y: auto;
    background: white;
    border-radius: 10px;
    box-shadow: 0px 4px 8px rgba(0,0,0,0.2);
    padding: 15px;
}
.chat-instruction {
    font-size: 16px;
    text-align: left;
    padding-bottom: 20px;
    margin-bottom: 15px;
}

.chat-widget.chat-open .chat-instruction {
  font-size: 14px; /* Replace with your desired font size */
}

.chat-header {
    font-weight: bold;
    margin-bottom: 10px;
    border-bottom: 1px solid #d6b83f;
    padding-bottom: 10px;
    color: #b01f24;
    line-height: 1.5;
}
.chat-box form {
    width: 100%;

}

/* Hide chat bubble on screens smaller than 768px (tablets & phones) */
@media (max-width: 768px) {
    #chatBubbleDefault {
        display: none !important;
    }
}


.wpcf7 form > p:has(> .wpcf7-submit) {
    margin-bottom: 15px;
    padding: 0;
}

.wpcf7-spinner {
	display: none !important;
}












h4 {
  font-weight: 500!important;
}

/* This accordion is on the home page and appears in the mobile view only */


    .accordion {
        width: 100%;
        max-width: 600px;
        margin: 20px auto;
        border: 1px solid #ddd;
        border-radius: 5px;
        overflow: hidden;
        background-color: #B01F24;
    }

    .accordion-item {
        border-bottom: 1px solid #ddd;
    }

    .accordion-item:last-child {
        border-bottom: none;
    }

    .accordion-question {
		position: relative; /* Ensure the parent element is positioned for the ::after pseudo-element */
        padding: 15px;
        background-color: #B01F24;
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 25px;
        border: none;
        font-size: 26px; /* Larger font size */
        font-family: Georgia, serif; /* Georgia font */
        color: white; /* White text */
        line-height: 1.5; /* Increased line height for readability */

    }

    .accordion-answer {
        display: none;
        padding: 15px;
        background-color: #fff;
        text-align: left;
        font-family: "Georgia", sans-serif;
        color: #000000;
        font-size: 18px !important;
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);


    }

    .accordion-answer p {
        line-height: 1.5;
        margin-bottom: 20px;
    }

    .accordion-learn-more {

    }

    .accordion-answer img {
        max-width: 100%;
        height: auto;
        margin-bottom: 10px;
        margin-top: 20px;
    }

/*
    .accordion-question:after {
        content: '\25B6'; 
        transform: rotate(90deg);
        transition: transform 0.3s ease;
    }

    .accordion-question.active:after {
        transform: rotate(-90deg); 
    }

*/


.accordion-question:after {
	content: ''; /* Clear content to use only the background image */
	position: absolute; /* Decouple from the text flow */
	right: 20px; /* Position the arrow to the right of the accordion tab */
	top: 50%; /* Center the arrow vertically */
	transform: translateY(-50%) rotate(0deg); /* Center vertically and maintain default rotation */
	display: inline-block;
	width: 25px !important; /* Set the width of the image */
	height: 25px !important; /* Set the height of the image */
	background-image: url('/wp-content/uploads/2025/01/accordion-arrow-gga.png'); /* Image path */
	background-size: contain; /* Ensure the image fits within the defined size */
	background-repeat: no-repeat; /* Prevent repeating the image */
	transition: transform 0.3s ease; /* Smooth transition for rotation */
	box-sizing: border-box; /* Prevent padding or borders from affecting size */
}

.accordion-question.active:after {
	transform: translateY(-50%) rotate(-180deg); /* Rotate the image upwards */
}



/* This tab section is for the home page and appears in the desktop view only */

.tab-container {
  display: flex;
  flex-direction: row;
  max-width: 1380px;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 0 !important; /* Ensure no rounded corners */
}


@media (max-width: 1125px) {



.tab-menu {
  margin-top: 15px !important;
  padding-right: 20px !important;

}

.tab-menu button {

  font-size: 24px !important; /* Larger font size */
  line-height: 1.25 !important; /* Increased line height for readability */
}
}


@media (max-width: 1250px) {

.tab-menu {
  margin-top: 15px !important;
  padding-right: 20px !important;

} }



.tab-menu {
  margin-top: 40px;
  width: 37%;
  background-color: #b01f24; /* Red background */
}

.tab-menu button {

  display: block;
  width: 100%;
  padding: 25px;
  border: none;
  background: none;
  text-align: left;
  cursor: pointer;
  font-size: 26px; /* Larger font size */
  font-family: Georgia, serif; /* Georgia font */
  color: white; /* White text */
  opacity: 0.6; /* Reduced opacity for default state */
  line-height: 1.5; /* Increased line height for readability */
  transition: padding-left 0.3s ease, opacity 0.3s ease, border-color 0.3s ease; /* Smooth transitions */
  border-top: 1px solid white; /* Default thin white line above each tab */
  border-bottom: none; /* Remove bottom border for all tabs except the last */
  border-radius: 0 !important; /* Ensure no rounded corners */
}

.tab-menu button:last-child {
  border-bottom: 1px solid white; /* Add bottom border to the last tab */
}

.tab-menu button:hover {

  padding-left: 50px; /* Indent text */
  opacity: 1; /* Full opacity on hover */
  border-top: 2px solid #D6B83F; /* Gold line above tab */
  border-bottom: 2px solid #D6B83F; /* Gold line below tab */
}

.tab-menu button.active {
  padding-left: 50px; /* Indent text */
  opacity: 1; /* Full opacity for active state */
  border-top: 2px solid #D6B83F; /* Gold line above tab */
  border-bottom: 2px solid #D6B83F; /* Gold line below tab */
}

/* Ensure the tab below doesn't display a white top border overlapping the hover/active tab */
.tab-menu button:hover + button,
.tab-menu button.active + button {
  border-top-color: transparent; /* Hide the top border of the next tab */
}

.tab-content {
  width: 63%;
  position: relative;
  display: none;
  background-color: #b01f24; /* Match background color of tabs */
  overflow: hidden;
  border-radius: 0 !important; /* Ensure no rounded corners */
}

.tab-content.active {
  display: block;
}

.image-wrapper {
  position: relative;
}

.image-wrapper img {
  max-width: 724px !important;
  width: 100%; /* Ensures responsiveness */
  height: auto; /* Maintains aspect ratio */
  display: block;
  margin: 0 auto; /* Centers the image */
}



.text-overlay {
  position: absolute;
  font-family: "Georgia", sans-serif;
   color: #000000;
   font-size: 18px !important;
  bottom: 0; /* Align to the bottom */
  right: 0; /* Align to the right */
  width: 300px; /* Fixed width to make it a square */
  /* height: 300px; Fixed height to make it a square */
  background-color: white; /* Background for text box */
  padding: 35px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* Add slight shadow */
  z-index: 1; /* Ensure it overlaps the image */
  overflow: hidden; /* Prevent text overflow */
}

.text-overlay-intro {
	 font-variant: small-caps;
	 color: #b01f24;
	 font-weight: 500;
	 font-size: 22px !important;
	 line-height: 1.25 !important;


} 

.text-overlay p {
  margin: 0;
  color: black; /* Text color for better readability */
  font-size: 16px !important;
  line-height: 1.5;
}

@media (max-width: 994px) {
  .tab-container {
    flex-direction: column; /* Stack tabs and content vertically */
  }

  .tab-menu {
    width: 100%; /* Full width for tabs on smaller screens */
  }

  .tab-content {
    width: 100%; /* Full width for content on smaller screens */
  }

  .tab-content img {
    width: 100%; /* Ensure full-width image */
    margin-left: 0; /* Remove left padding */
    margin-right: 0; /* Remove right padding */
  }

  .text-overlay {
    position: static; /* Move to normal flow */
    color: #ffffff;
    font-family: "Georgia", sans-serif;
    width: 100%; /* Full width */
    height: auto; /* Adjust height automatically */
    background-color: transparent; /* No background */
    box-shadow: none; /* Remove shadow */
    margin-top: 10px;
    padding: 0 0 20px 0;
  }

  .text-overlay p {
    color: black; /* Text remains black for readability */
  }
}



















.homepage-cta-buttons {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 30px; /* Spacing between buttons */
  margin: 30px 0; /* Optional: adds some space around the section */
}

.cta-button {


  font-family: "Georgia", Sans-serif;
  font-size: 23px;
  font-weight: 500;
  fill: #FFFFFF;
  color: #FFFFFF;
  border-radius: 10px 10px 10px 10px;
  padding: 13px 30px 13px 30px;
  background-color: #9c712e; /* Gold background */
  border: none; /* Remove default border */
  cursor: pointer; /* Pointer cursor on hover */
  transition: background-color 0.3s ease; /* Smooth hover effect */
}

.cta-button:hover {
  background-color: #d4af37; /* Darker gold on hover */
}

.cta-button:focus,
.cta-button:active {
  background-color:  #9c712e; /* Keep gold for focus and active states */
  outline: none; /* Remove default focus outline */
  box-shadow: none; /* Prevent any shadow from appearing */
}













/* For home page tab section */



.home-page-subheads {
	color: #765b27;
	font-family: Georgia, sans-serif;
  	font-size: 35px;
  	font-weight: 400;
  	line-height: 1.5em;
}

.home-page-body-text {
	font-family: Georgia, sans-serif;
  	font-size: 20px;
  	font-weight: 500;
  	line-height: 1.65em;
}


.testimonials {
  padding: 20px;
  	font-family: Georgia, sans-serif;
  	font-weight: 400;
  	color: #334155;


 }

.testimonials h2 {
  text-align: center;
  margin-bottom: 20px;

   	color: #765b27;
	font-family: Georgia, sans-serif;
  	font-size: 35px;
  	font-weight: 400;
  	line-height: 1.5em;
}

.testimonial-container {
  display: flex;
  justify-content: space-between;
  gap: 20px; /* Space between boxes */
  flex-wrap: wrap;
}

.testimonial-box {
  position: relative;
  background-color: #fff;
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  transition: transform 0.3s;
  flex: 1 1 calc(25% - 20px); /* Default for desktop: Four boxes */
  max-width: calc(25% - 20px);
}

.testimonial-box:hover {
  transform: translateY(-5px);
}

.testimonial-image  {
  text-align: center;


}

.testimonial-image img {

  width: 110px; /* Set the width of the image */
  height: 110px; /* Set the height of the image */
  border-radius: 50% !important; /* Makes the image round */
  border: 2px solid #000; /* Optional: Adds a border around the image */
  margin-top: 30px;
  /* 
  width: 100%;
  height: 150px;
object-fit: cover; */
}

.testimonial-text {
  padding: 15px 15px 100px 15px;
  position: relative;
  color: #334155 !important;
  
  text-align: center;
}

.testimonial-name {

	width: 100%;
	position: absolute;
	bottom: 30px; /* Aligns text to the bottom */
	left: 50%; /* Move to the middle of the container */
  	transform: translateX(-50%); /* Shift back by half of the element's width */
    text-align: center; /* Center the text within the element */
    line-height: 1.125 !important;
    font-variant: small-caps !important;
  color: #b01f24;
  font-weight: 500;
}

.testimonial-name-title {
	font-size: .85rem !important;
	color: #334155;
}

.testimonial-text h3 {

}

.testimonial-text p,
.testimonial-text span {
  font-size: 1rem;
}

/* Medium Screens (e.g., iPads) */
@media (max-width: 1024px) {
 

  .testimonial-box {
    flex: 1 1 calc(50% - 40px); /* Two boxes per row with additional padding */
    max-width: calc(50% - 40px);
  }
}

/* Small Screens (e.g., Mobile) */
@media (max-width: 668px) {
 

  .testimonial-box {
    flex: 1 1 100%; /* Single box per row */
    max-width: 100%;
  }

  .testimonial-container {
    gap: 15px;
  }
}



/* This removes the gap on the right side of the header in mobile */
.ast-builder-grid-row {  
    grid-column-gap: 0px;
}



@media (min-width: 500px) {
  #desktop-video {
    margin-top: -20px !important;
  }

  /* This makes the logo nudge to the right to line up with the page */

.ast-logo-title-inline .ast-site-identity {margin-left: 19px;}


}
/* This resizes the home page logo to match inside   */
body.home header .custom-logo-link img {
  max-width: 270px !important;
  width: 270px !important;
}

.ast-builder-grid-row {

  padding: 0% 0% 0% 0%;
}


  main, nav {
    max-width: 1420px !important;
    margin: 0 auto !important;
    

  }

a {color: #ac1d25;}


/* This starts the header for the site */

.ast-primary-header-bar {
 
  background-color: #f3f1ea !important;
  padding-bottom: 5px;
  border-top-style: solid;
  border-top-width: 3px;
  border-top-color: #d6b83f;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #d6b83f;

}


/* This adds the yellow line to the mobile version of the headr */

.ast-header-break-point #ast-mobile-header {
  background-color: #f3f1ea !important;
  /* padding-bottom: 5px; */
  border-top-style: solid;
  border-top-width: 3px;
  border-top-color: #d6b83f;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: #d6b83f;
}

/* Make the header container full width */
.ast-header-break-point .main-header-bar {
    max-width: 100%; /* Full width */
    width: 100%;
}

/* Adjust logo and navigation container */
.ast-container {
    max-width: 1420px; /* You can adjust the value */
    width: 100%;
}


/* This ends the header */





/* This is the footer section */

.gga-footer {
/*	max-width: 1420px !important; */
    margin: 40px auto !important;
    width: 100%;
    padding: 20px 0px 0px 0px;
    color: #333;
    text-align: center;
    position: relative;
}

.gga-footer:before, .home-footer before {
  content: "";
  display: block;
  /* width: 96.5%; Adjust this value to change the border length */
  border-top: 3px solid #b01f24;
  border-bottom: 4px solid #d6b83f;
  margin: 0 auto 20px; /* Centers the border */
  padding-top: 0px; /* Adds space between content and border */
}


/* Mobile version of footer */

.footer-crest {
  margin-bottom: 30px; 
}


.back-to-top {
    display: none !important;
}

/* This hides the theme footer on mobile */

@media (max-width: 544px) {
  .site-below-footer-wrap[data-section="section-below-footer-builder"].ast-footer-row-mobile-stack .site-footer-section {
    display: none;
  }
}
@media (max-width: 1050px) {
  .ast-header-break-point .site-below-footer-wrap[data-section="section-below-footer-builder"] {
    display: none;
  }
}
/* This ends hide theme footer */

/* Desktop version of footer */

@media (min-width: 765px) {

.gga-footer p {
	margin-bottom: 0px;
}

.gga-footer .address,
.gga-footer .subscribe {
    display: inline-block;
    vertical-align: top;
    width: 48%;
}

.gga-footer .address {
    text-align: left;
    padding-right: 2%;
    margin-left: -40px;
}

.gga-footer .address h3 {
    margin: 0;
    font-size: 18px;
    color: #900;
}

.gga-footer .subscribe {
    text-align: right;
    padding-left: 2%;
    margin-right: -40px;
}

.gga-footer .footer-crest {
	display: block;
    position: relative; /* Set the container as relative for positioning */
}

.gga-footer .footer-crest img {
    position: absolute; /* Absolute positioning for the crest */
    top: -200px; /* Move the crest higher */
    left: 50%; /* Center horizontally */
    transform: translate(-50%, 0); /* Horizontal centering (explicit 0 for vertical translation) */
    max-width: 160px;
    will-change: transform; /* Hint for browsers to optimize */
}

}


/* Crest in footer adjustment for height */

@media (min-width: 1051px) {

.gga-footer .footer-crest img {
    
    top: -220px; /* Move the crest 200px higher */
}
}	



.gga-footer .subscribe a {
    color: #900;
    text-decoration: none;
}

.gga-footer .subscribe a:hover {
    text-decoration: underline;
}


.gga-footer nav {
    margin-top: 10px;
}

.gga-footer nav a {
    color: #900;
    text-decoration: none;
    margin: 0 10px;
    font-size: 15px;
}

.gga-footer nav a:hover {
    text-decoration: underline;
}

.gga-footer .social-icons {
    margin: 20px 0px 0 0px;
    background-color: #b01f24;
    padding: 10px 0 10px 0;
}

.gga-footer .social-icons a {
    margin: 0 10px;
    display: inline-block;


}

.gga-footer .social-icons img {
    width: 24px;
    height: 24px;
}


/* This hides the theme footer */
.site-below-footer-wrap[data-section="section-below-footer-builder"] {
  display: none;
}


/* This ends the footer section */














/* The following CSS is for the layout of all the inside pages */

article {
    display: block; /* Ensure the container behaves as a block for wrapping */
    padding: 20px; /* Adds space around the content for larger screens */
    overflow: hidden; /* Clears floats within the container */
    box-sizing: border-box; /* Ensures padding is included in width calculations */
}




@media (min-width: 765px) {

article img {
    float: left; /* Floats the image to the left */
    max-width: 50%; /* Keeps the image responsive */
    height: auto; /* Maintains aspect ratio */
    margin: 0 30px 20px 0; /* Adds space around the image */
} }

@media (min-width: 1200px) {

article img {
    float: left; /* Floats the image to the left */
    max-width: 50%; /* Keeps the image responsive */
    height: auto; /* Maintains aspect ratio */
    margin: 0 50px 20px 0; /* Adds space around the image */
}}



@media (max-width: 765px) {
    .entry-content {
        padding: 0 !important; /* Ensures no padding on smaller screens */
        margin: 0 !important; /* Ensures no margin on smaller screens */
        width: 100% !important; /* Forces full width */
    }

    .entry-content img {
        float: none; /* Removes float on smaller screens */
        display: block; /* Ensures image is block-level */
        margin: 0 auto 20px auto; /* Centers image and adds spacing */
        max-width: 100%; /* Allows image to take full width */
    }

    .entry-content {
        text-align: left; /* Ensures text remains left-aligned */
    }

    h1 {
        margin-top: 20px; /* Adds space between the image and heading */
    }
}


a:hover {
    text-decoration: underline !important; /* Add underline on hover */
}

.main-header-menu .sub-menu .menu-item > a:hover {
  text-decoration: none !important;
}

/* Makes the far right sub menu not go off the page */
#menu-item-6083 .sub-menu {
  left: auto;
  right: 0;
  z-index: 1001; /* Slightly higher so it stacks correctly */

}


/* Default state: hidden */
.main-navigation .sub-menu {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s ease-in-out, visibility 0.15s ease-in-out;
}

/* On hover: show */
.main-navigation li:hover > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}


/* Styling for the two-column layout on the page Schedule */
.two-column-layout {
	max-width: 645px;
    display: flex; /* Enables the columns to sit side by side */
    gap: 20px; /* Adjust spacing between the columns */
    margin-top: 20px; /* Adds spacing above the layout */
    margin-bottom: 40px;
}

.two-column-layout .column {
    flex: 1; /* Ensures both columns take equal space */
    padding: 0px; /* Adds some padding inside each column */
}

/* Adjusts layout for smaller screens */
@media (max-width: 768px) {
    .two-column-layout {
        flex-direction: column; /* Stacks the columns vertically on smaller screens */
    }
}

body pre {
    background: none !important;
}


pre {
    font-family: "Georgia"; /* Ensures consistent tab width */
    tab-size: 4; /* Adjust the tab width */
    margin: 0;
    white-space: pre; /* Ensures spaces and tabs are preserved */
    background-color: none !important;
    padding: 0px;

}







/* START MAIN NAV MENU */


@media (min-width: 1051px) {

.main-header-menu > .menu-item.current-menu-item > a::before, /* Main menu active link */
.main-header-menu > .menu-item.current-menu-ancestor > a::before { /* Parent of active sub-menu */
    content: '' !important; /* Empty content for the pseudo-element */
    display: block !important;
    width: 100% !important; /* Full width of the link */
    height: 2px !important; /* Height of the line */
    background: #d6b83f !important; /* Line color */
    position: absolute !important;
    top: 10px !important; /* Position the line at the bottom of the link */
    left: 0px !important;
}  }


/* Remove horizontal line for sub-menu items */
.main-header-menu > .menu-item > a::after {
    content: '' !important; /* Ensures the pseudo-element exists */
    display: none !important; /* Hide line for inactive links */
}

/* Force hover state to remain black */
.main-header-menu > .menu-item > a:hover {
    color: #000; /* Keep text black on hover */
}


/* Remove blue outline/background on sub-menu */
.main-header-menu .sub-menu {
  font-family: 'Open Sans', sans-serif;
  font-size: 18px;
    outline: none !important; /* Removes any outline styling */
    border: none !important; /* Removes any unexpected border */
}

/* Remove focus outline on links within sub-menu */
.main-header-menu .sub-menu .menu-item > a:focus {
    outline: none !important; /* Removes default focus outline */
    background: none !important; /* Removes any background changes */
}

/* Sub-menu background styling */
.main-header-menu .sub-menu {
    background-color: #b01f24; /* Red background for the sub-menu */
    padding: 10px 0; /* Adds space around the sub-menu */
    border-radius: 4px; /* Optional: Rounds the edges */
    width: auto; /* Ensures the sub-menu dynamically adjusts to fit its content */
    white-space: nowrap; /* Prevents text wrapping */
}

/* Sub-menu link styling */
.main-header-menu .sub-menu .menu-item > a {
    color: #FFFFFF; /* White text for sub-menu links */
    text-decoration: none; /* Removes default underline */
    display: block; /* Makes the links block-level for full-clickable area */
    padding: 8px 15px; /* Adds spacing inside each sub-menu item */
    font-size: 19px;
    font-weight: 600; /* Medium font weight */
    font-smoothing: antialiased; /* Improves clarity on some screens */
    white-space: nowrap; /* Prevents text wrapping within each link */
}

/* Sub-menu link active styling */
.main-header-menu .sub-menu .menu-item.current-menu-item > a {
    color: #FFFFFF; /* Keep active link text white */
    background-color: transparent; /* No additional background for active link */
    font-weight: 600; /* Keep font weight consistent */
}

/* Sub-menu link hover effect */
.main-header-menu .sub-menu .menu-item > a:hover {
    background-color: #d6b83f; /* Yellow background on hover */
    color: #FFFFFF; /* Keep text white on hover */
}


/* This removes the down arrow in the main menu */
@media (min-width: 1051px) {
.ast-icon.icon-arrow svg { display: none !important;
}}


/* General styling for main navigation links */
.main-header-menu > .menu-item > a {
  margin: 0 14px 0 14px !important;
    padding: 0 5px 0 5px !important;
  font-family: 'Open Sans', sans-serif;
  font-size: 17px;
    text-decoration: none !important; /* Removes default underline */
    color: #000 !important; /* Ensures all main menu items are black */
    position: relative !important; /* Necessary for the pseudo-element */
    padding-bottom: 5px !important; /* Space for the potential line */
    display: inline-block !important; /* Ensures block-level formatting */
}

/* Horizontal line and text color for active main menu item */
.main-header-menu > .menu-item.current-menu-item > a, /* Main menu active link */
.main-header-menu > .menu-item.current-menu-ancestor > a { /* Parent of active sub-menu */
    color: #000 !important; /* Ensures active link text is black */
}


/* END MAIN NAV MENU */





















/* This is for the Testimonial pages for showing hidden text */

.GGA-testimonials-extra-text {
  display: none;
  margin-bottom: 1em;
}

.GGA-testimonials-toggle-link {
  color: #765b27;
  cursor: pointer;
  text-decoration: none !important;
  margin-left: 0.5em;
}

.GGA-testimonials-toggle-link:hover {
  text-decoration: underline;
  color: #765b27 !important;

}

.testimonial-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1.5rem;
  max-width: 1200px;
  margin: auto;
}

.testimonial-card {
  background-color: #fff;
  border-radius: 16px;
  padding: 1rem;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
  display: block; /* changed from flex to block */
  position: relative;
}


.testimonial-text-inside,
.testimonial-extra {
  font-size: 1rem;
  line-height: 1.6;
  text-align: left;
  margin-bottom: 0px !important;
  padding-bottom: 0px !important
}

.testimonial-extra {
  display: none;
}

.testimonial-extra.show {
  display: inline;
}

.testimonial-toggle {
  color: #765b27;
  cursor: pointer;
  text-decoration: none !important;
  margin-left: 0;
  display: inline;
}

.testimonial-toggle:hover,
.testimonial-toggle:active {
  text-decoration: underline;
  color: #765b27;
}

/* Signature block with square photo */
.testimonial-signature-block {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin-top: 0.5rem;
}

.testimonial-signature-text {
  font-style: italic;
  font-size: 0.9rem;
  text-align: left;
  line-height: 1.4;
  margin: 0;
  flex: 1;
}

.testimonial-avatar-wrapper {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-left: 1rem;
}

.testimonial-avatar-square {
  width: 90px;
  height: auto;
  object-fit: contain;
}

.my-testimonial-images {
   width: 100px; /* Set the width of the image */
  height: 100px; /* Set the height of the image */
  border-radius: 50%; /* Makes the image circular */
  float: right;
  margin: 0px !important;
  padding: 0px !important;
}

.my-testimonial-images img {
  width: 100px; /* Set the width of the image */
  height: 100px; /* Set the height of the image */
  border-radius: 50%; /* Makes the image circular */
  margin: 0px !important;
  padding: 0px !important;

}

.my-signature {
}

/* MOBILE MENU */

/* This changes the color of the hamburger menu */
[data-section="section-header-mobile-trigger"] .ast-button-wrap .mobile-menu-toggle-icon .ast-mobile-svg {

  fill: #b01f24 !important;
}

body.home [data-section="section-header-mobile-trigger"] .ast-button-wrap .mobile-menu-toggle-icon .ast-mobile-svg {

fill: #ffffff !important;

}

/* Mobile menu background color */

@media (max-width: 1050px) {
  .ast-builder-menu-mobile .main-navigation .main-header-menu, .ast-builder-menu-mobile .main-navigation .main-header-menu .menu-link, .ast-builder-menu-mobile .main-navigation .main-header-menu .sub-menu {
    background-color: #B01F24 !important;
  }
}


.ast-builder-menu-mobile .main-navigation .menu-item > a {
  font-family: Georgia, serif;
    color: #ffffff !important;
    font-size: 32px;
    font-weight: 500 !important;
    display: block !important;
    width: 100% !important;
    padding: 0px 20px !important;
    margin: 0 !important;


}

/* Hover state */
.ast-builder-menu-mobile .main-navigation .menu-item > a:hover {
    color: #ffffff !important;
    background-color: #d6b83f !important;
}


/* This keeps the down arrow from having a white background */

.ast-menu-toggle {
  background-color: transparent !important;
  box-shadow: none !important;
  padding-top: 10px !important;
}

/* pushes down the carrot on the mobile menu */
@media (max-width: 1050px) {
  .ast-builder-menu-mobile .main-navigation .menu-item.menu-item-has-children > .ast-menu-toggle {
    top: 20px !important;
  }
}

/* Active state */
.ast-builder-menu-mobile .main-navigation .menu-item.current-menu-item > a,
.ast-builder-menu-mobile .main-navigation .menu-item.current-menu-ancestor > a {

}

/* Slightly smaller font for mobile submenu items */
.ast-header-break-point .main-header-menu .sub-menu li a {
  font-size: 1.35em; /* Just a touch smaller */
}




@media (min-width: 1237px) {

.testimonial-page-title {
	margin-left: 100px;
}}


/* Contact forms */ 

@media (min-width: 767px) {
.gga-contact-form-2025 {
  max-width: 300px;
  float: left;
} }

@media (min-width: 900px) {
.gga-contact-form-2025 {max-width: 350px; } }

@media (min-width: 1120px) {
.gga-contact-form-2025 {max-width: 450px; } }











