/* Active content-addressed repair stylesheet. Keep historical peakt-fixes.css
 * unchanged for cached old HTML. After edits, calculate a new SHA256 filename
 * and update peakt_enqueue_fixes_css URL and mtime path together. */
/**
 * PEAK Technologies — CSS Fixes
 *
 * @package PEAKT
 * @since 1.0.2
 */

/* ==========================================================================
   SECTION SPACING — reduce dead space between CTA band and Careers
   ========================================================================== */

.connect-peak-temp-wrap {
	margin-bottom: 0 !important;
}

.connect-peak-temp-wrap + .wp-block-group,
.connect-peak-temp-wrap + .wp-block-spacer {
	margin-top: 0 !important;
	padding-top: 40px !important;
}


/* ==========================================================================
   CONTACT PAGE — background gradient coverage

   Original: 351x351px gold gradient PNG in a 400x400 ::after pseudo-element.
   Problem: doesn't cover the upper-right on large/ultra-wide monitors, and
   the parent .contact-section has max-width:1920px so the gradient clips.
   Fix: override with CSS radial gradient and break out of parent constraints
   using viewport-relative positioning.
   ========================================================================== */

.page-id-2273 .contact-section::after,
.google-hero-sec::after {
	width: 100vw !important;
	height: 100% !important;
	left: 50% !important;
	right: auto !important;
	transform: translateX(-50%) !important;
	top: -90px !important;
	background: radial-gradient(
		ellipse at 30% 20%,
		#FFBF3F 0%,
		rgba(255, 226, 153, 0.6) 25%,
		rgba(255, 236, 198, 0.2) 50%,
		rgba(255, 236, 198, 0) 70%
	) !important;
	background-size: 100% 100% !important;
}

@media (min-width: 1921px) {
	.page-id-2273 .contact-section::after,
	.google-hero-sec::after {
		background: radial-gradient(
			ellipse at 25% 15%,
			#FFBF3F 0%,
			rgba(255, 226, 153, 0.5) 20%,
			rgba(255, 236, 198, 0.15) 45%,
			rgba(255, 236, 198, 0) 65%
		) !important;
	}
}

@media (max-width: 991px) {
	.page-id-2273 .contact-section::after,
	.google-hero-sec::after {
		background: radial-gradient(
			ellipse at 35% 25%,
			#FFBF3F 0%,
			rgba(255, 226, 153, 0.6) 30%,
			rgba(255, 236, 198, 0.2) 55%,
			rgba(255, 236, 198, 0) 75%
		) !important;
	}
}

@media (max-width: 575px) {
	.page-id-2273 .contact-section::after,
	.google-hero-sec::after {
		background: radial-gradient(
			ellipse at 40% 20%,
			#FFBF3F 0%,
			rgba(255, 226, 153, 0.6) 30%,
			rgba(255, 236, 198, 0.2) 60%,
			rgba(255, 236, 198, 0) 80%
		) !important;
	}
}


/* ==========================================================================
   GRAVITY FORMS — confirmation wrapper background override
   GF default is green (#d4edda). Override to transparent so the page
   background shows through cleanly.
   ========================================================================== */

.gform_confirmation_wrapper {
	background: transparent !important;
}


/* ==========================================================================
   GRAVITY FORMS — consistent placeholder/default text color
   Select dropdowns show their first option in full black while text inputs
   use a lighter placeholder color. Match the select default state to the
   placeholder style until a real value is chosen. JS adds .has-value on change.
   ========================================================================== */

.gform_wrapper select.gfield_select,
.gform_wrapper .gfield select,
select#input_4_9 {
	color: rgba(147, 146, 146, 0.5) !important;
	font-weight: 400 !important;
}

.gform_wrapper select.gfield_select.has-value,
.gform_wrapper .gfield select.has-value,
select#input_4_9.has-value {
	color: #000 !important;
	font-weight: 500 !important;
}

/* GF4 accessibility repair. Scoped to the existing contact form only.
 * Append after the theme contact rules; preserve visible Upload RFP label.
 * Keep this block in the theme SCSS source as well as any deployed override.
 */
#gform_wrapper_4 label.gfield_label:is(
    [for="input_4_2"],
    [for="input_4_7"],
    [for="input_4_8"],
    [for="input_4_12"]
) {
    display: block;
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

#gform_wrapper_4 :is(input:not([type="hidden"]), textarea, select, button):focus-visible {
    outline: 2px solid #000;
    outline-offset: 3px;
}


/* PEAK-162: retain existing CookieYes button fills and wording; repair text contrast. */
.cky-consent-container .cky-btn-customize,
.cky-modal .cky-btn-preferences,
.cky-modal .cky-btn-accept {
    color: #000000 !important;
}
/* Restore the darker blue/green already configured by CookieYes, overriding theme colors. */
.cky-modal button.cky-show-desc-btn {
    color: #1863dc !important;
}
.cky-modal .cky-accordion-header .cky-always-active {
    color: #008000 !important;
}
/* The configured notice title is blank. Do not expose an empty heading or invent copy.
 * A future nonempty title remains visible and keeps the plugin's heading semantics. */
.cky-consent-container .cky-title:empty {
    display: none !important;
}

/* PEAK-162: keep the existing newsletter inside narrow and short viewports. */
@media (max-width: 575px) {
  #pum-2289 .pum-container {
    max-width: min(330px, calc(100vw - 40px)) !important;
  }
}
@media (max-height: 600px) {
  #pum-2289 .pum-container {
    top: 20px !important;
    max-height: calc(100vh - 40px);
    overflow-y: auto;
  }
}

/* PEAK-162: restore existing paragraph line breaks on 1.2mm. */
@media (max-width: 768px) {
  body.page-id-9944 main p br { display: revert; }
}
/* Keep the existing narrow menu panel and give its longest label room. */
@media (max-width: 360px) {
  body header .wp-block-navigation__responsive-container.hidden-by-default.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item a {
    font-size: 22px !important;
  }
}
/* Preserve GF4 label and keyboard-focus repairs; improve placeholder contrast. */
#gform_4 .gform-body input::placeholder,
#gform_4 .gform-body textarea::placeholder {
  color: #595959;
  opacity: 1;
}
/* Improve the affected mobile menu's resting text; preserve hover/active/current states. */
@media (max-width: 1024px) {
  body header .wp-block-navigation__responsive-container.hidden-by-default.is-menu-open .wp-block-navigation-item a:not(:hover):not(:active):not([aria-current="page"]) {
    color: #595959;
  }
}
/* The mobile menu suppressed outlines and supplied no underline or shadow. */
@media (max-width: 1024px) {
  body header .wp-block-navigation__responsive-container.hidden-by-default.is-menu-open .wp-block-navigation-item a:focus-visible {
    outline: 2px solid #000 !important;
    outline-offset: 2px;
  }
}

/* Keep the existing 100px banner top position and a 20px bottom gutter.
 * Scroll the consent card itself when a short viewport cannot fit its controls. */
.cky-consent-container {
    max-height: calc(100vh - 120px);
    max-height: calc(100dvh - 120px);
    overflow-y: auto;
}

/* On short screens, scroll the whole preferences card so its header/footer cannot
 * squeeze the body to zero height or clip Save. Keep normal-height layout intact. */
@media (max-height: 600px) {
    .cky-modal .cky-preference-center {
        display: block !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
    }
    .cky-modal .cky-preference-body-wrapper {
        height: auto !important;
        overflow: visible !important;
    }
}

/* Keep nested native scrolling from chaining into the page at its boundaries. */
#pum-2289 .pum-container,
.cky-consent-container,
.cky-preference-center,
.cky-preference-body-wrapper {
    overscroll-behavior: contain;
}
