.contact-main{padding:28px var(--page-gutter) 90px}
.contact-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:52px;font-size:13px}
.contact-back{border-bottom:1px solid transparent;padding:5px 0;transition:border-color .2s}
.contact-back:hover{border-color:var(--ink)}
.contact-kicker{color:var(--muted)}
.contact-layout{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.1fr);gap:7%;align-items:start}
.contact-intro{padding-top:16px}
.contact-intro h1{text-align:left;font-size:clamp(52px,5.3vw,82px);line-height:1.04;letter-spacing:-.065em;margin:0 0 34px;font-weight:500}
.contact-intro .accent{color:#a63e32}
.contact-intro>p{font-size:17px;line-height:1.65;max-width:420px;margin:0 0 20px}
.contact-intro>.contact-lead{font-size:22px;line-height:1.4;letter-spacing:-.02em;max-width:400px;margin-bottom:22px}
.contact-aside{display:flex;gap:24px;align-items:center;margin:45px 0 0 8%;width:max-content;max-width:90%;transform:rotate(-5deg);transition:transform .45s cubic-bezier(.2,.8,.3,1)}
.contact-aside img{width:76px;height:100px;transform:rotate(16deg);transition:transform .45s}
.contact-aside p{font-size:16px;line-height:1.4;letter-spacing:-.02em}
.contact-aside:hover{transform:rotate(0)}
.contact-aside:hover img{transform:rotate(-6deg)}
.contact-sheet{background:#eee9e1;border-top:4px solid var(--coral);padding:30px 34px 34px;position:relative}
.sheet-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:18px;padding-bottom:25px;border-bottom:1px solid #29272430;margin-bottom:27px}
.sheet-heading h2{font-size:34px;line-height:1.05;letter-spacing:-.045em;font-weight:500}
.sheet-note{font-size:12px;color:var(--muted);white-space:nowrap}
.topic-picker{margin:0 0 31px;padding:0;border:0;min-width:0}
.topic-picker legend{font-size:15px;font-weight:500;margin-bottom:14px;padding:0}
.topic-picker legend>span{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:5px}
.topic-options{display:flex;gap:8px;flex-wrap:wrap}
.topic-options label{position:relative;cursor:pointer}
.topic-options input{position:absolute;width:1px;height:1px;opacity:0}
.topic-options label>span{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #c3b9af;border-radius:3px;font-size:13px;line-height:1.3;transition:background .2s,border-color .2s,transform .25s}
.topic-options b{font-size:17px;line-height:1;font-weight:400;transition:transform .25s}
.topic-options label:hover>span{border-color:var(--ink);transform:translateY(-2px)}
.topic-options input:checked+span{background:var(--coral);border-color:var(--coral)}
.topic-options input:checked+span b{transform:rotate(45deg)}
.topic-options input:focus-visible+span{outline:2px solid #a63e32;outline-offset:3px}
.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.contact-field{margin:0 0 25px;min-width:0}
.contact-field label{display:flex;gap:10px;align-items:baseline;font-size:14px;font-weight:500;margin-bottom:9px;transition:color .2s}
.contact-field label>span{font-size:12px;font-weight:400;color:var(--muted)}
.contact-field input,.contact-field textarea{font:400 16px/1.5 'DM Sans',sans-serif;color:var(--ink);display:block;width:100%;padding:9px 0 12px;border:0;border-radius:0;border-bottom:1px solid #9f958b;background:transparent;outline:none;transition:border-color .2s,box-shadow .2s}
.contact-field input::placeholder,.contact-field textarea::placeholder{color:#847b72;opacity:1}
.contact-field:focus-within label{color:#a63e32}
.contact-field input:focus,.contact-field textarea:focus{border-color:#a63e32;box-shadow:0 1px 0 #a63e32}
.contact-field input[aria-invalid=true],.contact-field textarea[aria-invalid=true]{border-color:#a63e32;box-shadow:0 1px 0 #a63e32}
.contact-field textarea{resize:vertical;min-height:112px;max-height:340px}
.message-meta{display:flex;justify-content:space-between;gap:15px;font-size:12px;line-height:1.5;color:var(--muted);margin-top:8px}
#message-count{font-variant-numeric:tabular-nums;white-space:nowrap}
.field-error{display:block;font-size:13px;line-height:1.4;color:#a63e32}
.field-error:not(:empty){margin-top:7px}
.contact-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);pointer-events:none}
.contact-privacy{font-size:12px;line-height:1.55;color:var(--muted);max-width:380px;margin:0 0 23px}
.contact-send{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.send-button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:58px;background:var(--ink);color:var(--paper);padding:10px 12px 10px 20px;font-size:15px;transition:background .2s,transform .25s}
.send-arrow{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--coral);color:var(--ink);font-size:24px;transition:transform .35s cubic-bezier(.2,.8,.2,1),border-radius .35s}
.send-button:hover:not(:disabled){background:#3a3430;transform:translateY(-2px)}
.send-button:hover:not(:disabled) .send-arrow{transform:rotate(45deg);border-radius:40% 60% 48% 52%}
.send-button:disabled{cursor:wait;opacity:.75}
.send-caption{font-size:12px;color:var(--muted);max-width:145px;line-height:1.45}
.submit-error{border-left:3px solid #a63e32;padding:10px 0 10px 13px;color:#a63e32;font-size:14px;line-height:1.5;margin:22px 0 0}
.contact-success{padding:32px 0 20px}
.contact-success[hidden],.submit-error[hidden]{display:none}
.contact-success>img{transform:rotate(-10deg);animation:contact-smile-arrive .7s ease-out both;margin-bottom:30px}
.success-eyebrow{font-size:13px;color:#a63e32;margin:0 0 15px}
.contact-success h2{font-size:clamp(36px,3.7vw,54px);margin:0 0 24px}
.contact-success>p:not(.success-eyebrow){font-size:17px;line-height:1.6;margin:0 0 32px}
.contact-success strong{font-weight:500;overflow-wrap:anywhere}
.contact-success .text-link{font-size:15px;gap:20px;width:fit-content}
.contact-success:focus{outline:none}
.contact-page footer{border-top:1px solid var(--line)}
@keyframes contact-arrive{from{opacity:0;transform:translateY(14px) rotate(12deg) scale(.8)}to{opacity:1;transform:translateY(0) rotate(-10deg) scale(1)}}
@media(min-width:1550px){.contact-layout{max-width:1600px;margin-inline:auto}}
@media(max-width:1100px){.contact-layout{gap:5%;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}.contact-intro h1{font-size:clamp(46px,5.1vw,62px)}.contact-sheet{padding:26px}.sheet-heading{display:block}.sheet-note{display:block;margin-top:10px}.contact-fields{grid-template-columns:1fr;gap:0}.contact-intro>.contact-lead{font-size:20px}}
@media(max-width:760px){.contact-main{padding-top:20px;padding-bottom:55px}.contact-heading{margin-bottom:30px;font-size:12px}.contact-kicker{display:none}.contact-layout{grid-template-columns:1fr;gap:34px}.contact-intro{padding-top:0}.contact-intro h1{font-size:clamp(46px,10vw,70px);margin-bottom:24px}.contact-intro>p{max-width:560px;font-size:16px}.contact-intro>.contact-lead{max-width:500px;font-size:20px}.contact-aside{margin:25px 0 0;gap:15px;transform:rotate(-3deg)}.contact-aside img{width:40px;height:52px}.contact-aside p{font-size:14px;margin:0}.contact-sheet{padding:25px 22px 28px}.sheet-heading{display:flex}.sheet-note{margin:0}.sheet-heading h2{font-size:30px}.topic-picker{margin-bottom:28px}.topic-options label>span{font-size:12px;padding:10px;gap:8px}.contact-send{gap:14px}.send-caption{max-width:none}.message-meta{font-size:11px}.contact-success{padding-top:15px}}
@media(max-width:380px){.contact-sheet{padding-inline:17px}.sheet-heading{display:block}.sheet-note{margin-top:8px}.send-button{width:100%}}
@media(prefers-reduced-motion:reduce){.contact-page *, .contact-page *:before,.contact-page *:after{animation:none!important;transition:none!important}.contact-aside:hover{transform:rotate(-5deg)}.send-button:hover:not(:disabled){transform:none}}
.contact-sheet > [hidden]{display:none}

@keyframes contact-smile-arrive{0%{opacity:0;transform:translateY(14px) rotate(16deg) scale(.45)}55%{opacity:1;transform:translateY(-5px) rotate(-14deg) scale(1.09)}78%{transform:translateY(2px) rotate(-7deg) scale(.97)}100%{opacity:1;transform:translateY(0) rotate(-10deg) scale(1)}}

.contact-intro>.contact-direct{font-size:14px;color:var(--muted);margin-top:28px}.contact-direct>a{display:inline-flex;align-items:center;gap:18px;font-size:20px;color:var(--ink);margin-top:5px;border-bottom:1px solid var(--line);padding-bottom:4px}.contact-direct>a:hover{color:#a63e32;border-color:currentColor}
