/*
Client Name:  Argentine Group
Theme Name: Salient Child Theme
Description: This is a custom child theme for Argentine Group
Template: salient
Version: 1.0
*/

/* ==========================================================================
   AG DESIGN SYSTEM — CSS Custom Properties
   ========================================================================== */

:root {
  /* Colors */
  --ag-olive: #87A80E;
  --ag-olive-light: #9BBF1A;
  --ag-olive-dark: #6E8A0B;
  --ag-dark: #333333;
  --ag-dark-deep: #222222;
  --ag-white: #FFFFFF;
  --ag-light-gray: #F5F5F5;
  --ag-medium-gray: #CCCCCC;
  --ag-text-gray: #666666;

  /* Font Families */
  --ag-font-heading: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
  --ag-font-body: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
  --ag-font-accent: 'Merriweather Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;

  /* Font Size Scale (Figma) — max(min, vw) for fluid scaling */
  --ag-font-size-xs: max(10px, 0.8vw);
  --ag-font-size-sm: max(12px, 1vw);
  --ag-font-size-base: max(14px, 1.05vw);
  --ag-font-size-md: max(16px, 1.25vw);
  --ag-font-size-lg: max(18px, 1.45vw);
  --ag-font-size-xl: max(18px, 1.5vw);
  --ag-font-size-2xl: max(24px, 2.1vw);
  --ag-font-size-3xl: max(32px, 2.95vw);
  --ag-font-size-4xl: max(34px, 3.15vw);
  --ag-font-size-5xl: max(42px, 4.6vw);
  --ag-font-size-6xl: max(52px, 5.95vw);

  /* Line Heights */
  --ag-line-height-tight: 1.1;
  --ag-line-height-snug: 1.18;
  --ag-line-height-heading: 1.35;
  --ag-line-height-body: 1.5;

  /* Letter Spacing */
  --ag-tracking-tight: 0.0em;
  --ag-tracking-normal: 0.0526em;
  --ag-tracking-wide: 0.05em;
  --ag-tracking-wider: 0.087em;
  --ag-tracking-widest: 0.2em;

  /* Motion Tokens */
  --ag-motion-duration-fast: 0.24s;
  --ag-motion-duration-base: 0.46s;
  --ag-motion-duration-slow: 0.9s;
  --ag-motion-stagger-step: 0.05s;
  --ag-motion-ease-standard: cubic-bezier(0.22, 1, 0.36, 1);
  --ag-motion-ease-emphasis: cubic-bezier(0.16, 1, 0.3, 1);
  --ag-motion-ease-exit: cubic-bezier(0.4, 0, 1, 1);
}

/* ==========================================================================
   BASE TYPOGRAPHY
   ========================================================================== */

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body,
p {
  font-family: var(--ag-font-body) !important;
  font-weight: 400 !important;
  font-size: max(15px, 1.2vw) !important;
  line-height: var(--ag-line-height-body) !important;
  color: var(--ag-dark);
  font-feature-settings: "ss01" 1;
}

/* ==========================================================================
   HEADING OVERRIDES (Fluid with max)
   ========================================================================== */

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--ag-font-heading) !important;
}

h1 {
  font-size: max(42px, 4.3vw) !important;
  font-weight: 400 !important;
  line-height: var(--ag-line-height-heading) !important;
}

h2 {
  font-size: max(36px, 4.3vw) !important;
  font-weight: 300 !important;
  line-height: var(--ag-line-height-heading) !important;
}

h3 {
  font-size: max(18px, 2.6vw) !important;
  font-weight: 400 !important;
  line-height: var(--ag-line-height-snug) !important;
}

h4 {
  font-size: max(32px, 2.1vw) !important;
  font-weight: 300 !important;
  line-height: var(--ag-line-height-tight) !important;
}

h5 {
  font-size: max(12px, 1.4vw) !important;
  font-weight: 600 !important;
  line-height: var(--ag-line-height-body) !important;
  letter-spacing: var(--ag-tracking-wider);
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  text-transform: uppercase;
}

h6 {
  font-size: max(10px, 1vw) !important;
  font-weight: 600 !important;
  line-height: var(--ag-line-height-body) !important;
  letter-spacing: var(--ag-tracking-wider);
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  text-transform: uppercase;
}

/* ==========================================================================
   TYPOGRAPHY UTILITY CLASSES
   ========================================================================== */

/* Callout Header — Poppins 500, 48px, uppercase, 1% tracking */
.ag-callout {
  font-family: var(--ag-font-heading) !important;
  font-weight: 500 !important;
  font-size: max(18px, 3.2vw) !important;
  line-height: var(--ag-line-height-tight) !important;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  text-transform: uppercase;
  letter-spacing: var(--ag-tracking-tight);
}

/* Callout Header 02 — Poppins 600, 32px, uppercase, 5% tracking */
.ag-callout--sm {
  font-family: var(--ag-font-heading) !important;
  font-weight: 600 !important;
  font-size: max(14px, 2.2vw) !important;
  line-height: var(--ag-line-height-tight) !important;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  text-transform: uppercase;
  letter-spacing: var(--ag-tracking-wide);
}

/* Section Label — Poppins 600, 23px, uppercase, 8.7% tracking */
.ag-section-label {
  font-family: var(--ag-font-heading) !important;
  font-weight: 600 !important;
  font-size: max(11px, 1.5vw) !important;
  line-height: var(--ag-line-height-body) !important;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  text-transform: uppercase;
  letter-spacing: var(--ag-tracking-wider);
}

/* Eyebrow — Merriweather Sans 800, 12px, uppercase, 20% tracking */
.ag-eyebrow {
  font-family: var(--ag-font-accent) !important;
  font-weight: 700 !important;
  font-size: var(--ag-font-size-md) !important;
  line-height: var(--ag-line-height-body) !important;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  text-transform: uppercase;
  letter-spacing: var(--ag-tracking-wider);
}

/* Color Utilities */
.ag-olive {
  color: var(--ag-olive) !important;
}

.ag-white {
  color: var(--ag-white) !important;
}

.ag-dark {
  color: var(--ag-dark) !important;
}

/* Legacy eyebrow color modifiers — use .ag-olive / .ag-white / .ag-dark instead */
.ag-eyebrow--olive {
  color: var(--ag-olive) !important;
}

.ag-eyebrow--white {
  color: var(--ag-white) !important;
}

.ag-eyebrow--dark {
  color: var(--ag-dark) !important;
}

/* Button Text — Poppins 600, 19px, uppercase, 5.26% tracking */
.ag-button-text {
  font-family: var(--ag-font-heading) !important;
  font-weight: 600 !important;
  font-size: var(--ag-font-size-md) !important;
  line-height: var(--ag-line-height-body) !important;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  text-transform: uppercase;
  letter-spacing: var(--ag-tracking-normal);
}

/* Project Label — Merriweather Sans 700, 20px, uppercase, 1% tracking */
.ag-project-label {
  font-family: var(--ag-font-accent) !important;
  font-weight: 700 !important;
  font-size: 20px !important;
  line-height: var(--ag-line-height-tight) !important;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  text-transform: uppercase;
  letter-spacing: var(--ag-tracking-tight);
}

/* Address — Poppins 700, 22px, uppercase, 1% tracking (Locations + Footer) */
.ag-address {
  font-family: var(--ag-font-heading) !important;
  font-size: clamp(16px, 1.4vw, 22px) !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  letter-spacing: 0.01em !important;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  text-transform: uppercase !important;
  padding-bottom: 0.8em;
}

/* Footer Heading — Poppins 500, 32px, uppercase, 1% tracking, olive */
.ag-footer-heading {
  font-family: var(--ag-font-heading) !important;
  font-size: clamp(22px, 2.2vw, 32px) !important;
  font-weight: 500 !important;
  line-height: 1.1 !important;
  letter-spacing: 0.01em !important;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  text-transform: uppercase !important;
  /* color: var(--ag-olive) !important; */
}

/* Footer Nav Links — Poppins 600, 30px, uppercase, 6.67% tracking */
a.ag-footer-nav {
  font-family: var(--ag-font-heading) !important;
  font-size: clamp(20px, 2vw, 30px) !important;
  font-weight: 600 !important;
  line-height: 2.1 !important;
  letter-spacing: 0.0667em !important;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  text-transform: uppercase !important;
  color: var(--ag-white) !important;
}

/* Footer Legal Links — Poppins 400, 22px, uppercase, 1% tracking */
.ag-footer-legal a {
  font-family: var(--ag-font-heading) !important;
  font-size: clamp(16px, 1.4vw, 22px) !important;
  font-weight: 400 !important;
  line-height: 1.1 !important;
  letter-spacing: 0.01em !important;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  text-transform: uppercase !important;
  color: #F5F5F5 !important;
}

/* Footer License — Poppins 600, 22px, uppercase, 1% tracking */
.ag-footer-license {
  font-family: var(--ag-font-heading) !important;
  font-size: clamp(16px, 1.4vw, 22px) !important;
  font-weight: 600 !important;
  line-height: 1.1 !important;
  letter-spacing: 0.01em !important;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  text-transform: uppercase !important;
  color: #F5F5F5 !important;
}

.terms a {
  text-transform: uppercase;
  padding: 2px 10px;
  font-size: 12px;
}

/* Body Text (explicit class) — Poppins 400, 22px, line-height 1.5 */
.ag-body-text {
  font-family: var(--ag-font-body) !important;
  font-weight: 400 !important;
  font-size: var(--ag-font-size-lg) !important;
  line-height: var(--ag-line-height-body) !important;
}

/* Weight Helpers */
.ag-weight-100 {
  font-weight: 100 !important;
}

.ag-weight-200 {
  font-weight: 200 !important;
}

.ag-weight-300 {
  font-weight: 300 !important;
}

.ag-weight-400 {
  font-weight: 400 !important;
}

.ag-weight-500 {
  font-weight: 500 !important;
}

.ag-weight-600 {
  font-weight: 600 !important;
}

.ag-weight-700 {
  font-weight: 700 !important;
}

/* ==========================================================================
   NECTAR CTA BUTTON OVERRIDES
   ========================================================================== */

.nectar-cta.ag-button-text .link_text,
.nectar-cta.ag-button-text .link_text .text {
  font-family: var(--ag-font-heading) !important;
  font-weight: 600 !important;
  font-size: var(--ag-font-size-sm) !important;
  line-height: var(--ag-line-height-body) !important;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  text-transform: uppercase !important;
  letter-spacing: var(--ag-tracking-normal) !important;
}

.nectar-cta.ag-button-text p {
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}

/* ADD LINE TO TOP HEADER — exclude dark transparent headers */
body.material #header-outer[data-header-resize="0"]:not([data-format=left-header]):not(.scrolled-down):not(.fixed-menu):not(.dark-slide),
body.material #header-outer[data-header-resize="1"]:not([data-format=left-header]):not(.scrolled-down):not(.small-nav):not(.dark-slide),
body[data-hhun="1"].material #header-outer[data-header-resize="0"][data-remove-fixed="0"]:not([data-format=left-header]):not(.scrolled-down):not(.fixed-menu):not(.dark-slide).invisible {
  box-shadow: none;
  border-bottom: solid 1px #fff !important;
}

body #header-outer.transparent[data-transparent-header="true"].dark-slide,
body #header-outer.transparent[data-transparent-header="true"].dark-slide .cart-menu,
body #header-outer.transparent[data-transparent-header="true"].dark-slide>#top nav ul #nectar-user-account>div,
body #header-outer.transparent[data-transparent-header="true"].dark-slide>#top nav ul .slide-out-widget-area-toggle>div,
#boxed #header-outer.transparent[data-transparent-header="true"].dark-slide,
body #header-outer.transparent[data-transparent-header="true"][data-remove-border="true"].dark-slide .cart-menu:after {
  border-color: rgba(0, 0, 0, 0.08) !important;
  border-bottom: solid 1px #000 !important;
}

/* ==========================================================================
   PORTFOLIO — Bottom Project Navigation (after_project_2)
   ========================================================================== */

.container-wrap[data-nav-pos="after_project_2"] .bottom_controls {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-top: 50px !important;
}

.container-wrap[data-nav-pos="after_project_2"] .bottom_controls #portfolio-nav ul.controls {
  gap: 5px;
  position: relative;
}

.container-wrap[data-nav-pos="after_project_2"] .bottom_controls #portfolio-nav ul .previous-project,
.container-wrap[data-nav-pos="after_project_2"] .bottom_controls #portfolio-nav ul .next-project {
  width: calc(50% - 2.5px);
  min-height: 350px;
  position: relative;
}

/* Portfolio home diamond link between prev/next */
#portfolio-nav .ag-portfolio-home-diamond {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 64px;
  height: 64px !important;
  transform: translate(-50%, -50%) rotate(45deg);
  z-index: 999;
  background: #fff;
  transition: var(--ag-transition-base, 0.3s ease);
}

#portfolio-nav .ag-portfolio-home-diamond a {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  width: 100%;
  height: 100%;
  color: var(--ag-dark);
  transition: var(--ag-transition-base, 0.3s ease);
  transform: rotate(-45deg);
}

#portfolio-nav .ag-portfolio-home-diamond a svg {
  width: 25px;
  height: 25px;
  pointer-events: none;
}

#portfolio-nav .ag-portfolio-home-diamond .ag-portfolio-home-label {
  font-family: var(--ag-font-accent) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
  display: block;
  margin-top: 5px;

}

#portfolio-nav .ag-portfolio-home-diamond--solo {
  top: 80%;
}

#portfolio-nav .ag-portfolio-home-diamond:hover {
  background: var(--ag-olive);
}

#portfolio-nav .ag-portfolio-home-diamond:hover a {
  color: #fff;
}

@media only screen and (max-width: 999px) {

  .container-wrap[data-nav-pos="after_project_2"] .bottom_controls #portfolio-nav ul .previous-project,
  .container-wrap[data-nav-pos="after_project_2"] .bottom_controls #portfolio-nav ul .next-project {
    min-height: 350px;
  }

  #slide-out-widget-area.fullscreen .inner .off-canvas-menu-container.mobile-only {
    opacity: 0 !important;
  }
}

@media only screen and (max-width: 690px) {
  .container-wrap[data-nav-pos="after_project_2"] .bottom_controls {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  .container-wrap[data-nav-pos="after_project_2"] .bottom_controls #portfolio-nav ul.controls {
    gap: 24px;
  }

  .container-wrap[data-nav-pos="after_project_2"] .bottom_controls #portfolio-nav ul .previous-project,
  .container-wrap[data-nav-pos="after_project_2"] .bottom_controls #portfolio-nav ul .next-project {
    width: 100%;
    min-height: 300px;
  }

  #portfolio-nav .ag-portfolio-home-diamond {
    top: 48%;
  }

  #portfolio-nav .ag-portfolio-home-diamond {
    width: 62px;
    height: 62px !important;
  }

  #portfolio-nav .ag-portfolio-home-diamond--solo {
    top: 0% !important;
  }
}

/* Portfolio nav — category labels below titles */
#portfolio-nav h3 {
  position: relative;
}

#portfolio-nav .ag-portfolio-nav-cats {
  display: block;
  font-family: var(--ag-font-accent) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: rgba(255, 255, 255, 0.7);
  margin-top: 8px;
}

#portfolio-nav .next-project .ag-portfolio-nav-cats {
  text-align: right;
}

/* ==========================================================================
   OFF-CANVAS MENU — Two-Column Layout (fullscreen)
   ========================================================================== */

/* This is actually the top menu overrides */
#header-outer #top .left-aligned-ocm a {
  transform: scale(-1, 1.2);
  transform-origin: left center;
  transition: scale 2.8s ease !important;
}

#header-outer #top .left-aligned-ocm a.menu-push-out.open {
  transform: scale(-1, 1) !important;
}

.side-widget-open .menu-item {
  opacity: 0 !important;
  transition: opacity 0.3s ease var(--ag-motion-duration-base) !important;
}

body #header-outer.transparent[data-transparent-header="true"].dark-slide>#top nav ul .slide-out-widget-area-toggle>div {
  border-bottom: none !important;
}

#top nav>ul>li>a,
.pull-left-wrap>ul>li>a {
  font-size: max(16px, 1.3vw);
  text-transform: uppercase;
}

/* Convert .inner-wrap from column to row */
#slide-out-widget-area.fullscreen .inner-wrap {
  flex-direction: row !important;
}

/* Left column: .bottom-meta-wrap (Global Section content) */
#slide-out-widget-area.fullscreen .bottom-meta-wrap {
  order: -1;
  width: 50%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0 0 3vw 7vw;
  box-sizing: border-box;
}

/* Right column: .inner (nav links) */
#slide-out-widget-area.fullscreen .inner-wrap>.inner {
  width: 50% !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: right;
}

/* Reset fixed positioning on social links + bottom text */
#slide-out-widget-area.fullscreen .off-canvas-social-links {
  position: relative !important;
  bottom: auto;
  right: auto;
}

#slide-out-widget-area.fullscreen .bottom-text {
  position: relative !important;
  bottom: auto;
  left: auto;
}

/* Nav menu container alignment */
#slide-out-widget-area.fullscreen .off-canvas-menu-container {
  text-align: right;
  padding: 0 7vw 0 0;
}

/* Nav link typography — Poppins 400, 45px, line-height 1.97 */
#slide-out-widget-area.fullscreen .off-canvas-menu-container ul li a,
#slide-out-widget-area .inner .off-canvas-menu-container li>a {
  font-family: var(--ag-font-heading) !important;
  font-weight: 400 !important;
  font-size: clamp(32px, 3vw, 45px) !important;
  line-height: 1.2 !important;
  margin: 0 !important;
  padding-bottom: 0 !important;
}

/* Global Section content inside left column */
#slide-out-widget-area.fullscreen .bottom-meta-wrap .nectar-global-section .full-width-content {
  width: auto !important;
  margin: 0;
}

/* Responsive: collapse to single column on tablet/mobile */
@media only screen and (max-width: 999px) {
  #slide-out-widget-area.fullscreen .inner-wrap {
    flex-direction: column !important;
  }

  #slide-out-widget-area.fullscreen .inner-wrap>.inner,
  #slide-out-widget-area.fullscreen .bottom-meta-wrap {
    width: 100% !important;
  }

  #slide-out-widget-area.fullscreen .bottom-meta-wrap {
    order: 1;
  }
}

/* Off-canvas background blur — increase from Salient default + re-enable on mobile */
.blurred-wrap.blurred {
  filter: blur(12px) !important;
}

@media only screen and (min-width: 1000px) {

  .nectar-global-section.nectar_hook_ocm_bottom_meta .container {
    max-width: 1425px;
    width: 100%;
    margin: 0 auto;
    padding: 0px;
    transform: scale(0.8);
    transform-origin: left;
  }
}

.off-canvas-menu-container.mobile-only {
  display: none !important;
}


/* ==========================================================================
   PROCESS — Areas of Expertise interaction.
   ========================================================================== */

.exp-nav a {
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  text-transform: uppercase;
  font-weight: 500;
  font-size: var(--ag-font-size-lg) !important;
}

.exp-nav.active a {
  color: var(--ag-olive) !important;
}

/* Expertise panel transitions */
#exp-residential,
#exp-commercial,
#exp-swimming {
  transition: opacity var(--ag-motion-duration-base) var(--ag-motion-ease-standard);
}

#exp-commercial,
#exp-swimming {
  display: none;
  opacity: 0;
}

.ag-motion-enhanced #exp-residential,
.ag-motion-enhanced #exp-commercial,
.ag-motion-enhanced #exp-swimming {
  transition: none;
}

#steps h5 {
  text-transform: capitalize;
  font-weight: 500 !important;
  letter-spacing: var(--ag-tracking-tight) !important;
}

/* ==========================================================================
   CPH HORIZONTAL SCROLLER — AG Typography Overrides
   ========================================================================== */

.cph-scroller__card-name {
  font-family: var(--ag-font-heading) !important;
  font-weight: 500 !important;
  font-size: var(--ag-font-size-2xl) !important;
  line-height: 1.5 !important;
  color: var(--ag-olive) !important;
}

.cph-scroller__card-title {
  font-family: var(--ag-font-heading) !important;
  font-weight: 500 !important;
  font-size: var(--ag-font-size-xl) !important;
  line-height: 1.5 !important;
  color: var(--ag-dark) !important;
}

.cph-scroller__card--team .cph-scroller__card-content>p:not([class]) {
  font-family: var(--ag-font-body) !important;
  font-weight: 400 !important;
  font-size: var(--ag-font-size-md) !important;
  line-height: 1.5 !important;
  color: var(--ag-dark) !important;
}

.cph-scroller__card-button--text {
  font-family: var(--ag-font-heading) !important;
  font-weight: 500 !important;
  font-size: var(--ag-font-size-xl) !important;
  line-height: 1.5 !important;
  color: var(--ag-dark) !important;
}

/* ==========================================================================
   GRAVITY FORMS — AG Dark Theme Override
   ========================================================================== */

/*
 * Overrides the Gravity Forms orbital theme to match the AG dark-section
 * aesthetic: transparent inputs with bottom-border-only, white labels,
 * olive submit pill, and toned-down validation messaging.
 */

/* -- Theme variable overrides ------------------------------------------- */
body .gform_wrapper.gform-theme {
  --gf-color-primary: var(--ag-olive) !important;
  --gf-color-primary-rgb: 135, 168, 14 !important;
  --gf-color-primary-darker: var(--ag-olive-dark) !important;
  --gf-color-primary-lighter: var(--ag-olive-light) !important;
  --gf-color-in-ctrl: transparent !important;
  --gf-color-in-ctrl-contrast: #fff !important;
  --gf-color-in-ctrl-contrast-rgb: 255, 255, 255 !important;
  --gf-ctrl-border-color: rgba(255, 255, 255, 0.5) !important;
  --gf-ctrl-label-color-primary: #fff !important;
  --gf-ctrl-label-color-secondary: rgba(255, 255, 255, 0.6) !important;
  --gf-color-out-ctrl-dark: rgba(255, 255, 255, 0.6) !important;
  --gf-color-out-ctrl-dark-darker: #fff !important;
  --gf-radius: 0px !important;
}

/* -- Hide "* indicates required fields" legend + asterisks --------------- */
body .gform_wrapper .gform_required_legend {
  display: none !important;
}

body .gform_wrapper .gfield_required {
  display: none !important;
}

/* -- Field labels -------------------------------------------------------- */
body .gform_wrapper .gfield_label,
body .gform_wrapper .gform-field-label {
  font-family: var(--ag-font-heading) !important;
  font-weight: 400 !important;
  font-size: var(--ag-font-size-base) !important;
  color: #fff !important;
  letter-spacing: 0.01em !important;
  margin-bottom: 4px !important;
}

/* -- Inputs & Textarea --------------------------------------------------- */
body .gform_wrapper .gform_body input[type=text],
body .gform_wrapper .gform_body input[type=email],
body .gform_wrapper .gform_body input[type=tel],
body .gform_wrapper .gform_body input[type=url],
body .gform_wrapper .gform_body input[type=number],
body .gform_wrapper .gform_body select,
body .gform_wrapper .gform_body textarea {
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.7) !important;
  border-radius: 0 !important;
  color: #fff !important;
  font-family: var(--ag-font-heading) !important;
  font-weight: 300 !important;
  font-size: var(--ag-font-size-base) !important;
  padding: 4px 0 8px !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color 0.3s ease !important;
}

body .gform_wrapper .gform_body textarea {
  min-height: 0 !important;
  height: 2lh !important;
  resize: vertical;
}

/* Placeholder text */
body .gform_wrapper .gform_body input::placeholder,
body .gform_wrapper .gform_body textarea::placeholder {
  color: rgba(255, 255, 255, 0.4) !important;
}

/* -- Focus state --------------------------------------------------------- */
body .gform_wrapper .gform_body input[type=text]:focus,
body .gform_wrapper .gform_body input[type=email]:focus,
body .gform_wrapper .gform_body input[type=tel]:focus,
body .gform_wrapper .gform_body input[type=url]:focus,
body .gform_wrapper .gform_body input[type=number]:focus,
body .gform_wrapper .gform_body select:focus,
body .gform_wrapper .gform_body textarea:focus {
  border-bottom-color: var(--ag-olive) !important;
  outline: none !important;
  box-shadow: none !important;
}

/* -- Field spacing ------------------------------------------------------- */
body .gform_wrapper .gform_fields {
  --gf-form-gap-y: 8px !important;
  row-gap: 8px !important;
}

body .gform_wrapper .gform_fields .gfield {
  margin-bottom: 0 !important;
}

/* -- Submit button ------------------------------------------------------- */
body .gform_wrapper .gform_footer {
  display: flex !important;
  justify-content: flex-end !important;
  padding-top: 20px !important;
  margin-top: 8px !important;
}

body .gform_wrapper .gform_footer input[type=submit],
body .gform_wrapper .gform_footer button[type=submit] {
  background: transparent !important;
  border: 1px solid var(--ag-olive) !important;
  border-radius: 50px !important;
  color: #fff !important;
  font-family: var(--ag-font-heading) !important;
  font-weight: 600 !important;
  font-size: var(--ag-font-size-sm) !important;
  letter-spacing: var(--ag-tracking-normal) !important;
  text-transform: uppercase !important;
  padding: 14px 40px !important;
  text-box-edge: cap alphabetic;
  text-box-trim: trim-both;
  cursor: pointer !important;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease !important;
  min-width: 200px !important;
}

body .gform_wrapper .gform_footer input[type=submit]:hover,
body .gform_wrapper .gform_footer button[type=submit]:hover {
  background: var(--ag-olive) !important;
  color: #fff !important;
  border-color: var(--ag-olive) !important;
}

body .gform_wrapper .gform_footer input[type=submit]:active,
body .gform_wrapper .gform_footer button[type=submit]:active {
  background: var(--ag-olive-dark) !important;
  border-color: var(--ag-olive-dark) !important;
}

body .gform_wrapper .gform_footer input[type=submit]:focus-visible,
body .gform_wrapper .gform_footer button[type=submit]:focus-visible {
  outline: 2px solid var(--ag-olive) !important;
  outline-offset: 3px !important;
}

/* -- Validation: top-level error banner ---------------------------------- */
body .gform_wrapper .gform_validation_errors,
body .gform_wrapper .validation_error {
  background: rgba(180, 50, 50, 0.12) !important;
  border: 1px solid rgba(180, 50, 50, 0.4) !important;
  border-radius: 4px !important;
  padding: 16px 20px !important;
  margin-bottom: 24px !important;
}

body .gform_wrapper .gform_validation_errors h2,
body .gform_wrapper .gform_validation_errors .gform-heading,
body .gform_wrapper .gform_validation_errors .gform_submission_error {
  font-family: var(--ag-font-heading) !important;
  font-weight: 500 !important;
  font-size: var(--ag-font-size-md) !important;
  color: #e8695a !important;
  margin: 0 !important;
  line-height: var(--ag-line-height-body) !important;
}

/* Hide the giant heading inside validation banner, keep summary text */
body .gform_wrapper .gform_validation_errors h2.gf_submission_error {
  font-size: var(--ag-font-size-md) !important;
}

/* Validation error icon — tone it down */
body .gform_wrapper .gform_validation_errors .gform-icon {
  color: #e8695a !important;
  width: 20px !important;
  height: 20px !important;
}

/* -- Validation: field-level errors -------------------------------------- */
body .gform_wrapper .gfield_error .gfield_label,
body .gform_wrapper .gfield_error .gform-field-label {
  color: #fff !important;
}

body .gform_wrapper .gfield_error input[type=text],
body .gform_wrapper .gfield_error input[type=email],
body .gform_wrapper .gfield_error input[type=tel],
body .gform_wrapper .gfield_error input[type=url],
body .gform_wrapper .gfield_error input[type=number],
body .gform_wrapper .gfield_error select,
body .gform_wrapper .gfield_error textarea {
  border-bottom-color: #e8695a !important;
}

body .gform_wrapper .gfield_error .validation_message {
  font-family: var(--ag-font-heading) !important;
  font-weight: 400 !important;
  font-size: 14px !important;
  color: #e8695a !important;
  padding: 6px 0 0 !important;
  background: transparent !important;
  border: none !important;
}

/* -- Confirmation message ------------------------------------------------ */
body .gform_confirmation_message {
  font-family: var(--ag-font-heading) !important;
  font-weight: 400 !important;
  font-size: var(--ag-font-size-lg) !important;
  color: #fff !important;
  line-height: var(--ag-line-height-body) !important;
}

/* ==========================================================================
   MOTION ACCESSIBILITY
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }

  #exp-residential,
  #exp-commercial,
  #exp-swimming,
  .ag-community-slider__slide.is-active,
  .ag-photo-gallery__featured,
  .ag-photo-gallery__thumb,
  .ag-vert-line[data-animate] {
    animation: none !important;
    transition: none !important;
  }
}

/* =============================================================================
   LIGHTBOX — Hide captions
   ============================================================================= */

.fancybox-caption {
	display: none !important;
}