/* =======================================================================
   Theme Meta Information 
========================================================================== */
/* 
Theme Name: Stack
Theme URI: --
Description: --
Author: --
Author URI: --
Template: hello-elementor
Version: 2.0.0
Text Domain: stack-child
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* =======================================================================
   Base Font Size & Responsive Typography
========================================================================== */
@import url("https://use.typekit.net/glv5rng.css");

html {
  font-size: 14px; /* Base font size for small screens */
}

@media (min-width: 992px) {
  html {
      font-size: 16px; /* Increased font size for larger screens */
  }
}

body {
font-family: "montserrat", sans-serif;
font-weight: 400;
font-style: normal;

}

@media (max-width: 991px) {
  body {
    overflow-x: hidden;
  }
}

/*.elementor-widget-wrap {
  max-width: 100% !important;
  overflow-x: hidden;
}
*/


li {
  margin-bottom: 0.5rem;
  line-height: 1.6em;
}






/* =======================================================================
   Fonts
========================================================================== */


/* Block Headings Font Sizes */
.wp-block-heading.is-style-h1 {
 font-weight: 700;
  font-style: normal;
  font-size: var(--e-global-typography-c297f56-font-size);
  line-height: var(--e-global-typography-c297f56-line-height);
  letter-spacing: var(--e-global-typography-c297f56-letter-spacing);
  text-transform: var(--e-global-typography-c297f56-text-transform);
}
.wp-block-heading.is-style-h2 {
 font-weight: 700;
  font-style: normal;
  font-size: var(--e-global-typography-21c5652-font-size);
  line-height: var(--e-global-typography-21c5652-line-height);
  letter-spacing: var(--e-global-typography-21c5652-letter-spacing);
  text-transform: var(--e-global-typography-21c5652-text-transform);
}
.wp-block-heading.is-style-h3 {
  font-weight: 700;
  font-style: normal;
  font-size: var(--e-global-typography-9ddb4af-font-size);
  line-height: var(--e-global-typography-9ddb4af-line-height);
  letter-spacing: var(--e-global-typography-9ddb4af-letter-spacing);
  text-transform: var(--e-global-typography-9ddb4af-text-transform);
}
.wp-block-heading.is-style-h4 {
  font-weight: 700;
  font-style: normal;
  font-size: var(--e-global-typography-2fe9092-font-size);
  line-height: var(--e-global-typography-2fe9092-line-height);
  letter-spacing: var(--e-global-typography-2fe9092-letter-spacing);
  text-transform: var(--e-global-typography-2fe9092-text-transform);
}
.wp-block-heading.is-style-h5 {
  font-weight: 700;
  font-style: normal;
  font-size: var(--e-global-typography-a73f9a2-font-size);
  line-height: var(--e-global-typography-a73f9a2-line-height);
  letter-spacing: var(--e-global-typography-a73f9a2-letter-spacing);
  text-transform: var(--e-global-typography-a73f9a2-text-transform);
}


/*** Let's move these into Global Styles and add aboce ***/
.elementor-kit-8 h1,
.elementor-kit-8 h2,
.elementor-kit-8 h3,
.elementor-kit-8 h4,
.elementor-kit-8 h5,
.elementor-kit-8 h6  {
  margin-bottom: 1rem;
  font-weight: 700;
  font-style: normal;
}

h1 span,
h2 span,
h3 span,
h4 span,
h5 span,
h6 span {
  font-weight:400 !important;
}



/* =======================================================================
 Header & Headroom
========================================================================== */
#header {
  background-color: var(--e-global-color-4a6002a);/* Initial 50% opacity */
}
/* Sticky header behavior */
#header.headroom--pinned.headroom--top {
}

/* Sticky header behavior */
#header.headroom--pinned.headroom--not-top {
}

/* Sticky header behavior */
#header.headroom--pinned {
  transform: translateY(0%); /* Sticky header is visible */
}
#header.headroom--unpinned {
  transform: translateY(-100%); /* Hide header when scrolled */
  transition: background-color 0.3s ease;
}

/* =======================================================================
 Main Nav
========================================================================== */
/* Mobile and Table Menu Content */
.elementor-widget-n-menu .e-n-menu[data-layout=dropdown] .e-n-menu-content {
  overflow: hidden;
  max-width: 345px;
  background-color: var(--e-global-color-4a6002a);
}
/* Mobile and Table Menu Title */
.elementor-widget-n-menu .e-n-menu[data-layout=dropdown] .e-n-menu-title {
  justify-content: space-between;
  max-width: 370px;
}
/* Mobile and Table Menu Item */
.elementor-widget-n-menu .e-n-menu[data-layout=dropdown] .e-n-menu-item {
  display: flex;
  flex-direction: column;
  width: 345px;
}
/* Inner Menu List */
.menu-list {
  padding: .5rem 1rem 0rem 0rem;
}

/* Hide the icon by default */
.elementor-widget .elementor-icon-list-icon {
  display: none;
  width: 1em; /* Fixed width to reserve space */
  margin-right: 0.5em;
}

/* Reserve space on the left so text doesn't shift when icon appears */
.elementor-widget .elementor-icon-list-item {
  padding-left: 1.5em;
  position: relative;
}

/* Show the icon and apply color when hovering over the list item */
.elementor-widget .elementor-icon-list-item:hover .elementor-icon-list-icon {
  display: inline-block;
  color: var(--e-global-color-primary) !important;
  fill: var(--e-global-color-primary) !important; /* For SVG icons */
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%); /* Vertically center the icon */
}

/* Remove left padding only for icon list items inside the footer */
.elementor-location-footer .elementor-icon-list-item {
  padding-left: 0 !important;
}
/* List item hover */
.elementor-widget .elementor-icon-list-item a:hover {
  font-weight: bold;
}
/* Inner Menu Heading */
.elementor-widget-n-menu .e-n-menu-heading {
  background-color: transparent;
  padding: 1rem;
  margin-left: auto;
  margin-right: 0;
  text-align: left;
}

/* Inner Menu List Item a link */
.elementor-widget .elementor-icon-list-item, .elementor-widget .elementor-icon-list-item a {
  gap: 0.5rem; /* Space between text and icon */
} 

/* Dropdown container */
.dropdown-container {
  padding: 0 2rem 2rem 2rem !important;
}

/* Mobile */
@media (max-width: 576px) {
  .elementor-widget-n-menu .e-n-menu[data-layout=dropdown] .e-n-menu-title {
    background-color: transparent !important;
  }
  .elementor-widget-n-menu .e-n-menu-heading {
    width: 100%;
    max-width: 385px;
    margin-left: auto;
    margin-right: 0;
    box-shadow: 0px 15px 20px rgba(0, 0, 0, 0.2); /* bottom-only shadow */
    background-color: var(--e-global-color-4a6002a);
    padding: 2rem 1rem;
  }
  
}

/* Tablet */
@media (min-width: 577px) and (max-width: 992px) {
  .elementor-widget-n-menu .e-n-menu[data-layout=dropdown] .e-n-menu-title {
    justify-content: space-between;
    max-width: 450px !important;
    background-color: transparent !important;
  }
  .elementor-widget-n-menu .e-n-menu[data-layout=dropdown] .e-n-menu-item {
    display: flex;
    flex-direction: column;
    width: 425px!important;
  }
  .elementor-widget-n-menu .e-n-menu-heading {
    width: 100%;
    max-width: 450px;
    margin-left: auto;
    margin-right: 0;
    background-color: var(--e-global-color-4a6002a);
    padding: 2rem 1rem;
  }
}

/* Desktop */
@media (min-width: 993px) {
  .elementor-widget-n-menu .e-n-menu-heading {
    padding: 0;
    margin-top: 0;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    height: auto;
  }
}

/* Mobile Menu List Items Paddings */
@media (max-width: 993px) {
  li.elementor-icon-list-item {
    padding-bottom: calc(0.6rem / 1);
  }
}

/* =======================================================================
 Dark & Light Theme Blocks
========================================================================== */
.dark {
  color: var(--e-global-color-d97f477);
  background-color: #444; /* Dark theme styling for blocks */
}

.dark h1, h2, h3, h4, h5, h6, a {
  color: var(--e-global-color-d97f477);
}

/* =======================================================================
 Page Heros
========================================================================== */
/* Home + Large Page Hero + Splash */
#home-hero,
#large-hero,
#splash {
  width: 100% !important;
  height: 100vh;
  min-height: 700px;
  max-height: 1080px;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  position: relative;
  overflow: hidden;
}

/* Responsive heights */
@media (max-width: 1200px) {
  #home-hero,
  #large-hero,
  #splash {
    height: 90vh;
    min-height: 700px;
  }
}
@media (max-width: 992px) {
  #home-hero,
  #large-hero,
  #splash {
    height: 80vh;
    min-height: 600px;
  }
}
@media (max-width: 768px) {
  #home-hero,
  #large-hero,
  #splash {
    height: 65vh;
    min-height: 500px;
    background-position: center top;
  }
}
@media (max-width: 576px) {
  #home-hero,
  #large-hero,
  #splash {
    height: 55vh;
    min-height: 400px;
    background-position: center top;
    background-size: cover;
  }
}

/* Default Page Hero */
#page-hero {
  width: 100%;
  height: 70vh;
  min-height: 500px;
  max-height: 500px;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  overflow: hidden;
}
/* Large screens */
@media (max-width: 1200px) {
  #page-hero {
    height: 60vh;
    min-height: 400px;
  }
}
/* Medium screens */
@media (max-width: 992px) {
  #page-hero {
    height: 55vh;
    min-height: 400px;
  }
}
/* Tablets */
@media (max-width: 768px) {
  #page-hero {
    height: 50vh;
    min-height: 300px;
    background-position: center center;
  }
}
/* Mobile */
@media (max-width: 576px) {
  #page-hero {
    height: 45vh;
    min-height: 300px;
    background-position: center center;
    background-size: cover;
  }
}

/* Minimal Page Hero */
#page-minimal-hero-img {
  width: 100%;
  background-repeat: no-repeat;
  object-fit: cover;
  background-position: center center;
  background-size: cover;
}
/* Desktop (1025px and above) */
@media (min-width: 1025px) {
  #page-minimal-hero-img {
    max-height: 300px;
    min-height: 300px;
  }
  #blog-hero {
    max-height: 550px;
    min-height: 450px;
  }
  /* Blog Hero Img */
  .elementor-widget-theme-post-featured-image img {
    max-height: 400px;
    min-height: 350px;
    height: auto;
    object-fit: cover;
  }
}
/* Tablet (768px - 1024px) */
@media (max-width: 1024px) {
  #page-minimal-hero-img {
    max-height: 300px;
    min-height: 300px;
  }
  /* Blog Hero Img */
  .elementor-widget-theme-post-featured-image img {
    max-height: 350px;
    min-height: 300px;
    height: auto;
    object-fit: cover;
  }
}
/* Mobile (below 768px) */
@media (max-width: 768px) {
  #page-minimal-hero-img {
    max-height: 200px;
    min-height: 200px;
  }
}
/* Small mobile (below 480px) */
@media (max-width: 480px) {
  #page-minimal-hero-img {
    max-height: 140px;
    min-height: 140px;
  }
}

/*** Hero Preload Colour ***/
.elementor-background-video-container { 
  background: radial-gradient(50% 50% at 50% 50%, rgba(19, 32, 63, 1) 0%, rgba(33, 33, 33, 1) 100%);
}
/* Responsive */
@media (min-width: 992px) {
    .elementor-background-video-container { 
        background: 
      /*url('data:image/svg+xml,<svg width="121" height="153" viewBox="0 0 121 153" fill="none" xmlns="http://www.w3.org/2000/svg"><path opacity="0.25" d="M117.527 66.865C112.148 64.6827 108.98 71.045 108.98 71.045C108.98 71.045 105.24 71.9056 100 73.1196C103.138 66.0044 104.807 58.0439 104.807 49.6531C104.807 18.7947 82.4266 0 52.473 0C15.7187 0 0 30.3205 0 51.7739C0 70.1076 8.99537 91.0077 29.7373 99.6904C8.4235 114.151 4.43586 128.244 4.43586 128.244C-3.57033 153.524 18.0989 152.986 18.0989 152.986C35.7342 153.616 63.8795 133.223 63.8795 133.223L63.6013 132.716C46.5997 141.69 41.0047 140.015 30.3091 138.54L28.8872 139.278C38.3462 141.122 33.9876 143.98 33.9876 143.98C16.306 154.23 10.3091 141.153 10.3091 141.153C4.29676 127.306 21.7465 110.755 21.7465 110.755C26.1824 107.159 30.2937 104.101 34.5131 101.381C39.6136 102.933 45.3169 103.809 51.7002 103.809C72.1484 103.809 88.0989 93.8507 97.0016 78.9594C104.56 77.4994 110.788 76.4544 110.788 76.4544C115.07 79.4819 118.594 77.315 120.325 74.1646C121.886 71.337 120.649 68.1251 117.558 66.865H117.527ZM12.643 48.0549C12.643 19.0713 29.3045 4.50274 51.5302 4.50274C72.5657 4.50274 92.0093 21.5917 92.0093 53.3567C92.0093 62.5466 90.5874 69.9231 88.2844 75.8397C85.1932 76.5774 82.0866 77.2996 79.2581 77.9912C72.473 79.6355 51.9166 87.5653 45.085 90.8847C42.4421 92.1602 39.9846 93.4665 37.6662 94.7881C22.7666 87.5346 12.6584 70.7837 12.6584 48.0702L12.643 48.0549ZM55.2705 98.7684C50.7883 98.7684 46.4761 98.0768 42.4575 96.7398C46.9706 94.3732 51.8393 92.2217 57.5425 90.1163C60.4792 89.0252 72.8594 84.4456 78.609 82.955C80.7574 82.4017 83.1994 81.8178 85.7496 81.2645C77.6044 95.5719 63.4622 98.7837 55.2705 98.7837V98.7684ZM116.09 75.1174C114.22 75.8397 112.21 75.1174 111.561 73.5038C110.927 71.8902 111.917 70 113.787 69.2777C115.641 68.5554 117.666 69.2777 118.3 70.8913C118.934 72.5049 117.944 74.3951 116.074 75.1174H116.09Z" fill="white"/></svg>') no-repeat center,*/
      radial-gradient(50% 50% at 50% 50%, rgba(19, 32, 63, 1) 0%, rgba(33, 33, 33, 1) 100%);
    }
}
.elementor-background-video-container video { 
  opacity: 1;
  animation-name: fadeInOpacity;
  animation-iteration-count: 1;
  animation-timing-function: ease-in;
  animation-duration: 2.2s;
}
@keyframes fadeInOpacity {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}


/* =======================================================================
 Buttons
========================================================================== */

/* WP Editor Buttons */
.wp-block-button:not(.is-style-btn-underline) a, .elementor-kit-21991 .elementor-button {
	font-size:0.875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 3px;
	color: var( --e-global-color-text );
	border: solid 2px var( --e-global-color-text );
	border-radius: 2px 2px 2px 2px;
	padding: .75rem 1.25rem .75rem 1.25rem;
	display: inline-block;
	line-height: 1;
	text-align: center;
	transition: all .3s;
  margin-top: 1rem;
  background-color: transparent!important;
}
.wp-block-button:not(.is-style-btn-underline) a:hover,
.elementor-kit-21991 .elementor-button:hover {
  background-color: var( --e-global-color-809f0c8 ) !important;  /* Yellow Light */ 
}
/*** Underline Buttons ***/
.elementor-button-info a.elementor-button,
.wp-block-button.is-style-btn-underline a, 
.elementor-cta__button.elementor-button {
	font-size: 1rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 3px;
	border-style: solid !important;
	border-width: 0px 0px 2px 0px !important;
	border-radius: 0px!important;
  border-bottom: var(--e-global-color-text);
	padding: 0rem 0rem .5rem 0rem !important;
	background-color: transparent !important;
	transition: all .3s;
  margin-top: 1rem;
  color: var(--e-global-color-text);
}
.elementor-button-info a.elementor-button:hover,
.wp-block-button.is-style-btn-underline a:hover,
.elementor-cta__button.elementor-button:hover {
  color: var( --e-global-color-accent ) !important;          /* Red text */
  border-color: var( --e-global-color-accent ) !important;   /* Red border */
  border-bottom: 2px solid var( --e-global-color-accent );   /* Optional underline if not already set */
  background-color: transparent !important; /* Ensure no background interferes */
}


/* =======================================================================
Testimonials
========================================================================== */
.elementor-testimonial-wrapper .elementor-testimonial-content {
  position: relative;
  margin-bottom: 3rem;
}
/* Add opening curly quote */
.elementor-testimonial-content::before {
  content: "“";
  margin-right: 0.1em;
}
/* Add closing curly quote */
.elementor-testimonial-content::after {
  content: "”";
  margin-left: 0.1em;
}
/* meta details alignment */
.elementor-widget-testimonial .elementor-widget-container .elementor-testimonial-wrapper .elementor-testimonial-meta .elementor-testimonial-meta-inner .elementor-testimonial-details {
    flex-direction: row;
    display: flex;
    justify-content: center;
    gap: .5rem;
    align-items: center;
}
@media (max-width:576px) {
  .elementor-widget-testimonial .elementor-widget-container .elementor-testimonial-wrapper .elementor-testimonial-meta .elementor-testimonial-meta-inner .elementor-testimonial-details {
    flex-direction: row;
    display: flex;
    justify-content: center;
    gap: .5rem;
    align-items: center;
    flex-wrap: wrap;
  }
}
.elementor-testimonial-wrapper {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-content: center;
    justify-content: center;
    align-items: center;
}
/* comma after name */
.elementor-testimonial-name::after {
  content: ",";
  margin-left: 0.2em; /* optional spacing */
}
/* =======================================================================
Text + Media
========================================================================== */
.text-media img {
  border-radius: 0;
}
@media (min-width:992px) {
  .text-media img {
    border-radius: 3px;
  }
}

/* =======================================================================
Cards
========================================================================== */
/* Post Card*/
.elementor-posts .elementor-post__card {
  /* Turn the container into a grid with 2 columns and 4 rows */
  display: grid;
  grid-template-columns: auto 1fr; 
  grid-template-rows: auto auto auto;
  grid-template-areas:
    "badge     badge"
    "title     title"
    "thumbnail thumbnail";
  gap: 1rem; /* spacing between grid cells */
  margin-bottom: 1rem;
} 
/* post img */
.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail img {
    display: block !important;
    width: 100%;
    height: auto;
    left: unset !important;
    top: unset !important;
    transform: none!important;
}
/* Full height */
.e-con.e-flex>.e-con-inner {
    flex-wrap: nowrap;
}
/* Post Image Link */
.elementor-post__card .elementor-post__thumbnail__link {
  grid-area: thumbnail;
  margin-bottom: 0!important;
}
/* Post Title */
.elementor-posts .elementor-post__card .elementor-post__title {
  margin-top: 2.5rem;
  line-height: 1.2;
  margin-bottom: 1rem !important;
  width: 100%;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  /* Gentle fade only at the very end */
  mask-image: linear-gradient(to right, black 98%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, black 98%, transparent 100%);
}
.elementor-post__text {
  grid-area: title;
  margin-top: 2rem;
  margin-bottom: 1rem;
  padding: 0 2rem!important;
}

/* Post Badge - Make badge behave like inline-flex for tight spacing */
.elementor-post__card .elementor-post__badge {
  display: inline-flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 0 !important;
  gap: 0.5rem;
  margin: 1rem auto 0 auto!important;
  color: var(--e-global-color-text);
  font-weight: 700;
  letter-spacing: 2px !important;
  background-color: transparent;
  padding: 2rem 2rem!important;
}

/* Related Cards */
.related-cards {
  height: fit-content;
}
.related-cards .elementor-posts .elementor-post__card {
  margin-bottom: -20px !important;
  height: auto;
}

@media (max-width:768px) {
  .related-cards .elementor-posts .elementor-post__card {
    margin-bottom: 0.4rem !important;
    height: fit-content;
  }
}
.related-cards .elementor-posts-container.elementor-posts.elementor-posts--skin-cards.elementor-grid.elementor-has-item-ratio {
    gap: 2rem!important;
}
.related-cards .elementor-post__card {
  position: relative !important;
  overflow: hidden !important;
}

.related-cards .elementor-post__card img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  transform-origin: center center !important;
  transition: transform 0.4s ease !important;
}

.related-cards .elementor-post__card:hover img {
  transform: scale(1.1) !important;
}

/* Post Tag */
.post-tags .elementor-widget-container .elementor-icon-list-items .elementor-icon-list-item {
  padding-left: 0!important;
}

/* Post a */
.elementor-post__title a {
  text-decoration: none;
}

/* Hover on Card Imgs */
/* Img container */
.elementor-posts .elementor-post__card {
  position: relative !important;
  overflow: hidden!important; 
}

/* Image inside the container */
.elementor-posts .elementor-post__card img {
  display: block !important;
  width: 100%;
  height: auto;
  transition: transform 0.4s ease !important;
  transform-origin: center center !important; /* Center zoom */
}

/* Hover effect */
.elementor-posts .elementor-post__card:hover img {
  transform: scale(1.1)!important; /* Increase the size */
}

/* =======================================================================
   Gallery
========================================================================== */
/* Style the footer */
.elementor-slideshow__footer {
  width: 100%;
  z-index: 5;
  padding: 1rem;
  background-color: rgba(0, 0, 0, 0.05); /* semi-transparent teal */
  color: white;
  box-sizing: border-box;
  display: block;
}


/* =======================================================================
   Accordion
========================================================================== */
.elementor-widget-n-accordion .e-n-accordion-item-title-icon span {
    width: 26px;
}

@media (max-width:567px) {
  .elementor-widget-n-accordion .e-n-accordion-item-title-icon span {
    width: 13px;
  }
}
@media (min-width:568px) and (max-width:767px) {
  .elementor-widget-n-accordion .e-n-accordion-item-title-icon span {
    width: 13px;
  }
}
@media (min-width:768px) {
    .elementor-widget-n-accordion .e-n-accordion-item-title-icon span {
    width: 18px;
  }
}
@media (min-width:992px) {
    .elementor-widget-n-accordion .e-n-accordion-item-title-icon span {
    width: 23px;
  }
}
@media (min-width:1200px) {
    .elementor-widget-n-accordion .e-n-accordion-item-title-icon span {
    width: 26px;
  }
}

.e-n-accordion-item[open] .e-n-accordion-item-title {
  border-bottom: none !important;
}
