/**
 * GrassFire presentation layer.
 * Does not replace the theme. Aligns columns, calms law-firm chrome,
 * and uses colors already in the GrassFire banner (green, khaki gold, ink).
 */

:root {
  --gf-green: #1f5c32;
  --gf-green-dark: #163f24;
  --gf-gold: #b59a4c;
  --gf-ink: #1a1a1a;
  --gf-body: #333333;
  --gf-muted: #5a5a5a;
  --gf-rule: #e6e2d6;
  --gf-paper: #f7f6f2;
  --gf-max: 1120px;
}

/* Hide theme preloader flash ("Loading...") */
.page-loading {
  display: none !important;
}

body {
  color: var(--gf-body);
  background: #fff;
  font-size: 18px;
  line-height: 1.7;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  color: var(--gf-ink);
}

a,
a:visited {
  color: var(--gf-green);
}

a:hover,
a:focus {
  color: var(--gf-green-dark);
}

/* Kill lawyer-theme gold buttons / purple accents */
.btn-default,
button,
.button,
div.wpcf7 input[type="submit"],
a.header-btn.btn.btn-default,
a.btn.btn-default {
  background: var(--gf-green) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 2px;
}

a.btn.btn-default:hover,
div.wpcf7 input[type="submit"]:hover {
  background: var(--gf-green-dark) !important;
}

/* Header: one row, logo + nav aligned */
header#masthead {
  background: #fff;
  border-bottom: 1px solid var(--gf-rule);
}

header#masthead .container {
  max-width: var(--gf-max);
}

header#masthead .site-branding {
  float: none;
  display: flex;
  align-items: center;
}

a.custom-logo-link img {
  height: 56px;
  width: auto;
  max-width: 280px;
  object-fit: contain;
}

ul#menu-main {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

ul#menu-main > li > a {
  color: var(--gf-ink) !important;
  background: transparent !important;
  padding: 10px 12px !important;
  font-size: 16px;
}

ul#menu-main .dropdown-menu a,
ul#menu-main ul a {
  font-size: 16px !important;
}

ul#menu-main > li > a:hover,
ul#menu-main > li.current-menu-item > a,
.menu-item.current-menu-item > a,
.menu-item > a:hover {
  background: transparent !important;
  color: var(--gf-green) !important;
  box-shadow: inset 0 -2px 0 var(--gf-green);
}

/* Inner pages: one column, same shell as a full-width landing */
.gf-page-shell,
.gf-post-shell {
  padding: 32px 0 64px;
}

.gf-page-shell > .container,
.gf-post-shell > .container {
  max-width: var(--gf-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}

.gf-page-shell #primary,
.gf-page-shell .content-area,
.gf-page-shell .site-main,
.gf-page-shell article,
.gf-post-shell #primary,
.gf-post-shell .content-area,
.gf-post-shell .site-main,
.gf-post-shell article {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
}

/* Elementor pages already have a title in the canvas — drop the extra theme H1 */
.elementor-page .entry-header,
.elementor-page.page .entry-title {
  display: none;
}

/* Assessment shortcode already has the title. Hide the extra “Assessment” H1. */
body.page-assessment .entry-header,
body.page-assessment .entry-title,
body.gf-assessment-page .entry-header,
body.gf-assessment-page .entry-title,
.gf-page-shell:has(.gf-assessment) .entry-header,
.gf-page-shell:has(.gf-assessment) .entry-title {
  display: none !important;
}

/* Elementor sections: stay inside the same 1120px column */
.elementor-section.elementor-section-boxed > .elementor-container,
.elementor-section .elementor-container {
  max-width: var(--gf-max) !important;
  margin-left: auto;
  margin-right: auto;
}

.elementor img,
.entry-content img,
.site-main img {
  max-width: 100%;
  height: auto;
}

/* Page header / first Elementor image: keep the GrassFire lockup at the bottom, cap height. */
.elementor > .elementor-section:first-child .elementor-widget-image img,
.elementor > .elementor-element:first-child .elementor-widget-image img,
.gf-page-shell .elementor-section:first-of-type .elementor-widget-image img {
  display: block;
  width: 100%;
  max-width: 100%;
  max-height: 320px;
  height: 320px;
  object-fit: cover;
  object-position: center bottom;
  margin-left: auto;
  margin-right: auto;
}

/* Body copy floor. Theme/Elementor often set 12–14px; that is too small to read. */
.gf-page-shell p,
.gf-page-shell li,
.gf-post-shell p,
.gf-post-shell li,
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-widget-text-editor li,
.elementor-widget-icon-box .elementor-icon-box-description,
.elementor-tab-content,
.elementor-tab-content p,
.elementor-toggle-content,
.elementor-toggle-content p,
.c-accordion__title,
.c-accordion__content,
.c-accordion__content p,
.entry-content,
.entry-content p,
.entry-content li {
  font-size: 18px !important;
  line-height: 1.7 !important;
}

.elementor-accordion-title,
.elementor-tab-title,
.elementor-toggle-title {
  font-size: 18px !important;
  line-height: 1.4 !important;
}

.elementor-widget-text-editor p {
  margin-bottom: 0.9em;
}

/* Posts use the same ~1120px column as Testimonials / inner pages. */
.gf-post-shell .entry-header,
.gf-post-shell .post-thumbnail,
.gf-post-shell .entry-header + .post-thumbnail,
.gf-post-shell img.attachment-post-thumbnail,
.gf-post-shell .entry-content {
  max-width: var(--gf-max);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.gf-post-shell .entry-content {
  font-size: 18px;
  line-height: 1.75;
}

.gf-post-shell .entry-header {
  margin-bottom: 1.25rem;
  text-align: center;
}

.gf-post-shell .entry-title {
  font-size: 2.1rem;
  line-height: 1.25;
}

.gf-post-shell .entry-meta,
.gf-post-shell .entry-meta a {
  font-size: 16px;
}

.gf-post-shell .post-thumbnail {
  display: block;
  width: 100%;
  max-width: var(--gf-max);
  height: 280px;
  overflow: hidden;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.5rem;
}

.gf-post-shell .post-thumbnail img,
.gf-post-shell img.attachment-post-thumbnail,
.gf-post-shell img.wp-post-image {
  display: block;
  width: 100%;
  height: 280px;
  object-fit: cover;
  object-position: center;
}

.gf-post-shell .post-navigation,
.gf-post-shell .nav-links {
  max-width: var(--gf-max);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  font-size: 16px;
}

/* Sidebar no longer sits beside the article; if present, stack under */
.gf-page-shell aside#secondary,
.gf-post-shell aside#secondary {
  margin-top: 48px;
  padding-left: 0;
  max-width: var(--gf-max);
}

aside#secondary .widget {
  background: var(--gf-paper);
  padding: 20px 22px;
  margin-bottom: 20px;
  border-top: 3px solid var(--gf-green);
  border-radius: 0;
}

aside#secondary .widget-title {
  font-size: 1.15rem;
  margin-bottom: 12px;
  color: var(--gf-ink);
}

/* Breadcrumb bar: less empty gray */
.breadscrum {
  max-width: var(--gf-max);
  margin: 0 auto;
  padding: 8px 24px 0;
  font-size: 14px;
  color: var(--gf-muted);
}

/* Footer: keep the dark bar. Theme paints footer-sec text #fff;
   a white colophon made that type (and widget labels) disappear. */
footer#colophon,
footer.site-footer {
  background: #1a1a1a !important;
  color: #f2f2f2 !important;
  border-top: 0;
}

section.footer-sec {
  padding: 28px 0 16px !important;
}

section.footer-sec .container,
section.footer-sec .row {
  max-width: var(--gf-max);
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 24px 48px;
}

section.footer-sec .col-md-4 {
  float: none;
  width: auto;
  max-width: 280px;
  flex: 1 1 220px;
  text-align: center;
  padding: 0;
}

section.footer-sec a,
section.footer-sec p,
section.footer-sec span,
section.footer-sec li,
.footer-sec h3.widget-title,
.footer-sec #wp-calendar tbody tr td,
.footer-sec #wp-calendar thead tr th {
  color: #f2f2f2 !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
}

.footer-sec h3.widget-title {
  font-size: 18px !important;
  margin-bottom: 10px !important;
}

section.footer-sec img {
  max-height: 72px;
  width: auto;
  max-width: 180px;
  height: auto;
}

footer#colophon .site-info,
footer#colophon .site-info p,
footer#colophon .site-info a {
  max-width: var(--gf-max);
  margin: 0 auto;
  padding: 14px 24px;
  text-align: center;
  color: #d8d8d8 !important;
  font-size: 16px;
}

footer#colophon .site-info a[href*="flawlessthemes.com"] {
  display: none !important;
}

/* Contact form: full width of the column */
div.wpcf7 {
  max-width: 640px;
}

div.wpcf7 input[type="text"],
div.wpcf7 input[type="email"],
div.wpcf7 input[type="tel"],
div.wpcf7 textarea {
  width: 100%;
  max-width: 100%;
}

@media (max-width: 991px) {
  a.custom-logo-link img {
    height: 44px;
  }
  ul#menu-main {
    justify-content: flex-start;
  }
  .gf-page-shell,
  .gf-post-shell {
    padding: 20px 0 40px;
  }
}
