/*
Theme Name:  Custom Glass Tinting (Astra Child)
Theme URI:   https://indytint.com/
Description: Astra child theme styled to evoke the original Salient look.
Author:      Rebuild bot
Template:    astra
Version:     1.9.1
Text Domain: cgt-child
*/

:root {
  --cgt-red: #cb2027;
  --cgt-red-dark: #a01a1f;
  --cgt-red-light: #e63941;
  --cgt-cyan: #2AC4EA;
  --cgt-dark: #1d1d1d;
  --cgt-charcoal: #333333;
  --cgt-gray: #6b7280;
  --cgt-light: #f6f6f6;
}

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
html body,
html body p,
html body li,
html body .ast-container,
html body .entry-content,
html body .wp-block-paragraph {
  font-family: "Roboto", "Open Sans", "Helvetica Neue", Arial, sans-serif !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: var(--cgt-charcoal) !important;
}
html body h1, html body h2, html body h3, html body h4,
html body h5, html body h6,
html body .entry-title,
html body .ast-archive-title {
  font-family: "Roboto", "Open Sans", "Helvetica Neue", Arial, sans-serif !important;
  font-weight: 700 !important;
  color: var(--cgt-dark) !important;
  line-height: 1.25 !important;
  letter-spacing: -0.005em;
}
html body h1, html body .entry-title { font-size: 2.4rem !important; }
html body h2 { font-size: 2rem !important; }
html body h3 { font-size: 1.4rem !important; }
html body h4 { font-size: 1.2rem !important; }

/* ============================================================
   LINKS
   ============================================================ */
html body a,
html body .entry-content a {
  color: var(--cgt-red);
  text-decoration: none;
  transition: color .15s ease;
}
html body a:hover { color: var(--cgt-red-dark); }

/* ============================================================
   HIDE Astra entry-header on home — multiple selectors for safety
   ============================================================ */
.home .entry-header,
.home article > .entry-header,
.page-id-1002 .entry-header,
body.home .ast-single-post-banner,
body.home .ast-article-single > .entry-header,
body.page-id-1002 .ast-article-single > .entry-header {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* Home: break out of Astra container so cgt-* sections are full-bleed */
.home #content,
.page-id-1002 #content,
.home .site-content,
.page-id-1002 .site-content {
  padding: 0 !important;
  margin: 0 !important;
}
.home .site-content > .ast-container,
.page-id-1002 .site-content > .ast-container,
.home #primary,
.page-id-1002 #primary,
.home #main,
.page-id-1002 #main,
.home article,
.page-id-1002 article,
.home .entry-content,
.page-id-1002 .entry-content {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Inner pages get a styled title bar */
body:not(.home) .entry-header {
  border-bottom: 3px solid var(--cgt-red);
  background: var(--cgt-light);
  padding: 40px 24px !important;
  margin-bottom: 0;
}
body:not(.home) .entry-header .entry-title {
  text-align: center;
  margin: 0;
  font-size: 2.6rem !important;
}

/* ============================================================
   HEADER
   ============================================================ */
.site-header,
.ast-primary-header-bar {
  background: #ffffff !important;
  border-bottom: 3px solid var(--cgt-red);
}
.ast-builder-menu .menu-item > a,
.ast-builder-menu-1 .menu-item > a,
.ast-primary-menu .menu-item > a,
#ast-hf-menu-1 .menu-item > a {
  font-weight: 600 !important;
  letter-spacing: .02em !important;
  color: var(--cgt-dark) !important;
  font-size: 15px !important;
  text-transform: uppercase;
  transition: color .15s ease;
}
.ast-builder-menu .menu-item > a:hover,
.ast-primary-menu .menu-item > a:hover,
#ast-hf-menu-1 .menu-item > a:hover {
  color: var(--cgt-red) !important;
}
.ast-site-identity .site-title a {
  color: var(--cgt-red) !important;
  font-weight: 700 !important;
}
.ast-primary-header-bar { box-shadow: 0 2px 8px rgba(0,0,0,.06); transition: box-shadow .25s ease, padding .25s ease; }

/* Header shrinks slightly when scrolled */
.site-header.cgt-header-scrolled .ast-primary-header-bar {
  box-shadow: 0 6px 18px rgba(0,0,0,.12);
}
.site-header.cgt-header-scrolled .ast-builder-grid-row { padding-top: 4px !important; padding-bottom: 4px !important; }
.site-header.cgt-header-scrolled .custom-logo { max-height: 50px !important; transition: max-height .25s ease; }
.custom-logo { transition: max-height .25s ease; }

/* ============================================================
   HERO SLIDER (3 slides, auto-rotate)
   ============================================================ */
.cgt-hero-slider {
  position: relative;
  width: 100%;
  min-height: 560px;
  overflow: hidden;
  background: #1a1a1a;
}
.cgt-hero-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center center;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 100px 24px;
  opacity: 0;
  transition: opacity 1.4s ease-in-out;
  z-index: 1;
}
.cgt-hero-slide.cgt-active {
  opacity: 1;
  z-index: 2;
}
.cgt-hero-slide::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(15,20,30,.70) 0%, rgba(35,15,18,.55) 100%);
  z-index: 1;
}
.cgt-hero-slide-inner {
  position: relative;
  z-index: 2;
  max-width: 900px;
  color: #fff;
}
.cgt-hero-slide h2 {
  color: #fff !important;
  font-size: 3.2rem !important;
  font-weight: 800 !important;
  letter-spacing: -.015em;
  margin: 0 0 .3em !important;
  text-shadow: 0 2px 14px rgba(0,0,0,.55);
  line-height: 1.05 !important;
  text-transform: uppercase;
}
.cgt-hero-slide .cgt-hero-tag {
  display: block;
  font-family: "Dancing Script", cursive;
  font-size: 2rem;
  color: var(--cgt-red-light);
  margin-bottom: .5em;
  font-weight: 500;
  text-shadow: 0 2px 12px rgba(0,0,0,.55);
}
.cgt-hero-slide .cgt-hero-phone {
  font-size: 1.4rem;
  margin: 1em 0 1.5em;
  color: #fff;
}
.cgt-hero-slide .cgt-hero-phone a {
  color: #fff !important;
  font-weight: 700;
  text-decoration: underline;
}
.cgt-hero-slider-dots {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 5;
}
.cgt-hero-slider-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(255,255,255,.4);
  border: 2px solid rgba(255,255,255,.7);
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}
.cgt-hero-slider-dot.cgt-active {
  background: var(--cgt-red);
  border-color: #fff;
  transform: scale(1.2);
}
@media (max-width: 768px) {
  .cgt-hero-slider { min-height: 440px; }
  .cgt-hero-slide { padding: 80px 16px; }
  .cgt-hero-slide h2 { font-size: 2rem !important; }
  .cgt-hero-slide .cgt-hero-tag { font-size: 1.4rem; }
}

/* ============================================================
   HERO (single image — legacy + inner pages)
   ============================================================ */
.cgt-hero {
  position: relative;
  min-height: 560px;
  background-image: url('/wp-content/uploads/2018/06/slider-image1-1.jpg');
  background-size: cover;
  background-position: center center;
  background-attachment: scroll;
  background-color: #1a1a1a;
  display: flex !important;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 100px 24px 80px;
  width: 100%;
  margin: 0;
  overflow: hidden;
}
.cgt-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(15,20,30,.7) 0%, rgba(35,15,18,.55) 100%);
  z-index: 1;
  animation: cgtHeroGradientPulse 12s ease-in-out infinite alternate;
}
@keyframes cgtHeroGradientPulse {
  from { background: linear-gradient(135deg, rgba(15,20,30,.7) 0%, rgba(35,15,18,.55) 100%); }
  to   { background: linear-gradient(225deg, rgba(15,20,30,.55) 0%, rgba(35,15,18,.7) 100%); }
}
.cgt-hero-inner {
  max-width: 900px;
  position: relative;
  z-index: 2;
  color: #fff;
  padding: 20px;
  animation: cgtFadeUp 1s ease-out both;
}
@keyframes cgtFadeUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}
.cgt-hero h1,
.cgt-hero .cgt-hero-title {
  color: #fff !important;
  font-size: 3.2rem !important;
  font-weight: 800 !important;
  letter-spacing: -.01em;
  margin: 0 0 .4em !important;
  text-shadow: 0 2px 14px rgba(0,0,0,.5);
  line-height: 1.1 !important;
}
.cgt-hero p,
.cgt-hero .cgt-hero-sub {
  color: #f5f7fa !important;
  font-size: 1.25rem !important;
  margin-bottom: 1.8em !important;
  text-shadow: 0 1px 8px rgba(0,0,0,.5);
}
.cgt-hero-ctas { display: inline-flex; gap: 14px; flex-wrap: wrap; justify-content: center; }

/* Subtle hero background zoom on load */
.cgt-hero { animation: cgtHeroZoom 18s ease-out forwards; }
@keyframes cgtHeroZoom {
  from { background-size: 110%; }
  to   { background-size: 100%; }
}

/* ============================================================
   BUTTONS
   ============================================================ */
.cgt-btn,
a.cgt-btn,
html body .wp-block-button .wp-block-button__link.cgt-btn {
  display: inline-block;
  background: var(--cgt-red) !important;
  color: #fff !important;
  font-weight: 700 !important;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 16px 36px !important;
  border-radius: 4px;
  border: 0;
  font-size: 0.95rem !important;
  text-decoration: none !important;
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
  box-shadow: 0 4px 12px rgba(203, 32, 39, .35);
  line-height: 1 !important;
  cursor: pointer;
}
.cgt-btn:hover {
  background: var(--cgt-red-dark) !important;
  color: #fff !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(203, 32, 39, .5);
}
.cgt-btn--ghost {
  background: transparent !important;
  border: 2px solid #fff !important;
  color: #fff !important;
  box-shadow: none !important;
  padding: 14px 34px !important;
}
.cgt-btn--ghost:hover {
  background: #fff !important;
  color: var(--cgt-red) !important;
  border-color: #fff !important;
  transform: translateY(-2px);
}

/* ============================================================
   SECTIONS
   ============================================================ */
.cgt-section { padding: 80px 0; width: 100%; }
.cgt-section .ast-container {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
}
.cgt-section--alt { background: var(--cgt-light); }
.cgt-section--dark { background: var(--cgt-dark); color: #f5f5f5; }
.cgt-section--dark h2, .cgt-section--dark h3 { color: #fff !important; }

.cgt-section-title {
  text-align: center;
  font-size: 2.4rem !important;
  margin: 0 0 .15em !important;
}
.cgt-section-title::after {
  content: '';
  display: block;
  width: 70px;
  height: 4px;
  background: var(--cgt-red);
  margin: 18px auto 0;
}
.cgt-subtitle-label {
  display: block;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .25em;
  font-size: .8rem;
  font-weight: 700;
  color: var(--cgt-red);
  margin-bottom: 14px;
}
.cgt-section-subtitle {
  text-align: center;
  font-size: 1.1rem !important;
  color: var(--cgt-gray) !important;
  max-width: 720px;
  margin: 0 auto 50px !important;
  line-height: 1.6 !important;
}

/* ============================================================
   SERVICE CARDS
   ============================================================ */
.cgt-service-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 26px;
  margin-top: 30px;
}
.cgt-service-card {
  background: #fff;
  border-radius: 8px;
  padding: 40px 28px 32px;
  text-align: center;
  box-shadow: 0 2px 18px rgba(0,0,0,.06);
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  border-top: 4px solid var(--cgt-red);
}
.cgt-service-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 36px rgba(0,0,0,.14);
}
.cgt-service-card .icon {
  font-size: 2.5rem;
  color: var(--cgt-red);
  margin-bottom: 14px;
  display: block;
  line-height: 1;
  transition: transform .3s ease;
}
.cgt-service-card:hover .icon { transform: scale(1.15) rotate(-5deg); }
.cgt-service-card h3 { margin: 0 0 10px !important; font-size: 1.2rem !important; }
.cgt-service-card p { margin: 0; color: var(--cgt-gray) !important; font-size: .95rem !important; line-height: 1.55 !important; }

/* ============================================================
   HOME PRODUCT CARDS  (image on top, white info box below)
   Matches original Salient ".work-item style-1" layout.
   ============================================================ */
.cgt-home-products {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin: 0;
}
.cgt-home-product {
  display: block;
  text-decoration: none !important;
  background: #fff;
  color: var(--cgt-charcoal);
  overflow: hidden;
  position: relative;
  transition: box-shadow .25s ease, transform .25s ease;
}
.cgt-home-product:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(0,0,0,.14);
  z-index: 2;
}
.cgt-home-product-img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  background-size: cover;
  background-position: center;
  background-color: #2a2a2a;
  position: relative;
  overflow: hidden;
}
.cgt-home-product-img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(203, 32, 39, 0);
  transition: background .25s ease;
}
.cgt-home-product:hover .cgt-home-product-img::after {
  background: rgba(203, 32, 39, .18);
}
.cgt-home-product-info {
  padding: 28px 24px 32px;
  text-align: center;
}
.cgt-home-product-info h4 {
  font-size: 1.3rem !important;
  margin: 0 0 12px !important;
  color: var(--cgt-dark) !important;
  font-weight: 700;
}
.cgt-home-product-info p {
  color: var(--cgt-gray) !important;
  font-size: .95rem !important;
  line-height: 1.55 !important;
  margin: 0 0 18px !important;
}
.cgt-home-product-info .cgt-pill {
  display: inline-block;
  background: var(--cgt-red);
  color: #fff !important;
  padding: 9px 22px;
  border-radius: 24px;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  transition: background .15s ease, transform .15s ease;
}
.cgt-home-product:hover .cgt-pill {
  background: var(--cgt-red-dark);
  transform: translateY(-1px);
}
@media (max-width: 992px) {
  .cgt-home-products { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
  .cgt-home-products { grid-template-columns: 1fr; }
}

/* ============================================================
   WHY-CGT 2-COLUMN  (left text, right stacked services)
   ============================================================ */
.cgt-why {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 70px;
  align-items: center;
}
.cgt-why-left .cgt-subtitle-label,
.cgt-why-left .cgt-section-title {
  text-align: left;
}
.cgt-why-left .cgt-section-title::after {
  margin-left: 0;
}
.cgt-why-left p {
  color: var(--cgt-gray);
  margin: 16px 0 28px;
  line-height: 1.7;
}
.cgt-why-right {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.cgt-why-item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.cgt-why-item .icon {
  flex: 0 0 auto;
  width: 56px;
  height: 56px;
  background: var(--cgt-red);
  color: #fff;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  box-shadow: 0 4px 12px rgba(203,32,39,.25);
  transition: transform .2s ease;
}
.cgt-why-item:hover .icon {
  transform: rotate(-6deg) scale(1.08);
}
.cgt-why-item h4 {
  margin: 0 0 4px !important;
  font-size: 1.1rem !important;
  color: var(--cgt-dark) !important;
}
.cgt-why-item p {
  margin: 0 !important;
  color: var(--cgt-gray) !important;
  font-size: .9rem !important;
  line-height: 1.5 !important;
}
@media (max-width: 900px) {
  .cgt-why { grid-template-columns: 1fr; gap: 40px; }
  .cgt-why-right { grid-template-columns: 1fr; }
  .cgt-why-left .cgt-subtitle-label,
  .cgt-why-left .cgt-section-title { text-align: center; }
  .cgt-why-left .cgt-section-title::after { margin-left: auto; }
}

/* ============================================================
   PARTNERS LOGO STRIP — simple white row of client logos
   ============================================================ */
.cgt-partners {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 30px;
  align-items: center;
  justify-items: center;
  max-width: 1100px;
  margin: 30px auto 0;
}
.cgt-partners a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.cgt-partners img {
  max-height: 60px;
  width: auto;
  max-width: 140px;
  opacity: .55;
  filter: grayscale(40%);
  transition: opacity .25s ease, filter .25s ease, transform .25s ease;
}
.cgt-partners a:hover img {
  opacity: 1;
  filter: none;
  transform: scale(1.06);
}

/* ============================================================
   2-COLUMN TESTIMONIAL  (image left, text right)
   ============================================================ */
.cgt-testimonial-split {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  background: #fff;
  border-top: 1px solid #eee;
  border-bottom: 1px solid #eee;
}
.cgt-testimonial-split-img {
  background-size: cover;
  background-position: center;
  min-height: 480px;
  background-color: #2a2a2a;
}
.cgt-testimonial-split-text {
  padding: 70px 50px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.cgt-testimonial-split-text .cgt-subtitle-label {
  text-align: left;
  margin-bottom: 10px;
}
.cgt-testimonial-split-text blockquote {
  font-size: 1.4rem;
  font-style: italic;
  line-height: 1.6;
  color: var(--cgt-charcoal);
  margin: 12px 0 24px !important;
  padding: 0 !important;
  border: 0;
  background: transparent;
}
.cgt-testimonial-split-text blockquote::before {
  content: '\201C';
  font-family: Georgia, serif;
  font-size: 4rem;
  color: var(--cgt-red);
  line-height: .8;
  display: block;
  margin-bottom: -.2em;
}
.cgt-testimonial-split-text cite {
  font-style: normal;
  font-weight: 700;
  color: var(--cgt-dark);
  font-size: 1rem;
  display: block;
}
.cgt-testimonial-split-text h3 {
  font-size: 2rem !important;
  margin: 0 0 8px !important;
  color: var(--cgt-dark) !important;
}
@media (max-width: 900px) {
  .cgt-testimonial-split { grid-template-columns: 1fr; }
  .cgt-testimonial-split-img { min-height: 300px; }
  .cgt-testimonial-split-text { padding: 50px 24px; }
}

/* ============================================================
   PORTFOLIO CARDS  (used on Products / inner pages)
   ============================================================ */
.cgt-portfolio-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin-top: 30px;
}
.cgt-portfolio-card {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  min-height: 300px;
  background-size: cover;
  background-position: center;
  box-shadow: 0 4px 18px rgba(0,0,0,.1);
  display: flex;
  align-items: flex-end;
  text-decoration: none !important;
  transition: transform .35s ease, box-shadow .35s ease;
}
.cgt-portfolio-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: inherit;
  background-size: cover;
  background-position: center;
  transition: transform .6s ease;
  z-index: 0;
}
.cgt-portfolio-card:hover { transform: translateY(-5px); box-shadow: 0 16px 36px rgba(0,0,0,.22); }
.cgt-portfolio-card:hover::after { transform: scale(1.08); }
.cgt-portfolio-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,.05) 30%, rgba(0,0,0,.85) 100%);
  z-index: 1;
  transition: background .3s ease;
}
.cgt-portfolio-card:hover::before {
  background: linear-gradient(to bottom, rgba(0,0,0,.1) 15%, rgba(0,0,0,.92) 100%);
}
.cgt-portfolio-card-body {
  position: relative;
  z-index: 2;
  color: #fff !important;
  padding: 28px 24px;
  width: 100%;
}
.cgt-portfolio-card-body h3 { color: #fff !important; margin: 0 0 8px !important; font-size: 1.35rem !important; }
.cgt-portfolio-card-body p { margin: 0 0 10px !important; color: #f0f0f0 !important; font-size: .92rem !important; line-height: 1.5 !important; }
.cgt-portfolio-card-body .more {
  display: inline-block;
  color: #fff !important;
  font-weight: 700;
  text-transform: uppercase;
  font-size: .8rem;
  letter-spacing: .08em;
  border-bottom: 2px solid var(--cgt-red);
  padding-bottom: 2px;
  transition: border-color .2s ease, color .2s ease;
}
.cgt-portfolio-card:hover .more { border-color: #fff; }

/* ============================================================
   FAQ ACCORDION  (Salient proddtlaccord* widget)
   The original site used JS-driven category filter + accordion.
   We restore both with CSS-only + a tiny JS toggle (in effects.js).
   ============================================================ */

/* The filter button toolbar */
.entry-content .toolbar.mb2.mt2 {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin: 30px 0 40px;
  padding: 0;
}
.entry-content button.fil-cat,
.entry-content .fil-cat {
  display: inline-block;
  background: #fff;
  color: var(--cgt-dark);
  border: 2px solid #e0e0e0;
  padding: 10px 22px;
  border-radius: 30px;
  font-weight: 600;
  font-size: .88rem;
  letter-spacing: .03em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all .2s ease;
}
.entry-content button.fil-cat:hover {
  border-color: var(--cgt-red);
  color: var(--cgt-red);
}
.entry-content button.fil-cat.active {
  background: var(--cgt-red);
  border-color: var(--cgt-red);
  color: #fff;
}
.entry-content button.fil-cat sup {
  font-size: .7rem;
  margin-left: 2px;
  opacity: .7;
}

/* Each Q/A pair */
.entry-content .proddtlaccordtitle {
  background: #fff;
  border: 1px solid #e6e6e6;
  border-left: 4px solid var(--cgt-red);
  border-radius: 4px;
  margin: 8px 0 0;
  padding: 0;
  cursor: pointer;
  position: relative;
  transition: background .2s ease, box-shadow .2s ease;
}
.entry-content .proddtlaccordtitle:hover {
  background: #fafafa;
  box-shadow: 0 4px 14px rgba(0,0,0,.06);
}
.entry-content .proddtlaccordtitle > a {
  display: block;
  padding: 18px 50px 18px 22px;
  color: var(--cgt-dark) !important;
  font-weight: 700;
  font-size: 1.05rem;
  line-height: 1.4;
  text-decoration: none !important;
}
/* Caret icon */
.entry-content .proddtlaccordtitle::after {
  content: '+';
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
  font-size: 1.6rem;
  font-weight: 400;
  color: var(--cgt-red);
  transition: transform .25s ease;
  line-height: 1;
}
.entry-content .proddtlaccordtitle.open::after,
.entry-content .proddtlaccordtitle.cgt-faq-open::after {
  content: '\2212'; /* minus */
  transform: translateY(-50%);
}

/* Answer block - hidden by default, revealed via JS class */
.entry-content .proddtlaccordcontainer {
  max-height: 0;
  overflow: hidden;
  background: #fafafa;
  border: 1px solid #e6e6e6;
  border-top: 0;
  border-radius: 0 0 4px 4px;
  margin: 0 0 4px;
  padding: 0 22px;
  transition: max-height .35s ease, padding .35s ease;
}
.entry-content .proddtlaccordcontainer.cgt-faq-open {
  max-height: 2000px;
  padding: 18px 22px 22px;
}
.entry-content .proddtlaccordcontainer p,
.entry-content .proddtlaccordcontainer li {
  color: var(--cgt-charcoal) !important;
  line-height: 1.7 !important;
}
.entry-content .proddtlaccordcontainer p:last-child { margin-bottom: 0; }
.entry-content .proddtlaccordcontainer ul.list-style {
  margin: 8px 0 12px;
  padding-left: 24px;
}

/* Items hidden by filter */
.entry-content .proddtlaccordtitle.cgt-filter-hidden,
.entry-content .proddtlaccordcontainer.cgt-filter-hidden {
  display: none !important;
}

/* The category label that appears above the FAQ list ("All  Safety...  Sun Control...") */
.entry-content .wpb_raw_code .toolbar {
  /* defined above */
}

/* ============================================================
   CONTACT FORM 7 styling
   ============================================================ */
.cgt-contact-form-wrap,
.wpcf7-form {
  font-family: "Roboto", sans-serif !important;
}
.wpcf7-form label {
  display: block;
  margin: 0 0 18px;
  font-weight: 600;
  font-size: .92rem;
  color: var(--cgt-dark);
}
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form select,
.wpcf7-form textarea {
  width: 100%;
  padding: 12px 14px !important;
  border: 1px solid #d8d8d8 !important;
  border-radius: 4px !important;
  font-size: 1rem !important;
  font-family: inherit !important;
  background: #fff !important;
  box-sizing: border-box;
  margin-top: 6px;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
  outline: 0;
  border-color: var(--cgt-red) !important;
  box-shadow: 0 0 0 3px rgba(203,32,39,.12) !important;
}
.wpcf7-form textarea { min-height: 130px; resize: vertical; }
.wpcf7-form input[type="submit"],
.wpcf7-submit {
  background: var(--cgt-red) !important;
  color: #fff !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase;
  padding: 14px 36px !important;
  border: 0 !important;
  border-radius: 4px !important;
  font-size: 1rem !important;
  cursor: pointer;
  transition: background .15s ease, transform .15s ease;
  box-shadow: 0 4px 12px rgba(203,32,39,.35);
  margin-top: 12px;
}
.wpcf7-form input[type="submit"]:hover,
.wpcf7-submit:hover {
  background: var(--cgt-red-dark) !important;
  transform: translateY(-2px);
}
.wpcf7-response-output {
  margin-top: 20px !important;
  padding: 12px 16px !important;
  border-radius: 4px;
  font-size: .95rem;
}
.wpcf7 form.sent .wpcf7-response-output {
  background: #e8f5e9;
  border: 1px solid #4caf50 !important;
  color: #2e7d32;
}
.wpcf7-not-valid-tip {
  color: var(--cgt-red);
  font-size: .85rem;
  margin-top: 4px;
}

/* ============================================================
   PHOTO GALLERY  (Our Work)
   ============================================================ */
.cgt-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
  margin-top: 30px;
}
.cgt-gallery-item {
  aspect-ratio: 4 / 3;
  background-size: cover;
  background-position: center;
  border-radius: 6px;
  box-shadow: 0 2px 14px rgba(0,0,0,.10);
  transition: transform .35s ease, box-shadow .35s ease;
  cursor: pointer;
}
.cgt-gallery-item:hover {
  transform: scale(1.03);
  box-shadow: 0 12px 30px rgba(0,0,0,.20);
}

/* ============================================================
   TESTIMONIAL
   ============================================================ */
.cgt-testimonial {
  background-image: url('/wp-content/uploads/2018/06/testimonial-img-1.jpg');
  background-size: cover;
  background-position: center;
  background-attachment: scroll;
  background-color: #1a1a1a;
  color: #fff;
  padding: 90px 24px;
  text-align: center;
  position: relative;
}
.cgt-testimonial::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(15, 20, 30, .72);
  z-index: 1;
}
.cgt-testimonial > * { position: relative; z-index: 2; }
.cgt-testimonial blockquote {
  max-width: 760px;
  margin: 0 auto !important;
  font-size: 1.4rem !important;
  font-weight: 400 !important;
  font-style: italic;
  line-height: 1.6 !important;
  color: #fff !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.cgt-testimonial cite {
  display: block;
  margin-top: 1em;
  font-size: 1rem;
  letter-spacing: .04em;
  color: #f0f0f0;
  font-style: normal;
}
.cgt-testimonial-quote-mark {
  font-family: Georgia, serif;
  font-size: 5rem;
  color: var(--cgt-red);
  line-height: 1;
  display: block;
  margin: 0 0 .1em;
}

/* ============================================================
   CTA BAND
   ============================================================ */
.cgt-cta-band {
  background-image: url('/wp-content/uploads/2018/06/contact-us-1.jpg');
  background-size: cover;
  background-position: center;
  background-attachment: scroll;
  color: #fff;
  text-align: center;
  padding: 80px 24px;
  position: relative;
}
.cgt-cta-band::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(203, 32, 39, .82);
  z-index: 1;
}
.cgt-cta-band > * { position: relative; z-index: 2; }
.cgt-cta-band h2 { color: #fff !important; font-size: 2.4rem !important; margin: 0 0 .35em !important; }
.cgt-cta-band p { color: #fff !important; font-size: 1.15rem !important; margin: 0 0 1.5em !important; }

/* ============================================================
   LOGO STRIP
   ============================================================ */
.cgt-logo-strip {
  background: #fff;
  padding: 30px 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 30px;
  align-items: center;
  justify-items: center;
  max-width: 1200px;
  margin: 30px auto 0;
}
.cgt-logo-strip img {
  max-height: 60px;
  width: auto;
  opacity: .6;
  filter: grayscale(30%);
  transition: opacity .25s ease, filter .25s ease, transform .25s ease;
}
.cgt-logo-strip img:hover { opacity: 1; filter: none; transform: scale(1.08); }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer, .site-footer-section, .ast-footer-overlay {
  background: var(--cgt-dark) !important;
  color: #c5c5c5 !important;
}
.site-footer a { color: #fff !important; }
.site-footer a:hover { color: var(--cgt-red-light) !important; }
.site-footer h2, .site-footer h3, .site-footer-section-title { color: #fff !important; }

/* ============================================================
   SALIENT COMPAT — make legacy WPBakery markup visible.
   Imported pages have raw Salient markup; we make it look like
   it did originally (banner photo header, content rows, gray
   CTA strips).
   ============================================================ */

/* Salient containers — used as page wrappers */
.entry-content > .container-wrap,
.entry-content .container-wrap.inner-page,
.entry-content .container-wrap[data-nav-pos] {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  position: relative;
}
.entry-content .container.main-content {
  display: block;
  width: 100%;
  max-width: none;  /* let banners go full-bleed */
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}
/* Salient's #full_width_portfolio wrapper (portfolio pages) */
.entry-content #full_width_portfolio {
  width: 100%;
  margin: 0;
  padding: 0;
}
.entry-content #portfolio-extra {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 24px;
}

/* ----------------------------------------------------------
   ROWS — the core Salient structural element.
   <div class="wpb_row vc_row-fluid vc_row [modifiers]">
     <div class="row-bg-wrap">
       <div class="inner-wrap">
         <div class="row-bg using-image / using-bg-color" style="background-image:..." />
       </div>
     </div>
     <div class="col span_X dark/light left/center/right">
       ... content ...
     </div>
   </div>
   ---------------------------------------------------------- */

/* Default content row (no banner, no bg color) — restrain to readable width */
.entry-content .wpb_row,
.entry-content .vc_row {
  position: relative;
  display: block;
  width: 100%;
  margin: 0 !important;
  padding: 40px 0 !important;
  background: transparent !important;
  box-sizing: border-box;
  clear: both;
}
.entry-content .wpb_row > .col,
.entry-content .vc_row > .col {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  margin: 0 auto !important;
  padding: 0 24px !important;
  box-sizing: border-box;
  display: block;
  float: none !important;
  width: auto !important;
}

/* Banner row — full-bleed with photo background */
.entry-content .wpb_row.full-width-section.internal-banner,
.entry-content .wpb_row.internal-banner {
  position: relative;
  width: 100%;
  padding: 100px 24px !important;
  min-height: 320px;
  overflow: hidden;
  color: #fff;
  text-align: left;
}
/* Non-banner full-width-section: keep some breathing room */
.entry-content .wpb_row.full-width-section:not(.internal-banner):not(.get-your-free-estimate-btn) {
  position: relative;
  width: 100%;
  padding: 60px 24px !important;
  overflow: hidden;
}

/* The Salient row-bg layers */
.entry-content .row-bg-wrap {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  overflow: hidden;
  pointer-events: none;
}
.entry-content .row-bg-wrap .inner-wrap {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}
.entry-content .row-bg {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 0 !important;
}
.entry-content .row-bg.using-image {
  background-size: cover !important;
  background-position: center !important;
  background-color: #1d1d1d;
  background-image: linear-gradient(135deg, #1d1d1d 0%, #3a1a1c 60%, #cb2027 100%);
}
/* If a real image URL is set inline, it'll override our gradient fallback.
   When it 404s, the gradient still shows so the banner isn't blank. */
.entry-content .row-bg.using-bg-color {
  background-color: #eeeeee;
}

/* Dark overlay only on banner rows (photo bg, white text expected) */
.entry-content .wpb_row.full-width-section .row-bg.using-image::before,
.entry-content .wpb_row.internal-banner .row-bg.using-image::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.40) 0%, rgba(0,0,0,.65) 100%);
}

/* Content sits above the bg */
.entry-content .wpb_row > .col,
.entry-content .wpb_row > .vc_col-sm-12,
.entry-content .wpb_row > .vc_col-sm-6,
.entry-content .wpb_row > .vc_col-sm-4,
.entry-content .wpb_row > .vc_col-sm-3,
.entry-content .wpb_row > .wpb_column {
  position: relative !important;
  z-index: 2 !important;
}
.entry-content .wpb_row.full-width-section > .col,
.entry-content .wpb_row.internal-banner > .col,
.entry-content .wpb_row.full-width-section > .wpb_column,
.entry-content .wpb_row.internal-banner > .wpb_column {
  max-width: 1100px;
  margin: 0 auto !important;
  color: #fff;
}

/* Gray "Get your free estimate" CTA strip (using-bg-color row) */
.entry-content .wpb_row.get-your-free-estimate-btn,
.entry-content .wpb_row.standard_section.get-your-free-estimate-btn {
  background: #f0f0f0;
  padding: 50px 24px !important;
  text-align: center;
  min-height: 0;
  position: relative;
  overflow: visible;
}
.entry-content .wpb_row.get-your-free-estimate-btn .row-bg-wrap,
.entry-content .wpb_row.get-your-free-estimate-btn .row-bg-wrap .row-bg {
  /* The bg-color div already has #eeeeee inline; keep it visible */
  background-color: #f0f0f0;
}
.entry-content .wpb_row.get-your-free-estimate-btn > .col {
  text-align: center;
  position: relative;
  z-index: 2;
}
.entry-content .wpb_row.get-your-free-estimate-btn .row-bg::before {
  display: none !important;  /* No dark overlay on the gray CTA strip */
}
.entry-content .wpb_row.get-your-free-estimate-btn a.btn,
.entry-content a.btn {
  display: inline-block;
  background: var(--cgt-red) !important;
  color: #fff !important;
  padding: 14px 36px;
  border-radius: 4px;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: .04em;
  text-decoration: none !important;
  transition: background .2s ease, transform .2s ease;
  box-shadow: 0 4px 12px rgba(203,32,39,.35);
}
.entry-content a.btn:hover {
  background: var(--cgt-red-dark) !important;
  transform: translateY(-2px);
}

/* Sub-title (small label above h2 in Salient) */
.entry-content .sub-title {
  color: var(--cgt-red);
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
/* When sub-title is inside a banner (dark bg), tint it light */
.entry-content .full-width-section .sub-title,
.entry-content .internal-banner .sub-title { color: #ffd1d3; }

/* Salient data-midnight="dark" = light text on dark image */
.entry-content [data-midnight="dark"] {
  color: #fff;
}
.entry-content .full-width-section[data-midnight="dark"] h1,
.entry-content .full-width-section[data-midnight="dark"] h2,
.entry-content .full-width-section[data-midnight="dark"] h3,
.entry-content .full-width-section[data-midnight="dark"] h4,
.entry-content .full-width-section[data-midnight="dark"] p,
.entry-content .full-width-section[data-midnight="dark"] li,
.entry-content .internal-banner[data-midnight="dark"] h1,
.entry-content .internal-banner[data-midnight="dark"] h2,
.entry-content .internal-banner[data-midnight="dark"] h3,
.entry-content .internal-banner[data-midnight="dark"] p {
  color: #fff !important;
}
.entry-content .full-width-section[data-midnight="dark"] a:not(.btn):not(.nectar-button),
.entry-content .internal-banner[data-midnight="dark"] a:not(.btn):not(.nectar-button) {
  color: #fff !important;
  text-decoration: underline;
}

/* Column inner wrappers — invisible, just pass-through */
.entry-content .vc_col-sm-12,
.entry-content .vc_col-sm-6,
.entry-content .vc_col-sm-4,
.entry-content .vc_col-sm-3,
.entry-content .vc_col-sm-2,
.entry-content .vc_column-inner,
.entry-content .wpb_wrapper,
.entry-content .wpb_text_column,
.entry-content .wpb_content_element {
  display: block !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box;
  position: static;
  float: none !important;
  width: auto !important;
  z-index: auto;
}

/* Top-level `.row` (Salient page wrapper, NOT inside wpb_row) */
.entry-content > .container-wrap > .container > .row,
.entry-content .container.main-content > .row {
  display: block;
  margin: 0;
  padding: 0;
  width: 100%;
  clear: both;
}
.entry-content .row::after,
.entry-content .clearfix::after { content: ''; display: table; clear: both; }

/* Salient col span grid — used inside wpb_row columns */
.entry-content .col.span_12 { width: 100% !important; padding: 0 !important; }
.entry-content .col.span_6  { width: 50% !important; float: left; padding: 0 15px; }
.entry-content .col.span_4  { width: 33.333% !important; float: left; padding: 0 15px; }
.entry-content .col.span_3  { width: 25% !important; float: left; padding: 0 15px; }

/* In banners, span_12 col is centered with padding */
.entry-content .wpb_row.full-width-section .col.span_12,
.entry-content .wpb_row.internal-banner .col.span_12 {
  max-width: 1100px;
  margin: 0 auto !important;
  padding: 0 24px !important;
}

/* Text alignment classes */
.entry-content .col.center { text-align: center; }
.entry-content .col.left   { text-align: left; }
.entry-content .col.right  { text-align: right; }

/* Salient .img-box1 (used on About page) — column with photo background */
.entry-content .img-box1 {
  background-size: cover !important;
  background-position: center !important;
  min-height: 320px;
  border-radius: 8px;
  overflow: hidden;
  position: relative;
  padding: 220px 22px 24px !important;
  color: #fff;
  text-align: center;
}
.entry-content .img-box1::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,.15) 50%, rgba(0,0,0,.9) 100%);
  z-index: 1;
  pointer-events: none;
}
.entry-content .img-box1 > * {
  position: relative;
  z-index: 2;
}
.entry-content .img-box1 h3 {
  color: #fff !important;
  font-size: 1.3rem !important;
  margin: 0 0 8px !important;
  text-shadow: 0 1px 6px rgba(0,0,0,.5);
}
.entry-content .img-box1 .excerpt-box,
.entry-content .img-box1 p {
  color: #f5f5f5 !important;
  font-size: .92rem !important;
  line-height: 1.55 !important;
  text-shadow: 0 1px 4px rgba(0,0,0,.5);
  margin: 0 !important;
}

/* Spacing for stacked wpb_text_column blocks */
.entry-content .wpb_text_column { margin-bottom: 1.5em !important; }
.entry-content .wpb_text_column h1,
.entry-content .wpb_text_column h2,
.entry-content .wpb_text_column h3 { margin-top: 1em; }
.entry-content .wpb_text_column p { margin-bottom: 1em; }

/* Salient buttons */
.entry-content .nectar-button,
.entry-content a.nectar-button {
  display: inline-block;
  background: var(--cgt-red) !important;
  color: #fff !important;
  padding: 14px 32px !important;
  border-radius: 4px;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: .04em;
  text-decoration: none !important;
  transition: background .2s ease, transform .2s ease;
}
.entry-content .nectar-button:hover {
  background: var(--cgt-red-dark) !important;
  transform: translateY(-2px);
}

/* "Get your free quote here" call-to-action box that appears on many pages */
.entry-content .vc_btn3-container,
.entry-content .nectar-cta {
  margin: 30px 0 !important;
  text-align: center;
}

/* Salient image rows */
.entry-content .wpb_single_image {
  margin: 1.5em 0;
  text-align: center;
}
.entry-content .wpb_single_image img {
  max-width: 100%;
  height: auto;
  border-radius: 4px;
  box-shadow: 0 4px 14px rgba(0,0,0,.08);
}

/* Salient portfolio items (used on /portfolio/* pages) */
.entry-content #portfolio-extra {
  padding: 40px 0;
}
.entry-content #full_width_portfolio[data-featured-img] {
  /* If the portfolio top-banner image is in data-featured-img we use it */
  position: relative;
}

/* Hide Salient-specific elements that don't make sense without the JS */
.entry-content .nectar-love-wrap,
.entry-content .comments-section,
.entry-content [class*="nectar_slider"]:empty,
.entry-content .salient-tabs-only { display: none; }

/* Hide broken <img> tags (the Products page has 117 image refs to missing files).
   This uses CSS background-color + zero-size trick so broken-image icons
   never show, but valid images render fine. */
.entry-content img {
  background: #f6f6f6;
  border-radius: 4px;
}
/* If the image's intrinsic size is 0 (broken), shrink the container.
   Safer approach: only show images that have loaded — handled by JS below. */
.entry-content img.cgt-broken {
  display: none !important;
}

/* Salient toggle/accordion fallback (just show content) */
.entry-content .toggle .accordion-content { display: block !important; }
.entry-content .toggle h3.toggle a {
  display: block;
  padding: 16px 20px;
  background: var(--cgt-light);
  border-left: 4px solid var(--cgt-red);
  margin-bottom: 8px;
  font-weight: 700;
  color: var(--cgt-dark) !important;
}

/* ============================================================
   SCROLL-REVEAL  (JS adds .cgt-in-view when section enters viewport)
   ============================================================ */
.cgt-reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity .8s ease-out, transform .8s ease-out;
  transition-delay: .1s;
}
.cgt-reveal.cgt-in-view {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger children */
.cgt-reveal .cgt-service-card,
.cgt-reveal .cgt-portfolio-card {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .6s ease-out, transform .6s ease-out;
}
.cgt-reveal.cgt-in-view .cgt-service-card:nth-child(1),
.cgt-reveal.cgt-in-view .cgt-portfolio-card:nth-child(1) { transition-delay: .15s; opacity: 1; transform: translateY(0); }
.cgt-reveal.cgt-in-view .cgt-service-card:nth-child(2),
.cgt-reveal.cgt-in-view .cgt-portfolio-card:nth-child(2) { transition-delay: .25s; opacity: 1; transform: translateY(0); }
.cgt-reveal.cgt-in-view .cgt-service-card:nth-child(3),
.cgt-reveal.cgt-in-view .cgt-portfolio-card:nth-child(3) { transition-delay: .35s; opacity: 1; transform: translateY(0); }
.cgt-reveal.cgt-in-view .cgt-service-card:nth-child(4),
.cgt-reveal.cgt-in-view .cgt-portfolio-card:nth-child(4) { transition-delay: .45s; opacity: 1; transform: translateY(0); }
.cgt-reveal.cgt-in-view .cgt-portfolio-card:nth-child(5) { transition-delay: .55s; opacity: 1; transform: translateY(0); }
.cgt-reveal.cgt-in-view .cgt-portfolio-card:nth-child(6) { transition-delay: .65s; opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  .cgt-reveal, .cgt-reveal .cgt-service-card, .cgt-reveal .cgt-portfolio-card,
  .cgt-hero, .cgt-hero-inner {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 768px) {
  .cgt-hero { min-height: 440px; padding: 80px 16px; }
  .cgt-hero h1, .cgt-hero .cgt-hero-title { font-size: 2.1rem !important; }
  .cgt-hero p { font-size: 1rem !important; }
  .cgt-section { padding: 50px 0; }
  .cgt-section-title { font-size: 1.8rem !important; }
  .cgt-testimonial { padding: 60px 16px; }
  .cgt-testimonial blockquote { font-size: 1.1rem !important; }
  .cgt-cta-band { padding: 60px 16px; }
  .cgt-cta-band h2 { font-size: 1.8rem !important; }
  .cgt-btn, a.cgt-btn { padding: 14px 24px !important; font-size: .9rem !important; }

  /* Salient compat — stack columns on mobile */
  .entry-content .row .col.span_6,
  .entry-content .row .col.span_4,
  .entry-content .row .col.span_3 { width: 100% !important; float: none !important; padding: 10px 0 !important; }
  .entry-content .full-width-section { padding: 50px 20px !important; min-height: 200px; }
}
