/* 
Theme Name: LFT Agency Brownyard Theme
Theme URI: https://github.com/elementor/hello-theme/
Description: LFT Agency Brownyard Theme is a custom theme made to work with the Elementor page builder.
Author: LFT Agency, LLC
Author URI: https://lft.agency/
Template: hello-elementor
Version: 1.0.1
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* ====================
   General Resets
==================== */
html,
body {
  overflow-x: hidden;
}

p {
  margin-top: 0;
  margin-bottom: 1rem;
}

input[type="submit"],
button[type="submit"],
.gform_button {
  cursor: pointer !important;
}

.elementor-widget-text-editor ul, .elementor-text-editor ul, .elementor-widget-theme-post-content ul {
  margin-bottom: 1em !important;
}

/* Text-link border effect inside Elementor Text Editor paragraphs only */
.elementor-widget-text-editor p a {
  color: inherit;                     /* inherit the section text color */
  text-decoration: none;              /* remove default underline */
  border-bottom: 1px solid currentColor; /* 1px bottom border using current text color */
  transition: border-color .2s ease;  /* smooth hide on hover */
}

/* Hide the border on hover */
.elementor-widget-text-editor p a:hover {
  border-color: transparent;
}

/* (Optional but recommended) keyboard focus visibility */
.elementor-widget-text-editor p a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}


/* ====================
   Table Styling
==================== */
table {
  width: 100%;
  border-collapse: collapse;
  margin: 1em 0;
  font-size: 1rem;
  font-family: var(--e-global-typography-text-font-family, Sans-serif);
  background-color:#ffffff;
}

thead {
  background-color: #f5f5f5;
}

th,
td {
  text-align: left;
  padding: 12px 16px;
  border: 1px solid #ddd;
}

th {
  font-weight: 600;
  background-color: #fafafa;
}

tr:nth-child(even) {
  background-color: #f9f9f9;
}

tr:hover {
  background-color: #f1f1f1;
}

/* ====================
   Dropdown Arrow
==================== */
.e-n-menu-title:has([aria-expanded="true"])::before {
  --dd-bd-width: 15px!important;
  border-bottom: var(--dd-bd-width) solid #f5f5f5; /* COLOR moved later */
  border-left: var(--dd-bd-width) solid transparent;
  border-right: var(--dd-bd-width) solid transparent;
  width: 0;
  height: 0;
  content: "";
  display: block;
  position: absolute;
  bottom: -40%!important;
  left: calc(50% - (var(--dd-bd-width) / 2));
}

.e-n-menu-title-text {
  cursor: pointer !important;
}

#utility-menu a {
  border-bottom: 1px solid transparent;
}

#utility-menu a:hover {
  border-bottom: 1px solid #cccccc; /* COLOR moved later */
}

/* ====================
   Shrinking Header
==================== */
.shrinker {
  background: #ffffff; /* COLOR moved later */
  height: 80px !important;
  transition: all 0.2s linear !important;
}

.clear-header .shrinker {
  background: transparent;
}

.shrinker.elementor-sticky--effects {
  height: 80px !important;
  padding: 2px 0 !important;
  box-shadow: 0 6px 30px -4px rgba(0, 0, 0, 0.05);
  background-color: #fff;
  z-index: 9999;
}

.clear-header header.shrinker.elementor-sticky--effects {
  background: #ffffff !important;
}

/* ====================
   Shrinking Logo
==================== */
.shrinking-logo img,
.shrinking-logo svg {
  width: 100px!important;
  height: auto;
  transition: width 0.2s ease, height 0.2s ease;
}

.shrinker.elementor-sticky--effects .shrinking-logo img,
.shrinker.elementor-sticky--effects .shrinking-logo svg {
  width: 60px!important;
}

/* ====================
   Download Table
==================== */
.dtable-title {
  width: 65%;
  text-align: left;
  vertical-align: middle;
}

.dtable-icon,
.dtable-format {
  width: 10%;
  text-align: center;
  vertical-align: middle;
}

.dtable-button {
  width: 25%;
  text-align: center;
  vertical-align: middle;
}

.dtable-button .button {
  background-color: #333333;
  color: #ffffff;
  text-transform: uppercase;
  padding: 5px 10px;
}

.dtable-button .button:hover {
  background-color: #333333;
}

@media only screen and (max-width: 1000px) {
  .dtable-button .download-txt {
    display: none;
  }
}

/* ====================
   Elementor Widget Fixes
==================== */

.eael-adv-accordion .eael-accordion-list .eael-accordion-content ul {
  margin: 1em 0px;
}

/* ====================
   Search & Filter Pro
==================== */
.searchandfilter *,
.searchandfilter *::before,
.searchandfilter *::after {
  box-sizing: border-box;
}

.searchandfilter {
  text-align: center;
  font-size: 18px;
}

.searchandfilter ul {
  display: block;
  margin: 0;
  padding: 0;
}

.searchandfilter ul li {
  list-style: none;
  display: inline-block;
  margin: 0 20px 0 0;
  padding: 10px 0;
}

.searchandfilter select {
  appearance: none;
  background-color: transparent;
  border: none;
  padding: 0 1em 0 0;
  width: 100%;
  font: inherit;
  cursor: pointer;
  line-height: inherit;
  outline: none;
}

.searchandfilter input::placeholder,
.searchandfilter input::-webkit-input-placeholder {
  color: #333333;
}

.searchandfilter input:focus::placeholder,
.searchandfilter input:focus::-webkit-input-placeholder {
  color: #ffffff;
}

.searchandfilter select::-ms-expand {
  display: none;
}

.searchandfilter select.sf-input-select {
  min-width: 200px;
  border: 2px solid #ccc;
  border-radius: 0;
  padding: 0.75em 1em 0.75em 1em;
  font-size: 1em;
  background-color: #ffffff;
  background-image: url("data:image/svg+xml;utf8,<svg fill='black' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>");
  background-repeat: no-repeat;
  background-position: 100% 50%;
}

.select2-container {
  display: inline-block;
  position: relative;
  vertical-align: middle;
}

.searchandfilter .select2-container--default .select2-selection--single {
  background-color: transparent;
  border: 2px solid #052039;
  border-radius: 0;
  height: 40px;
}

.searchandfilter > ul > li[data-sf-combobox="1"] label {
  display: block;
}

.select2-hidden-accessible {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  position: absolute !important;
  width: 1px !important;
}

.sf-field-search input {
  min-width: 170px;
  border: 2px solid #052039;
  border-radius: 0.25em;
  padding: 0.5em 1.25em 0.5em 0.5em;
  font-size: 0.8rem;
  background-color: #ffffff;
}

@media only screen and (min-width: 767px) {
  .searchandfilter ul li {
    margin-right: 10px !important;
  }
  .pl-drop_down {
    min-width: 350px !important;
  }
}

/* ============================
   Gravity Forms — Global Base
   ============================ */

/* Design tokens (defaults; override in client layer) */
:root{
  --gf-text:        #1f2937;
  --gf-muted:       #6b7280;
  --gf-input-bg:    #f9fbfe;
  --gf-input-border:#c3cde0;
  --gf-focus:       #4b5e7a;            /* accent on focus */
  --gf-focus-ring:  rgba(75,94,122,.20);
  --gf-radius:      6px;

  --gf-btn-bg:      #111827;
  --gf-btn-bg-hover:#0f1622;
  --gf-btn-text:    #ffffff;
}

/* Field styling */
body .gform_wrapper input[type="text"],
body .gform_wrapper input[type="email"],
body .gform_wrapper input[type="url"],
body .gform_wrapper input[type="tel"],
body .gform_wrapper input[type="number"],
body .gform_wrapper input[type="password"],
body .gform_wrapper select,
body .gform_wrapper textarea{
  width:100%;
  box-sizing:border-box;
  padding:12px 14px;
  border:1px solid var(--gf-input-border);
  border-radius:var(--gf-radius);
  background-color:var(--gf-input-bg);
  color:var(--gf-text);
  font-size:1rem;
  line-height:1.4;
  transition: border-color .25s ease, box-shadow .25s ease, background-color .25s ease;
}

/* Focus state */
body .gform_wrapper input:focus,
body .gform_wrapper select:focus,
body .gform_wrapper textarea:focus{
  border-color:var(--gf-focus);
  background-color:#fff;
  box-shadow:0 0 0 3px var(--gf-focus-ring);
  outline:none;
}

/* Placeholder & label & help */
body .gform_wrapper ::placeholder{ color:var(--gf-muted); opacity:.85; }
body .gform_wrapper .gfield_label{
  display:block; font-weight:600; margin-bottom:6px; font-size:.95rem; color:var(--gf-text);
}
body .gform_wrapper .gfield_description{ font-size:.85rem; margin-top:4px; color:var(--gf-muted); }

/* Errors */
body .gform_wrapper .gfield_error input,
body .gform_wrapper .gfield_error select,
body .gform_wrapper .gfield_error textarea{
  border-color:#d93025; background:#fff5f5;
}
body .gform_wrapper .gfield_error .gfield_description{ color:#d93025; }

/* Checkbox / Radio */
body .gform_wrapper input[type="checkbox"],
body .gform_wrapper input[type="radio"]{ accent-color:var(--gf-text); }

/* Select base (no fixed height; floating-label block will size selects when enabled) */
body .gform_wrapper select{ padding:10px 14px; line-height:1.4; height:auto; }

/* Buttons (neutral defaults) */
body .gform_wrapper input[type="submit"],
body .gform_wrapper .gform_button{
  border:none; border-radius:var(--gf-radius);
  padding:12px 24px; font-size:1rem; font-weight:600;
  cursor:pointer; display:inline-block; text-align:center;
  background:var(--gf-btn-bg); color:var(--gf-btn-text);
  transition: background-color .25s ease, transform .1s ease;
  line-height:1.4;
}
body .gform_wrapper input[type="submit"]:hover,
body .gform_wrapper .gform_button:hover{ background:var(--gf-btn-bg-hover); }
body .gform_wrapper input[type="submit"]:active,
body .gform_wrapper .gform_button:active{ transform:scale(.98); }

/* Gravity Theme spacing */
body .gform_wrapper.gravity-theme { --gf-field-gap-y:12px; }
body .gform_wrapper.gravity-theme .gform_fields{
  row-gap:12px !important; grid-row-gap:12px !important;
}
body .gform_wrapper.gravity-theme .gfield:not(.gfield--type-section){ margin-bottom:0 !important; }
body .gform_wrapper.gravity-theme .gfield_description,
body .gform_wrapper.gravity-theme .ginput_complex .gfield_description{
  margin-top:4px !important; margin-bottom:0 !important;
}

/* ============================
   Floating Labels (opt-in)
   Add class .gf-float on <form>
   ============================ */
form.gf-float{
  --fl-label-bg:    #fff;                    /* set to transparent on dark sections */
  --fl-accent:      var(--gf-focus);
  --fl-shrink:      .85;
  --fl-y:           .6rem;
  --pad-x:          .75rem;
  --pad-y:          .62rem;
  --label-space:    .90rem;
  --select-h:       2.5rem;
  --select-pad-top: .90rem;
}

/* wrappers position their labels */
form.gf-float .gfield{ position:relative !important; }

/* don't float complex legends (Name/Address headings) */
form.gf-float .gfield_label_before_complex{ position:static !important; }

/* ==== EXCLUSIONS baked into EVERY float selector:
   .gf-no-float, .gfield--type-date, .gfield--type-radio, .gfield--type-checkbox ==== */

/* MAIN LABELS */
form.gf-float .gfield:not(.gf-no-float):not(.gfield--type-date):not(.gfield--type-radio):not(.gfield--type-checkbox)
  > .gfield_label:not(.gfield_label_before_complex){
  position:absolute !important; top:.5rem !important; left:.75rem !important;
  margin:0 !important; display:block !important; pointer-events:none !important;
  color:inherit !important; background:transparent !important; padding:0 .25rem !important;
  transform-origin:top left !important;
  transition:transform .18s ease, top .18s ease, color .18s ease,
             background-color .18s ease, opacity .18s ease !important;
  opacity:.85 !important; z-index:2;
}

/* SUB-LABELS (for complex inputs) */
form.gf-float .gfield:not(.gf-no-float):not(.gfield--type-date):not(.gfield--type-radio):not(.gfield--type-checkbox)
  .gform-field-label--type-sub{
  position:absolute !important; top:.65rem !important; left:.65rem !important;
  margin:0 !important; display:block !important; pointer-events:none !important;
  color:inherit !important; background:transparent !important; padding:0 .25rem !important;
  transform-origin:top left !important;
  transition:transform .18s ease, top .18s ease, color .18s ease,
             background-color .18s ease, opacity .18s ease !important;
  opacity:.85 !important; z-index:2;
}

/* TEXT INPUTS */
form.gf-float .gfield:not(.gf-no-float):not(.gfield--type-date):not(.gfield--type-radio):not(.gfield--type-checkbox)
  .ginput_container input[type="text"],
form.gf-float .gfield:not(.gf-no-float):not(.gfield--type-date):not(.gfield--type-radio):not(.gfield--type-checkbox)
  .ginput_container input[type="email"],
form.gf-float .gfield:not(.gf-no-float):not(.gfield--type-date):not(.gfield--type-radio):not(.gfield--type-checkbox)
  .ginput_container input[type="url"],
form.gf-float .gfield:not(.gf-no-float):not(.gfield--type-date):not(.gfield--type-radio):not(.gfield--type-checkbox)
  .ginput_container input[type="tel"],
form.gf-float .gfield:not(.gf-no-float):not(.gfield--type-date):not(.gfield--type-radio):not(.gfield--type-checkbox)
  .ginput_container input[type="number"],
form.gf-float .gfield:not(.gf-no-float):not(.gfield--type-date):not(.gfield--type-radio):not(.gfield--type-checkbox)
  .ginput_container input[type="password"]{
  box-sizing:border-box !important;
  padding: calc(var(--pad-y) + var(--label-space)) var(--pad-x) var(--pad-y) var(--pad-x) !important;
  line-height:1.2 !important;
}

/* TEXTAREA */
form.gf-float .gfield:not(.gf-no-float):not(.gfield--type-date):not(.gfield--type-radio):not(.gfield--type-checkbox)
  .ginput_container textarea{
  box-sizing:border-box !important;
  padding: calc(var(--pad-y) + var(--label-space)) var(--pad-x) var(--pad-y) var(--pad-x) !important;
  line-height:1.4 !important;
}

/* SELECT */
form.gf-float .gfield:not(.gf-no-float):not(.gfield--type-date):not(.gfield--type-radio):not(.gfield--type-checkbox)
  .ginput_container select{
  display:block !important; width:100% !important; box-sizing:border-box !important;
  height:var(--select-h) !important;
  padding: var(--select-pad-top) var(--pad-x) var(--pad-y) var(--pad-x) !important;
  line-height:1.2 !important;
}

/* nudge sublabel above SELECTS */
form.gf-float .gfield:not(.gf-no-float):not(.gfield--type-date):not(.gfield--type-radio):not(.gfield--type-checkbox)
  .ginput_container select + .gform-field-label--type-sub{ top:.55rem !important; }

/* FLOATED STATES (main + sub) */
form.gf-float .gfield:not(.gf-no-float):not(.gfield--type-date):not(.gfield--type-radio):not(.gfield--type-checkbox).is-active  > .gfield_label:not(.gfield_label_before_complex),
form.gf-float .gfield:not(.gf-no-float):not(.gfield--type-date):not(.gfield--type-radio):not(.gfield--type-checkbox).is-filled  > .gfield_label:not(.gfield_label_before_complex),
form.gf-float .gfield:not(.gf-no-float):not(.gfield--type-date):not(.gfield--type-radio):not(.gfield--type-checkbox).gfield_error > .gfield_label:not(.gfield_label_before_complex),
form.gf-float .gfield:not(.gf-no-float):not(.gfield--type-date):not(.gfield--type-radio):not(.gfield--type-checkbox).is-active  .gform-field-label--type-sub,
form.gf-float .gfield:not(.gf-no-float):not(.gfield--type-date):not(.gfield--type-radio):not(.gfield--type-checkbox).is-filled  .gform-field-label--type-sub,
form.gf-float .gfield:not(.gf-no-float):not(.gfield--type-date):not(.gfield--type-radio):not(.gfield--type-checkbox).gfield_error .gform-field-label--type-sub{
  transform:translateY(calc(-1 * var(--fl-y))) scale(var(--fl-shrink)) !important;
  top:0 !important; background-color:var(--fl-label-bg) !important;
  color:var(--fl-accent) !important; opacity:1 !important;
}

/* complex field column spans position sublabels */
form.gf-float .ginput_container.gform-grid-row > span{ position:relative !important; }

/* radios & checkboxes: keep field label and inline labels normal */
form.gf-float .gfield--type-radio > .gfield_label,
form.gf-float .gfield--type-checkbox > .gfield_label{
  position: static !important;
  transform: none !important;
  top: auto !important;
  margin-bottom: 6px !important;
  opacity: 1 !important;
}
form.gf-float .ginput_container_radio .gform-field-label--type-inline,
form.gf-float .ginput_container_checkbox .gform-field-label--type-inline{
  position: static !important;
  transform: none !important;
  display: inline-block !important;
  margin: 0 0 0 .4rem !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* WebKit autofill stability */
form.gf-float input:-webkit-autofill{
  -webkit-text-fill-color:inherit;
  transition:background-color 9999s ease 0s;
}
