﻿/* Git deployment test */
/*
Theme Name: For Generations to Come
Theme URI: https://forgenerationstocome.org
Author: Our Future
Description: Community-led, place-based movement theme for Rochdale and the borough.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 8.0
License: Proprietary
Text Domain: forgenerations
*/


/* ── Mobile nav: hidden until .nav-open toggled by JS ── */
.gt-header__nav--mobile { display: none; }
.gt-header.nav-open .gt-header__nav--mobile { display: flex; }

/* ── Burger icon swap ── */
.gt-header__burger .icon-close { display: none; }
.gt-header.nav-open .gt-header__burger .icon-open  { display: none; }
.gt-header.nav-open .gt-header__burger .icon-close { display: block; }

/* ── Caveat numbered counters - all 01 02 03 style numbers ── */
.gt-invite__waynum,
.gt-invite__way:nth-child(1) .gt-invite__waynum,
.gt-invite__way:nth-child(2) .gt-invite__waynum,
.gt-invite__way:nth-child(3) .gt-invite__waynum,
.gt-invite__way:nth-child(4) .gt-invite__waynum,
.is-teal .gt-invite__waynum {
  font-family: 'Caveat', cursive !important;
  font-weight: 700 !important;
  font-size: 2rem !important;
  color: var(--fgtc-vermillion) !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
}

.gt-context__num {
  font-family: 'Caveat', cursive !important;
  font-weight: 700 !important;
  font-size: 1.25rem !important;
  color: var(--fgtc-vermillion) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.gt-priority__num,
.gt-priority:nth-child(9n+1) .gt-priority__num,
.gt-priority:nth-child(9n+2) .gt-priority__num,
.gt-priority:nth-child(9n+3) .gt-priority__num,
.gt-priority:nth-child(9n+4) .gt-priority__num,
.gt-priority:nth-child(9n+5) .gt-priority__num,
.gt-priority:nth-child(9n+6) .gt-priority__num,
.gt-priority:nth-child(9n+7) .gt-priority__num,
.gt-priority:nth-child(9n+8) .gt-priority__num,
.gt-priority:nth-child(9n+9) .gt-priority__num {
  font-family: 'Caveat', cursive !important;
  font-weight: 700 !important;
  color: var(--fgtc-vermillion) !important;
  letter-spacing: 0 !important;
}

.gt-timeline__year {
  font-family: 'Caveat', cursive !important;
  font-weight: 700 !important;
  color: var(--fgtc-vermillion) !important;
  letter-spacing: 0 !important;
}

/* ── Handwritten style — switched to normal body font ── */
.fgtc-handwrite {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 1.05rem;
  line-height: 1.65;
  letter-spacing: 0;
  text-transform: none;
}

/* Person quotes on About page */
.gt-person__q {
  font-family: var(--font-body) !important;
  font-size: 0.95rem !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  letter-spacing: 0 !important;
}

/* ── "have your say" accent ── */
.fgtc-hys {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  color: var(--fgtc-vermillion);
  pointer-events: none;
  user-select: none;
  line-height: 1;
}
.fgtc-hys__text {
  font-family: var(--font-body);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.15;
  color: var(--fgtc-vermillion);
}
.fgtc-hys__tick {
  width: 56px;
  height: auto;
  display: block;
  margin-top: -2px;
}

/* placement helpers */
.fgtc-hys--right  { margin-left: auto; }
.fgtc-hys--center { margin: 0 auto; }

/* rotate slightly for a more natural feel */
.fgtc-hys--tilt { transform: rotate(-2deg); }

/* ── FAQ accordion (React was conditional render; PHP uses CSS toggle) ── */
.gt-faq__a { display: none; }
.gt-faq.is-open .gt-faq__a { display: block; }

/* ── Home page: header floats over the hero (full bleed) ── */
.home .gt-header {
  position: absolute !important;
  top: 0; left: 0; right: 0;
  background: transparent !important;
  border-bottom-color: rgba(250,248,245,.15) !important;
  z-index: 50;
}
/* Push hero text below the floating header */
.home .gt-vhero__inner {
  padding-top: 150px;
}
/* Fade the teal in on scroll via a pseudo-element - pure CSS, no JS needed */
.home .gt-header::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--fgtc-teal);
  opacity: 0;
  transition: opacity .3s ease;
  z-index: -1;
  pointer-events: none;
}

/* ── Footer: teal background ── */
.gt-footer { background: var(--fgtc-teal) !important; color: var(--fgtc-paper) !important; }

/* ── Stone section: warm tinted paper for alternating content sections ── */
.is-stone { background: var(--fgtc-paper-2) !important; }

/* ── Header: cream on all pages except home ── */
.gt-header {
  background: var(--fgtc-paper) !important;
  border-bottom: 1px solid rgba(26,26,26,.10) !important;
}
.gt-header__inner {
  padding: 18px 0 !important;
}
/* Default logo: black on cream - no filter needed */
.gt-header__logo { filter: none; }

.gt-header__link {
  color: var(--fgtc-ink) !important;
}
.gt-header__link:hover {
  color: var(--fgtc-teal) !important;
}
.gt-header__link.is-active {
  color: var(--fgtc-teal) !important;
}
.gt-header__link.is-active::after {
  background: var(--fgtc-teal) !important;
}
.gt-header__burger {
  border-color: rgba(26,26,26,.25) !important;
  color: var(--fgtc-ink) !important;
}
/* Mobile nav: teal-deep drop-down */
.gt-header__nav--mobile {
  background: var(--fgtc-teal-deep) !important;
  border-bottom-color: rgba(250,248,245,.1) !important;
}
.gt-header__nav--mobile .gt-header__link {
  color: var(--fgtc-paper) !important;
  border-bottom-color: rgba(250,248,245,.15) !important;
}
.gt-header__nav--mobile .gt-header__link.is-active {
  color: rgba(250,248,245,.6) !important;
}

/* ── Home page: header floats transparent over hero - invert logo to white ── */
.home .gt-header .gt-header__logo { filter: brightness(0) invert(1); }
.home .gt-header .gt-header__link {
  color: var(--fgtc-paper) !important;
}
.home .gt-header .gt-header__link:hover {
  color: rgba(250,248,245,.75) !important;
}
.home .gt-header .gt-header__link.is-active {
  color: var(--fgtc-paper) !important;
}
.home .gt-header .gt-header__link.is-active::after {
  background: var(--fgtc-paper) !important;
}
.home .gt-header .gt-header__burger {
  border-color: rgba(250,248,245,.6) !important;
  color: var(--fgtc-paper) !important;
}

/* =============================================================
   GTRANSLATE - style the native <select> the free widget renders
   ============================================================= */

.gtranslate_wrapper {
  display: flex !important;
  align-items: center !important;
}

.gtranslate_wrapper select {
  appearance: none !important;
  -webkit-appearance: none !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  color: var(--fgtc-ink) !important;
  background-color: transparent !important;
  border: 1px solid rgba(26,26,26,.25) !important;
  border-radius: 4px !important;
  padding: 5px 28px 5px 10px !important;
  cursor: pointer !important;
  line-height: 1.4 !important;
  /* Dark chevron arrow for cream header */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='rgba(26%2C26%2C26%2C0.5)'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 9px center !important;
  background-size: 9px !important;
  outline: none !important;
  box-shadow: none !important;
}

.gtranslate_wrapper select:hover {
  border-color: rgba(26,26,26,.5) !important;
  background-color: rgba(26,26,26,.04) !important;
}

.gtranslate_wrapper select:focus {
  border-color: rgba(26,26,26,.5) !important;
  outline: 2px solid rgba(26,26,26,.1) !important;
  outline-offset: 1px !important;
}

/* option elements inherit body background in most browsers - set explicitly */
.gtranslate_wrapper select option {
  background-color: var(--fgtc-ink) !important;
  color: var(--fgtc-paper) !important;
}

/* ── Home page: white select to sit on dark transparent header ── */
.home .gtranslate_wrapper select {
  color: var(--fgtc-paper) !important;
  border-color: rgba(250,248,245,.45) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='rgba(250%2C248%2C245%2C0.8)'/%3E%3C/svg%3E") !important;
}
.home .gtranslate_wrapper select:hover {
  border-color: rgba(250,248,245,.8) !important;
  background-color: rgba(250,248,245,.08) !important;
}
.home .gtranslate_wrapper select:focus {
  border-color: rgba(250,248,245,.9) !important;
  outline: 2px solid rgba(250,248,245,.2) !important;
}
.home .gtranslate_wrapper select option {
  background-color: var(--fgtc-teal-deep) !important;
  color: var(--fgtc-paper) !important;
}

/* Hide below 480 px so it doesn't crowd the burger */
@media (max-width: 480px) {
  .gtranslate_wrapper { display: none !important; }
}

/* =============================================================
   POWERED BY OUR FUTURE - badge used in header + footer base
   ============================================================= */

.gt-powered {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 4px;
  padding: 4px 8px;
  text-decoration: none !important;
  line-height: 1;
  transition: background .2s;
  flex-shrink: 0;
}
.gt-powered:hover {
  background: rgba(255,255,255,0.20);
}
.gt-powered__label {
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: rgba(250,248,245,0.6);
  text-transform: uppercase;
  white-space: nowrap;
}
.gt-powered__logo {
  height: 20px;
  width: auto;
  display: block;
  border-radius: 2px;
}
/* Hero placement - pinned to bottom-left of the hero section */
.gt-vhero__powered {
  position: absolute;
  bottom: 24px;
  left: 0;
  right: 0;
  z-index: 3;
  display: flex;
  padding: 0 var(--gutter, 24px);
}

/* Hide header badge on mobile - burger + translate already crowded */
@media (max-width: 640px) {
  .gt-powered--header { display: none !important; }
}

/* =============================================================
   AIRTABLE EMBED - project map + gallery toggle
   ============================================================= */

.gt-airtable-embed__bar {
  border-top: 1.5px solid var(--fgtc-line);
  border-bottom: 1.5px solid var(--fgtc-line);
  padding: 16px 0;
}
.gt-airtable-embed__bar .gt-container {
  display: flex;
  gap: 12px;
  align-items: center;
}
.gt-airtable-embed__hint {
  font-family: var(--font-body);
  font-size: var(--fs-12);
  color: var(--fgtc-ink-3);
  margin-left: 4px;
}
.gt-airtable-embed__view {
  height: 80vh;
  min-height: 600px;
}
.gt-airtable-embed__view iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: none;
  background: transparent;
}

@media (max-width: 640px) {
  .gt-airtable-embed__view {
    height: 70vh;
    min-height: 480px;
  }
  .gt-airtable-embed__hint { display: none; }
}

/* =============================================================
   MOBILE RESPONSIVE OVERRIDES
   site.css is kept verbatim - all mobile fixes live here.
   ============================================================= */

/* ── Get Involved: 4-card grid (site.css FGTC override set this to 3) ── */
.gt-ways { grid-template-columns: repeat(4, 1fr) !important; }
@media (max-width: 1080px) { .gt-ways { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 640px)  { .gt-ways { grid-template-columns: 1fr !important; } }

/* ── Get Involved cards: consistent teal deep treatment ── */

/* Remove border dividers - gap does the work */
.gt-ways { gap: 3px !important; border: none !important; }
.gt-way  { border: none !important; }

/* All cards: teal deep background */
.gt-ways .gt-way {
  background: var(--fgtc-teal-deep) !important;
  color: var(--fgtc-paper) !important;
}
.gt-ways .gt-way .gt-way__h {
  color: var(--fgtc-paper) !important;
}
.gt-ways .gt-way .gt-way__p {
  color: rgba(250,248,245,.85) !important;
}
.gt-ways .gt-way .gt-way__tag {
  color: var(--fgtc-paper) !important;
  border-color: rgba(250,248,245,.4) !important;
  background: transparent !important;
}
.gt-ways .gt-way .gt-way__more {
  color: var(--fgtc-vermillion) !important;
}

/* Hover: lift to mid-teal */
.gt-ways .gt-way:hover {
  background: var(--fgtc-teal) !important;
  color: var(--fgtc-paper) !important;
}
.gt-ways .gt-way:hover .gt-way__tag { background: transparent !important; }
.gt-ways .gt-way:hover .gt-way__more { color: var(--fgtc-vermillion) !important; }

/* Home Wins card: dark ink treatment to distinguish from the teal cards */
.gt-ways .gt-way--hw {
  background: var(--fgtc-ink) !important;
}
.gt-ways .gt-way--hw .gt-way__tag {
  border-color: rgba(255,85,51,.5) !important;
  color: rgba(250,248,245,.9) !important;
}
.gt-ways .gt-way--hw:hover {
  background: var(--fgtc-ink-2) !important;
}

/* Circle Community sign-up form container */
.gt-circle-form {
  max-width: 640px;
  margin: 0 auto;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(250,248,245,.18);
  border-radius: 8px;
  padding: 32px;
}
.gt-circle-form .wpcf7-form label {
  display: block;
  color: var(--fgtc-paper);
  font-size: var(--fs-14);
  font-weight: 500;
  margin-bottom: 4px;
}
.gt-circle-form .wpcf7-form input[type="text"],
.gt-circle-form .wpcf7-form input[type="email"],
.gt-circle-form .wpcf7-form textarea,
.gt-circle-form .wpcf7-form select {
  width: 100%;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(250,248,245,.3);
  border-radius: 4px;
  padding: 10px 14px;
  color: var(--fgtc-paper);
  font-size: var(--fs-16);
  margin-bottom: 16px;
  box-sizing: border-box;
}
.gt-circle-form .wpcf7-form input::placeholder,
.gt-circle-form .wpcf7-form textarea::placeholder { color: rgba(250,248,245,.4); }
.gt-circle-form .wpcf7-form input[type="submit"] {
  background: var(--fgtc-vermillion);
  color: #fff;
  border: none;
  border-radius: 4px;
  padding: 12px 28px;
  font-size: var(--fs-16);
  font-weight: 600;
  cursor: pointer;
  letter-spacing: .01em;
}
.gt-circle-form .wpcf7-form input[type="submit"]:hover { background: #e04020; }
.gt-circle-form .wpcf7-form a {
  color: var(--fgtc-paper);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.gt-circle-form .wpcf7-form a:hover { color: var(--fgtc-teal-pale); }

/* ── Airtable iframe skeleton loader ── */
.gt-iframe-wrap {
  position: relative;
  width: 100%;
  height: 100%;
}
.gt-iframe-wrap iframe {
  width: 100%;
  height: 100%;
  display: block;
}
.gt-iframe-skeleton {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  background: var(--fgtc-paper);
  pointer-events: none;
}
.gt-iframe-skeleton__spinner {
  width: 40px;
  height: 40px;
  border: 3px solid rgba(26,26,26,.12);
  border-top-color: var(--fgtc-teal);
  border-radius: 50%;
  animation: gt-spin 0.8s linear infinite;
}
.gt-iframe-skeleton__msg {
  font-size: var(--fs-14);
  color: rgba(26,26,26,.45);
  margin: 0;
  letter-spacing: 0.01em;
}
@keyframes gt-spin {
  to { transform: rotate(360deg); }
}

/* =============================================================
   PARTNER BAR — teal strip under the home hero
   ============================================================= */

.fgtc-partners {
  background: var(--fgtc-teal);
  color: var(--fgtc-paper);
  padding: 8px 0;
}
.fgtc-partners__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  flex-wrap: wrap;
}
.fgtc-partners__lbl {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: var(--fs-12);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(250,248,245,.85);
  white-space: nowrap;
}
.fgtc-partners__div {
  width: 1px;
  align-self: stretch;
  background: rgba(250,248,245,.28);
}
.fgtc-partners__logos {
  display: flex;
  align-items: center;
  gap: 34px;
  flex-wrap: wrap;
}
.fgtc-partners__logo {
  height: 48px;
  width: auto;
  display: block;
}
.fgtc-partners__logo--afc   { height: 80px; }
.fgtc-partners__logo--trust { height: 160px; }
.fgtc-partners__logo--ogden { height: 160px; filter: invert(1) !important; mix-blend-mode: screen; }
.fgtc-partners__logo--inv   { filter: brightness(0) invert(1); opacity: 1; }

@media (max-width: 1040px) {
  .fgtc-partners__inner { gap: 20px; }
  .fgtc-partners__div   { display: none; }
}
@media (max-width: 640px) {
  .fgtc-partners { padding: 20px 0; }
  .fgtc-partners__inner { justify-content: flex-start; gap: 16px 24px; }
  .fgtc-partners__logo--afc   { height: 68px; }
  .fgtc-partners__logo--trust { height: 48px; }
  .fgtc-partners__logo--ogden { height: 60px; }
}

/* =============================================================
   MEET THE TEAM — section heading contrast on teal background
   ============================================================= */

.fgtc-team-section .gt-eyebrow,
.fgtc-team-section .gt-sec-head__title,
.fgtc-team-section .gt-sec-head__sub {
  color: var(--fgtc-paper) !important;
}
.fgtc-team-section .gt-eyebrow {
  opacity: 0.65;
}

/* =============================================================
   MEET THE TEAM grid (Get Involved page)
   ============================================================= */

.fgtc-team {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-top: 40px;
}
.fgtc-team__card {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.fgtc-team__avatar {
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: var(--fgtc-teal-deep);
}
.fgtc-team__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}
.fgtc-team__initials {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 72px;
  color: rgba(250,248,245,0.35);
  letter-spacing: 0.02em;
}
.fgtc-team__info {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.fgtc-team__name {
  font-family: var(--font-display);
  font-size: var(--fs-24);
  text-transform: uppercase;
  letter-spacing: 0.01em;
  color: var(--fgtc-paper);
  margin: 0 0 4px;
  line-height: 1.1;
}
.fgtc-team__role {
  font-family: var(--font-display);
  font-size: var(--fs-12);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(250,248,245,0.55);
  margin-bottom: 14px;
}
.fgtc-team__bio {
  font-size: var(--fs-15);
  line-height: 1.65;
  color: rgba(250,248,245,0.82);
  margin: 0 0 18px;
}
.fgtc-team__contact {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: auto;
}
.fgtc-team__contact a:not(.gt-btn) {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(250,248,245,0.75);
  text-decoration: none;
  font-size: var(--fs-14);
  transition: color .2s;
}
.fgtc-team__contact a:not(.gt-btn):hover {
  color: var(--fgtc-paper);
}
@media (max-width: 860px) {
  .fgtc-team { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .fgtc-team { grid-template-columns: 1fr; }
}

/* ── Timeline: 3 entries, override the base 4-column grid ── */
.gt-timeline { grid-template-columns: repeat(3, 1fr) !important; }
@media (max-width: 860px) { .gt-timeline { grid-template-columns: repeat(2, 1fr) !important; } }

/* ── Launch video: responsive 16:9 YouTube embed ── */
.fgtc-video { position: relative; padding-top: 56.25%; overflow: hidden; background: var(--fgtc-ink); }
.fgtc-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* WordPress admin bar: offset sticky header so it doesn't clash */
body.admin-bar .gt-header { top: 32px; }
@media screen and (max-width: 782px) {
  body.admin-bar .gt-header { top: 46px; }
}

/* The \n\n whitespace text-node between </header> and <main> generates a
   24px anonymous block (= body line-height) on every page. Collapse the
   strut with line-height:0 on body, then restore on the actual children. */
body {
  line-height: 0;
}
body > header,
body > main,
body > footer {
  line-height: 1.5;
}

/* 1. Prevent horizontal scroll globally.
   overflow-x only on body — applying it to html creates a new scroll
   container that breaks position:sticky on the header. */
body {
  margin: 0;
  overflow-x: hidden;
}
/* Prevent any grid child blowing out its track */
* { min-width: 0; }

@media (max-width: 640px) {

  /* 2. Display text: prevent long words overflowing narrow cards */
  .gt-display, h1, h2, h3 {
    word-break: break-word;
    overflow-wrap: break-word;
  }

  /* 3. Footer: site.css stops at 1fr 1fr - collapse to single column */
  .gt-footer__grid {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }

  /* 4. Grids site.css still leaves at 2 columns at 640px */
  .gt-timeline    { grid-template-columns: 1fr !important; }
  .gt-ways        { grid-template-columns: 1fr !important; }
  .gt-timeline    { grid-template-columns: 1fr !important; }
  .gt-people      { grid-template-columns: 1fr !important; }
  .gt-stats,
  .gt-bignums     { grid-template-columns: 1fr !important; }

  /* 5. Section header: site.css has no 640px override for the 2fr 1fr layout */
  .gt-sec-head {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  /* 6. Inline-style grids defined in PHP templates (need !important to win) */
  .gt-hw-join {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
}

/* Compact callout variant - smaller, italic body text */
.gt-callout--sm p,
.gt-callout--sm strong {
  font-size: 0.72rem !important;
}
.gt-callout--sm p { font-style: italic; }

/* =============================================================
   PROJECT STEPS (How to use the map)
   Three-column numbered grid above the Airtable embed.
   ============================================================= */

.gt-project-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.gt-project-step {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px 24px;
  border: 1.5px solid rgba(0,0,0,0.10);
  border-radius: 4px;
  background: #fff;
}
.gt-project-step__num {
  font-family: 'Caveat', cursive;
  font-size: 2rem;
  font-weight: 700;
  color: var(--fgtc-vermillion);
  line-height: 1;
}
.gt-project-step__text {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.5;
  flex: 1;
}
@media (max-width: 640px) {
  .gt-project-steps { grid-template-columns: 1fr; }
}

/* =============================================================
   HUBSPOT FORM — footer newsletter
   ============================================================= */

.gt-footer .hs-form { width: 100%; }

/* Field spacing */
.gt-footer .hs-form-field { margin-bottom: 10px; }

/* Labels — match .gt-footer__h style */
.gt-footer .hs-form-field > label {
  display: block;
  font-family: var(--font-display) !important;
  font-size: var(--fs-12) !important;
  font-weight: 400 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: rgba(250,248,245,.6) !important;
  margin-bottom: 5px !important;
}

/* Inputs — match old .gt-newsletter input */
.gt-footer .hs-input {
  width: 100% !important;
  box-sizing: border-box !important;
  background: transparent !important;
  border: 1.5px solid rgba(250,248,245,.35) !important;
  border-radius: 0 !important;
  padding: 12px 14px !important;
  font-family: var(--font-body) !important;
  font-size: var(--fs-14) !important;
  color: var(--fgtc-paper) !important;
  outline: 0 !important;
  box-shadow: none !important;
}
.gt-footer .hs-input::placeholder { color: rgba(250,248,245,.45) !important; }
.gt-footer .hs-input:focus { border-color: var(--fgtc-vermillion) !important; }

/* Submit button — match old .gt-newsletter button */
.gt-footer .hs-button {
  background: var(--fgtc-vermillion) !important;
  color: var(--fgtc-paper) !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 12px 20px !important;
  font-family: var(--font-display) !important;
  font-size: var(--fs-12) !important;
  font-weight: 400 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: background .2s, color .2s !important;
  margin-top: 4px !important;
}
.gt-footer .hs-button:hover {
  background: var(--fgtc-paper) !important;
  color: var(--fgtc-ink) !important;
}

/* Error messages */
.gt-footer .hs-error-msgs {
  list-style: none !important;
  padding: 0 !important;
  margin: 4px 0 0 !important;
  font-size: var(--fs-12) !important;
  color: var(--fgtc-vermillion) !important;
}

/* GDPR / consent text */
.gt-footer .legal-consent-container,
.gt-footer .legal-consent-container p {
  font-size: var(--fs-12) !important;
  color: rgba(250,248,245,.45) !important;
  line-height: 1.6 !important;
  margin-top: 10px !important;
}
.gt-footer .legal-consent-container a {
  color: rgba(250,248,245,.6) !important;
  text-decoration: underline !important;
}

/* Intro richtext block HubSpot adds */
.gt-footer .hs-richtext {
  font-size: var(--fs-12) !important;
  color: rgba(250,248,245,.55) !important;
  line-height: 1.6 !important;
  margin-bottom: 12px !important;
}

/* Success message */
.gt-footer .submitted-message {
  font-size: var(--fs-14) !important;
  color: rgba(250,248,245,.8) !important;
}

/* =============================================================
   FOOTER — 3-column layout (brand+contact | explore | newsletter)
   ============================================================= */
.gt-footer__grid {
  grid-template-columns: 1.6fr 1fr 1.5fr !important;
}
@media (max-width: 860px) {
  .gt-footer__grid { grid-template-columns: 1fr 1fr !important; gap: 32px !important; }
}

/* =============================================================
   NAV ACTIVE INDICATOR — keep underline inside header border
   ============================================================= */
.gt-header__link.is-active::after {
  bottom: -24px;
}

/* =============================================================
   TEAL OVERLAYS — video hero + inner page headers
   ============================================================= */
.gt-vhero__scrim {
  background:
    linear-gradient(180deg, rgba(58,107,124,0.15) 0%, rgba(58,107,124,0.42) 40%, rgba(58,107,124,0.82) 100%) !important;
}
.gt-header.is-overlay::before {
  background: linear-gradient(180deg, rgba(58,107,124,0.55) 0%, rgba(58,107,124,0) 100%) !important;
}
.gt-pagehead__bg-scrim {
  background:
    linear-gradient(180deg, rgba(58,107,124,0.3) 0%, rgba(58,107,124,0.65) 70%, rgba(58,107,124,0.82) 100%) !important;
}

/* =============================================================
   LEGAL / PRIVACY PAGE
   ============================================================= */
.fgtc-legal {
  font-size: var(--fs-16);
  line-height: 1.7;
  color: var(--fgtc-ink);
  max-width: 720px;
}
.fgtc-legal h2 {
  font-family: var(--font-display);
  font-size: var(--fs-20);
  font-weight: 700;
  letter-spacing: 0.03em;
  margin: 48px 0 12px;
  padding-top: 20px;
  border-top: 2px solid var(--fgtc-paper-2);
}
.fgtc-legal h2:first-of-type { margin-top: 32px; }
.fgtc-legal p { margin: 0 0 14px; }
.fgtc-legal ul { padding-left: 24px; margin: 0 0 16px; }
.fgtc-legal ul li { margin-bottom: 8px; }
.fgtc-legal a { color: var(--fgtc-teal); text-underline-offset: 2px; }
.fgtc-legal a:hover { color: var(--fgtc-vermillion); }
.fgtc-legal strong { font-weight: 600; }

.fgtc-legal__table { overflow-x: auto; margin: 20px 0 24px; -webkit-overflow-scrolling: touch; }
.fgtc-legal__table table { width: 100%; border-collapse: collapse; font-size: var(--fs-14); line-height: 1.55; }
.fgtc-legal__table th {
  padding: 12px 16px; text-align: left;
  font-family: var(--font-display); font-size: var(--fs-12); font-weight: 400;
  letter-spacing: 0.1em; text-transform: uppercase; color: rgba(26,26,26,0.5);
  background: var(--fgtc-paper-2); border-bottom: 2px solid rgba(26,26,26,0.1);
}
.fgtc-legal__table td { padding: 12px 16px; border-bottom: 1px solid var(--fgtc-paper-2); vertical-align: top; }
.fgtc-legal__table tr:last-child td { border-bottom: 0; }
.fgtc-legal__table tr:nth-child(even) td { background: rgba(26,26,26,0.02); }

/* =============================================================
   HUBSPOT EMBED FORM — Home Wins (and other inline embeds)
   ============================================================= */
.gt-embed-form { padding: 0; }
.gt-embed-form .hs-form-field { margin-bottom: 18px; }

.gt-embed-form label {
  display: block;
  font-family: var(--font-display) !important;
  font-size: var(--fs-12) !important;
  font-weight: 400 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--fgtc-ink) !important;
  margin-bottom: 6px !important;
}

.gt-embed-form .hs-input,
.gt-embed-form input[type="text"],
.gt-embed-form input[type="email"],
.gt-embed-form textarea {
  width: 100% !important;
  box-sizing: border-box !important;
  background: #fff !important;
  border: 1.5px solid rgba(26,26,26,0.25) !important;
  border-radius: 0 !important;
  padding: 12px 14px !important;
  font-family: var(--font-body) !important;
  font-size: var(--fs-16) !important;
  color: var(--fgtc-ink) !important;
  outline: 0 !important;
  box-shadow: none !important;
  transition: border-color .15s !important;
}
.gt-embed-form .hs-input:focus,
.gt-embed-form input[type="text"]:focus,
.gt-embed-form input[type="email"]:focus,
.gt-embed-form textarea:focus {
  border-color: var(--fgtc-teal) !important;
}
.gt-embed-form textarea { min-height: 120px; resize: vertical; }

.gt-embed-form .hs-button,
.gt-embed-form input[type="submit"] {
  display: inline-block !important;
  background: var(--fgtc-vermillion) !important;
  color: var(--fgtc-paper) !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 14px 28px !important;
  font-family: var(--font-display) !important;
  font-size: var(--fs-14) !important;
  font-weight: 400 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: background .2s, color .2s !important;
  margin-top: 8px !important;
  width: auto !important;
}
.gt-embed-form .hs-button:hover,
.gt-embed-form input[type="submit"]:hover {
  background: var(--fgtc-ink) !important;
  color: var(--fgtc-paper) !important;
}

.gt-embed-form .hs-error-msgs {
  list-style: none !important;
  padding: 0 !important;
  margin: 4px 0 0 !important;
  font-size: var(--fs-12) !important;
  color: var(--fgtc-vermillion) !important;
}
.gt-embed-form .hs-form-required { color: var(--fgtc-vermillion) !important; }

.gt-embed-form .legal-consent-container,
.gt-embed-form .legal-consent-container p {
  font-size: var(--fs-12) !important;
  color: rgba(26,26,26,0.5) !important;
  line-height: 1.6 !important;
  margin-top: 10px !important;
}
.gt-embed-form .submitted-message {
  font-family: var(--font-body) !important;
  font-size: var(--fs-16) !important;
  color: var(--fgtc-ink) !important;
}

