/* contact.css — Contact page only */

.contact-page { display:grid; grid-template-columns:1fr 1fr; }
.contact-left { background:var(--charcoal); padding:11rem clamp(1.5rem,4vw,4.5rem) 5rem; display:flex; flex-direction:column; justify-content:flex-start; gap:2.5rem; position:relative; overflow:hidden; }
.contact-left::before { content:''; position:absolute; bottom:-80px; left:-80px; width:380px; height:380px; border:1px solid rgba(91,191,181,0.1); border-radius:50%; pointer-events:none; }
.contact-left::after { content:''; position:absolute; bottom:-140px; left:-140px; width:520px; height:520px; border:1px solid rgba(91,191,181,0.05); border-radius:50%; pointer-events:none; }
.cl-inner { position:relative; z-index:1; }
.contact-tagline { font-family:var(--serif); font-size:clamp(2rem,3.2vw,3rem); line-height:1.18; color:var(--cream); margin-bottom:1.5rem; }
.contact-tagline em { font-style:italic; color:var(--teal); }
.contact-desc { font-size:.9rem; font-weight:300; line-height:1.85; color:var(--stone); max-width:400px; margin-bottom:3rem; }
.contact-details { display:flex; flex-direction:column; gap:1.5rem; }
.cd { display:flex; gap:1.2rem; align-items:flex-start; }
.cd-label { font-size:.58rem; letter-spacing:.25em; text-transform:uppercase; color:var(--teal); min-width:64px; padding-top:2px; }
.cd-value { font-size:.86rem; font-weight:300; color:var(--stone); line-height:1.6; }
.cd-value a { color:var(--stone); text-decoration:none; transition:color .3s; }
.cd-value a:hover { color:var(--cream); }
.contact-portrait { margin-top:1.5rem; display:flex; gap:1.2rem; align-items:center; }
.contact-portrait img { width:120px; aspect-ratio:1/1; object-fit:cover; filter:grayscale(8%); border-radius:50%; }
.contact-portrait-text strong { font-family:var(--serif); font-size:1.05rem; font-weight:400; color:var(--cream); display:block; margin-bottom:.3rem; }
.contact-portrait-text p { font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--stone); line-height:1.6; }

.contact-right { background:var(--black); padding:11rem clamp(1.5rem,4vw,4.5rem) 5rem; display:flex; align-items:flex-start; }
.form-wrap { width:100%; max-width:480px; }
.form-eyebrow { font-size:.58rem; letter-spacing:.3em; text-transform:uppercase; color:var(--teal); margin-bottom:1.4rem; display:flex; align-items:center; gap:.8rem; }
.form-eyebrow::before { content:''; width:22px; height:1px; background:var(--teal); opacity:.5; }
.form-title { font-family:var(--serif); font-size:2.2rem; color:var(--cream); line-height:1.18; margin-bottom:.75rem; }
.form-title em { font-style:italic; color:var(--teal); }
.form-sub { font-size:.84rem; font-weight:300; color:var(--stone); line-height:1.78; margin-bottom:2.6rem; }
.contact-form { display:flex; flex-direction:column; gap:1.1rem; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.f-field { display:flex; flex-direction:column; gap:.38rem; }
.f-label { font-size:.58rem; letter-spacing:.18em; text-transform:uppercase; color:var(--stone); }
.f-input,.f-textarea { background:transparent; border:none; border-bottom:1px solid rgba(91,191,181,.2); padding:.78rem 0; font-family:var(--sans); font-size:.84rem; font-weight:300; color:var(--cream); outline:none; transition:border-color .3s; width:100%; }
.f-input::placeholder,.f-textarea::placeholder { color:rgba(140,135,128,.42); font-size:.78rem; }
.f-input:focus,.f-textarea:focus { border-color:var(--teal); }
.f-select { background:transparent; border:none; border-bottom:1px solid rgba(91,191,181,.2); padding:.78rem 0; font-family:var(--sans); font-size:.8rem; font-weight:300; color:var(--stone); outline:none; cursor:pointer; appearance:none; width:100%; transition:border-color .3s; }
.f-select:focus { border-color:var(--teal); }
.f-textarea { resize:none; min-height:78px; }
.f-submit { margin-top:.4rem; background:var(--teal); color:var(--black); border:1px solid var(--teal); font-family:var(--sans); font-size:.68rem; font-weight:400; letter-spacing:.22em; text-transform:uppercase; padding:1.05rem 2.4rem; cursor:pointer; transition:all .3s; align-self:flex-start; }
.f-submit:hover { background:var(--teal-deep); border-color:var(--teal-deep); }
.f-note { font-size:.66rem; font-weight:200; color:rgba(140,135,128,.5); margin-top:.9rem; line-height:1.7; }
.success-msg { display:none; padding:1.8rem; border:1px solid rgba(91,191,181,.28); background:rgba(91,191,181,.05); margin-top:1rem; }
.success-msg p { font-family:var(--serif); font-size:1.05rem; color:var(--cream); line-height:1.6; }

@media(max-width:680px) {
  .contact-page { grid-template-columns:1fr; min-height:unset; }
  .contact-left { padding:6rem var(--space-page) 2.5rem; min-height:unset; }
  .contact-right { padding:2rem var(--space-page) 4rem; min-height:unset; }
  .form-row { grid-template-columns:1fr; }
}

/* ── Form: honeypot, validation errors, sending state ── */
.hp-field { display:none !important; }
.f-error { display:block; font-size:.72rem; color:#e07070; margin-top:.3rem; }
.f-formerror { color:#e07070; font-size:.78rem; font-weight:300; line-height:1.6; margin-top:.8rem; }
.f-formerror:empty { margin:0; }
.f-submit:disabled { opacity:.6; cursor:default; }
.cf-turnstile { margin:.4rem 0 .2rem; }
