.contact{
  --ink:#595b61;
  --ink-deep:#393a3d;
  --ink-mid:#65666b;
  --accent:#ff8726;
  --accent-hover:#393a3d;
  --accent-dark:#9b4000;
  --paper:#f2f2f0;
  --canvas:#e6e6e4;
  --surface:#fafaf8;
  --text:#414246;
  --muted:#65666b;
  --control:#818287;
  --white:#fff;
  --radius:4px;
  --ease:cubic-bezier(.16,1,.3,1);
  padding:clamp(40px,5vw,72px) 0 clamp(56px,7vw,96px);
}

.contact.patterned{
  position:relative;
  isolation:auto;
  background:var(--section-wash,transparent);
}

.contact.patterned:before{
  display:none!important;
  content:none!important;
}

.contact button,
.contact input,
.contact select,
.contact textarea{font:inherit}

.contact button{border-radius:var(--radius)}

.contact .shell{
  width:min(1500px,100%);
  margin-inline:auto;
  padding-inline:var(--pad,clamp(20px,5vw,84px));
}

.contact-shell{
  display:grid;
  grid-template-columns:minmax(420px,5fr) minmax(0,7fr);
  min-height:620px;
  overflow:hidden;
  border:1px solid #a7a8ab;
  border-top:0;
  border-radius:var(--radius);
  background:var(--canvas);
  box-shadow:0 26px 64px rgba(57,58,61,.16);
}

.contact-location{
  position:relative;
  min-width:0;
  isolation:isolate;
  overflow:hidden;
  border-right:1px solid #9c9da0;
  background:var(--ink-deep);
}

.contact-info{
  position:absolute;
  z-index:2;
  right:22px;
  bottom:22px;
  left:22px;
  padding:26px 28px 28px;
  border:0;
  border-radius:var(--radius);
  background:rgba(57,58,61,.97);
  color:rgba(255,255,255,.9);
  box-shadow:0 18px 44px rgba(31,32,34,.3);
}

.contact-info h3{
  margin:0 0 20px;
  color:var(--white);
  font-family:"Playfair Display",serif;
  font-size:clamp(34px,2.7vw,42px);
  line-height:1;
}

.contact-addresses{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px 30px;
}

.contact-addresses strong{
  display:block;
  margin-bottom:4px;
  color:var(--accent);
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.contact-addresses p{
  margin:0;
  color:rgba(255,255,255,.9);
  font-size:13px;
  line-height:1.48;
}

.contact-addresses a{
  color:var(--white);
  text-decoration-thickness:1px;
  text-underline-offset:4px;
}

.contact-addresses a:hover,
.contact-addresses a:focus-visible{
  text-decoration:underline;
  text-decoration-color:var(--accent);
}

.contact-map{
  position:absolute;
  inset:0;
  min-height:0;
  aspect-ratio:auto;
  overflow:hidden;
  background:var(--ink-mid);
}

.contact-map:after{
  content:"";
  position:absolute;
  z-index:1;
  inset:42% 0 0;
  pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(35,36,39,.48));
}

.contact-map iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  filter:grayscale(.18) saturate(.62) contrast(.98);
}

.contact-form{
  position:relative;
  display:grid;
  align-content:center;
  min-width:0;
  padding:clamp(38px,4.2vw,60px);
  background:linear-gradient(135deg,rgba(255,255,255,.42),transparent 38%),var(--paper);
}

.contact-form h2{
  margin:0 0 30px;
  color:var(--ink);
  font-family:"Playfair Display",serif;
  font-size:clamp(40px,3.3vw,52px);
  letter-spacing:-.04em;
  line-height:1;
}

.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px 20px;
}

.field{
  display:grid;
  gap:7px;
  min-width:0;
}

.field.full{grid-column:1/-1}

.field label{
  color:var(--text);
  font-size:13px;
  font-weight:700;
}

.field input,
.field select,
.field textarea{
  width:100%;
  min-width:0;
  min-height:52px;
  padding:12px 13px;
  border:1px solid var(--control);
  border-radius:var(--radius);
  background:var(--surface);
  color:var(--text);
  box-shadow:inset 0 1px rgba(255,255,255,.72);
}

.field input::placeholder,
.field textarea::placeholder{
  color:var(--muted);
  opacity:1;
}

.field textarea{
  min-height:110px;
  resize:vertical;
}

.field input[type="file"]{
  padding:6px;
  font-size:12px;
}

.field input[type="file"]::file-selector-button{
  min-height:38px;
  margin-right:10px;
  padding:0 14px;
  border:1px solid var(--ink-deep);
  border-radius:var(--radius);
  background:var(--ink-deep);
  color:var(--white);
  font-weight:700;
  cursor:pointer;
}

.field input:focus-visible,
.field select:focus-visible,
.field textarea:focus-visible{
  border-color:var(--accent);
  outline:2px solid var(--ink-deep);
  outline-offset:2px;
  box-shadow:0 0 0 5px var(--accent);
}

.field small{
  color:var(--muted);
  font-size:11px;
}

.form-actions{
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
  margin-top:22px;
}

.form-note{
  max-width:350px;
  margin:0;
  color:var(--muted);
  font-size:12px;
}

.contact .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:0 23px;
  border:1px solid var(--ink);
  background:transparent;
  color:var(--ink);
  font-size:13px;
  font-weight:700;
  white-space:nowrap;
  cursor:pointer;
  transition:transform .22s var(--ease),background .22s,color .22s,border-color .22s;
}

.contact .btn:hover{
  background:var(--ink);
  color:var(--white);
}

.contact .btn:active{transform:translateY(1px) scale(.985)}

.contact .btn-accent{
  border-color:var(--accent);
  background:var(--accent);
  color:var(--ink-deep);
}

.contact .btn-accent:hover{
  border-color:var(--accent-hover);
  background:var(--accent-hover);
  color:var(--white);
}

@media(max-width:1400px) and (min-width:981px){
  .contact{padding:30px 0 44px}
  .contact-shell{min-height:570px}
  .contact-info{right:18px;bottom:18px;left:18px;padding:22px 24px 24px}
  .contact-form{padding:34px 40px}
  .contact-form h2{margin-bottom:22px;font-size:42px}
  .form-grid{gap:14px 16px}
  .field textarea{min-height:92px}
  .form-actions{margin-top:18px}
}

@media(max-width:980px){
  .contact-shell{grid-template-columns:1fr;min-height:0}
  .contact-location{display:grid;grid-template-rows:auto 260px;border-right:0}
  .contact-info{position:relative;inset:auto;grid-row:1;border-left:0;border-bottom:4px solid var(--accent);border-radius:0;box-shadow:none}
  .contact-map{position:relative;inset:auto;grid-row:2;min-height:260px}
  .contact-map:after{display:none}
}

@media(max-width:767px){
  .contact{padding:24px 0 48px}
  .contact-location{grid-template-rows:auto 220px}
  .contact-info{padding:26px 24px 28px}
  .contact-addresses{grid-template-columns:1fr 1fr;gap:18px 20px}
  .contact-form{padding:30px 24px 34px}
  .contact-form h2{margin-bottom:24px;font-size:36px}
  .form-grid{grid-template-columns:1fr;gap:17px}
  .field.full{grid-column:auto}
  .form-actions{align-items:flex-start;flex-direction:column}
}

@media(max-width:360px){
  .contact-location{grid-template-rows:auto 190px}
  .contact-info{padding:24px 20px}
  .contact-addresses{grid-template-columns:1fr;gap:16px}
  .contact-form{padding:26px 18px 30px}
  .contact-form h2{font-size:32px}
  .form-actions .btn{width:100%}
  .field input[type="file"]{font-size:11px}
}

@media(prefers-reduced-motion:reduce){
  .contact .btn{transition:none}
}

@media(prefers-contrast:more){
  .contact-shell{border:2px solid var(--ink-deep);border-top:0;box-shadow:none}
  .field input,
  .field select,
  .field textarea{border:2px solid var(--ink-deep)}
}
