/* WordPress and plugin integration styles layered over the approved reference CSS. */
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block-start: 0; }
.wp-block-post-content { margin: 0; }
.bfg-system-page { min-height: 60vh; padding: 10rem 6vw 6rem; }
.bfg-system-page h1 { color: var(--navy); font-size: clamp(2.5rem, 6vw, 5rem); }

/* Core's flow-layout sizing must not narrow the standalone portal copy. */
body .wrap h1,
body .wrap p { width: 100%; max-width: none; }

/* Gravity Forms: preserve accessible plugin output while matching the approved form. */
.contact-right .gform_wrapper { width: 100%; max-width: 100%; min-width: 0; margin-top: 2rem; color: var(--white); }
.contact-right .gform_wrapper form,
.contact-right .gform_wrapper .gform-body,
.contact-right .gform_wrapper .gform_fields { width: 100%; }
.contact-right .gform_wrapper .gform_fields {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 1.1rem .9rem !important;
}
.contact-right .gform_wrapper .gfield { grid-column: 1 / -1; min-width: 0; margin: 0 !important; }
.contact-right .gform_wrapper .gfield.bfg-half { grid-column: span 1 !important; }
.contact-right .gform_wrapper .gfield_label,
.contact-right .gform_wrapper .gform-field-label {
  display: block;
  margin: 0 0 .35rem !important;
  color: var(--soft) !important;
  font-family: var(--body);
  font-size: .61rem !important;
  font-weight: 400 !important;
  letter-spacing: .2em;
  line-height: 1.4;
  opacity: .85;
  text-transform: uppercase;
}
.contact-right .gform_wrapper .gfield_required {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}
.contact-right .gform_wrapper input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.contact-right .gform_wrapper select,
.contact-right .gform_wrapper textarea {
  width: 100% !important;
  min-height: auto;
  padding: .875rem 1rem !important;
  border: 1px solid var(--border) !important;
  border-bottom-color: rgba(255,255,255,.18) !important;
  border-radius: 0 !important;
  background: rgba(0,0,0,.3) !important;
  box-shadow: none !important;
  color: var(--white) !important;
  font-family: var(--body) !important;
  font-size: .9rem !important;
  line-height: 1.4;
}
.contact-right .gform_wrapper textarea { min-height: 100px !important; resize: vertical; }
.contact-right .gform_wrapper select option { background: var(--navy-2); color: var(--white); }
.contact-right .gform_wrapper input::placeholder,
.contact-right .gform_wrapper textarea::placeholder { color: rgba(255,255,255,.3); opacity: 1; }
.contact-right .gform_wrapper input:focus,
.contact-right .gform_wrapper select:focus,
.contact-right .gform_wrapper textarea:focus { border-color: rgba(176,177,209,.7) !important; outline: 2px solid transparent; }
.contact-right .gform_wrapper .gform_footer { margin: 1.1rem 0 0 !important; padding: 0 !important; }
.contact-right .gform_wrapper .gform_button {
  align-self: flex-start;
  margin: .5rem 0 0 !important;
  padding: 1.05rem 2.5rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--soft) !important;
  color: var(--navy) !important;
  cursor: pointer;
  font-family: var(--body) !important;
  font-size: .73rem !important;
  font-weight: 800 !important;
  letter-spacing: .17em;
  line-height: 1.4 !important;
  text-transform: uppercase;
}
.contact-right .gform_wrapper .gform_button:hover,
.contact-right .gform_wrapper .gform_button:focus-visible { background: var(--soft-2) !important; }
.contact-right .gform_wrapper .gform_button:disabled { cursor: wait; opacity: .7; }
.contact-right .gform_wrapper .gform_validation_errors,
.contact-right .gform_wrapper .gfield_validation_message,
.contact-right .gform_wrapper .validation_message {
  border: 1px solid rgba(255,255,255,.35) !important;
  border-radius: 0 !important;
  background: rgba(0,0,0,.22) !important;
  color: var(--white) !important;
  font-size: .78rem !important;
}
.contact-right .gform_wrapper .gform_validation_errors h2 { color: var(--white) !important; font-family: var(--body) !important; font-size: .85rem !important; }
.contact-right .gform_wrapper .gform_required_legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.contact-right .bfg-form-warning { margin-top: .75rem; color: rgba(255,255,255,.45); font-size: .75rem; line-height: 1.6; }

/* The accessible Gravity Forms markup is taller than the approved static form.
   Anchor the desktop contact details so that extra form height does not move the
   left column away from its approved position. */
@media (min-width: 1101px) {
  .contact-left { justify-content: flex-start; padding-top: 8rem; }
}

/* Upcoming TEC event augmentation. */
.event-upcoming { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid rgba(19,42,82,.18); }
.event-upcoming-date { margin: 0 0 .65rem !important; color: var(--navy) !important; font-size: .8rem !important; line-height: 1.55 !important; }
.event-upcoming-link { color: var(--navy); font-size: .68rem; font-weight: 800; letter-spacing: .13em; text-decoration: none; text-transform: uppercase; }
.event-upcoming-link:hover { text-decoration: underline; }

/* Events archive cards use dark backgrounds in both their resting and hover
   states, so the dynamic date/venue/link need an explicit light treatment. */
.event-card .event-upcoming {
  border-top-color: rgba(255,255,255,.2);
}
.event-card .event-upcoming-date,
.event-card:hover .event-upcoming-date {
  color: rgba(255,255,255,.82) !important;
}
.event-card .event-upcoming-date strong,
.event-card:hover .event-upcoming-date strong {
  color: var(--white) !important;
}
.event-card .event-upcoming-link,
.event-card:hover .event-upcoming-link,
.event-card .event-upcoming-link:visited {
  color: var(--soft-2);
}
.event-card .event-upcoming-link:hover,
.event-card .event-upcoming-link:focus-visible {
  color: var(--white);
}
.event-card .event-upcoming-item + .event-upcoming-item {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255,255,255,.14);
}

:focus-visible { outline: 3px solid #b0b1d1; outline-offset: 3px; }

@media (max-width: 640px) {
  .contact-right .gform_wrapper .gform_fields { grid-template-columns: 1fr; }
  .contact-right .gform_wrapper .gfield.bfg-half { grid-column: 1 / -1 !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
