/* Apply page — page-specific CSS overrides */

.hero { padding: clamp(70px, 12vh, 130px) 0 clamp(30px, 5vh, 60px); }
.hero .wrap { text-align: left; }
.hero-meta { margin-bottom: 36px; display: flex; gap: 12px; align-items: center; }
h1.hero-headline { text-align: left; margin: 0 0 28px; }
.hero-sub {
    font-family: var(--sans);
    font-size: clamp(17px, 1.4vw, 20px);
    line-height: 1.6; color: var(--ink); max-width: 60ch; margin: 0;
}
.hero-sub em { color: var(--emphasis); font-style: italic; font-weight: inherit; }
.hero-sub p + p { margin-top: 18px; }

.video-sec { padding: clamp(40px, 6vh, 70px) 0 clamp(60px, 9vh, 100px); border-bottom: 1px solid var(--hairline); }
.video-frame {
    position: relative; width: 100%; max-width: 920px; margin: 0 auto;
    padding-bottom: 56.25%; background: var(--ink); border-radius: 8px; overflow: hidden;
}
@supports (aspect-ratio: 16/9) {
    .video-frame { padding-bottom: 0; aspect-ratio: 16 / 9; max-height: 520px; }
}
.video-frame iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }

.eligibility { padding: clamp(70px, 11vh, 130px) 0 clamp(40px, 6vh, 70px); }
.eligibility-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; }
.eligibility h2 {
    font-family: var(--serif); font-stretch: 75%; font-weight: 300;
    font-size: clamp(36px, 4.5vw, 60px); line-height: 1.05; letter-spacing: -0.015em;
    margin: 0 0 24px; max-width: 16ch;
}
.eligibility h2 em { font-style: italic; color: var(--emphasis); }
.eligibility-intro { font-size: 17px; line-height: 1.6; color: var(--ink-soft); max-width: 38ch; }
.eligibility ul { list-style: none; border-top: 1px solid var(--hairline); }
.eligibility li {
    padding: 22px 0; border-bottom: 1px solid var(--hairline);
    font-size: 18px; line-height: 1.45;
    display: flex; gap: 20px; align-items: flex-start;
    cursor: pointer; transition: opacity 0.18s ease; user-select: none;
}
.eligibility li:hover { opacity: 0.85; }
.eligibility li .num {
    font-family: var(--serif); font-size: 11px; color: var(--ink-soft);
    min-width: 28px; padding-top: 7px; flex-shrink: 0;
}
.eligibility input[type="checkbox"] {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0,0,0,0); border: 0;
}
.check-box {
    display: inline-flex; align-items: center; justify-content: center;
    width: 24px; height: 24px;
    border: 1.5px solid var(--ink); border-radius: 4px;
    background: transparent; flex-shrink: 0;
    transition: background 0.18s ease, border-color 0.18s ease;
    margin-top: 1px;
}
.check-box svg { width: 14px; height: 14px; color: var(--bg); opacity: 0; transform: scale(0.6);
    transition: opacity 0.18s ease, transform 0.22s cubic-bezier(0.32, 1.6, 0.55, 1); }
.eligibility li:has(input:checked) .check-box { background: var(--ink); border-color: var(--ink); }
.eligibility li:has(input:checked) .check-box svg { opacity: 1; transform: scale(1); }
.eligibility li:has(input:checked) .check-label {
    color: var(--ink-soft); text-decoration: line-through;
    text-decoration-color: rgba(49, 58, 68, 0.35);
}
.eligibility input[type="checkbox"]:focus-visible + .check-box { outline: 2px solid var(--emphasis); outline-offset: 3px; }
.check-label { flex: 1; transition: color 0.2s ease; }

.gate-status {
    margin-top: 24px; padding: 14px 18px;
    background: var(--bg-soft); border: 1px dashed var(--hairline-strong);
    border-radius: 4px; font-family: var(--serif); font-style: italic;
    font-size: 14px; color: var(--ink-soft); line-height: 1.5;
    transition: opacity 0.3s ease, border-color 0.3s ease, background 0.3s ease;
}
.gate-status.is-ready {
    background: rgba(45, 91, 224, 0.06);
    border: 1px solid rgba(45, 91, 224, 0.35);
    color: var(--emphasis); font-style: normal;
}

.form-sec.is-locked .form-locked { display: block; }
.form-sec.is-locked .form-unlocked { display: none; }
.form-sec.is-unlocked .form-locked { display: none; }
.form-sec.is-unlocked .form-unlocked { display: block; animation: gate-fade-in 0.6s cubic-bezier(0.2, 0.65, 0.3, 1); }
@keyframes gate-fade-in {
    from { opacity: 0; transform: translateY(16px); filter: blur(4px); }
    to   { opacity: 1; transform: translateY(0); filter: blur(0); }
}
.form-locked-msg {
    padding: 60px 32px; text-align: center;
    background: var(--bg-soft); border: 1px dashed var(--hairline-strong);
    border-radius: 6px; color: var(--ink-soft);
}
.form-locked-msg p {
    font-family: var(--serif); font-style: italic; font-size: 16px;
    line-height: 1.55; max-width: 42ch; margin: 0 auto;
}

.kdh-callout { padding: clamp(28px, 5vh, 50px) 0 clamp(60px, 9vh, 100px); }
.kdh-callout-inner {
    background: var(--bg-soft); border: 1px solid var(--hairline);
    border-left: 4px solid var(--emphasis); border-radius: 4px;
    padding: 28px 32px;
    display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center;
}
.kdh-callout-text { font-family: var(--serif); font-size: 17px; line-height: 1.55; color: var(--ink); max-width: 64ch; }
.kdh-callout-text em { color: var(--emphasis); font-style: italic; }
.kdh-callout-cta {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 12px 22px 14px;
    background: transparent; color: var(--ink); border: 1px solid var(--ink);
    border-radius: 4px; text-decoration: none;
    font-family: var(--sans); font-size: 14px; line-height: 1; white-space: nowrap;
    transition: background 0.18s ease, color 0.18s ease;
}
.kdh-callout-cta:hover { background: var(--ink); color: var(--bg); }
.kdh-callout-cta .arrow { transition: transform 0.18s ease; }
.kdh-callout-cta:hover .arrow { transform: translateX(3px); }

.form-sec {
    padding: clamp(40px, 6vh, 80px) 0 clamp(100px, 14vh, 180px);
    border-top: 1px solid var(--hairline);
}
.form-head { margin-bottom: 40px; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: end; }
.form-head h2 {
    font-family: var(--serif); font-stretch: 75%; font-weight: 300;
    font-size: clamp(32px, 4.2vw, 56px); line-height: 1.05; letter-spacing: -0.015em;
    max-width: 14ch;
}
.form-head h2 em { font-style: italic; color: var(--emphasis); }
.form-head p { font-size: 16px; line-height: 1.55; color: var(--ink-soft); max-width: 42ch; }
.airtable-wrap {
    background: var(--bg-soft); border: 1px solid var(--hairline);
    border-radius: 6px; overflow: hidden;
    box-shadow: 0 1px 0 rgba(49, 58, 68, 0.04);
}
.airtable-embed { display: block; width: 100%; height: 920px; border: none; background: transparent; }

@media (max-width: 900px) {
    .eligibility-grid { grid-template-columns: 1fr; gap: 40px; }
    .form-head { grid-template-columns: 1fr; gap: 18px; margin-bottom: 28px; }
    .form-head h2 { font-size: clamp(28px, 6vw, 42px); max-width: 16ch; }
    .form-head p { font-size: 15px; }
    .airtable-embed { height: 840px; }
    .kdh-callout-inner { grid-template-columns: 1fr; padding: 24px 24px; gap: 18px; }
    .kdh-callout-cta { align-self: flex-start; }
}
@media (max-width: 540px) {
    .eligibility h2 { font-size: 28px; max-width: 16ch; }
    .eligibility-intro { font-size: 15px; }
    .eligibility li { font-size: 15px; }
    .kdh-callout-text { font-size: 15px; }
    .kdh-callout-inner { padding: 22px 22px; }
    .form-head h2 { font-size: 26px; }
    .airtable-embed { height: 800px; }
}
@media (max-width: 380px) {
    .airtable-embed { height: 760px; }
}

.kdh-callout-inner, .airtable-wrap { background: #FBF9F3 !important; }
.video-sec, .eligibility, .kdh-callout, .form-sec { background: #F5F3ED !important; }
