/**
Theme Name: Jennifer Shelton
Author: Metaglyphics
Author URI: https://metaglyphics.com
Description: Custom Child Theme based on Astra
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: jennifer-shelton
Template: astra
*/

/*******************************************
 Global Styles and Overrides
*******************************************/
@font-face {
    font-family: 'Font Awesome 5 Brands';
    font-style: normal;
    font-weight: 400;
    src: url('/wp-content/plugins/bb-plugin/fonts/fontawesome/5.15.4/webfonts/fa-brands-400.woff2') format('woff2');
    font-display: swap;
}

@font-face {
    font-family: 'Font Awesome 5 Free';
    font-style: normal;
    font-weight: 900;
    src: url('/wp-content/plugins/bb-plugin/fonts/fontawesome/5.15.4/webfonts/fa-solid-900.woff2') format('woff2');
    font-display: swap;
}

@font-face {
    font-family: 'Font Awesome 5 Free';
    font-style: normal;
    font-weight: 400;
    src: url('/wp-content/plugins/bb-plugin/fonts/fontawesome/5.15.4/webfonts/fa-regular-400.woff2') format('woff2');
    font-display: swap;
}



#wp-admin-bar-imagify,
#wp-admin-bar-edit,
#wp-admin-bar-customize,
#wp-admin-bar-fl-theme-builder-edit-link-761,
#wp-admin-bar-fl-theme-builder-edit-link-916,
#wp-admin-bar-fl-theme-builder-edit-link-1025,
#wp-admin-bar-new-fl-builder-template,
#wp-admin-bar-new-wp-help,
#wp-admin-bar-new-fl-theme-layout,
#wp-admin-bar-new-astra-advanced-hook,
#wp-admin-bar-new-astra_adv_header,
#wp-admin-bar-new-user {
	display: none !important;
}

.single #wp-admin-bar-edit {
	display: block !important;
}

.single #wp-admin-bar-fl-builder-frontend-edit-link {
	display: none !important;
}

.ast-container, .ast-container-fluid {
    padding-left: 0;
    padding-right: 0;
}

.ast-header-sticked .site-title {
	font-size: 2em !important;
}


.page-title {
	overflow: hidden;
}
#content .ast-container {
    /* Ensure full width on desktop */
    @media (min-width: 768px) {
        max-width: 100%;
    }
}

.alignright,
.alignrleft {
    
}

.site-footer a:hover {
	text-decoration:underline !important;
}

.ast-footer-copyright {
	text-align: right;
}
@media (max-width: 767px) {
	.ast-footer-copyright {
	text-align: center;
	}	
}

@media (max-width: 767px) {
    .alignright,
    .alignrleft {
        margin: 0 auto 1.4em;
        float: none;
        display: block;
    }

    .services-menu #service-grid {
        max-width: 400px;
        margin: 0 auto;
    }
}

.pp-photo-gallery .pp-gallery-overlay .pp-caption {
	margin: 20px !important;
}

@media (min-width: 768px) {
	.col-divide .fl-col:first-of-type {
	  position: relative;
	}

	.col-divide .fl-col:first-of-type::after {
	  content: "";
	  position: absolute;
	  top: 0; right: 0; bottom: 0;
	  width: 1px;
 	  height: 100%;
	  pointer-events: none;
	  background: linear-gradient(
		to bottom,
		transparent 0%,
		var(--fl-global-gold) 50%,
		var(--fl-global-gold) 50%,
		transparent 100%
	  );
	}

}
.fl-button, .pp-more-link-button, .pp-button {
    position: relative !important;
    background: linear-gradient(to bottom, #a86e89 0%, #8A506B 100%) !important;
    border: none !important;
    border-radius: 4px !important;
    overflow: hidden !important;
}

.fl-button::after, .pp-more-link-button::after, .pp-button::after {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background: #333 !important;
    border-radius: 4px !important;
    opacity: 0 !important;
    transition: opacity 0.3s ease !important;
    pointer-events: none !important;
}

.fl-button:hover::after, .pp-more-link-button:hover::after, .pp-button:hover::after {
    opacity: 1 !important;
}

/* Ensure button text/content stays above the overlay */
.fl-button > *, .pp-more-link-button > *, .pp-button > * {
    position: relative !important;
    z-index: 1 !important;
}

.bottom {
    margin-top: auto;
}

/*******************************************
 Beaver Builder Submenus - Fade In/Out
*******************************************/

.fl-module-menu .fl-menu .fl-has-submenu > .sub-menu {
    transition: all 0.2s ease-in-out;
    /* transition-behavior is not widely supported, removed */
}

body .fl-module-menu .fl-menu .fl-has-submenu.fl-active .sub-menu {
    opacity: 1;
}

body .fl-module-menu .fl-menu .fl-has-submenu:not(.fl-active) .sub-menu {
    opacity: 0;
}

.fl-theme-builder-header-scrolled {
    background: #373737;
}
@media (max-width: 767px) {

	.pp-gallery-filters {
		padding-left: 0 !important;
	}
}

/*******************************************
 Fluid Typography Scale
 Src: https://theadminbar.com/simple-responsive-font-size-calculator/
*******************************************/


/*******************************************
 Fluid Typography Scale + Global Heading Spacing
 Src: https://theadminbar.com/simple-responsive-font-size-calculator/
*******************************************/


/* ------------------------------
 * Heading font sizes (fluid)
 * Beaver Builder & WP Powerpack compatible
 * Excludes headings inside <header> elements
 * ------------------------------ */

/* H1 Styles */
:is(
    h1, 
    .fs-h1, 
    .entry-content h1,
    .fl-heading h1,
    .fl-module-heading h1,
    .pp-heading h1,
    .pp-heading-text,
    .heading-title,
    h1.fl-heading-text,
    h1.pp-heading-text,
    h1.heading-title,
    .fs-h1 h1,
    .fs-h1 h2,
    .fs-h1 h3,
    .fs-h1 h4,
    .fs-h1 h5,
    .fs-h1 h6,
    .fs-h1 .heading-title,
    h1.fs-h1, h2.fs-h1, h3.fs-h1, h4.fs-h1, h5.fs-h1, h6.fs-h1
):not(header *, header) {
    font-size: clamp(3rem, 2.3182rem + 2.7273vw, 4.5rem) !important;
}

/* H2 Styles */
:is(
    h2, 
    .fs-h2, 
    .entry-content h2,
    .fl-heading h2,
    .fl-module-heading h2,
    .pp-heading h2,
    h2.fl-heading-text,
    h2.pp-heading-text,
    h2.heading-title,
    .fs-h2 h1,
    .fs-h2 h2,
    .fs-h2 h3,
    .fs-h2 h4,
    .fs-h2 h5,
    .fs-h2 h6,
    .fs-h2 .heading-title,
    h1.fs-h2, h2.fs-h2, h3.fs-h2, h4.fs-h2, h5.fs-h2, h6.fs-h2
):not(header *, header) {
    font-size: clamp(2.25rem, 1.7386rem + 2.0455vw, 3.375rem) !important;
}

/* H3 Styles */
:is(
    h3, 
    .fs-h3, 
    .entry-content h3,
    .fl-heading h3,
    .fl-module-heading h3,
    .pp-heading h3,
    h3.fl-heading-text,
    h3.pp-heading-text,
    h3.heading-title,
    .fs-h3 h1,
    .fs-h3 h2,
    .fs-h3 h3,
    .fs-h3 h4,
    .fs-h3 h5,
    .fs-h3 h6,
    .fs-h3 .heading-title,
    h1.fs-h3, h2.fs-h3, h3.fs-h3, h4.fs-h3, h5.fs-h3, h6.fs-h3
):not(header *, header) {
    font-size: clamp(1.875rem, 1.4489rem + 1.7045vw, 2.8125rem) !important;
}

/* H4 Styles */
:is(
    h4, 
    .fs-h4, 
    .entry-content h4,
    .fl-heading h4,
    .fl-module-heading h4,
    .pp-heading h4,
    h2.fl-matthews-heading-text,
    h4.fl-heading-text,
    h4.pp-heading-text,
    h4.heading-title,
    .fs-h4 h1,
    .fs-h4 h2,
    .fs-h4 h3,
    .fs-h4 h4,
    .fs-h4 h5,
    .fs-h4 h6,
    .fs-h4 .heading-title,
    h1.fs-h4, h2.fs-h4, h3.fs-h4, h4.fs-h4, h5.fs-h4, h6.fs-h4
):not(header *, header) {
    font-size: clamp(1.5rem, 1.1591rem + 1.3636vw, 2.25rem) !important;
}

/* H5 Styles */
:is(
    h5, 
    .fs-h5, 
    .entry-content h5,
    .fl-heading h5,
    .fl-module-heading h5,
    .pp-heading h5,
    h5.fl-heading-text,
    h5.pp-heading-text,
    h5.heading-title,
    .fs-h5 h1,
    .fs-h5 h2,
    .fs-h5 h3,
    .fs-h5 h4,
    .fs-h5 h5,
    .fs-h5 h6,
    .fs-h5 .heading-title,
    h1.fs-h5, h2.fs-h5, h3.fs-h5, h4.fs-h5, h5.fs-h5, h6.fs-h5
):not(header *, header) {
    font-size: clamp(1.25rem, 0.9659rem + 1.1364vw, 1.875rem) !important;
}

/* H6 Styles */
:is(
    h6, 
    .fs-h6, 
    .entry-content h6,
    .fl-heading h6,
    .fl-module-heading h6,
    .pp-heading h6,
    h6.fl-heading-text,
    h6.pp-heading-text,
    h6.heading-title,
    .fs-h6 h1,
    .fs-h6 h2,
    .fs-h6 h3,
    .fs-h6 h4,
    .fs-h6 h5,
    .fs-h6 h6,
    .fs-h6 .heading-title,
    h1.fs-h6, h2.fs-h6, h3.fs-h6, h4.fs-h6, h5.fs-h6, h6.fs-h6
):not(header *, header) {
    font-size: clamp(1.125rem, 0.8693rem + 1.0227vw, 1.6875rem) !important;
}

/* ------------------------------
 * Small text (Beaver Builder & Powerpack compatible)
 * ------------------------------ */
.fs-small:not(header *, header),
.fs-small p:not(header *, header),
.fs-small h1:not(header *, header),
.fs-small h2:not(header *, header),
.fs-small h3:not(header *, header),
.fs-small h4:not(header *, header),
.fs-small h5:not(header *, header),
.fs-small h6:not(header *, header),
.fs-small .heading-title:not(header *, header),
.pp-content-grid-post-meta.fs-small:not(header *, header),
.fl-module-content .fs-small:not(header *, header),
.pp-post-meta.fs-small:not(header *, header) {
    font-size: clamp(0.8rem, 0.7045rem + 0.3825vw, 1rem) !important;
}

/* Uppercase meta text */
.pp-content-grid-post-meta.fs-small,
.pp-post-meta.fs-small,
meta.fs-small {
    text-transform: uppercase;
}

/* ------------------------------
 * Heading line-height & spacing
 * Beaver Builder & Powerpack compatible
 * ------------------------------ */
h1:not(header *, header), 
h2:not(header *, header), 
h3:not(header *, header), 
h4:not(header *, header), 
h5:not(header *, header), 
h6:not(header *, header),
.fs-h1:not(header *, header), 
.fs-h2:not(header *, header), 
.fs-h3:not(header *, header), 
.fs-h4:not(header *, header), 
.fs-h5:not(header *, header), 
.fs-h6:not(header *, header),
.heading-title:not(header *, header),
.fs-h1 h1:not(header *, header), .fs-h1 h2:not(header *, header), .fs-h1 h3:not(header *, header), .fs-h1 h4:not(header *, header), .fs-h1 h5:not(header *, header), .fs-h1 h6:not(header *, header),
.fs-h2 h1:not(header *, header), .fs-h2 h2:not(header *, header), .fs-h2 h3:not(header *, header), .fs-h2 h4:not(header *, header), .fs-h2 h5:not(header *, header), .fs-h2 h6:not(header *, header),
.fs-h3 h1:not(header *, header), .fs-h3 h2:not(header *, header), .fs-h3 h3:not(header *, header), .fs-h3 h4:not(header *, header), .fs-h3 h5:not(header *, header), .fs-h3 h6:not(header *, header),
.fs-h4 h1:not(header *, header), .fs-h4 h2:not(header *, header), .fs-h4 h3:not(header *, header), .fs-h4 h4:not(header *, header), .fs-h4 h5:not(header *, header), .fs-h4 h6:not(header *, header),
.fs-h5 h1:not(header *, header), .fs-h5 h2:not(header *, header), .fs-h5 h3:not(header *, header), .fs-h5 h4:not(header *, header), .fs-h5 h5:not(header *, header), .fs-h5 h6:not(header *, header),
.fs-h6 h1:not(header *, header), .fs-h6 h2:not(header *, header), .fs-h6 h3:not(header *, header), .fs-h6 h4:not(header *, header), .fs-h6 h5:not(header *, header), .fs-h6 h6:not(header *, header),
.fs-h1 .heading-title:not(header *, header), .fs-h2 .heading-title:not(header *, header), .fs-h3 .heading-title:not(header *, header), 
.fs-h4 .heading-title:not(header *, header), .fs-h5 .heading-title:not(header *, header), .fs-h6 .heading-title:not(header *, header),
.fl-heading h1:not(header *, header), .fl-heading h2:not(header *, header), .fl-heading h3:not(header *, header), .fl-heading h4:not(header *, header), .fl-heading h5:not(header *, header), .fl-heading h6:not(header *, header),
.fl-module-heading h1:not(header *, header), .fl-module-heading h2:not(header *, header), .fl-module-heading h3:not(header *, header), .fl-module-heading h4:not(header *, header), .fl-module-heading h5:not(header *, header), .fl-module-heading h6:not(header *, header),
.pp-heading h1:not(header *, header), .pp-heading h2:not(header *, header), .pp-heading h3:not(header *, header), .pp-heading h4:not(header *, header), .pp-heading h5:not(header *, header), .pp-heading h6:not(header *, header),
.fl-heading-text:not(header *, header),
.pp-heading-text:not(header *, header) {
    line-height: 1.2 !important;
    margin-top: 0;
    margin-bottom: 1em;
}

/* Override Beaver Builder's default margins if needed */
.fl-module-heading .fl-heading:not(header *, header),
.fl-module-heading .pp-heading:not(header *, header) {
    margin-bottom: 1em;
}

/* ------------------------------
 * Responsive adjustments for smaller screens
 * ------------------------------ */
@media (max-width: 768px) {
    h1:not(header *, header), 
    .fs-h1:not(header *, header), 
    .fl-heading h1:not(header *, header), 
    .pp-heading h1:not(header *, header),
    h1.heading-title:not(header *, header),
    .fs-h1 h1:not(header *, header), .fs-h1 h2:not(header *, header), .fs-h1 h3:not(header *, header), .fs-h1 h4:not(header *, header), .fs-h1 h5:not(header *, header), .fs-h1 h6:not(header *, header),
    .fs-h1 .heading-title:not(header *, header) { 
        line-height: 1.1 !important; 
        margin-bottom: 0.8em !important; 
    }
    
    h2:not(header *, header), 
    .fs-h2:not(header *, header),
    .fl-heading h2:not(header *, header),
    .pp-heading h2:not(header *, header),
    h2.heading-title:not(header *, header),
    .fs-h2 h1:not(header *, header), .fs-h2 h2:not(header *, header), .fs-h2 h3:not(header *, header), .fs-h2 h4:not(header *, header), .fs-h2 h5:not(header *, header), .fs-h2 h6:not(header *, header),
    .fs-h2 .heading-title:not(header *, header) { 
        line-height: 1.15 !important; 
        margin-bottom: 0.75em !important; 
    }
    
    h3:not(header *, header), 
    .fs-h3:not(header *, header),
    .fl-heading h3:not(header *, header),
    .pp-heading h3:not(header *, header),
    h3.heading-title:not(header *, header),
    .fs-h3 h1:not(header *, header), .fs-h3 h2:not(header *, header), .fs-h3 h3:not(header *, header), .fs-h3 h4:not(header *, header), .fs-h3 h5:not(header *, header), .fs-h3 h6:not(header *, header),
    .fs-h3 .heading-title:not(header *, header) { 
        line-height: 1.2 !important; 
        margin-bottom: 0.7em !important; 
    }
    
    h4:not(header *, header), 
    .fs-h4:not(header *, header),
    .fl-heading h4:not(header *, header),
    .pp-heading h4:not(header *, header),
    h4.heading-title:not(header *, header),
    .fs-h4 h1:not(header *, header), .fs-h4 h2:not(header *, header), .fs-h4 h3:not(header *, header), .fs-h4 h4:not(header *, header), .fs-h4 h5:not(header *, header), .fs-h4 h6:not(header *, header),
    .fs-h4 .heading-title:not(header *, header) { 
        line-height: 1.25 !important; 
        margin-bottom: 0.6em !important; 
    }
    
    h5:not(header *, header), 
    .fs-h5:not(header *, header),
    .fl-heading h5:not(header *, header),
    .pp-heading h5:not(header *, header),
    h5.heading-title:not(header *, header),
    .fs-h5 h1:not(header *, header), .fs-h5 h2:not(header *, header), .fs-h5 h3:not(header *, header), .fs-h5 h4:not(header *, header), .fs-h5 h5:not(header *, header), .fs-h5 h6:not(header *, header),
    .fs-h5 .heading-title:not(header *, header) { 
        line-height: 1.3 !important; 
        margin-bottom: 0.5em !important; 
    }
    
    h6:not(header *, header), 
    .fs-h6:not(header *, header),
    .fl-heading h6:not(header *, header),
    .pp-heading h6:not(header *, header),
    h6.heading-title:not(header *, header),
    .fs-h6 h1:not(header *, header), .fs-h6 h2:not(header *, header), .fs-h6 h3:not(header *, header), .fs-h6 h4:not(header *, header), .fs-h6 h5:not(header *, header), .fs-h6 h6:not(header *, header),
    .fs-h6 .heading-title:not(header *, header) { 
        line-height: 1.35 !important; 
        margin-bottom: 0.4em !important; 
    }
}

/* ------------------------------
 * Additional Powerpack module support
 * ------------------------------ */

/* PP Info Box headings */
.pp-info-box-title:not(header *, header),
.pp-info-box-title h1:not(header *, header),
.pp-info-box-title h2:not(header *, header),
.pp-info-box-title h3:not(header *, header),
.pp-info-box-title h4:not(header *, header),
.pp-info-box-title.heading-title:not(header *, header) {
    line-height: 1.2 !important;
}

/* PP Pricing Table headings */
.pp-pricing-table-title:not(header *, header),
.pp-pricing-table-title.heading-title:not(header *, header) {
    line-height: 1.2 !important;
}

/* PP Content Grid headings */
.pp-content-post-title:not(header *, header),
.pp-content-post-title h1:not(header *, header),
.pp-content-post-title h2:not(header *, header),
.pp-content-post-title h3:not(header *, header),
.pp-content-post-title.heading-title:not(header *, header) {
    line-height: 1.2 !important;
}


/*******************************************
 Row Stretches
*******************************************/

.full-width-row_left-contained {
    padding-left: calc((100vw - var(--fl-builder-row-width)) / 2 - var(--fl-builder-row-margin-left));
}


/*******************************************
 Responsive Videos
*******************************************/

.responsive-video {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 ratio */
  height: 0;
  overflow: hidden;
  max-width: 100%;
}

.responsive-video iframe,
.responsive-video object,
.responsive-video embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}


/*******************************************
 Responsive Image Wrapper
*******************************************/

.image-wrapper {
  position: relative;
  display: inline-block;
  max-width: 100%; /* Ensures wrapper scales down on smaller screens */
}

.image-wrapper::after {
  content: '';
  position: absolute;
  top: 10px;  /* Use percentage for better responsiveness */
  left: 10px;
  width: 100%;
  height: 100%;
  background-color: var(--fl-global-gold);
  z-index: 0;
  border-radius: inherit; /* Optional: follows any image border-radius */
}

.image-wrapper img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;     /* Makes image responsive */
  height: auto;    /* Preserve aspect ratio */
  max-width: 100%; /* Prevent overflow */
  border-radius: 0; /* Optional: remove or customize as needed */
}



/*******************************************
 Social Icons (Clean Consolidated)
*******************************************/

/* Container list */
.acf-social-icons-list {
  display: flex;
  align-items: center;
  gap: 1rem;
  list-style: none;
  padding: 0 !important;
  margin: 0 !important;
}

/* Optional alignment for header variant */
/*.header-social .acf-social-icons-list { justify-content: flex-end; }*/

/* List items */
.acf-social-icons-list li {
  display: flex;
  align-items: center;
}

/* General icon link */
.acf-social-icon-link {
  color: var(--fl-global-gold);
  fill: var(--fl-global-gold);
  font-size: 1.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  text-decoration: none !important;
  background: none;
  border: none;
  outline: none;
  box-shadow: none;
  line-height: 1 !important;
  transition: color 0.3s ease, fill 0.3s ease;
}

/* Hover and focus states */
.acf-social-icon-link:hover,
.acf-social-icon-link:focus {
  color: var(--fl-global-blue) !important;
  fill: var(--fl-global-blue) !important;
  text-decoration: none;
  background: none;
  border: none;
  box-shadow: none;
}

/* Font Awesome icons */
.acf-social-icon-link .fab,
.acf-social-icon-link .fas {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  line-height: 1;
  font-size: inherit;
}

/* SVG container */
.acf-social-icon-svg {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  width: auto;
  height: 1em;
  line-height: 1;
}

/* SVG styling */
.acf-social-icon-svg svg {
  display: block; /* Remove inline baseline gap */
  width: auto;
  height: 1em;
  fill: currentColor;
}

/* Special IMDb icon fix */
.acf-social-icon-link svg.imdb-icon {
  width: 24px;
  height: auto;
  fill: var(--fl-global-gold);
  transition: fill 0.3s ease;
}

/* Accessibility: screen reader text */
.acf-social-icon-link .sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
}

/* Responsive center alignment */
@media (max-width: 544px) {
  .acf-social-icons-list {
    justify-content: center;
  }
}



/*******************************************
 Custom Styles
*******************************************/

.heading-script {
    color: var(--fl-global-gold);
    font-family: Satisfy, cursive;
    font-size: 1.3em;
}

.fl-matthews-heading-text {
    color: var(--fl-global-charcoal);
    font-weight: 600;
}







