

.contact{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;align-items:start}
/* form */
.form-card{background:var(--sand);border-radius:40px;padding:clamp(28px,4vw,56px)}
.form-card h2{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:44px;line-height:1;margin:0 0 8px}
.form-intro{font-size:19px;line-height:1.45;margin:0 0 32px}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1 / -1}
.field label,.field .lbl{font-weight:700;font-size:15px;letter-spacing:.06em;text-transform:uppercase}
.field input,.field select,.field textarea{width:100%;min-height:56px;border-radius:20px;border:2px solid transparent;background:var(--cream);color:var(--deep);padding:14px 20px;font-family:var(--text);font-weight:600;font-size:19px;transition:border-color 150ms,background 150ms;outline:none}
.field textarea{min-height:140px;resize:vertical;line-height:1.4}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--red);background:var(--white)}
.field input::placeholder,.field textarea::placeholder{color:#b6a194}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{min-height:48px;border-radius:40px;border:2px solid var(--deep);background:transparent;color:var(--deep);padding:0 20px;font-family:var(--display);font-size:17px;letter-spacing:.02em;text-transform:uppercase;cursor:pointer;transition:background 150ms,color 150ms,transform 150ms}
.chip:hover{transform:translateY(-2px)}
.chip.on{background:var(--deep);color:var(--cream)}
.submit{margin-top:28px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.submit small{font-size:15px;color:var(--muted)}
.thanks{display:flex;flex-direction:column;align-items:flex-start;gap:18px;animation:pop 500ms var(--ease) both}
.thanks img{width:220px}
.thanks p{font-size:20px;line-height:1.45;margin:0;max-width:440px}
.link-btn{background:none;border:0;padding:0 0 2px;font-family:var(--display);font-size:19px;text-transform:uppercase;color:var(--red);cursor:pointer;border-bottom:2px solid var(--red)}
/* side info */
.side{display:flex;flex-direction:column;gap:16px}
.info{display:flex;align-items:center;gap:18px;background:var(--white);border-radius:28px;padding:22px 24px;text-decoration:none;color:var(--deep);box-shadow:0 6px 24px rgba(17,17,17,.06);transition:transform 250ms var(--ease)}
a.info:hover{transform:translateX(6px);color:var(--deep)}
.info-ic{flex:none;width:56px;height:56px;border-radius:50%;background:var(--red);color:var(--cream);display:grid;place-items:center}
.info-ic svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.info-t b{display:block;font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:24px;line-height:1.05}
.info-t small{display:block;font-size:17px;color:var(--muted);margin-top:2px}
.map{position:relative;border-radius:28px;background:var(--red);overflow:hidden;aspect-ratio:4/3}
.map svg{position:absolute;inset:0;width:100%;height:100%}
.mroute{fill:none;stroke:#fff;stroke-width:5;stroke-linecap:round;stroke-dasharray:2 14;animation:dash 1.4s linear infinite}
.mpin{transform-box:fill-box;transform-origin:50% 100%;animation:bounce 1.4s ease-in-out infinite}
.map img{position:absolute;right:4%;bottom:6%;width:32%}
.map-cap{position:absolute;left:18px;bottom:18px;max-width:64%;background:var(--cream);color:var(--deep);font-family:var(--display);text-transform:uppercase;font-size:17px;line-height:1.1;padding:9px 14px 10px;border-radius:20px}
@media (max-width: 1024px){.contact{grid-template-columns:minmax(0,1fr)}}
@media (max-width: 810px){
.form-card{border-radius:28px}
.form-card h2{font-size:36px}
.fields{grid-template-columns:minmax(0,1fr)}
}
/* small phones: keep the email address inside its card */
.info-t{min-width:0}
.info-t b{overflow-wrap:anywhere}
@media (max-width: 400px){.info{gap:14px;padding:18px 18px}.info-ic{width:48px;height:48px}.info-t b{font-size:20px}}
