/* Contact: the introduction and other ways in on the left, one single-column form on the right. */
:root{--tv-field-line:#8a97aa;--tv-field-bg:#fff;--tv-card-line:#bacbe8;--tv-card-bg:#edf2fb;--tv-error:#a02a2a;--tv-field-radius:2px;--tv-card-radius:16px;--tv-field-h:50px}
@media screen and (prefers-color-scheme:dark){:root{--tv-field-line:#5d6f89;--tv-field-bg:#0e1724;--tv-card-line:#34455d;--tv-card-bg:#172438;--tv-error:#ffa4a4}}

.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(40px,8vw,120px);align-items:start;padding:56px var(--g) 96px}
.contact-intro h1{font-size:clamp(2.75rem,5.2vw,4.5rem);line-height:1.06;letter-spacing:-.04em;margin:0 0 24px}.contact-intro h1 span{color:var(--sc-accent)}
.contact-intro>p{font-size:1.125rem;line-height:1.7;max-width:38ch;color:var(--sc-ink-soft);margin:0}

/* Other ways in: each row is one link, marked by its arrow rather than an underline, since the rows already carry rules. */
.contact-ways{list-style:none;margin:44px 0 0;padding:0;max-width:40ch}
.contact-ways li{border-top:1px solid var(--tv-card-line)}.contact-ways li:last-child{border-bottom:1px solid var(--tv-card-line)}
.contact-ways a{display:grid;grid-template-columns:1fr auto;column-gap:16px;align-items:center;padding:18px 0;transition:opacity var(--tv-press-out) var(--sc-ease-out)}
.contact-ways a span{grid-column:1;font-size:.875rem;color:var(--sc-ink-soft);margin-bottom:4px}
.contact-ways a b{grid-column:1;font-size:1.0625rem;font-weight:650;transition:color var(--sc-d-fast) var(--sc-ease-out)}
.contact-ways .link-arrow{grid-column:2;grid-row:1/3;transition:transform var(--sc-d-fast) var(--sc-ease-out)}
.contact-ways a:active{opacity:var(--tv-press-dim);transition-duration:var(--tv-press-in)}
@media(hover:hover) and (pointer:fine){.contact-ways a:hover b{color:var(--sc-accent)}.contact-ways a:hover .link-arrow{transform:translateX(var(--tv-nudge))}}

.contact-card{border:1px solid var(--tv-card-line);border-radius:var(--tv-card-radius);background:var(--tv-card-bg);padding:clamp(24px,4vw,40px)}
.contact-form{display:grid;gap:22px}
.contact-form .field{margin:0;padding:0;border:0;min-width:0}
.contact-form label{display:block;padding:0;margin:0 0 8px;font-size:.9375rem;font-weight:650}
.contact-form .optional{font-weight:450;color:var(--sc-ink-soft)}
.contact-form input:not([type=checkbox]),.contact-form textarea{display:block;width:100%;box-sizing:border-box;min-height:var(--tv-field-h);padding:12px 14px;font:inherit;font-size:1rem;color:var(--sc-ink);background:var(--tv-field-bg);border:1px solid var(--tv-field-line);border-radius:var(--tv-field-radius);transition:border-color var(--sc-d-fast) var(--sc-ease-out)}
.contact-form textarea{min-height:168px;line-height:1.6;resize:vertical}
.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:2px solid var(--sc-accent);outline-offset:1px;border-color:var(--sc-accent)}
.contact-form [aria-invalid=true]{border-color:var(--tv-error)!important;box-shadow:inset 0 0 0 1px var(--tv-error)}
.field-error{margin:8px 0 0;font-size:.875rem;font-weight:600;color:var(--tv-error)}.field-error:empty{display:none}
.field-meta{display:flex;justify-content:space-between;gap:16px;margin:8px 0 0;font-size:.8125rem;color:var(--sc-ink-soft)}.field-meta [data-count]{font-variant-numeric:tabular-nums;white-space:nowrap}

.error-summary{padding:14px 16px;background:var(--tv-field-bg);border:1px solid var(--tv-error);border-left-width:4px;font-size:.9375rem}
.error-summary:focus{outline:2px solid var(--tv-error);outline-offset:2px}
.error-summary p{margin:0 0 6px;font-weight:650}.error-summary ul{margin:0;padding-left:18px}.error-summary a{color:var(--tv-error);text-decoration:underline;text-underline-offset:3px}
.contact-note{margin:0;padding-top:18px;border-top:1px solid var(--tv-card-line);font-size:.875rem;line-height:1.6;color:var(--sc-ink-soft)}.contact-note a{color:var(--sc-ink);text-decoration:underline;text-underline-offset:3px}
.contact-submit{display:flex;align-items:center;flex-wrap:wrap;gap:14px 20px}
.contact-form .ap-button{border:0;font-family:inherit;cursor:pointer}
.contact-form .ap-button[aria-busy=true]{opacity:.72;cursor:progress}
.form-status{margin:0;font-size:.9375rem;line-height:1.6}.form-status:empty{display:none}.form-status.is-error{color:var(--tv-error);font-weight:600}.form-status a{color:inherit;text-decoration:underline}
.botcheck{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
/* Space is held for the hCaptcha widget (78px normal, 144px compact) so the form does not jump when it loads. */
.h-captcha{min-height:78px}.h-captcha[data-size=compact]{min-height:144px}

/* The confirmation replaces the form inside the same card, which keeps its height so the page does not jump. */
.contact-form[hidden],.contact-sent[hidden]{display:none}
.contact-card{display:flex;flex-direction:column;justify-content:center}
.contact-sent{display:flex;flex-direction:column;align-items:flex-start;transition:opacity var(--sc-d-base) var(--sc-ease-out),transform var(--sc-d-base) var(--sc-ease-out)}
@starting-style{.contact-sent{opacity:0;transform:translateY(.5rem)}}
.sent-mark{width:36px;height:36px;margin-bottom:20px;fill:none;stroke:var(--sc-accent);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.contact-sent h2{font-size:clamp(1.625rem,2.4vw,2rem);line-height:1.15;letter-spacing:-.03em;margin:0 0 12px}.contact-sent h2:focus{outline:none}
.contact-sent p{font-size:1.0625rem;line-height:1.65;color:var(--sc-ink-soft);margin:0 0 24px;max-width:40ch}
.sent-email{color:var(--sc-ink);overflow-wrap:anywhere}
.contact-sent .text-button{background:none;border:0;padding:0;min-height:44px;font:inherit;font-size:.9375rem;font-weight:650;color:var(--sc-ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;cursor:pointer}

@media(max-width:760px){
 .contact{display:block;padding:36px 24px 64px}.contact-intro{margin-bottom:36px}.contact-intro h1{font-size:clamp(2.625rem,11vw,3.5rem)}.contact-intro>p{font-size:1.0625rem}
 .contact-ways{margin-top:30px}.contact-card{padding:24px 20px}
}
@media(prefers-reduced-motion:reduce){.contact-sent,.contact-ways a,.contact-ways a b,.contact-ways .link-arrow,.contact-form input,.contact-form textarea{transition:none}}
