/* ==========================================================================
    ACCESSIBILITY & FOCUS
   ========================================================================== */
a:focus-visible,
button:focus-visible {
  outline: 2px solid #2563eb;
  outline-offset: 3px;
}

a:focus:not(:focus-visible),
button:focus:not(:focus-visible) {
  outline: none;
}

/* Simple, safe skip link */
.skip-link {
  position: absolute;
  top: 0;
  left: 0;
  transform: translateY(-150%);
  background: #000;
  color: #fff;
  padding: 8px 16px;
  text-decoration: none;
  z-index: 9999;
  transition: transform 0.2s ease;
}

.skip-link:focus,
.skip-link:focus-visible {
  transform: translateY(0);
  background: #d93927;
  outline: 2px solid #fff;
}


/* ==========================================================================
   RESET & BASE STYLES
   (Includes Elementor Global Overrides)
   ========================================================================== */
*, *::before, *::after {
  box-sizing: border-box;
}

* {
  margin: 0;
}

@media (prefers-reduced-motion: no-preference) {
  html {
    interpolate-size: allow-keywords;
  }
}

body {
  -webkit-font-smoothing: antialiased;
}

img {
  display: block;
  max-width: 100%;
}

input, button, textarea, select {
  font: inherit;
}

p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}

#root, #__next {
  isolation: isolate;
}

p,
figcaption,
blockquote,
dd,
td {
  text-wrap: pretty !important;
}

:where(p) {
  margin-block: 0 0.9em;
}

:where(p:last-of-type) {
  margin-block-end: 0;
}


/* --- Elementor Base: Lists --- */
.elementor-widget-text-editor ul,
.elementor-widget-text-editor ol {
  margin: 0 0 12px 20px;
  padding: 0;
  list-style: disc;
}

.elementor-widget-text-editor ul:last-child,
.elementor-widget-text-editor ol:last-child {
  margin-bottom: 0 !important;
}

.elementor-widget-text-editor p + ul,
.elementor-widget-text-editor p + ol {
  margin-top: 12px;
}

/* --- Elementor Base: Links --- */
.elementor-icon-box-description a, 
.elementor-widget-text-editor a,
.elementor-widget-text-editor p a,
.elementor-widget-text-editor li a {
  color: #d93927;
	font-weight:700;
}


.elementor-icon-box-description a:hover,
.elementor-widget-text-editor a:hover,
.elementor-widget-text-editor p a:hover,
.elementor-widget-text-editor li a:hover {
  color: #c33121; 
}

/* --- Elementor Base: Buttons --- */
.elementor-widget-button a.elementor-button {
  background-color: #d93927;
  border-color: #d93927;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4em;
  text-transform: capitalize;
  border-style: solid;
  border-width: 1px;
  border-radius: 5px;
  padding: 14px 20px;
}

.elementor-widget-button a.elementor-button:hover {
  color: #ffffff;
  background-color: #c33121;
  border-color: #c33121;
}

/* ==========================================================================
   ELEMENTOR WIDGET ADJUSTMENTS
   ========================================================================== */
.elementor-icon-box-title {
  margin-bottom: 0px;
}


/* ==========================================================================
   Typography
   ========================================================================== */


@media (max-width: 767px) {
    body, p, h1, h2, h3, h4, h5, h6, section {
        text-align: left !important;
    }
}



/*------------------------------------
  Gravity Forms - Global Styling
------------------------------------*/
/* === Form Field Base Styles */
body .gform_wrapper .gfield input[type="text"],
body .gform_wrapper .gfield input[type="email"],
body .gform_wrapper .gfield input[type="url"],
body .gform_wrapper .gfield input[type="tel"],
body .gform_wrapper .gfield input[type="password"],
body .gform_wrapper .gfield select,
body .gform_wrapper .gfield textarea {
  font-size: 16px !important;
  margin-bottom: 0px !important;
  box-shadow: none !important;
}

/* === Form Header Visibility */
body .gform_wrapper .gform_heading {
  display: none;
}

/* === Form Layout & Spacing */
body .gform_wrapper .gform_body .gform_fields {
  row-gap: 10px;
}

/* === Select Field Styling */
body .gform_wrapper .gfield select {
	 font-size: 14px !important;
}

/* === Placeholder Text Styling */
body .gform_wrapper .gfield input::placeholder,
body .gform_wrapper .gfield textarea::placeholder {
  opacity: 1 !important;
  font-size: 14px !important;
  line-height: 1 !important;
   color: #878787;
}

/* === Submit Button Styling */
body .gform_wrapper input[type="submit"] {
  padding: 12px 24px !important;
  font-size: 16px !important;
  border: none !important;
  font-weight: 600 !important;
  transition: all 0.3s;
 border-radius:6px !important;
}
/* === Form Footer Spacing */
body .gform-footer {
  margin-top: 12px !important;
}

/* === Validation Error Container */
body .gform_validation_errors {
  margin-bottom: 10px !important;
  background-color: #ffffff !important;
}

/* === Field Validation Message */
body .validation_message.gfield_validation_message {
  border: 1px solid red !important;
  padding: 6px;
  background-color: #ffffff !important;
}

/* === Textarea Height Control */
body .gform_wrapper .gfield textarea {
  --gf-local-height: 90px;
}

/* === Focus State */
body .gform_wrapper input:focus,
body .gform_wrapper textarea:focus,
body .gform_wrapper select:focus {
	 outline-width: 3px !important;
outline-offset: 0 !important;
  border-color: transparent !important;
outline-color: #96C7FF !important;
}

/* Stripe validation message */
body .stripe_validation_error.validation_message.gfield_validation_message {
  background-color: #d93927 !important;
  color: #fff !important;
  padding: 10px !important;
  margin-bottom: 20px !important;
}

