/* =========================================================
   HOME BUILD JOURNAL — BLOG PAGE
   Brand Green + Gold + Navy
========================================================= */

.hbj-blog-page{
  --hbj-green:#0B5E4F;
  --hbj-green-dark:#06483D;
  --hbj-green-soft:#EAF3F0;

  --hbj-navy:#071A33;
  --hbj-navy-soft:#102946;

  --hbj-gold:#FDB913;
  --hbj-gold-dark:#EAAA00;

  --hbj-white:#FFFFFF;
  --hbj-cream:#F8F6F2;
  --hbj-cream-light:#FCFBF8;

  --hbj-text:#1F2937;
  --hbj-muted:#64707C;
  --hbj-border:#E4E5E1;
}

/* =========================================
   WORDPRESS / ELEMENTOR CLEANUP
========================================= */

.entry-title,
.page-header,
.site-main > header,
.elementor-page-title,
h1.entry-title{
  display:none !important;
}

.hbj-blog-page,
.hbj-blog-page *{
  box-sizing:border-box;
}

.hbj-blog-page{
  position:relative;

  left:50%;

  width:100vw;
  max-width:100vw;

  margin-left:-50vw;

  overflow:hidden;

  background:var(--hbj-white);
  color:var(--hbj-text);

  font-family:Arial,Helvetica,sans-serif;
}

.hbj-blog-page a{
  text-decoration:none;
}

.hbj-blog-page img{
  display:block;
  max-width:100%;
}

.hbj-blog-container{
  width:100%;
  max-width:1200px;

  margin:0 auto;

  padding-left:24px;
  padding-right:24px;
}


/* =========================================
   HERO
========================================= */

.hbj-blog-hero{
  position:relative;

  min-height:355px;

  overflow:hidden;

  display:flex;
  align-items:center;
  justify-content:center;

  background:
    linear-gradient(
      135deg,
      var(--hbj-green-dark) 0%,
      var(--hbj-green) 55%,
      var(--hbj-navy) 100%
    );
}

/* Decorative shapes */

.hbj-blog-hero::before{
  content:"";

  position:absolute;

  top:-170px;
  right:-90px;

  width:450px;
  height:450px;

  border:75px solid rgba(253,185,19,.08);

  border-radius:50%;
}

.hbj-blog-hero::after{
  content:"";

  position:absolute;

  left:-140px;
  bottom:-210px;

  width:430px;
  height:430px;

  border-radius:50%;

  background:rgba(255,255,255,.03);
}

.hbj-blog-hero-content{
  position:relative;

  z-index:2;

  padding-top:68px;
  padding-bottom:68px;

  text-align:center;

  color:#fff;
}

.hbj-blog-hero-label{
  display:inline-flex;

  margin-bottom:13px;

  color:var(--hbj-gold);

  font-size:12px;
  font-weight:800;

  letter-spacing:1.7px;

  text-transform:uppercase;
}

.hbj-blog-hero h1{
  max-width:800px;

  margin:0 auto 17px;

  color:#fff;

  font-size:clamp(42px,4.7vw,62px);

  font-weight:700;

  line-height:1.06;

  letter-spacing:-1.5px;
}

.hbj-blog-hero-content > p{
  max-width:720px;

  margin:0 auto 22px;

  color:rgba(255,255,255,.86);

  font-size:16px;

  line-height:1.75;
}


/* Breadcrumb */

.hbj-blog-breadcrumb{
  display:flex;

  align-items:center;
  justify-content:center;

  gap:10px;

  color:rgba(255,255,255,.90);

  font-size:13px;

  font-weight:700;
}

.hbj-blog-breadcrumb a{
  color:#fff;
}

.hbj-blog-breadcrumb a:hover{
  color:var(--hbj-gold);
}

.hbj-blog-breadcrumb > span[aria-hidden="true"]{
  color:var(--hbj-gold);

  font-size:20px;
}


/* =========================================
   BLOG SECTION
========================================= */

.hbj-blog-section{
  padding:82px 0 90px;

  background:var(--hbj-cream-light);
}

.hbj-blog-heading{
  max-width:760px;

  margin:0 auto 48px;

  text-align:center;
}

.hbj-blog-eyebrow{
  display:inline-flex;

  align-items:center;

  gap:10px;

  margin-bottom:11px;

  color:var(--hbj-green);

  font-size:12px;
  font-weight:800;

  letter-spacing:1.4px;

  text-transform:uppercase;
}

.hbj-blog-eyebrow::before,
.hbj-blog-eyebrow::after{
  content:"";

  width:30px;
  height:2px;

  background:var(--hbj-gold);
}

.hbj-blog-heading h2{
  margin:0 0 15px;

  color:var(--hbj-navy);

  font-size:clamp(32px,3.2vw,45px);

  line-height:1.14;

  letter-spacing:-1px;
}

.hbj-blog-heading p{
  max-width:690px;

  margin:0 auto;

  color:var(--hbj-muted);

  font-size:15px;

  line-height:1.75;
}


/* =========================================
   DYNAMIC BLOG GRID
========================================= */

.hbj-blog-grid{
  display:grid;

  grid-template-columns:
    repeat(3,minmax(0,1fr));

  gap:24px;
}


/* =========================================
   BLOG CARD
========================================= */

.hbj-blog-card{
  min-width:0;

  overflow:hidden;

  display:flex;
  flex-direction:column;

  background:#fff;

  border:1px solid var(--hbj-border);

  border-radius:8px;

  box-shadow:
    0 8px 26px
    rgba(7,26,51,.055);

  transition:
    transform .25s ease,
    box-shadow .25s ease,
    border-color .25s ease;
}

.hbj-blog-card:hover{
  transform:translateY(-6px);

  border-color:
    rgba(11,94,79,.25);

  box-shadow:
    0 18px 40px
    rgba(7,26,51,.10);
}


/* Image */

.hbj-blog-image{
  position:relative;

  width:100%;
  height:225px;

  overflow:hidden;

  display:block;

  background:var(--hbj-green-soft);
}

.hbj-blog-image::after{
  content:"";

  position:absolute;

  left:0;
  right:0;
  bottom:0;

  height:3px;

  background:var(--hbj-gold);

  transform:scaleX(0);

  transform-origin:left;

  transition:transform .3s ease;
}

.hbj-blog-card:hover
.hbj-blog-image::after{
  transform:scaleX(1);
}

.hbj-blog-image img{
  width:100%;
  height:100%;

  object-fit:cover;

  transition:transform .4s ease;
}

.hbj-blog-card:hover
.hbj-blog-image img{
  transform:scale(1.045);
}


/* Placeholder */

.hbj-blog-placeholder{
  width:100%;
  height:100%;

  display:flex;

  align-items:center;
  justify-content:center;

  padding:30px;

  background:
    linear-gradient(
      135deg,
      var(--hbj-green-dark),
      var(--hbj-navy)
    );

  color:var(--hbj-gold);

  text-align:center;

  font-size:16px;

  font-weight:700;
}


/* Card content */

.hbj-blog-card-content{
  flex:1;

  display:flex;
  flex-direction:column;

  padding:23px;
}


/* Meta */

.hbj-blog-meta{
  margin-bottom:11px;

  display:flex;

  align-items:center;
  flex-wrap:wrap;

  gap:8px;
}

.hbj-blog-date{
  color:var(--hbj-muted);

  font-size:11px;

  font-weight:600;
}

.hbj-blog-category{
  padding:5px 10px;

  border-radius:30px;

  background:var(--hbj-green-soft);

  color:var(--hbj-green);

  font-size:10px;

  font-weight:800;

  text-transform:uppercase;
}


/* Title */

.hbj-blog-card-title{
  margin:0 0 11px;

  font-size:20px;

  line-height:1.35;

  font-weight:700;
}

.hbj-blog-card-title a{
  color:var(--hbj-navy);

  transition:color .2s ease;
}

.hbj-blog-card-title a:hover{
  color:var(--hbj-green);
}


/* Excerpt */

.hbj-blog-excerpt{
  margin:0 0 19px;

  color:var(--hbj-muted);

  font-size:13px;

  line-height:1.7;
}


/* Read More */

.hbj-blog-read-more{
  width:fit-content;

  margin-top:auto;

  display:inline-flex;

  align-items:center;

  gap:7px;

  color:var(--hbj-green);

  font-size:12px;

  font-weight:800;

  text-transform:uppercase;
}

.hbj-blog-read-more span{
  color:var(--hbj-gold-dark);

  font-size:17px;

  transition:transform .2s ease;
}

.hbj-blog-read-more:hover span{
  transform:translateX(4px);
}


/* =========================================
   PAGINATION
========================================= */

.hbj-blog-pagination{
  margin-top:50px;

  display:flex;

  align-items:center;
  justify-content:center;

  flex-wrap:wrap;

  gap:10px;
}

.hbj-blog-pagination-numbers{
  display:flex;

  align-items:center;

  gap:7px;
}

.hbj-blog-pagination a,
.hbj-blog-pagination-current{
  min-width:40px;
  height:40px;

  padding:0 12px;

  display:inline-flex;

  align-items:center;
  justify-content:center;

  border:1px solid var(--hbj-border);

  border-radius:4px;

  background:#fff;

  color:var(--hbj-navy);

  font-size:12px;

  font-weight:700;

  transition:
    background .2s ease,
    color .2s ease,
    border-color .2s ease;
}

.hbj-blog-pagination a:hover,
.hbj-blog-pagination-current{
  border-color:var(--hbj-green);

  background:var(--hbj-green);

  color:#fff;
}

.hbj-blog-pagination-arrow{
  padding-left:17px !important;
  padding-right:17px !important;
}


/* =========================================
   NO POSTS
========================================= */

.hbj-blog-no-posts{
  padding:50px 25px;

  border:1px solid var(--hbj-border);

  border-radius:8px;

  background:#fff;

  text-align:center;
}

.hbj-blog-no-posts h2{
  margin:0 0 10px;

  color:var(--hbj-navy);

  font-size:26px;
}

.hbj-blog-no-posts p{
  margin:0;

  color:var(--hbj-muted);

  font-size:14px;
}


/* =========================================
   FINAL CTA
========================================= */

.hbj-blog-cta{
  position:relative;

  padding:65px 0;

  overflow:hidden;

  background:
    linear-gradient(
      120deg,
      var(--hbj-green-dark),
      var(--hbj-green)
    );
}

.hbj-blog-cta::after{
  content:"";

  position:absolute;

  width:330px;
  height:330px;

  right:-100px;
  top:-120px;

  border-radius:50%;

  border:55px solid rgba(253,185,19,.07);
}

.hbj-blog-cta-inner{
  position:relative;

  z-index:2;

  display:flex;

  align-items:center;
  justify-content:space-between;

  gap:50px;
}

.hbj-blog-cta-content{
  max-width:680px;
}

.hbj-blog-cta-content > span{
  color:var(--hbj-gold);

  font-size:11px;

  font-weight:800;

  letter-spacing:1.4px;

  text-transform:uppercase;
}

.hbj-blog-cta h2{
  margin:8px 0 10px;

  color:#fff;

  font-size:clamp(30px,3vw,40px);

  line-height:1.15;
}

.hbj-blog-cta p{
  margin:0;

  color:rgba(255,255,255,.80);

  font-size:14px;

  line-height:1.75;
}

.hbj-blog-cta-actions{
  display:flex;

  align-items:center;

  gap:12px;
}

.hbj-blog-cta-primary,
.hbj-blog-cta-secondary{
  min-height:50px;

  padding:0 23px;

  display:inline-flex;

  align-items:center;
  justify-content:center;

  border-radius:4px;

  font-size:12px;

  font-weight:800;

  white-space:nowrap;

  transition:.2s ease;
}

.hbj-blog-cta-primary{
  background:var(--hbj-gold);

  color:var(--hbj-navy) !important;
}

.hbj-blog-cta-primary:hover{
  background:var(--hbj-gold-dark);

  transform:translateY(-2px);
}

.hbj-blog-cta-secondary{
  border:1px solid rgba(255,255,255,.7);

  color:#fff !important;
}

.hbj-blog-cta-secondary:hover{
  background:#fff;

  color:var(--hbj-green-dark) !important;

  transform:translateY(-2px);
}


/* =========================================
   TABLET
========================================= */

@media(max-width:900px){

  .hbj-blog-grid{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }

  .hbj-blog-cta-inner{
    flex-direction:column;

    text-align:center;
  }

}


/* =========================================
   MOBILE
========================================= */

@media(max-width:650px){

  .hbj-blog-container{
    padding-left:18px;
    padding-right:18px;
  }

  .hbj-blog-hero{
    min-height:280px;
  }

  .hbj-blog-hero-content{
    padding-top:55px;
    padding-bottom:55px;
  }

  .hbj-blog-hero h1{
    font-size:39px;
  }

  .hbj-blog-hero-content > p{
    font-size:15px;
  }

  .hbj-blog-section{
    padding:58px 0 65px;
  }

  .hbj-blog-heading{
    margin-bottom:34px;
  }

  .hbj-blog-heading h2{
    font-size:31px;
  }

  .hbj-blog-grid{
    grid-template-columns:1fr;
  }

  .hbj-blog-image{
    height:225px;
  }

  .hbj-blog-pagination{
    margin-top:38px;
  }

  .hbj-blog-pagination-arrow{
    width:100%;
    max-width:155px;
  }

  .hbj-blog-cta{
    padding:52px 0;
  }

  .hbj-blog-cta h2{
    font-size:30px;
  }

  .hbj-blog-cta-actions{
    width:100%;

    flex-direction:column;
  }

  .hbj-blog-cta-primary,
  .hbj-blog-cta-secondary{
    width:100%;

    max-width:330px;
  }

}