.flow-kv{background-image:url('/assets/img/kv2026/kv-band.webp')}
.flow-head{position:static;backdrop-filter:none}
.contact-brand{display:flex;align-items:center;gap:13px;min-height:48px}
.contact-main{max-width:var(--inner);margin:0 auto;padding:clamp(48px,7vw,88px) var(--side) clamp(64px,9vw,120px)}
.contact-heading{max-width:840px;margin-bottom:48px}
.contact-heading h1{font-size:clamp(30px,4vw,48px);font-weight:900;line-height:1.4;letter-spacing:-.01em;margin-bottom:22px}
.contact-heading h1::after{content:"";display:block;width:44px;height:3px;background:var(--accent);margin-top:22px}
.contact-main p,.contact-main dd{font-size:16px;line-height:1.95;color:var(--ink-soft);overflow-wrap:anywhere}
.contact-main h2{font-size:clamp(20px,2vw,28px);line-height:1.5;margin-bottom:16px}
.contact-main h3{font-size:16px;line-height:1.85;margin-bottom:8px}
.contact-desk{display:grid;grid-template-columns:1.2fr 1fr;gap:36px;padding:clamp(24px,4vw,36px);background:var(--surface);border-left:2px solid var(--accent);margin-bottom:64px}
.contact-desk p+p{margin-top:16px}
.contact-desk strong{color:var(--ink);font-weight:700}
.contact-action{align-self:center;min-width:0}
.contact-main .btn{min-height:48px;font-size:16px;text-align:center}
.contact-main .btn.primary{background:linear-gradient(180deg,var(--accent),var(--accent-deep));color:var(--white)}
.contact-main .btn.ghost{margin-top:24px}
.contact-main .contact-email{margin-top:16px;color:var(--ink);text-align:center}
.contact-main .contact-note{font-size:14px;line-height:1.85;margin-top:16px}
.contact-columns{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(36px,5vw,64px)}
.contact-columns>section{min-width:0}
.contact-steps{padding-left:24px}
.contact-steps li{padding:20px 0 20px 8px;border-bottom:1px solid var(--rule)}
.contact-steps li::marker{color:var(--accent-text);font-weight:700}
.contact-event>div{padding:20px 0;border-bottom:1px solid var(--rule)}
.contact-event dt{font-size:14px;color:var(--mute);margin-bottom:8px}
.contact-foot{max-width:var(--inner);margin:0 auto;padding:26px var(--side) 40px;border-top:1px solid var(--rule-soft);font-size:14px;color:var(--ink-soft)}
.contact-foot a{display:inline-flex;align-items:center;min-height:48px;text-decoration:underline;text-underline-offset:4px}
@media(hover:hover) and (pointer:fine){
  .contact-main .btn.primary:hover{background:var(--accent-deep)}
}
/* Inquiry form. Field shells (.fld) and the honeypot (.hp) come from flow.css; the label text and
   the status line are page-level, the same split the sponsor entry form uses. */
.contact-form .fl{display:block;font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--ink-soft);margin-bottom:7px}
.contact-form .btn.primary{width:100%;justify-content:center}
.contact-form .fld input:disabled,.contact-form .fld textarea:disabled,.contact-form .btn:disabled{opacity:.55}
.f-msg{margin-top:14px;font-size:14px;line-height:1.8;color:var(--ink-soft);min-height:1.8em}
/* State is never carried by colour alone: the accepted line is bold and the failed line keeps a rule. */
.f-msg.ok{color:var(--ink);font-weight:700}
.f-msg.ng{color:var(--ink);border-left:2px solid var(--accent);padding-left:12px}

@media(max-width:760px){
  .contact-desk,.contact-columns{grid-template-columns:1fr}
  .contact-desk{gap:24px;margin-bottom:48px}
  .contact-columns{gap:48px}
}
