/* GWC fixes (2026-11-09). Last public sheet before the optional dark sheet.
   1) Content is NEVER hidden by default: all reveal classes stay fully visible, with or without JS.
   2) Desktop nav "More" menu (built by the nav-fit script when the links would not fit). */
.js .rv,.js .m-reveal,.js .reveal,.js .rv.is-in,.js .m-reveal.m-in{opacity:1!important;transform:none!important;transition:none!important}
.nav-more{position:relative}
.nav-more>summary{cursor:pointer;list-style:none}
.nav-more>summary::-webkit-details-marker{display:none}
.nav-more>summary::after{content:"";display:inline-block;margin-left:.35rem;width:.45em;height:.45em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px)}
.nav-more>.menu-sub{left:auto!important;right:0!important;min-width:14rem!important;width:max-content;max-width:min(22rem,90vw);z-index:90}
.nav-more>.menu-sub a{display:flex;align-items:center;min-height:44px;white-space:nowrap}
.nav-more[open]>.menu-sub{display:grid}
/* desktop nav: links never shrink or overlap; the fit script collapses the extras into "More" instead */
@media (min-width:1280px){
  #site-nav.nav-panel>a,#site-nav.nav-panel>details{flex:0 0 auto!important}
  #site-nav.nav-panel>a,#site-nav.nav-panel>details>summary{white-space:nowrap}
  .header-cta{flex:0 0 auto;margin-left:.5rem}
}
/* card buttons wrap instead of running out of the card */
main article .btn,main .card .btn,main .price-card .btn,main .service-grid .btn,main .feature-row .btn{white-space:normal;max-width:100%;text-align:center;line-height:1.25;height:auto;min-height:44px;padding-block:.55rem}

/* ===== Forms: one shared layout for every intake, contact, booking and request form ===== */
.form-card .field,.gx-form .field{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.form-card .field>.field-label,.form-card .field>legend,.gx-form .field>.field-label,.gx-form .field>legend{order:1;margin:0;line-height:1.3}
.form-card .field>.field-hint,.gx-form .field>.field-hint{order:3;margin:.1rem 0 0;font-size:.875rem;line-height:1.4;color:#4a5568}
.form-card .field>.field-error,.gx-form .field>.field-error{order:4}
.form-card .field>*:not(.field-label):not(legend):not(.field-hint):not(.field-error),.gx-form .field>*:not(.field-label):not(legend):not(.field-hint):not(.field-error){order:2}
.form-card .field-grid,.gx-form .field-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.05rem;align-items:start}
.form-card .field input:not([type=radio]):not([type=checkbox]):not([type=file]),.form-card .field select,.gx-form .field input:not([type=radio]):not([type=checkbox]):not([type=file]),.gx-form .field select{height:3rem;min-height:48px;font-size:max(16px,1rem);line-height:1.3;width:100%;box-sizing:border-box}
.form-card .field textarea,.gx-form .field textarea{font-size:max(16px,1rem);min-height:7.5rem;width:100%;box-sizing:border-box}
.form-card .field input:focus-visible,.form-card .field select:focus-visible,.form-card .field textarea:focus-visible{outline:3px solid #1e77ca;outline-offset:2px}
@media (min-width:900px){
  .form-card .field-grid,.gx-form .field-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.25rem;row-gap:0}
  .form-card .field-grid>.field,.gx-form .field-grid>.field{margin-bottom:1.05rem}
  .form-card .field-grid>.field-span,.gx-form .field-grid>.field-span,.form-card .field-grid>.consent-choice{grid-column:1/-1}
}
@supports (grid-template-rows:subgrid){
  @media (min-width:900px){
    .form-card .field-grid>.field:not(.field-span),.gx-form .field-grid>.field:not(.field-span){display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:.4rem;align-content:start}
    .form-card .field-grid>.field:not(.field-span)>*,.gx-form .field-grid>.field:not(.field-span)>*{grid-column:1;min-width:0}
  }
}
/* fieldset-style steps never collapse; chips and consent rows keep big touch targets */
.gx-form .chip,.gx-form .gx-check,.form-card .choice{min-height:48px}
.gx-form .stepper-item{min-height:48px}
/* mobile: one column, sticky Back/Next, no clutter under the keyboard */
@media (max-width:899px){
  .gx-form .wizard-actions,.form-card.wizard .wizard-actions{position:sticky;bottom:0;z-index:20;background:var(--surface,#fff);margin-inline:-1rem;padding:.75rem 1rem calc(.75rem + env(safe-area-inset-bottom,0px));box-shadow:0 -10px 24px rgba(12,39,68,.10);border-top:1px solid var(--line,#e6dfd2)}
  .gx-form .wizard-actions .btn,.form-card.wizard .wizard-actions .btn{min-height:48px;flex:1 1 0}
  body.kind-form .quick-cta{display:none!important}
  body.kind-form{padding-bottom:0!important}
}
@media (max-width:480px){.form-card,.gx-form{padding-inline:1rem!important}}
.form-card,.gx-form{max-width:100%;overflow-wrap:anywhere}
.gx-form .stepper{overflow:visible}
.form-card,.gx-root .form-card{background-color:#fffcf8}
.form-card label,.form-card legend,.form-card p,.form-card .field-label,.form-card .field-hint,.form-card .field-error,.gx-form .wizard-step-label{background-color:transparent}
@media (max-width:1279px){body:has(.form-card.wizard) .quick-cta,body:has(.gx-root) .quick-cta,body:has(#eligibility-quiz) .quick-cta{display:none!important}}

/* card links must wrap at large text sizes */
.card-more{white-space:normal}
.grant-grid>*{min-width:0}
