/* ---------- contact page only ---------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2.25rem,5vw,4.5rem);align-items:start}

/* consent checkbox */
.check{
  display:grid;grid-template-columns:auto 1fr;gap:.65rem;align-items:start;
  margin-top:1.2rem;padding-top:1.1rem;
  border-top:1px solid color-mix(in srgb,var(--ink) 12%,transparent);
  font-size:.85rem;line-height:1.5;color:var(--ink-2);cursor:pointer;
}
.check input{
  appearance:none;width:1.15rem;height:1.15rem;margin-top:.1rem;flex:none;
  border:1.5px solid color-mix(in srgb,var(--ink) 34%,transparent);
  border-radius:.3rem;background:#fff;cursor:pointer;
  transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease);
}
.check input:hover{border-color:var(--ink)}
.check input:checked{
  background:var(--forest) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1 5l3.2 3.2L11 1.5' fill='none' stroke='%23fbf8e7' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/.72rem no-repeat;
  border-color:var(--forest);
}

/* the form */
.form{
  background:var(--paper);
  border:1px solid color-mix(in srgb,var(--ink) 15%,transparent);
  border-radius:1.15rem;
  padding:clamp(1.35rem,3vw,2rem);
  box-shadow:0 20px 50px -34px rgba(20,59,31,.5);
}
.field{margin-bottom:1.05rem}
.field:last-of-type{margin-bottom:0}
.field label{
  display:block;font-size:.82rem;font-weight:650;letter-spacing:.02em;
  color:var(--ink);margin-bottom:.4rem;
}
.field .opt{font-weight:450;color:var(--muted);letter-spacing:0}
.field input,.field select,.field textarea{
  width:100%;font:inherit;font-size:.95rem;color:var(--ink);
  background:color-mix(in srgb,var(--paper-2) 60%,#fff);
  border:1.5px solid color-mix(in srgb,var(--ink) 20%,transparent);
  border-radius:.6rem;padding:.7rem .85rem;
  transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease),background var(--fast) var(--ease);
}
.field textarea{min-height:6.5rem;resize:vertical;line-height:1.55}
.field select{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%2361755c' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .85rem center;background-size:.7rem;padding-right:2.2rem}
.field input:hover,.field select:hover,.field textarea:hover{border-color:color-mix(in srgb,var(--ink) 34%,transparent)}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--ink-2);background:#fff;
  box-shadow:0 0 0 3.5px color-mix(in srgb,var(--copper) 24%,transparent);
}
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-color:#9d2f2f}
.field input[aria-invalid="true"]:focus,.field textarea[aria-invalid="true"]:focus{box-shadow:0 0 0 3.5px rgba(157,47,47,.2)}
.err{display:none;font-size:.8rem;color:#8a2a2a;margin-top:.35rem;font-weight:550}
.err.show{display:block}
.row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-actions{margin-top:1.4rem}
.form-actions .btn{width:100%}
.form-note{margin-top:.85rem;font-size:.78rem;color:var(--muted);line-height:1.5;text-align:center}

/* success + fallback panels */
.panel{display:none;border-radius:1.15rem;padding:clamp(1.35rem,3vw,2rem);border:1.5px solid}
.panel.show{display:block}
.panel h3{margin-bottom:.6rem}
.panel p{font-size:.93rem;color:var(--ink-2)}
.panel p+p{margin-top:.7rem}
.panel--ok{background:color-mix(in srgb,var(--ink) 5%,var(--paper));border-color:color-mix(in srgb,var(--ink-2) 45%,transparent)}
.panel--info{background:color-mix(in srgb,var(--copper) 8%,var(--paper));border-color:color-mix(in srgb,var(--copper) 45%,transparent)}
.panel .btn{margin-top:1.1rem}

.direct{margin-top:2.5rem;display:flex;flex-direction:column;gap:0;border-top:1px solid color-mix(in srgb,var(--ink) 13%,transparent)}
.direct a,.direct span.d{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  padding:.85rem 0;border-bottom:1px solid color-mix(in srgb,var(--ink) 13%,transparent);
  font-size:.93rem;text-decoration:none;color:var(--ink);
  transition:color var(--fast) var(--ease);
}
.direct a:hover{color:var(--copper-ink)}
.direct .lab{font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:650;white-space:nowrap}

@media(max-width:900px){
  .contact-grid{grid-template-columns:1fr}
}
@media(max-width:520px){
  .row{grid-template-columns:1fr}
}
