/* ---------- CONTACT PAGE ---------- */
:root { --contact-ink:#0d0d0d; --contact-paper:#f5f5f1; --contact-dim:#e9e9e2; --contact-white:#fff; --contact-lime:#b8ff3d; --contact-muted:#62625b; --contact-line:#d9d9d1; }
body { background:var(--contact-paper); color:#171712; }
.contact-hero { padding:154px 0 90px; color:#fff; background:var(--contact-ink); }
.contact-hero__grid { display:grid; grid-template-columns:1.15fr .85fr; gap:70px; align-items:center; }
.contact-kicker { color:#707069; font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.contact-hero .contact-kicker, .human-section .contact-kicker, .contact-final .contact-kicker { color:var(--contact-lime); }
.contact-hero h1 { max-width:760px; margin-top:20px; color:#fff; font:700 clamp(43px,6.5vw,86px)/.98 'Sora',sans-serif; letter-spacing:-.06em; }
.contact-hero p { max-width:610px; margin-top:25px; color:#b8b8b1; font-size:17px; line-height:1.7; }
.contact-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:31px; }
.contact-button { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:49px; padding:13px 21px; border-radius:999px; font-size:13px; font-weight:800; transition:transform .2s ease,background .2s ease,border-color .2s ease; }
.contact-button:hover { transform:translateY(-2px); }
.contact-button--primary { color:var(--contact-ink); background:var(--contact-lime); border:1px solid var(--contact-lime); }
.contact-button--quiet { color:#fff; border:1px solid rgba(255,255,255,.25); }
.contact-button--quiet:hover { border-color:var(--contact-lime); background:rgba(184,255,61,.08); }
.contact-hero__signal { position:relative; min-height:320px; padding:30px; display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; border:1px solid rgba(255,255,255,.14); border-radius:24px; background:linear-gradient(145deg,#171714,#282822); }
.contact-hero__signal::before,.contact-hero__signal::after { content:""; position:absolute; border:1px solid rgba(184,255,61,.36); border-radius:50%; }
.contact-hero__signal::before { width:420px; height:420px; right:-190px; top:-210px; }
.contact-hero__signal::after { width:250px; height:250px; right:-105px; top:-125px; }
.contact-hero__signal span,.contact-hero__signal strong,.contact-hero__signal i { position:relative; z-index:1; }
.contact-hero__signal span { color:var(--contact-lime); font:800 12px 'Sora',sans-serif; letter-spacing:.14em; }
.contact-hero__signal strong { max-width:290px; margin-top:13px; color:#fff; font:600 clamp(25px,3vw,40px)/1.12 'Sora',sans-serif; letter-spacing:-.04em; }
.contact-hero__signal i { width:9px; height:9px; margin-top:30px; border-radius:50%; background:var(--contact-lime); box-shadow:0 0 0 7px rgba(184,255,61,.15); }
.contact-options { padding:82px 0; background:var(--contact-white); }
.contact-section-heading { max-width:680px; margin-bottom:38px; }
.contact-section-heading--center { margin-right:auto; margin-left:auto; text-align:center; }
.contact-section-heading h2,.contact-form-intro h2,.human-section h2,.location-copy h2,.contact-final h2 { margin-top:13px; color:var(--contact-ink); font:700 clamp(30px,4vw,54px)/1.06 'Sora',sans-serif; letter-spacing:-.045em; }
.contact-option-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--contact-line); border-bottom:1px solid var(--contact-line); }
.contact-option { min-height:190px; padding:23px 20px 20px 0; border-right:1px solid var(--contact-line); display:flex; flex-direction:column; align-items:flex-start; }
.contact-option + .contact-option { padding-left:20px; }
.contact-option:last-child { border-right:0; }
.contact-option span { color:#85857d; font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.contact-option strong { margin-top:34px; color:var(--contact-ink); font:700 18px/1.3 'Sora',sans-serif; }
.contact-option em { margin-top:auto; color:#62625b; font-size:13px; font-style:normal; font-weight:700; }
.contact-option:hover em { color:var(--contact-ink); }
.contact-option--static { cursor:default; }
.contact-form-section { padding:100px 0; background:var(--contact-paper); }
.contact-form-grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:clamp(35px,8vw,120px); align-items:start; }
.contact-form-intro > p { max-width:390px; margin-top:18px; color:var(--contact-muted); font-size:16px; line-height:1.7; }
.expect-box { display:grid; gap:12px; max-width:430px; margin-top:40px; padding:20px; border-left:3px solid var(--contact-lime); background:var(--contact-white); }
.expect-box strong { color:var(--contact-ink); font:700 18px 'Sora',sans-serif; }
.expect-box span { color:var(--contact-muted); font-size:13px; line-height:1.55; }
.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:17px 14px; padding:28px; background:var(--contact-white); border:1px solid var(--contact-line); border-radius:20px; box-shadow:0 18px 45px rgba(13,13,13,.06); }
.form-field { display:flex; flex-direction:column; gap:8px; }
.form-field--wide,.form-note,.contact-submit { grid-column:1/-1; }
.form-field label { color:var(--contact-ink); font-size:12px; font-weight:800; }
.form-field label span { color:#869b27; }
.form-field label small { color:#888880; font-size:10px; font-weight:600; }
.form-field input,.form-field select,.form-field textarea { width:100%; min-height:48px; padding:12px 13px; border:1px solid #d4d4cc; border-radius:10px; background:#fff; color:var(--contact-ink); font:16px 'Inter',sans-serif; }
.form-field textarea { resize:vertical; }
.form-field input::placeholder,.form-field textarea::placeholder { color:#999990; }
.form-field input:focus,.form-field select:focus,.form-field textarea:focus { border-color:var(--contact-ink); outline:3px solid rgba(184,255,61,.65); outline-offset:1px; }
.form-note { margin:0; color:#77776f; font-size:11px; line-height:1.5; }
.contact-submit { min-height:51px; border:1px solid var(--contact-ink); border-radius:999px; background:var(--contact-ink); color:#fff; cursor:pointer; font:800 13px 'Inter',sans-serif; }
.contact-submit:hover { background:#2a2a25; }
.next-section { padding:95px 0; background:var(--contact-white); }
.next-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--contact-line); }
.next-grid article { min-height:180px; padding:23px 18px 0 0; border-right:1px solid var(--contact-line); }
.next-grid article + article { padding-left:18px; }
.next-grid article:last-child { border-right:0; }
.next-grid span { color:#898981; font-size:11px; font-weight:800; }
.next-grid strong { display:block; margin-top:38px; color:var(--contact-ink); font:700 18px 'Sora',sans-serif; }
.next-grid p { margin-top:10px; color:var(--contact-muted); font-size:13px; line-height:1.55; }
.leaders-section { padding:95px 0; background:var(--contact-dim); }
.leaders-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.leaders-grid article { padding:15px; background:var(--contact-white); border:1px solid var(--contact-line); border-radius:18px; }
.leader-portrait { display:flex; align-items:flex-end; min-height:185px; padding:18px; color:#85857d; border-radius:12px; background:linear-gradient(135deg,#deded6,#c8c9c0); font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.leaders-grid h3 { margin-top:18px; color:var(--contact-ink); font:700 21px 'Sora',sans-serif; }
.leaders-grid p { margin-top:5px; color:var(--contact-muted); font-size:13px; font-weight:700; }
.leaders-section > .wrap > .asset-note { margin-top:15px; max-width:720px; }
.human-section { padding:95px 0; color:#fff; background:var(--contact-ink); }
.human-section__inner { max-width:880px; }
.human-section h2 { color:#fff; }
.human-section p { max-width:680px; margin-top:19px; color:#b9b9b1; font-size:17px; line-height:1.7; }
.location-section { padding:95px 0; background:var(--contact-paper); }
.location-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(30px,7vw,90px); align-items:center; }
.location-copy > p { max-width:470px; margin-top:18px; color:var(--contact-muted); font-size:16px; line-height:1.7; }
.location-details { display:grid; gap:5px; margin-top:30px; }
.location-details strong { color:var(--contact-ink); font:700 20px 'Sora',sans-serif; }
.location-details span { color:var(--contact-muted); font-size:14px; }
.location-details a,.location-contact a { color:var(--contact-ink); font-size:13px; font-weight:800; }
.location-details a { margin-top:12px; }
.location-contact { display:flex; flex-wrap:wrap; gap:15px; margin-top:24px; }
.location-contact a:hover,.location-details a:hover { text-decoration:underline; }
.map-frame { overflow:hidden; min-height:390px; border:1px solid var(--contact-line); border-radius:20px; background:#ddd; box-shadow:0 18px 40px rgba(13,13,13,.08); }
.map-frame iframe { display:block; width:100%; min-height:390px; height:100%; }
.help-section { padding:95px 0; background:var(--contact-white); }
.help-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--contact-line); border-bottom:1px solid var(--contact-line); }
.help-grid a { position:relative; min-height:175px; padding:23px 20px 20px 0; border-right:1px solid var(--contact-line); }
.help-grid a + a { padding-left:20px; }
.help-grid a:last-child { border-right:0; }
.help-grid strong { display:block; max-width:180px; color:var(--contact-ink); font:700 18px/1.3 'Sora',sans-serif; }
.help-grid span { display:block; margin-top:13px; color:var(--contact-muted); font-size:13px; line-height:1.5; }
.help-grid i { position:absolute; right:18px; bottom:21px; color:#77776f; font-style:normal; }
.help-grid a:hover i { color:var(--contact-ink); }
.faq-section { padding:95px 0; background:var(--contact-dim); }
.faq-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(30px,8vw,120px); }
.faq-list { border-top:1px solid var(--contact-line); }
.faq-list details { padding:18px 0; border-bottom:1px solid var(--contact-line); }
.faq-list summary { color:var(--contact-ink); cursor:pointer; list-style:none; font:700 16px 'Sora',sans-serif; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { float:right; content:'+'; color:#85857d; font-size:20px; font-weight:400; }
.faq-list details[open] summary::after { content:'−'; }
.faq-list details p { max-width:650px; padding:12px 28px 0 0; color:var(--contact-muted); font-size:14px; line-height:1.65; }
.contact-final { padding:100px 0; background:var(--contact-lime); }
.contact-final__inner { max-width:850px; }
.contact-final h2 { max-width:650px; }
.contact-final p { max-width:620px; margin:18px 0 27px; color:#42491f; font-size:17px; line-height:1.65; }

@media (max-width:900px) {
  .contact-hero__grid,.contact-form-grid,.location-grid,.faq-grid { grid-template-columns:1fr; }
  .contact-hero__signal { max-width:560px; }
  .contact-option-grid,.next-grid,.help-grid { grid-template-columns:repeat(2,1fr); }
  .contact-option:nth-child(2),.next-grid article:nth-child(2),.help-grid a:nth-child(2) { border-right:0; }
  .contact-option:nth-child(n+3),.next-grid article:nth-child(n+3),.help-grid a:nth-child(n+3) { border-top:1px solid var(--contact-line); }
  .contact-option:nth-child(3),.next-grid article:nth-child(3),.help-grid a:nth-child(3) { padding-left:0; }
  .contact-option:nth-child(4),.next-grid article:nth-child(4),.help-grid a:nth-child(4) { padding-left:20px; }
}
@media (max-width:560px) {
  .contact-hero { padding-top:125px; }
  .contact-hero h1 { font-size:47px; }
  .contact-option-grid,.next-grid,.leaders-grid,.help-grid { grid-template-columns:1fr; }
  .contact-option,.contact-option + .contact-option,.next-grid article,.next-grid article + article,.help-grid a,.help-grid a + a { min-height:0; padding:21px 0; border-right:0; border-top:1px solid var(--contact-line); }
  .contact-option:first-child,.next-grid article:first-child,.help-grid a:first-child { border-top:0; }
  .contact-option strong { margin-top:19px; }
  .contact-form { grid-template-columns:1fr; padding:20px; }
  .form-field,.form-field--wide,.form-note,.contact-submit { grid-column:1; }
  .form-field input,.form-field select,.form-field textarea { font-size:16px; }
  .map-frame,.map-frame iframe { min-height:300px; }
}
