/*
 Theme Name:     Construction Executive
 Theme URI:      https://www.elegantthemes.com/gallery/divi/
 Description:    Construction Executives Theme
 Author:         Unreal Web marketing
 Author URI:     https://www.elegantthemes.com
 Template:       Divi
 Version:        1.0.0
*/


/* =Theme customization starts here
------------------------------------------------------- */

/*css copied over at 1:35pm  8/25*/
/*stylesheet for Construction Executive*/


/* ========================== BEGIN General Rules========================== */
div#et-boc {
  overflow-x: hidden;
}

.color-white{
	color:#ffffff!important;
}

.small-text{
	font-size:18px!important;
	line-height:24px!important;
	font-weight:300!important;
}

.white-text{color:#ffffff!important;}

.text-align-center{text-align:center;}


ul.no-bullets{
	list-style:none;
}

.list-w-icons li a,
.list-w-icons li{
    display: flex;
    align-items: center;
    gap: .33em;
}

.icon-small {
  display:inline-block;
    width: 28px;
    height: 28px;
  }
  
  .icon-small svg {
    display: block;
    width: 100%;
    height: 100%;
  }
  
  .blocked{display:block;
  line-height:1.3em;}
  
  .min-300{
    min-width:300px;
  }

  .et-pb-icon {
    font-family: 'ETmodules';
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

.fweight-700{
	font-weight:700!important;
}

/* ============= flex stuff ============= */
.d-flex{
	display:flex;
}
/* ============= end flex stuff ============= */
/* ========== END General Rules ========== */

/* ========== BEGIN Typogrophy ========== */

/*general headings*/
h4:not([class]), 
h4[class=""] {
  font-size: 24px;
    font-weight: 500;
    line-height: 1.2em;
}
/*end general headings*/

h1 .subtitle{
	font-size:.75em;
	font-weight:300;
	display:block;
	line-height:1.4em;
}

.page-template-default h2 {
  font-size: 36px;
  font-weight: 700;
  line-height: 1.3em;
}

.sponsored-content-row .post-content-inner p {
  font-size: 18px!important;
  line-height: 1.4em!important;
}

body{color:#000;}


h3.contact-title{
	font-size:32px;
	font-weight:700;
}

h2.bordered-h2 {
    font-size: 36px;
    font-weight: 700;
    line-height: 42px;
    padding-bottom: 0;
    margin-bottom: 1.25rem;
}

h1.page-title{
	font-weight: 700!important;
    font-size: 56px;
    color: #FFFFFF !important;
	line-height: 1.3em;
	padding-bottom:0;
}

.issues-grid h3.issue-title a {
    font-weight: 500;
    font-size: 20px;
	text-align:center;
}

.issues-grid h3{
	text-align:center;
}

.cover_story h3 {
    font-weight: 700;
    font-size: 26px;
    line-height: 1.3em;
}

.cover_story .acf-post-item .excerpt,
.feature_stories .acf-post-item .excerpt,
.departments .acf-post-item .excerpt{
	font-size:18px;
	font-weight:500;
}

.feature_stories h3 a,
.departments h3 a{
    font-size: 24px;
    font-weight: 700;
    line-height: 1.1em;
}


.bordered-h2{
	border-bottom: 1px solid #d3d3d3;
}

.custom-pagination a {
  font-size: 1.25em;
  font-weight:700;
}

.category .et_pb_post .post-meta{
	font-size:16px!important;
}

.static-text p, .static-text a {
  font-size: 18px;
}

.et_pb_module p {
  font-size: 20px;
  font-weight: 500;
  line-height: 30px;
}

p + h2 {
    padding-top: 1.25rem;
}

h2{padding-bottom:0;}

h2.pgs-group-title {
    font-size: 1.75rem;
}

h3.key-title {
    font-size: 24px;
}
/* ========== END Typogrophy ========== */

/* ========== BEGIN Header ========== */
/*header elements*/
a.subscribe-button{background-color: rgb(163, 187, 80);
  border-radius: 9999px;
  font-size: 1rem;
  padding:.75rem 1.5rem;
color:#ffffff;
font-weight:bold;
text-transform:uppercase;
letter-spacing:.07em;
}

.subscribe-button-holder, .search-holder{
  display: flex;
align-items: center;
justify-content: flex-end;
}

.logo-link svg path{
fill:#ffffff;
}

div#menuToggle span {
background-color: #ffffff;
}

header svg{
  transition: width .75s;
}


header .logo-holder{
  min-width:358px;
}

header .has_et_pb_sticky svg{
  width:200px;
height:auto;
}
/*end header elements*/

/*navigation rules*/
.vertical-header{position: absolute;
  left: -48px;
  transform: rotate(180deg);
  writing-mode: vertical-lr;}

.vertical-header h4 {
  font-size: 36px!important;
  color: #65b3de;
  font-weight: 700;
}

/*category navigation in header*/

#header-cat-nav .subcategory-nav {
    margin-bottom: 0em;
    border-bottom: none;
   border-top: 1px solid #ccc;
    padding-top: .5rem;
    border-bottom: 1px solid #ccc;
    padding-bottom: .5rem;
}

.category #header-cat-nav 
 {
    display: none;
}


/* ========== END Header ========== */

/* ========== BEGIN Footer ========== */
ul.footer-link-list{
	list-style:none;
	padding:0;
	margin:0;
}
a.footer-link{
	color:#ffffff;
	font-size:.875rem;
}

.grid-container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(2, auto);
  gap: 2rem; /* 2rem of space between rows and columns */
}

.grid-box {padding:0;
}

.grid-box ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.grid-box li {
  margin-bottom: 0.5rem; /* Optional: spacing between list items */
}


h4.footer-heading {
    font-size: 22px;
    font-weight: 300;
    font-family: 'League Spartan', Helvetica, Arial, Lucida, sans-serif;
	border-bottom: 1px solid #ffffff;
    margin-bottom: .75rem;
}

p.copyright-information{
	font-size:.875rem;
}


/* ========== END Footer ========== */

/* ========================== Template Styling ========================== */

/* ============= Begin Issues Templte ============= */

/* Section wrapper */
.acf-section {
  margin: 2rem auto;
  max-width: 1280px;
  padding: 0 20px;
}

.acf-section-title
{
  font-size: 1.8rem;
  margin-bottom: 1.5rem;
  font-weight: 700;
  border-bottom: 3px solid #333;
  padding-bottom: 0.5rem;
}

.static-text h3{
  font-size: 1.8rem;
  font-weight: 700;
  
}

/* General post list layout */
.acf-post-list {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}

.acf-post-list.cols-3 .acf-post-item {
  flex: 1 1 calc(33.333% - 1.34rem);
}

.acf-post-list.cols-4 .acf-post-item {
  flex: 1 1 calc(25% - 1.5rem);
}

/* Default post item */
.acf-post-item {
 
  display: flex;
  flex-direction: column;
}

/* Post thumbnail general */
.acf-post-item .post-thumbnail img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
}

/* Cover Story Layout (side-by-side) */
.cover_story .acf-post-list {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 2rem;
}

.cover_story .acf-post-item {
  flex-direction: row;
  gap: 2rem;
  align-items: center;
}

/* Cover image same width as 1/3 column */
.cover_story .acf-post-item .post-thumbnail {
  flex: 0 0 calc(33.333% - 1.34rem);
  max-width: calc(33.333% - 1.34rem);
}

.cover_story .acf-post-item .post-thumbnail img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
}

/* Cover content takes remaining space */
.cover_story .acf-post-item .content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Category buttons */
.acf-post-item .categories a {
 display: inline-block;
    background-color: transparent;
    color: #000000;
    padding: 0;
    border-radius: 0px;
    font-weight: 500;
    font-size: 0.875rem;
    text-decoration: none;
    margin: 0;
}

/*.acf-post-item .categories a:after {
    content: "|";
    margin-left: .5rem;
    margin-right: .5rem;
}*/


/* Title */
.acf-post-item h3 {
  font-size: 1.2rem;
  margin: 0.3rem 0;
  line-height: 1.3;
}

.acf-post-item h3 a {
  color: #000;
  text-decoration: none;
}

.acf-post-item h3 a:hover {
  text-decoration: underline;
}

/* Author line */
.acf-post-item .author {
  font-size: 0.85rem;
  color: #666;
  margin-bottom: 0.5rem;
}

/* Divider line */
.post-divider {
  border: none;
  border-bottom: 1px solid #ccc;
  margin: 0.75rem 0;
}

/* Excerpt */
.acf-post-item .excerpt {
  font-size: 0.95rem;
  color: #444;
  line-height: 1.5;
  margin-top: 0.5rem;
}

/* Recommended Issues */
.recommended_issues .acf-post-item {
  text-align: center;
}

.recommended_issues .acf-post-item img {
  max-height: 240px;
  object-fit: contain;
  margin: 0 auto;
}

/* Archive button */
.view-issue-archive-btn {
  display: inline-block;
  margin: 2rem auto 0;
  padding: 0.75rem 1.5rem;
  font-weight: 600;
  font-size: 1rem;
  border-radius: 40px;
  background: #8cc63f;
  color: #fff;
  text-align: center;
  text-decoration: none;
  transition: background 0.3s ease;
}

.view-issue-archive-btn:hover {
  background: #76b129;
}

/*add svg to issue title*/
h1.issue-title{
	font-weight: 600;
    font-size: 48px;
}


h1.issue-title::before {
  content: "";
  display: inline-block;
  background-image: url('/wp-content/uploads/2025/10/magazine-issue-icon.svg');
  background-size: contain;
  background-repeat: no-repeat;
  width: 87px;
  height: 52px;
  margin-right: 12px;
  vertical-align: middle;
}



/* Responsive breakpoints */
@media (max-width: 1024px) {
  .acf-post-list.cols-4 .acf-post-item,
  .acf-post-list.cols-3 .acf-post-item {
    flex: 1 1 calc(50% - 1rem);
  }
}

@media (max-width: 768px) {
  .acf-post-item {
    flex: 1 1 100% !important;
  }

  .cover_story .acf-post-list,
  .cover_story .acf-post-item {
    flex-direction: column;
    align-items: flex-start;
	  max-width:100%;
  }

  .cover_story .acf-post-item .post-thumbnail,
  .cover_story .acf-post-item .content {
    max-width: 100%;
    flex: 1 1 100%;
  }
	
	h1.issue-title{
	font-weight: 600;
    font-size: 34px;
}
	h1.issue-title::before {
  width: 55px;
  height: 40px;
  
}
}

/* Light section title border */
.acf-section-title {
  border-bottom: 1px solid #d3d3d3;
}

/* Green category buttons */
.acf-post-item .categories a {
  display: inline-block;
  background-color: #263747;
  color: #ffffff;
  padding: 0.125rem 0.75rem;
  border-radius: 4px;
  font-weight: 700;
  font-size: 0.75rem;
  text-decoration: none;
  margin: 0.5rem 0 0.75rem;
  margin-right: 5px;
}

/* Read More Button (Cover Story only) */
.read-more-btn {
  display: inline-block;
  margin-top: 1rem;
  padding: 0.5rem 1.25rem;
  border: 1px solid #000;
  border-radius: 50px;
  color: #000;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.9rem;
  transition: background-color 0.2s ease;
}

.read-more-btn:hover {
  background-color: #000;
  color: #fff;
}

/* Add box shadow to images or their wrappers */
.acf-post-item .post-thumbnail,
.acf-post-item .post-thumbnail img {
  box-shadow: 0px 2px 18px 0px rgba(0, 0, 0, 0.3);
}

.recommended_issues .acf-post-item .post-thumbnail,
.recommended_issues .acf-post-item .post-thumbnail img {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.0);
}



.acf-section:not(.cover_story) .acf-post-item {
  max-width: 604px;
  width: 100%;
}

.acf-section:not(.cover_story) .acf-post-list {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  justify-content: center; /* Optional but recommended */
}

/* Prevent recommended issue images from stretching */
.recommended_issues .acf-post-item .post-thumbnail img {
  width: auto;
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}


/*styles for abcs and nuts and bolts*/

.acf-static-block {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.static-wrapper {
  position: relative;
  width: 100%;
  max-width: 360px;
}

.static-text {
  background: #ffffff;
  padding: 2rem;
  position: relative;
  text-align: center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  z-index: 1;
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.popup-post-list {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  background: #ffffff;
  padding: 1rem;
  border: 1px solid #ddd;
  box-shadow: 0 6px 12px rgba(0,0,0,0.15);
  z-index: 10;
  margin-top: 1rem;
  opacity: 0;
  animation: fadeIn 0.5s ease forwards;
}

.popup-post-list.fade-in {
  animation: fadeIn 0.5s ease forwards;
}

.toggle-post-list {
  display: inline-block;
  margin-top: 1rem;
  font-weight: bold;
}

/*more custom*/
.popup-post-list ul li {
    margin-bottom: .5rem;
    border-bottom: 1px solid #333;
    text-align:left;
}
.popup-post-list ul {
    list-style: none;
    padding-left: 0;
    text-align: center;
    font-size: 16px;
}

.static-wrapper{
	margin-top: -90px !important;
}

.static-text, .popup-list{
	border-radius:6px;
}

/*style other ads query result*/

.acf-post-list.cols-1.center-single {
  justify-content: center;
}

.acf-post-list.cols-1.center-single .acf-post-item {
  max-width: 604px;
  width: 100%;
}

.acf-post-list.cols-3 .acf-post-item {
  flex: 0 0 calc(33.333% - 1.34rem);
  max-width: calc(33.333% - 1.34rem);
}



/*adjust issues layout for mobile*/
@media (min-width: 769px) and (max-width: 1250px) {

.acf-post-list.cols-3 .acf-post-item {
    flex: 0 0 calc(50% - 1.34rem);
    max-width: calc(50% - 1.34rem);
}
}

@media (max-width: 768px){
	
.acf-post-list.cols-3 .acf-post-item {
    max-width: 100%;
}
.static-wrapper{
	margin-top: -20px !important;
}	
}

/*end mobile adjustment*/




.recommended_issues .author,
.recommended_issues .post-divider{
	display:none;
}

/* Targeting the issue content images for cover stories, feature stories, and departments */
.acf-section .acf-post-item .post-thumbnail img {
    width: 100%;  /* Make the image responsive */
    height: 240px; /* Set the height to 240px to maintain aspect ratio */
    object-fit: cover; /* Ensure the image covers the area without stretching */
}

/* Ensure the post-thumbnail div maintains the correct size for cover stories, feature stories, and departments */
.acf-section .acf-post-item .post-thumbnail {
    width: 100%;
    height: 240px; /* Fixed height of 240px */
    overflow: hidden; /* Crop the image to fit without stretching */
}

/* Exclude the Recommended Issues section from the above image sizing */
.acf-section.recommended_issues .acf-post-item .post-thumbnail img {
    width: 100%;  /* Keep the image responsive */
    height: auto; /* Don't set a fixed height for Recommended Issues */
    object-fit: contain; /* Maintain aspect ratio without cropping */
}


a.rec-pagination-link{
    font-weight: 700!important;
    font-size: 1.25em!important;
    color: #2ea3f2!important;
}

.category-archive-pagination a.pagination-link {
    font-size: 16px; /* Adjust the font size if necessary */
    text-decoration: none;
    color: #333; /* Set the color of the text */
    padding: 10px;
}

.category-archive-pagination a.pagination-link:hover {
    color: #0073e6; /* Change the text color on hover */
}

.category-archive-pagination .older-articles a {
    margin-right: auto; /* Align the older articles on the left */
}

.category-archive-pagination .newer-articles a {
    margin-left: auto; /* Align the newer articles on the right */
}
/* Make images responsive and full-width within their containers */
.category-archive-item .post-thumbnail img {
    width: 100%;  /* Make the image span the full width of the container */
    height: auto; /* Maintain the aspect ratio */
    object-fit: cover; /* This ensures the image doesn't stretch or squash */
    display: block; /* Removes any unwanted space below the image */
}


.category-archive-item {
    width: 100%; /* Ensure the item itself is full width */
    overflow: hidden; /* Prevent any overflow */
	padding: 1rem;
    box-sizing: border-box;
    width: 100%;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    border: 1px solid #d8d8d8;
    border-radius: 8px;
}

.category-archive-item img {
    margin-bottom: 1.5rem;
}

.category-archive-item h3 {
    font-size: 20px;
    font-weight: 600;
	margin-top: 1rem;
    text-align: center;
}

#filter-toggle {
    background-color: #65b3de;
    padding: .75rem 1rem;
    border: none;
    cursor: pointer;
    width: 200px;
    font-size: 18px;
    color: #000000;
    border-radius: 4px;
    font-weight: 700;
}

.issues-grid{
	margin-top:2rem;
}

.issue-item {
    border-bottom: 2px solid #d3d3d3;
    padding-bottom: 1rem;
}

/* ============= End Issues Template  ============= */
/* ============= Begin Category Template ============= */
/*style sub-cat nav bar for archive pages*/
.subcategory-nav {
  margin-bottom: 2em;
  border-bottom: 1px solid #ccc;
  padding-bottom: 0.5em;
}
.subcategory-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
	justify-content:center;
}
.subcategory-nav li a {
  text-decoration: none;
  padding: 6px 12px;
  color: #fff;
}
.subcategory-nav li.active a,
.subcategory-nav li a:hover {
  color: #65B3DE;
}

h1.category-archive-title {
    font-family: 'League Spartan', Helvetica, Arial, Lucida, sans-serif; /*can remove after general font rule is set*/
    font-weight: 700;
    font-size: 56px;
    color: #FFFFFF !important;
    line-height: 1.2em;
    text-align: center;
}

.category .revive-ad-insert {
    margin-bottom: 0px;
    text-align: center;
    border-top: 1px solid #d3d3d3;
    padding-top: .5rem;
    padding-bottom: 0;
}



/* ============= End Category Template ============= */

/* ============= Begin Issues Archive ============ */
/*begin styling issue archive*/
.issues-filter-container {
  position: relative;
  margin-bottom: 1rem;
}

#filter-toggle {
  background-color: #f0f0f0;
  padding: 0.5rem 1rem;
  border: none;
  cursor: pointer;
}

.filter-dropdown {
  display: none;
  position: absolute;
  background: #fff;
  padding: 1rem;
  border: 1px solid #ccc;
  z-index: 99;
  max-height: 300px;
  overflow-y: auto;
  width: 200px;
}
.filter-dropdown.open {
  display: block;
}
.filter-dropdown label {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 0.95rem;
}

.issues-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  transition: opacity 0.6s ease;
}
@media (max-width: 1024px) {
  .issues-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 768px) {
  .issues-grid {
    grid-template-columns: 1fr;
  }
}

.issues-grid.fade-out {
  opacity: 0;
}
.issues-grid.fade-in {
  opacity: 1;
}
.issue-image {
  width: 100%;
  height: auto;
}
.issue-title {
  margin-top: 0.5rem;
}

.filter-clear-wrap {
  margin-bottom: 0.5rem;
  text-align: right;
}
#clear-filters {
  font-size: 0.85rem;
  color: #0073aa;
  text-decoration: underline;
  cursor: pointer;
}
#clear-filters:hover {
  text-decoration: none;
}
/*end styling issue archive*/

/* ============ End Issues Archive ============ */

/* ============ Begin Author Template ============ */

.ppma-author-pages .pp-author-boxes-name {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4em;
}
.ppma-author-pages .pp-author-boxes-description, .pp-author-boxes-avatar-details p {
  font-size: 20px;
  font-weight: 500;
  line-height: 1.4em;
}

a.ppma-author-company_website-profile-data{
 font-size: 18px;
  font-weight: 500;
  line-height: 1.4em;

}




.ppma-author-pages .ppma-author-job_title-profile-data {
  font-size: 16px;
}

.ppma-author-pages .ppma-author-company-profile-data{
  font-size:18px;
}

.et_pb_button_module_wrapper:has(.all-articles-link){
	position: absolute;
    bottom: 0;
    text-align: center;
    width: 100%;
}

.ppma-article-pagination .nav-links >* {
    font-size: 18px;
    padding: .1em;
}

/* ============ End Author Template ============ */

/* ============ Begin Static Column Layout =============*/

/*next for static columns enforcing widths for ad minimums*/

.static-columns-row {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  width: 95%;
  max-width: 1400px;
  margin: 0 auto;
  box-sizing: border-box;
}

/* Remove Divi gutter margin/padding */
.static-columns-row.et_pb_gutters3 > .et_pb_column {
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Apply fixed widths only above 1320px */
@media (min-width: 1321px) {
  .static-columns-row {
    flex-direction: row;
  }

  .static-columns-row > .et_pb_column:first-child {
    flex: 0 0 970px;
    min-width: 970px;
    margin-right: 30px;
    box-sizing: border-box;
  }

  .static-columns-row > .et_pb_column:last-child {
    flex: 1 1 320px;
    min-width: 320px;
    box-sizing: border-box;
  }
}

/* Stack vertically below 1320px */
@media (max-width: 1320px) {
  .static-columns-row {
    flex-direction: column;
    align-items: stretch;
  }

  .static-columns-row > .et_pb_column {
    flex: none;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    padding: 0 !important;
    box-sizing: border-box;
  }

  .static-columns-row > .et_pb_column:first-child {
    margin-bottom: 30px;
  }
}

@media (max-width: 768px) {
.static-columns-row {
  width: 90%;
}
}

/* ============  End Static Column Layout ============*/

/* ============ Category Archive Template ============*/

/*for custom cat shortcode*/
/* Flex row: image 40%, content 60% */
.custom-article-flex-wrap {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  flex-wrap: wrap;
  margin-bottom: 2.5rem;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  padding-top: 2rem;
}

/* Image column */
.custom-article-flex-wrap .entry-featured-image-url {
  flex: 0 0 40%;
  max-width: 40%;
}

/* Content column */
.custom-article-flex-wrap .cat-article-content-wrapper {
  flex: 1;
  max-width: 60%;
}

.custom-article-flex-wrap .entry-title {
  font-size: 1.5rem;
  margin-bottom: 0.5rem;
}

.custom-article-flex-wrap .post-meta {
  font-size: 0.9rem;
  color: #555;
  margin-bottom: 0.3rem;
}

.custom-article-flex-wrap .post-meta-categories {
  font-size: 0.9rem;
  color: #666;
}

.custom-article-flex-wrap .post-meta-categories a {
  text-decoration: none;
}

.custom-article-flex-wrap .pipe {
  padding: 0 0.5rem;
}

/* Responsive: stack columns */
@media (max-width: 981px) {
  .custom-article-flex-wrap {
    flex-direction: column;
  }

  .custom-article-flex-wrap .entry-featured-image-url,
  .custom-article-flex-wrap .cat-article-content-wrapper {
    max-width: 100%;
    flex: 1 1 100%;
  }
}

/*dont show author on recommended issues*/
.recommended_issues .excerpt {
    display: none;
}

/*more category styling*/
/*style subtitle on blog modules - subtitle is creaeted from fucntion splitting the_title*/
body.category span.subtitle {
  display: block;
  font-size: 0.9em;
  color: #666;
  margin-top: 0.25em;
}

/* ============ End Category Archive Template ============ */

/* ============ Begin Single Post Styling ============ */
/* === single article styling === */

h1.default-article-title{
  font-family: 'League Spartan', Helvetica, Arial, Lucida, sans-serif;
    font-weight: 700;
    font-size: 56px;
    color: #FFFFFF !important;
	border-bottom: 1px solid #FFFFFF;
    line-height: 1.3em;
}

h1.default-article-title span.subtitle{
  display: block;
    line-height: 1.75rem;
    font-size: .6em;
    font-weight: 300;
}

.single p.et_pb_title_meta_container, 
.single p.et_pb_title_meta_container a {
    color: #ffffff;
    font-size:1.125rem;
    font-weight:300;
    line-height:1.5em;
}


/*ad in single posts*/
.single-post-ad-insert{
	float:right;
	margin-left: .5rem;
	margin-bottom:.25rem;
}

.pp-multiple-authors-boxes-wrapper{
    clear: both!important;
	margin-top:2rem;
}
/*extra space */

/*Typogrophy*/

/* post content typog */

.et_pb_post_content p,
.et_pb_post_content ul,
.et_pb_post_content ol,
.et_pb_post_content,
.et_pb_text,
.et_pb_text p,
.et_pb_text ul,
.et_pb_text ol{
    font-size: 20px;
    font-weight: 500;
    line-height: 30px;
}

.single-post .et_pb_post_content h2:not(.widget-title){
	font-weight: 300;
    text-transform: uppercase;
    font-size: 30px;
	line-height:1.25em;
	margin-bottom:.25rem;
}

h4.intro-sentence {
    font-weight: 700;
    font-size: 30px;
    letter-spacing: 0.25px;
    line-height: 1.2em;
}

h4.intro-sentence::before {
  content: "";
  display: inline-block;
  width: 60px;
  height: 28px;
  margin-right: 10px;
  vertical-align: middle;
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2760%27%20height%3D%2728%27%20viewBox%3D%270%200%2060%2036%27%20fill%3D%27none%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M16.5714%200H28L11.4286%2036H0L16.5714%200Z%27%20fill%3D%27%23A3BB50%27/%3E%3Cpath%20d%3D%27M32.5714%200H44L27.4286%2036H16L32.5714%200Z%27%20fill%3D%27%2365B3DE%27/%3E%3Cpath%20d%3D%27M48.5714%200H60L43.4286%2036H32L48.5714%200Z%27%20fill%3D%27%2323303A%27/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
}

/*Dont float the ads in the sidebar*/
.et_pb_widget_area .single-post-ad-insert {
    float: none;
	text-align: center;
}

/*popular post widget*/
ul.wpp-list.wpp-list-with-thumbnails img {
    width: 100%;
}

/*latest issue widget*/
.latest-issue
 {
    max-width: 300px;
    margin: 0 auto;
}

.article-sidebar-column .popular-posts.wpp-ajax {
    max-width: 300px;
    margin: 0 auto;
}


/*related posts styles*/
.related-posts-grid .related-post,
.related-post,
.wpp-list li{
    background-color: #ffffff; 
    padding: 1rem;
    box-sizing: border-box;
    width: 100%;
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
	border: 1px solid #d8d8d8;
	border-radius:8px;
}

.thumb-wrapper {
    width: 100%;
    height: 220px;
    overflow: hidden;
    display: block;
	margin-bottom:1.5rem;
}

.thumb-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.related-posts-grid .related-post h3.entry-title {
    font-size: 20px;
    font-weight: 600;
	line-height:30px;
	text-align: center;
}
/*end related post*/


.custom-sidebar{
    display: flex;
    flex-direction: column;
    align-items: center;
	margin-top:1.75rem;
}

.custom-sidebar .widget_media_image{
	max-width:300px;
}

.category span.author.vcard a {
    color: #666;
}

/*limit width of ALL widgets*/
.et_pb_widget {
    max-width: 300px;
	margin-bottom:1.5rem!important;
}

.et_pb_widget.widget_block .single-post-ad-insert {
    margin-left: 0;
}

.et_pb_widget .single-post-ad-insert img,
.latest-issue img{
	box-shadow: 0 3px 6px rgba(0, 0, 0, .3);
}

.popular-posts .wpp-post-title {
    font-size: 16px;
    color: #000000 !important;
    font-weight: 500;
}

.wpp-list.wpp-list-with-thumbnails li{
	padding-bottom:.5rem;
	margin-bottom:1.75rem;
	border-bottom:1px solid #d3d3d3;
}

h4.sidebar-heading {
    font-size: 24px;
    color: #000000;
    font-weight: 700;
	margin-bottom:.75rem;
}

/*include the svg next to the widget titles*/

.sidebar-heading {
  display: flex;
  align-items: center;
  gap: 0.75rem; /* spacing between SVG and text */
  position: relative;
}

.sidebar-heading::before {
  content: '';
  display: inline-block;
  width: 60px;
  height: 36px;
  background-image: url("data:image/svg+xml,%3Csvg width='60' height='36' viewBox='0 0 60 36' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16.5714 0H28L11.4286 36H0L16.5714 0Z' fill='%23A3BB50'/%3E%3Cpath d='M32.5714 0H44L27.4286 36H16L32.5714 0Z' fill='%2365B3DE'/%3E%3Cpath d='M48.5714 0H60L43.4286 36H32L48.5714 0Z' fill='%2323303A'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  flex-shrink: 0;
}


.category h2.entry-title {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.3em;
}

body.category span.subtitle {
    line-height: 1.75rem;
    font-weight: 500;
    font-size: .875em;
	color:#000000;
	margin-top:0;
}


.category .post-content-inner {
    font-size: 18px;
    line-height: 1.4em;
}

.single .pipe {
  padding: 0 0.3em;
}

.related-post-heading.h2-section-title{
	font-weight: 700;
    font-size: 38px;
    color: #000000 !important;
	text-align:center;
	margin-bottom: 2rem;
}

.related-post-heading.h2-section-title::before{
	content: '';
  display: inline-block;
  width: 60px;
  height: 36px;
  background-image: url("data:image/svg+xml,%3Csvg width='60' height='36' viewBox='0 0 60 36' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16.5714 0H28L11.4286 36H0L16.5714 0Z' fill='%23A3BB50'/%3E%3Cpath d='M32.5714 0H44L27.4286 36H16L32.5714 0Z' fill='%2365B3DE'/%3E%3Cpath d='M48.5714 0H60L43.4286 36H32L48.5714 0Z' fill='%2323303A'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  flex-shrink: 0;
}

.latest-issue h3 {
    text-align: center;
    font-weight: 700;
    font-size: 22px;
}



.ppma-author-sanity_id-profile-data
 {
    display: none;
}

.ppma-author-job_title-profile-data, .ppma-author-company_website-profile-data
 {
    font-size: .875em;
}

.ppma-author-company-profile-data {
    font-weight: 800;
    font-size: 1.125em;
}

a.author.url.fn {
    color: #000000;
    font-weight: 700;
    font-size: 1.25em;
}

/*author box*/
h1.ppma-page-title.page-title {
  color: #000 !important;
}
h2.ppma-grid-post-title.entry-title.title {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.175em;
}



.ppma-grid-post-content {
  display: flex;
  flex-direction: column;
}

.ppma-grid-post-title.entry-title.title{
  order:1;
}

.article-entry-excerpt.post-entry-excerpt.entry-excerpt.excerpt{
  order:3;
}

.ppma-grid-post-meta
{
  order: 2;
}
.ppma-page-content.grid
{display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 48px;
}

.ppma-page-header, .ppma-page-content.grid {
  max-width: 1400px;
  margin: 0 auto;
}
.ppma-page-content.grid .ppma-article{
  width:100%;
}

.ppma-page-content.grid .ppma-article{
  padding-right:0!important;
  padding-left:0!important;
}


.pp-multiple-authors-boxes-wrapper .widget-title {
  display: none;
}

.article-entry-excerpt.post-entry-excerpt.entry-excerpt.excerpt {
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.4em;
}
/* ============ End Single Post Styling ============ */

/* ========================== End Template Styling ==========================*/

/* ========================== Begin Home Page Styles ==========================*/

.subscribe-module .newsletter-email .ginput_container input[type="email"]{
  border-radius: 50px;
}

.subscribe-module h3{
font-size: 24px;
  font-weight: 700;
}

.subscribe-module input[type=submit] {
  background: rgb(163, 187, 80) !important;
  font-size: 18px !important;
  font-weight: 500;
}

.subscribe-module input[type=email] {
  font-size: 18px !important;
}


/*home page events*/
.home-events .event-item {
  background: #ffffff;
  margin-bottom: 2rem;
  padding: 1.5rem;
box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.2);
border:1px solid #f3f3f3;
border-radius:4px;
}

.home-events .event-date{
  font-weight: bold;
  font-size: 16px;
  padding-bottom: .5rem;
}

.home-events .event-title{font-size: 24px;
  font-weight: 700;
  line-height: 1.4em;}

.home-events .event-content{
  font-size: 18px;
  font-weight: 300;
  line-height: 1.4em;
}

.home-events .event-link{
  padding:0;
  
  width: fit-content;
  margin-top:1rem;
}

.home-events .event-link a {
  color: #ffffff;
  font-size: 16px;
  font-weight: 500;
padding:.5rem 1rem;
 background: #263747;
border-radius:4px;
}

.et_pb_slide_description{
	max-width:1080px;
}

/*top stories home*/
.top-post-home .entry-featured-image-url{
	width: 29.667%;
    float: left;
    margin-right: 2.5rem;
}


.top-post-home h2.entry-title{
    font-size: 24px;
    font-weight: 700;
    line-height: 1.4em;
}

body .top-post-home .post-content .post-content-inner p {
    font-size: 18px;
    line-height: 1.4em;
    font-weight: 500;
}

.secondary-featured-stories .post-content .post-content-inner p {
    font-size: 18px;
    line-height: 1.4em;
    
}

.secondary-featured-stories h2.entry-title{
    font-size: 24px;
    font-weight: 700;
    line-height: 1.3em;
	border-bottom: 1px solid #d3d3d3;
    padding-bottom: 8px;
	margin-bottom:8px;
}

.secondary-featured-stories article{
	min-height: 39ch;
}

/*nuts and bolts posts on home page*/

.n-and-b-home-posts .entry-featured-image-url{
  width: 40%;
  float: left;
  margin-right: 2.5rem;
}

.n-and-b-home-posts article {
  margin-bottom: 2rem;
  border-bottom: 1px solid #d3d3d3;
}

.n-and-b-home-posts h2.entry-title {
  font-size: 24px;
  font-weight: 700;
}

body .n-and-b-home-posts .post-content .post-content-inner p {
  font-size: 18px;
  line-height: 1.4em;
  font-weight: 500;
}

.n-and-b-home-posts .pagination a,
.secondary-featured-stories .pagination a,
.sponsored-content-row .pagination a,
.related-pagination a{
  font-size: 18px;
  font-weight:700;
}


/*sponsored content row on home page*/

.sponsored-content-row h2.entry-title{
	font-size:24px;
	font-weight:700;
	line-height:1.3em;
}

.single-blog-mod .entry-title{
	padding:0rem 1rem 0 1rem;
}


.sponsored-content-row article
 { min-height: 32ch;}

.single-blog-mod p.post-meta
 {
	 padding-left: 1rem!important;
	
}

.home-blog-mod p.post-meta a{
	 color:#2ea3f2!important;
}

.secondary-featured-stories p.post-meta a,
.sponsored-content-row .et_pb_blog_grid p.post-meta a,
.top-post-home p.post-meta a{
    color: #2ea3f2 !important;
}

.home .et_pb_module:not(.et_pb_post_slider) p.post-meta span.author.vcard a {
    color: #666 !important;
}


/*top post area*/

.small-blue-divider{
	height:6px;
	width:60px;
	background:#263747;
}

.hero-blog h2 {
    font-size: 24px;
}

#hero-blog-multiple h2{
	font-weight:500;
}

#hero-blog-multiple article{
  margin-bottom:24px;
  padding-bottom:12px;
  border-bottom:1px solid #d3d3d3;
}

#hero-blog-single .post-content p {
    font-size: 18px;
}

#hero-blog-single .post-meta {
    font-size: 16px;
}


#hero-blog-multiple .pagination a {
    font-size: 18px;
    font-weight: 700;
}

/*========================== End Home Page Styles  ==========================*/


/* ======================== Begin Contact Page ======================== */

.bio-content-container a span.icon-small svg {
  fill: #2ea3f2;
}

.bio-content-container ul.no-bullets.list-w-icons,
.top-contact-section ul.no-bullets.list-w-icons li{
padding:0 0 23px 0;
}

.top-contact-section h4 {
  font-size: 24px !important;
  font-weight: 600;
  padding-bottom: 0;
}

.mg-t-1{margin-top:1rem;}

.top-contact-section a{margin-bottom:1.5em;}

.top-contact-section > * {
  font-size: 20px;
}
/* ======================== End Contact Page ========================*/




/*========================== Begin Specific Element Styles ======================== */
/*for sponsored content badge*/

/* ===========================================
   Inline Sponsored Content Badge After Title
   Works with:
   1) Any post using .has-type-badge (from PHP filter)
   2) PublishPress Authors grid with /sponsored_content/ in the URL
   =========================================== */

/* Generic: for posts with .has-type-badge */
.has-type-badge .entry-title a::after,
.has-type-badge h2.entry-title a::after,
.has-type-badge h3.entry-title a::after,
.has-type-badge .et_pb_post h2 a::after,
.has-type-badge .et_pb_post h3 a::after {
   content: " Sponsored Article";
    display: block;
    margin-left: 0;
    font-size: 18px;
    line-height: 1;
    font-weight: 400;
    text-transform: none;
    padding: 4px 6px 2px 0px;
    border: none;
    background: transparent;
    color: #000000;
    
}


/* Specific: PublishPress Authors grid fallback
   Matches links with the sponsored post type slug in the URL */
.ppma-grid-post-title.entry-title.title a[href*="/sponsored_content/"]::after {
    content: " Sponsored Content";
    display: inline-block;
    margin-left: 0.5em;
    font-size: 16px;
    line-height: 1;
    font-weight: 600;
    text-transform: none;
    padding: 4px 6px 2px 6px;
    border-radius: 4px;
    border: 1px solid rgba(0, 0, 0, .1);
    background: #34aedf;
    color: #000;
    transform: translateY(-4px);
}


/* ===================================== Desktop only Media Queries ===================================== */

@media screen and (min-width: 768px) {
  /* ==== Newsletter pill: scope ONLY to forms that contain .newsletter-email ==== */
  .subscribe-module .gform_wrapper:has(.newsletter-email) {
    /* visual shell around input+button */
    --gf-height: 56px;
    --gf-radius: 9999px;
    --gf-bg: #ffffff;
    --gf-text: #112337;
    --gf-placeholder: #5f6c76;
  
    display: inline-block;
    border-radius: 100px;
    overflow: hidden; /* makes it look like one pill */
    width:100%;
  }
  
  /* Make the form itself a 2-column grid: [input | button] */
  .subscribe-module .gform_wrapper:has(.newsletter-email) form {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: stretch;
    gap: 0;
  }
  
  /* Remove the default spacing so input+button butt up cleanly */
  .subscribe-module .gform_wrapper:has(.newsletter-email) .gform-body,
  .subscribe-module .gform_wrapper:has(.newsletter-email) .gform_footer {
    margin: 0 !important;
    padding: 0 !important;
    border: 0;
  }
  
  /* Hide label on this field and zero margins */
  .subscribe-module .newsletter-email .gfield_label { display: none !important; }
  .subscribe-module .newsletter-email { margin: 0 !important; }
  
  /* Input (left side) */
  .subscribe-module .newsletter-email .ginput_container input[type="email"],
  .subscribe-module .newsletter-email .ginput_container input[type="text"] {
    height: var(--gf-height);
    line-height: var(--gf-height);
    width: 100%;
    border: 0;
    outline: none;
    background: var(--gf-bg);
    color: var(--gf-text);
    padding: 0 16px;
    border-radius: var(--gf-radius) 0 0 var(--gf-radius);
    box-shadow: none;
  }
  .subscribe-module .gform_wrapper:has(.newsletter-email) ::placeholder {
    color: var(--gf-placeholder);
    letter-spacing: .08em;
    font-weight: 300;
  }
  
  /* Focus/validation (optional) */
  .subscribe-module .gform_wrapper:has(.newsletter-email) .ginput_container input:focus {
    box-shadow: inset 0 0 0 2px rgba(32,76,229,.2);
  }
  .subscribe-module .gform_wrapper:has(.newsletter-email) .gfield_error .ginput_container input {
    box-shadow: inset 0 0 0 2px #c0392b;
  }
  
    .subscribe-module input.gform_button.button{
      border-radius: 0 50px 50px 0!important;
      transform: translateX(-25px); 
  }
  
  .sub-form-container {
      margin-top: 2rem;
    margin-left: 25px;
  }
  
	/*sitewide category nav adj*/
	header .subcategory-nav a {
    font-size: 18px;
}
    
  }

/* ===================================== Mobile Styling Media Queries ===================================== */

@media screen and (max-width: 1250px) {
		/*sitewide category nav adj*/
	header .subcategory-nav a {
    font-size: 15px;
}
	
}

@media screen and (max-width: 1024px){
	h1.default-article-title, h1.category-archive-title{
		font-size: 48px;}
	
	#category-archive-grid, #related-posts-grid{
		grid-template-columns: repeat(2, 1fr)!important;
	}
	
}


@media screen and (max-width: 768px) {
	.hero-blog h2 {
    font-size: 20px!important;
}
	
	h1.default-article-title, h1.category-archive-title{
		font-size: 34px;}
	
	h4.intro-sentence {
    font-size: 24px;
}

		
	#category-archive-grid, #related-posts-grid{
		grid-template-columns: repeat(1, 1fr)!important;
	}
	
  .n-and-b-home-posts .entry-featured-image-url {
    width: 100%;
    float: none;
  }
	
	.top-post-home .entry-featured-image-url {
    width: 100%;
		float: none;}
	
	body .top-post-home .post-content .post-content-inner p {
		font-size: 17px;}
	
	.top-post-home h2.entry-title {
		font-size: 22px;}
	
	.secondary-featured-stories h2.entry-title{
		font-size:20px;}
	
	.secondary-featured-stories .post-content .post-content-inner p {
		font-size: 17px;}
	
	.n-and-b-home-posts h2.entry-title {
		font-size: 22px;}
	
	body .n-and-b-home-posts .post-content .post-content-inner p {
		font-size: 17px;}
	
	.n-and-b-home-posts .pagination a, .secondary-featured-stories .pagination a, .sponsored-content-row .pagination a {
    font-size: 17px;}
	
	.home-events .event-title {
		font-size: 22px;}
	
	.page-template-default h2 {
		font-size: 30px;}
	
	.top-contact-section h4 {
		font-size: 22px !important;}
	.top-contact-section>* {
    font-size: 17px;
    word-break: break-word;
}
	
	/*general mobile*/
	
	h1.page-title {
    font-size: 36px;
		line-height: 1.1em;}
	
	header svg
 {width: 200px;
    height: auto;
}
	
	.et-l--header ul {
    line-height: 18px;
}
	#header-cat-nav .subcategory-nav {
   border-top: none;
    padding-top: 0rem;
    border-bottom: none;
    padding-bottom: 0rem;
}
	
	h5.logo-tagline {
		font-size: 16px!important;}
	
	.single-post-ad-insert {
    float: none !important;
    text-align: center;
}
	
}

@media (max-width: 480px) {
  .subscribe-module .gform_wrapper:has(.newsletter-email) { width: 100%; }
  .subscribe-module .gform_wrapper:has(.newsletter-email) .gform_footer .gform_button { padding: 0 16px; }
		header .subcategory-nav a {
    font-size: 14px;
}
}

@media (max-width: 480px) {
	p, ul {
    font-size: 17px;
    font-weight: 500;
    line-height: 25px;
}
}




/* =====================================================
extra added 9/2/2025 for mobile navigation to be 
placed inside mobile mediaquery
======================================================== */

@media screen and (max-width: 768px) {
	.menu-toggle
	{
		top: 10px!important;
	}
	.search-holder,
	.subscribe-button-holder{
		display:none;
	}
	
  .menu-overlay.active{
   /* margin-top: 5rem!important;
    display:block!important;*/
    padding-bottom: 8rem !important;
  }
  
  
  header .category-title {
    writing-mode: unset!important;
    padding: 0!important;
    border-right:none!important;
  }
  
  header .category{
    display:block!important;
  }
  
  header .category-content {
    display: block!important;
  }
  
  header .right-section {
    display: block;
    border-left: 0px solid #3d4c5a;
      padding-left: 0rem;
    padding-top:2rem;
  }

  header .right-section .row-3 {
    border-top: 0px solid #3d4c5a!important;}
    
    .menu-overlay.active p, .menu-overlay.active ul {
    font-size: 15px;
    font-weight: 300;
    line-height: 21px;
  }
    
    .menu-overlay .subgroup, .menu-overlay .double-subgroup {
    padding-top: 1rem;
  }
  
  .menu-overlay .right-section h3 {
    margin-bottom: 0.5rem;
    border-bottom: 2px solid #ffffff;
    padding-bottom: .25rem;
    padding-top:1rem;
    font-size: 1.108rem !important;
    width:100%;
  }
    
    .right-section .construction-executive-lists {
    border-bottom: none !important;
  }

  .subgroup h4, .double-subgroup h4 {
    font-size: 1.08rem !important}

    .menu-toggle {
      top: 25px;}
  
  }
  

.pp-author-boxes-avatar:has(.avatar-default) {
  display: none !important;
}

.et_pb_module p {
  font-size: 20px;
  font-weight: 500;
  line-height: 30px;
}


/* Global: change the live results box width */
#searchwp-form-3{min-width:35vw;}

/*in main nav adjustments*/
/* swap sides AND pin both to the first row */
.menu-overlay.active > .left-section  { grid-column: 2; grid-row: 1; }
.menu-overlay.active > .right-section { grid-column: 1; grid-row: 1; }

.menu-overlay.active{
  grid-template-columns: 1.5fr 2fr!important; /* left smaller, right bigger */
}

header .category { grid-template-columns: 0.1fr 1fr!important;}

.left-section{margin-right:56px;}

h5.logo-tagline
{text-transform: uppercase;
    font-weight: 700!important;
    font-size: 19px;
    letter-spacing: .02em;
    color: inherit;
transition: all .3s;
padding:0;}

header .has_et_pb_sticky h5.logo-tagline {
    opacity: 0;
    height: 0;
    padding: 0;
}

.swp-input--search{
	padding:.5rem;
	font-size:18px;
}

header .has_et_pb_sticky .menu-toggle{
	top:25px!important;
}

@media (min-width: 980px) and (max-width: 1200px) {
	#searchwp-form-3{min-width:27vw;}
}

/*adjust mobile nav columns*/
/* Mobile: stack with right-section first, left-section second */
@media (max-width: 800px){
  .menu-overlay.active{
    display: grid;
    grid-template-columns: 1fr;      /* single column */
    gap: 2rem;
  }

  /* put right-section on top */
  .menu-overlay.active > .right-section{
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  /* put left-section below */
  .menu-overlay.active > .left-section{
    grid-column: 1 !important;
    grid-row: 2 !important;
  }
}

/* 2 columns for screens <= 1024px */
@media (max-width: 1024px) {
    .ppma-page-content.grid {
        grid-template-columns: repeat(2, 1fr)!important;
    }
}

/* 1 column for screens <= 480px */
@media (max-width: 480px) {
    .ppma-page-content.grid {
        grid-template-columns: repeat(1, 1fr)!important;
    }
}


/* Category Quad cards */
.cq-wrap {
  display: grid;
  gap: 24px;
}

.cq-card {
  display: grid;
  grid-template-columns: 40% 1fr;
  gap: 18px;
  align-items: stretch;
  background: #fff;
  border: 1px solid #e6e9ef;
  border-radius: 12px;
  overflow: hidden;
  padding: 20px;
	box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.1);
}

.cq-media { display: block; }

.cq-thumb {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  border-radius: 8px;
}

.cq-thumb.cq-thumb--placeholder {
  background: #f1f3f7;
  min-height: 180px;
}

.cq-body {
  display: grid;
  align-content: start;
  gap: 8px;
}

.cq-title { margin: 0; line-height: 1.2; font-size: 1.25rem; font-weight: 700; }
h3.cq-title{padding-bottom:0!important;}
.cq-title a { text-decoration: none; }

.cq-meta {
  font-size: 0.9375rem;
  color: #5b6472;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.cq-cat,
.cq-author { font-weight: 600; text-decoration: none; }

.cq-date { white-space: nowrap; }

.cq-intro { margin: 6px 0 0 0; font-size: 1rem; }

/* Stack on mobile */
@media (max-width: 768px) {
  .cq-card { grid-template-columns: 1fr; }
  .cq-thumb { min-height: 200px; }
}

/* Pagination */
.cq-pagination {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 18px;
}

.cq-pagination-left, .cq-pagination-right { min-height: 1em; }

.cq-link-older, .cq-link-newer {
  text-decoration: none;
  font-weight: 600;
}

/* Stop the grid from stretching the media column to full row height */
.cq-card { align-items: flex-start; } /* was stretch */

/* 16:9 media container */
.cq-media {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;       /* modern browsers */
  overflow: hidden;
  border-radius: 8px;
  height: auto;               /* ensure height comes from aspect-ratio */
}

/* Only use the padding-top fallback when aspect-ratio isn't supported */
@supports not (aspect-ratio: 16 / 9) {
  .cq-media::before {
    content: "";
    display: block;
    padding-top: 56.25%;      /* 9/16 */
  }
}

/* Make the image fill the 16:9 box (and ignore theme image rules) */
.cq-media .cq-thumb,
.cq-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  border-radius: 0;
}

/* Placeholder stays 16:9 because container defines height */
.cq-thumb.cq-thumb--placeholder { min-height: 0; }

/* (Optional) In case a theme rule imposes max-height on images */
.cq-media, .cq-media * { max-height: none !important; }


p.cq-intro {
    font-size: 18px;
    line-height: 1.5em;
}




/*latest issue widget*/
ul.issue-list li {
    padding-bottom: 1rem;
}
ul.issue-list {
    list-style: none;
}
ul.issue-list li {
    padding-bottom: .25rem;
    border-bottom: 1px solid #d3d3d3;
    margin-bottom: .75rem;
	line-height: 1.6em;
}
ul.issue-list li a {
   color:#000;
	transition:all .3s;
}

ul.issue-list li a:hover {
   color:#2ea3f2;
}
h4.issue-section-title {
    font-weight: 700;
}

.issue-links {
    margin-top: 1.25rem;
}


/*16 x 9 force*/
/* Prevent card grid from stretching media column */
.cq-card { align-items: flex-start; }

/* 16:9 media container; use on the link/wrapper around the image */
.cq-media {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;   /* modern browsers */
  overflow: hidden;
  border-radius: 8px;
  height: auto;
}

/* Fallback for older browsers without aspect-ratio */
@supports not (aspect-ratio: 16 / 9) {
  .cq-media::before {
    content: "";
    display: block;
    padding-top: 56.25%; /* 9/16 */
  }
}

/* Image fills the 16:9 box exactly */
.cq-media .cq-thumb,
.cq-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  border-radius: 0;
}

/* Ensure no external rule imposes a max-height */
.cq-media, .cq-media * { max-height: none !important; }

/* Optional placeholder box keeps 16:9 */
.cq-thumb.cq-thumb--placeholder { min-height: 0; }

.vertical-header.tools h4{
	color:#77b866;
	
}

.vertical-header.legal h4{
	color:#cc9558;
}

.et_pb_post_content img {
    margin-bottom: 1.5rem;
}

/*header*/
 .menu-toggle {
      position: fixed;
      top: 56px;
      right: 30px;
      z-index: 1001;
      width: 35px;
      height: 35px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .menu-toggle span {
      position: absolute;
      height: 4px;
      width: 30px;
      background-color: #000;
      border-radius: 2px;
      transition: transform 0.3s ease, opacity 0.3s ease;
    }
    .menu-toggle span:nth-child(1) { transform: translateY(-10px); }
    .menu-toggle span:nth-child(2) { transform: translateY(0); }
    .menu-toggle span:nth-child(3) { transform: translateY(10px); }
    .menu-overlay {
      position: fixed;
      top: 0;
      left: 0;
      width: 100vw;
      height: 100vh;
      background: #263747;
      z-index: 1000;
      display: none;
      padding: 2rem;
      overflow-y: auto;
    }
    .menu-overlay.active {
      display: grid;
      grid-template-columns: 2fr 1.5fr;
      gap: 2rem;
      border-left: 1px solid #3d4c5a;
      padding-top:2rem;
    }
    .left-section {
      display: flex;
      flex-direction: column-reverse;
      gap: 3rem;
      justify-content: flex-end;}
  
    header .category {
      display: grid;
      grid-template-columns: 0.2fr 1fr;
      gap: 1rem;
    }
    header .category-title {
      writing-mode: vertical-rl;
      text-orientation: mixed;
      font-size: 1.2rem;
      font-weight: bold;
      border-right: 1px solid #3d4c5a;
      padding-right: 1rem;
      text-align: center;
    }
    header .category-title.business { color: #65b3de; }
    header .category-title.legal { color: #cc9558; }
    header .category-title.tools { color: #77b866; }
    header .category-content {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 2.75rem;
    }
    .subgroup {
      display: flex;
      flex-direction: column;
    }
    .subgroup h4, .double-subgroup h4 {
      font-size: 0.9rem;
      font-weight: bold;
      margin-bottom: 0.3rem;
      padding-bottom: 2px;
      border-bottom: 2px solid;
    }
    .subgroup h4.business, .double-subgroup h4.business,
    .subgroup h4.workforce, .double-subgroup h4.workforce,
    .subgroup h4.culture, .double-subgroup h4.culture {
      color: #65b3de; border-bottom-color: #65b3de;
    }
    .subgroup h4.safety, .double-subgroup h4.safety,
    .subgroup h4.risk, .double-subgroup h4.risk,
    .subgroup h4.legal, .double-subgroup h4.legal {
      color: #cc9558; border-bottom-color: #cc9558;
    }
    .subgroup h4.markets, .double-subgroup h4.markets,
    .subgroup h4.technology, .double-subgroup h4.technology,
    .subgroup h4.equipment, .double-subgroup h4.equipment {
      color: #77b866; border-bottom-color: #77b866;
    }
    .subgroup ul, .double-subgroup ul, .right-section ul {
      list-style: none;
      padding: 0;
      margin: 0;
    }
    .subgroup li, .double-subgroup li, .right-section li {
      margin-bottom: 0.3rem;
    }
    .subgroup li a, .double-subgroup li a, .right-section li a {
      color: hsla(0, 0%, 100%, .6);
      text-decoration: none;
    }
    .double-subgroup {
      grid-column: span 2;
      display: flex;
      flex-direction: column;
    }
    .double-subgroup-content {
      display: flex;
      gap: 2rem;
    }
    .double-subgroup-content ul {
      flex: 1;
    }
    .right-section {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 1rem;
      row-gap: 0; /* NEW: remove vertical gap between grid rows */
      border-left: 1px solid #3d4c5a;
      padding-left: 1rem;
    }
    .right-section h3 {
      font-size: 1.2rem;
      font-weight: bold;
      color: #ffffff;
      margin-bottom: 0.3rem;
    }
      
.right-section .row-3 h3 {
      margin-bottom: 0;
    }
      
    .right-section .row-2 {
      padding-bottom: 0.5rem;
      margin-bottom: 0.5rem;
    }
    .right-section .row-3 {
      border-top: 2px solid #3d4c5a;
      padding-top: 0.5rem;
      margin-top: 0.5rem;
      grid-column: span 2;
      display: flex;          /* NEW: flex container */
      align-items: center;    /* NEW: vertically center content */
    }
    .right-section .construction-executive-lists {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 1rem;
      grid-column: span 2;
      border-bottom: 2px solid #3d4c5a;
      padding-bottom: 1rem;
      margin-bottom: 1rem;
    }
    .right-section .construction-executive-lists ul {
      list-style: none;
      padding: 0;
      margin: 0;
    }
    .right-section .construction-executive-lists li {
      margin-bottom: 0.3rem;
    }
    .right-section .construction-executive-lists a {
      color: hsla(0, 0%, 100%, .6);
      text-decoration: none;
    }
    .right-section .subscribe-newsletter {
      grid-column: span 2;
      margin-top: 1rem;
    }
    .right-section .subscribe-newsletter p {
      margin-top: 0.3rem;
      color: hsla(0, 0%, 100%, .6);
    }
  
  .menu-overlay .sub-form-container {
    margin-top: 0;
}


@media (min-width: 769px){
  .has-small-featured-image .et_pb_module.dynamic-featured-image{
    width: 50%;
    float: right;
    padding-left: 32px;
    padding-bottom: 8px;
  }
}


/*spon con blog module styles*/
.spon-con-archive-blog h2.entry-title,
#search-result-blog h2.entry-title{
    font-size: 24px!important;
    font-weight: 700!important;
    line-height: 1.3em!important;
}

.spon-con-archive-blog .post-content-inner p,
#search-result-blog .post-content-inner p{
    font-size: 18px !important;
    line-height: 1.4em !important;
}

.spon-con-archive-blog p.post-meta a,
#search-result-blog p.post-meta a{
    color: #2ea3f2 !important;
}

.spon-con-archive-blog span.author.vcard a,
#search-result-blog span.author.vcard a
 {
    color: #666 !important;
}

.spon-con-archive-blog .pagination.clearfix a,
#search-result-blog .pagination.clearfix a {
    font-size: 1.25em;
    font-weight: 700;
}

.spon-con-archive-blog article{
	border-radius:8px;
}

.et-db #et-boc .et-l .spon-con-archive-blog .et_pb_image_container,
.et-db #et-boc .et-l #search-result-blog .et_pb_image_container
{
    margin: 0!important;
}

.et-db #et-boc .et-l .spon-con-archive-blog .et_pb_image_container img,
.et-db #et-boc .et-l #search-result-blog .et_pb_image_container img{
	width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 8px;
    height: auto;
}

.pp-multiple-authors-boxes-wrapper.pp-multiple-authors-layout-boxed.multiple-authors-target-the-content .pp-author-boxes-meta a{
	margin-bottom:8px;
}

/*Search results page and template rules*/
.swp-grid.swp-rp--img-m .swp-result-item--img {
	width: 100%;}

.swp-result-item--img img {
    aspect-ratio: 16 / 9;
}

.swp-search-results article {
    border: 1px solid #d8d8d8;
    padding: 19px;
    border-radius: 8px;
}

.swp-load-more{
	text-align:center;
}

button.swp-load-more-button {
    color: #ffffff;
    font-size: 16px;
    font-weight: 500;
    padding: .5rem 1rem;
    background: #263747;
    border-radius: 4px;
}

#search-result-blog article{
	border-radius:8px;
}

#search-result-blog img{
	
}

  .d-flex{
        display:flex;
    }
    .justify-space-between{
        justify-content: space-between;
    }



body .pp-multiple-authors-boxes-wrapper.pp-multiple-authors-layout-boxed.multiple-authors-target-the-content .pp-author-boxes-avatar img{
	border-radius:0!important;
 width: 100% !important;
    height: auto !important;}

body .pp-multiple-authors-boxes-wrapper.pp-multiple-authors-layout-boxed.multiple-authors-target-shortcode .pp-author-boxes-avatar img{
	border-radius:0!important;
 width: 100% !important;
    height: auto !important;
}

span.pp-author-boxes-meta.multiple-authors-links a {
    margin-bottom: .75rem;
}

#header-cat-nav{
	z-index:1!important;
}