.contact-page { background:var(--cream); }
.contact-page .topbar { border-bottom:1px solid rgba(23,61,34,.14); }

.contact-hero { position:relative; overflow:hidden; padding:105px 0 120px; background:#edf4e7; }
.contact-hero::before { position:absolute; top:-180px; right:-100px; width:560px; height:560px; border:100px solid rgba(67,185,236,.23); border-radius:50%; content:''; }
.contact-hero::after { position:absolute; right:-70px; bottom:-220px; width:650px; height:370px; border-radius:50%; background:rgba(105,184,31,.23); content:''; transform:rotate(-8deg); }
.contact-hero-inner { position:relative; z-index:1; }
.contact-hero h1 { margin:0; color:var(--deep); font-family:var(--serif); font-size:clamp(3.5rem,7vw,6.8rem); letter-spacing:-.04em; line-height:1.08; }
.contact-hero h1 span { color:var(--green); }
.contact-hero-inner > p:not(.kicker) { max-width:660px; margin:28px 0 0; color:#465648; font-size:1.05rem; line-height:1.85; }

.contact-section { padding:clamp(90px,10vw,145px) 0; background:#fff; }
.contact-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(45px,6vw,78px); align-items:start; }
.contact-details { position:sticky; top:130px; }
.contact-details h2,.contact-form-heading h2 { margin:0; color:var(--deep); font-family:var(--serif); font-size:clamp(2.3rem,4vw,3.8rem); line-height:1.25; }
.contact-form-heading h2 { font-size:clamp(1.9rem,3vw,2.75rem); }
.contact-detail { margin-top:30px; padding-top:22px; border-top:1px solid rgba(23,61,34,.16); }
.contact-detail > span { display:block; margin-bottom:8px; color:var(--green); font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.contact-detail p { margin:0; color:#526154; font-size:.9rem; line-height:1.8; }
.contact-detail a { display:inline-block; margin-top:12px; color:var(--deep); font-size:.78rem; font-weight:700; text-decoration-color:var(--green); text-decoration-thickness:2px; text-underline-offset:5px; }
.contact-detail p a { margin-top:0; overflow-wrap:anywhere; }
.contact-detail .contact-link { display:inline-flex; align-items:center; gap:10px; line-height:1.5; vertical-align:middle; }
.contact-detail .contact-link > span { display:block; }
.contact-detail .contact-icon { width:20px; height:20px; flex:0 0 20px; margin:0; }
.contact-form-wrap { padding:clamp(34px,5vw,58px); border:1px solid rgba(23,61,34,.12); border-radius:18px; background:var(--cream); box-shadow:0 24px 70px rgba(8,43,22,.1); }
.contact-form-heading { margin-bottom:34px; }
.contact-form { display:grid; gap:24px; }
.contact-name-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:start; }
.contact-field { display:grid; min-width:0; gap:9px; }
.contact-name-row .contact-field { grid-template-rows:auto 58px; }
.contact-field label { color:var(--deep); font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.contact-field label:has(+ :required)::after { margin-left:4px; color:var(--green); content:'*'; }
.contact-field input,.contact-field textarea { width:100%; border:1px solid rgba(23,61,34,.16); border-radius:10px; outline:0; color:var(--deep); background:#fff; font:inherit; transition:border-color .2s,box-shadow .2s; }
.contact-field input { display:block; height:58px; padding:12px 16px; line-height:1.2; }
.contact-field textarea { min-height:190px; padding:16px; resize:vertical; }
.contact-field input:focus,.contact-field textarea:focus { border-color:var(--green); box-shadow:inset 0 0 0 2px rgba(105,184,31,.2); }
.contact-form button { width:100%; min-height:52px; padding:12px 28px; border:0; border-radius:999px; color:#fff; background:var(--green); font:inherit; font-size:.78rem; font-weight:700; letter-spacing:.08em; cursor:pointer; text-transform:uppercase; }
.contact-form button:hover { background:var(--sky); }
.contact-note { margin:-10px 0 0; color:#687568; font-size:.7rem; text-align:center; }

.contact-formidable .frm_forms,
.contact-formidable .frm_form_fields,
.contact-formidable fieldset { width:100%; margin:0; padding:0; border:0; }
.contact-formidable .frm_fields_container { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:start !important; }
.contact-formidable .frm_form_field { display:flex !important; flex-direction:column; grid-column:1 / -1; align-self:start !important; min-width:0; margin:0 !important; padding:0 !important; }
.contact-formidable #frm_field_30_container,
.contact-formidable #frm_field_31_container { grid-column:auto; align-items:stretch; }
.contact-formidable .frm_primary_label { display:block; margin:0 0 8px !important; padding:0 !important; color:var(--deep); font-size:.7rem; font-weight:700; letter-spacing:.08em; line-height:1.4; text-transform:uppercase; }
.contact-formidable .frm_required { display:inline; margin-left:3px; color:var(--green); line-height:inherit; vertical-align:baseline; }
.contact-formidable input[type='text'],
.contact-formidable input[type='email'],
.contact-formidable input[type='number'],
.contact-formidable textarea { display:block; width:100%; max-width:none; margin:0 !important; border:1px solid rgba(23,61,34,.16); border-radius:10px; outline:0; color:var(--deep); background:#fff; font:inherit; box-shadow:none; transition:border-color .2s,box-shadow .2s; }
.contact-formidable input[type='text'],
.contact-formidable input[type='email'],
.contact-formidable input[type='number'] { height:58px; padding:12px 16px; line-height:1.2; }
.contact-formidable textarea { min-height:190px; padding:16px; resize:vertical; }
.contact-formidable input:focus,
.contact-formidable textarea:focus { border-color:var(--green); box-shadow:inset 0 0 0 2px rgba(105,184,31,.2); }
.contact-formidable #frm_field_29_container { margin-top:2px; }
.contact-formidable .frm_submit { display:block; }
.contact-formidable .frm_button_submit { display:flex; width:100% !important; min-height:52px !important; align-items:center; justify-content:center; margin:0 !important; padding:12px 28px !important; border:0 !important; border-radius:999px !important; color:#fff !important; background:#69b81f !important; box-shadow:none !important; font-family:var(--sans) !important; font-size:.78rem !important; font-weight:700 !important; letter-spacing:.08em !important; line-height:1.4 !important; cursor:pointer; text-transform:uppercase; transition:background .2s; }
.contact-formidable .frm_button_submit:hover,
.contact-formidable .frm_button_submit:focus { color:#fff !important; background:#43b9ec !important; box-shadow:none !important; }
.contact-formidable .frm_error { margin-top:7px; color:#a32929; font-size:.76rem; line-height:1.45; }
.contact-formidable .frm_error_style,
.contact-formidable .frm_message { grid-column:1 / -1; margin:0 0 20px; padding:14px 16px; border-radius:10px; font-size:.85rem; line-height:1.55; }

@media(max-width:800px){
  .contact-hero { padding:85px 0 100px; }
  .contact-grid { grid-template-columns:1fr; }
  .contact-details { position:relative; top:auto; }
}

@media(max-width:520px){
  .contact-hero h1 { font-size:3rem; }
  .contact-name-row { grid-template-columns:1fr; }
  .contact-formidable .frm_fields_container { grid-template-columns:1fr; }
  .contact-formidable #frm_field_30_container,
  .contact-formidable #frm_field_31_container { grid-column:1; }
}
