/* Extends Genesis 1's existing style.css; scoped to the application. */
[hidden] { display: none !important; }
.application-layout { align-items: stretch; }
.application-layout .apply-photo { align-self: start; position: sticky; top: 0; min-height: 720px; height: calc(100vh - 90px); }
.application-layout .apply-photo .inner { min-height: 100%; justify-content: center; }
.application-layout .photo-note { margin-top: 32px; font-size: 15px; }
.photo-note a { color: inherit; text-decoration: underline; }
.application-panel { display: block; }
.application-panel h2 { font-size: clamp(30px, 3vw, 42px); margin-bottom: 14px; }
.application-panel .intro { margin-bottom: 26px; color: var(--muted, #596573); }
.application-panel fieldset { border: 0; border-top: 1px solid #d7dde0; padding: 26px 0 10px; margin: 28px 0 0; min-width: 0; }
.application-panel legend { float: left; width: 100%; font-family: Marcellus, Georgia, serif; font-size: 23px; padding: 0; margin-bottom: 24px; }
.application-panel legend + * { clear: both; }
.application-panel legend span { color: #23758f; font: 600 12px Figtree, sans-serif; margin-right: 12px; }
.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.application-panel .wz-input { width: 100%; min-width: 0; min-height: 48px; }
.application-panel .wz-label-text { min-height: 24px; }
.application-panel .wz-field { margin-bottom: 23px; }
.application-panel small, .small-print { display: block; font-size: 13px; line-height: 1.65; color: #596573; margin-top: 9px; }
.consent { display: flex; align-items: flex-start; gap: 12px; line-height: 1.65; font-size: 14px; }
.consent input { width: 19px; height: 19px; flex: 0 0 19px; margin-top: 4px; accent-color: #23758f; }
.application-panel .wz-send { background: #23758f; margin-top: 24px; }
.application-panel .wz-send:disabled { opacity: .6; cursor: wait; }
.application-panel .wz-send:focus-visible, #retry-setup:focus-visible { outline: 3px solid var(--navy); outline-offset: 4px; }
#form-status, .notice { padding: 16px; border: 1px solid #b94940; background: #fff2f0; color: #702920; margin: 24px 0; line-height: 1.6; }
#retry-setup { padding: 12px 18px; margin-top: 16px; border: 1px solid #23758f; border-radius: 4px; background: transparent; color: #23758f; cursor: pointer; }
.honey { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.result-page { padding-top: 90px; padding-bottom: 90px; max-width: 820px; min-height: 60vh; }
.result-page h1 { font-size: clamp(34px, 5vw, 52px); margin-bottom: 24px; }
.result-page p { margin-bottom: 22px; }
.result-page a:not(.btn) { text-decoration: underline; overflow-wrap: anywhere; }
@media (max-width: 1000px) { .application-layout { grid-template-columns: 1fr; } .application-layout .apply-photo { position: relative; height: auto; min-height: 400px; } }
@media (max-width: 560px) { .field-grid { grid-template-columns: 1fr; } .application-panel { padding: 34px 22px; } .application-layout .apply-photo { min-height: 360px; } }
.skip-link { position: absolute; left: -10000px; top: 8px; z-index: 9999; background: #fff; color: #102b3a; padding: 14px; }
.skip-link:focus { left: 8px; }

.full-width { grid-column: 1 / -1; }
.id-upload { padding: 12px; font-size: 14px; }
.id-upload::file-selector-button { border: 0; padding: 9px 12px; margin-right: 12px; background: #e6eef0; color: #173343; border-radius: 3px; cursor: pointer; }
