/* ==========================================================================
   CONTACT — masthead info + underline form
   ========================================================================== */
.contact-hero{ padding:64px 0 0; }
.contact-hero h1{ max-width:640px; text-transform:none; }

.contact-layout{ display:grid; grid-template-columns:.85fr 1.15fr; gap:60px; padding:52px 0 100px; align-items:start; }
@media (max-width:860px){ .contact-layout{ grid-template-columns:1fr; gap:44px; } }

.masthead-list{ list-style:none; margin:0; padding:0; }
.masthead-list li{ padding:20px 0; border-top:1px solid var(--border); }
.masthead-list li:last-child{ border-bottom:1px solid var(--border); }
.masthead-list .m-label{ font-family:var(--font-mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; color:var(--warm-gray); margin-bottom:8px; font-weight:700; }
.masthead-list .m-value{ font-family:var(--font-display); font-size:1.15rem; font-weight:600; }
.masthead-list a.m-value{ text-decoration:none; color:var(--ink); }
.masthead-list a.m-value:hover{ color:var(--gold); }

.contact-form-panel{ background:var(--cream-deep); border:1px solid var(--border-soft); border-radius:var(--radius); padding:36px; }
@media (max-width:520px){ .contact-form-panel{ padding:26px 20px; } }
.contact-form-panel h3{ margin-bottom:24px; text-transform:none; }
.underline-stack{ display:flex; flex-direction:column; gap:24px; }
.underline-stack .field-row{ gap:24px; }

.message-modal{
  position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:20px;
  background:rgba(23,23,23,.42); opacity:0; visibility:hidden; transition:opacity var(--t-med) var(--ease), visibility var(--t-med) var(--ease);
}
.message-modal.open{ opacity:1; visibility:visible; }
.message-modal__dialog{
  position:relative; width:min(100%,480px); padding:44px 38px 36px; text-align:center;
  background:var(--white); border:1px solid var(--border-soft); border-radius:var(--radius);
  box-shadow:0 20px 60px rgba(23,23,23,.18); transform:translateY(12px) scale(.98); transition:transform var(--t-med) var(--ease);
}
.message-modal.open .message-modal__dialog{ transform:translateY(0) scale(1); }
.message-modal__close{
  position:absolute; top:12px; right:14px; border:0; background:transparent; color:var(--warm-gray);
  font-size:1.7rem; line-height:1; cursor:pointer;
}
.message-modal__check{
  width:54px; height:54px; display:grid; place-items:center; margin:0 auto 20px; border-radius:50%;
  background:var(--gold); color:#fff; font-size:1.8rem; font-weight:700;
}
.message-modal__dialog h2{ margin-bottom:12px; font-size:1.5rem; text-transform:none; }
.message-modal__dialog p{ max-width:340px; margin:0 auto; color:var(--warm-gray); line-height:1.6; }
.message-modal__actions{ display:flex; justify-content:center; gap:12px; margin-top:28px; }
.message-modal__actions .btn{ font-size:.72rem; }
@media (max-width:520px){
  .message-modal__dialog{ padding:42px 22px 26px; }
  .message-modal__actions{ flex-direction:column-reverse; }
  .message-modal__actions .btn{ width:100%; }
}

.faq-section{ padding:0 0 110px; }
.faq-item{ border-top:1px solid var(--border-soft); }
.faq-item:last-child{ border-bottom:1px solid var(--border-soft); }
.faq-q{
  width:100%; display:flex; justify-content:space-between; align-items:center;
  background:none; border:0; cursor:pointer; padding:20px 0; text-align:left;
  font-family:var(--font-display); font-size:1.02rem; font-weight:600;
}
.faq-q .plus{ font-family:var(--font-mono); color:var(--gold); transition:transform var(--t-med) var(--ease); flex:none; margin-left:20px; font-weight:700; }
.faq-item.open .faq-q .plus{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height var(--t-med) var(--ease-soft); }
.faq-item.open .faq-a{ max-height:200px; }
.faq-a p{ padding:0 0 22px; color:var(--warm-gray); max-width:640px; line-height:1.7; }
