/* Contact flow extends the existing blond palette without changing the portfolio. */
.contact-layout{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);gap:clamp(32px,5vw,80px);margin-top:60px;text-align:left;align-items:start}
.contact-routes{padding-top:20px;min-width:0}
.contact-route-label{font-size:22px;letter-spacing:-.03em;margin-bottom:24px;font-weight:550}
.contact-route{display:flex;align-items:center;gap:16px;border-top:1px solid var(--line);padding:25px 0;min-height:92px;transition:color 160ms ease}
.contact-route:last-of-type{border-bottom:1px solid var(--line)}
.contact-route>span:nth-child(2){flex:1;min-width:0}
.contact-route strong{display:block;font-size:18px;font-weight:550;letter-spacing:-.025em}
.contact-route small{display:block;font-size:14px;color:var(--sc-ink-soft);margin-top:5px;overflow-wrap:anywhere}
.route-number{font-size:13px;color:var(--sc-ink-soft);align-self:flex-start;margin-top:5px}
.contact-route:hover{color:var(--sc-accent)}
.contact-aside-note{font-size:15px;color:var(--sc-ink-soft);line-height:1.6;margin-top:28px}
.contact-form-card{background:var(--blond-5);border:1px solid var(--line);border-radius:24px;padding:clamp(24px,3vw,42px);scroll-margin-top:110px;min-width:0}
.contact-form-card [hidden]{display:none!important}
.form-progress-head{display:flex;justify-content:space-between;gap:15px;font-size:13px;color:var(--sc-ink-soft)}
.form-progress{display:flex;gap:8px;list-style:none;padding:0;margin:13px 0 32px}
.form-progress .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.form-progress li{height:3px;flex:1;border-radius:4px;background:var(--blond-2);transition:background 160ms ease}
.form-progress li[aria-current],.form-progress li.is-complete{background:var(--sc-accent)}
.form-step{border:0;min-width:0;padding:0;margin:0;animation:contact-enter 200ms ease-out}
.form-step legend{padding:0;width:100%;font-size:clamp(26px,2.5vw,34px);font-weight:550;line-height:1.14;letter-spacing:-.04em}
.form-step legend:focus{outline:0}
.form-hint{font-size:14px;line-height:1.5;color:var(--sc-ink-soft);margin:13px 0 24px}
.form-choices{display:grid;gap:9px}
.form-choice{display:flex;gap:13px;align-items:center;background:var(--blond-6);border:1px solid var(--line);border-radius:12px;padding:15px 16px;cursor:pointer;min-height:54px;transition:background 160ms ease,border-color 160ms ease,box-shadow 160ms ease}
.form-choice:has(input:checked){background:var(--blond-3);border-color:var(--sc-accent);box-shadow:inset 0 0 0 1px var(--sc-accent)}
.form-choice:hover{border-color:var(--sc-accent)}
.form-choice:has(input:focus-visible){outline:2px solid var(--sc-accent);outline-offset:3px}
.form-choice input{flex-shrink:0;width:18px;height:18px;margin:0;accent-color:var(--sc-accent);cursor:pointer}
.form-choice strong{font-size:16px;font-weight:550;display:block}
.form-choice small{font-size:14px;line-height:1.4;display:block;color:var(--sc-ink-soft);margin-top:3px}
.compact-choices .form-choice{font-size:15px;padding-block:14px}
.form-field{margin-top:21px}
.form-field>label{display:block;font-size:14px;font-weight:550;line-height:1.5;margin-bottom:8px}
.form-field>label>span{font-size:12px;font-weight:400;color:var(--sc-ink-soft);margin-left:5px}
.form-field>input,.form-field>textarea{display:block;width:100%;min-width:0;min-height:50px;padding:13px 15px;background:var(--blond-6);border:1px solid var(--line);border-radius:10px;color:var(--sc-ink);font:inherit;font-size:16px;line-height:1.5}
.form-field textarea{resize:vertical}
.form-field input::placeholder,.form-field textarea::placeholder{color:#786F5D;opacity:1}
.contact-form-card :is(input,textarea,button,a,summary):focus-visible,.contact-route:focus-visible{outline:2px solid var(--sc-accent);outline-offset:4px}
.form-field [aria-invalid=true]{border-color:#983F30}
.field-error{font-size:14px;color:#983F30;margin-top:8px;line-height:1.45}
.form-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:28px}
.form-actions .button{margin-left:auto;white-space:normal;min-width:134px}
.form-actions button:disabled{cursor:wait;opacity:.65}
.form-back{background:none;border:0;font:inherit;font-size:14px;color:var(--sc-ink-soft);cursor:pointer;min-height:48px;padding:0 10px 0 0}
.form-reset{display:block;background:none;border:0;padding:12px 0;margin-top:14px;color:var(--sc-ink-soft);font:inherit;font-size:12px;text-decoration:underline;text-underline-offset:4px;cursor:pointer;min-height:44px}
.form-summary{border-block:1px solid var(--line);font-size:14px;margin-block:18px}
.form-summary summary{padding:14px 0;cursor:pointer;font-weight:550;min-height:48px}
.form-summary dl{margin:0 0 18px;overflow-wrap:anywhere}
.form-summary dt{font-weight:550;margin-top:14px}
.form-summary dd{margin:4px 0 0;color:var(--sc-ink-soft);white-space:pre-line}
.form-data-note{font-size:12px;line-height:1.6;color:var(--sc-ink-soft);margin-top:20px}
.form-availability{font-size:13px;line-height:1.5;border-left:2px solid var(--blond-1);padding-left:12px;margin:-8px 0 24px;color:var(--sc-ink-soft)}
.form-feedback{font-size:14px;line-height:1.6;color:#983F30;margin-top:18px}
.form-email-fallback{display:inline-block;font-size:14px;text-decoration:underline;text-underline-offset:4px;min-height:44px;padding-block:12px;overflow-wrap:anywhere}
.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-success{padding-block:40px;outline:none}
.form-success h3{font-size:36px;letter-spacing:-.04em;line-height:1.15;margin:18px 0}
.form-success>p:last-child{font-size:16px;line-height:1.6;color:var(--sc-ink-soft)}
@keyframes contact-enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:850px){.contact-layout{grid-template-columns:1fr;gap:28px;margin-top:36px}.contact-routes{padding-top:0}.contact-route-label{margin-bottom:18px}.contact-route{padding-block:17px;min-height:80px}.contact-aside-note{display:none}.contact-form-card{padding:26px 22px}.form-step legend{font-size:29px}}
@media(prefers-reduced-motion:reduce){.form-step{animation:none}.form-choice,.form-progress li,.contact-route{transition:none}}
