/* Contact shares the site's type, gutters and quiet green palette. */
.contact-page { color:#223026; --border:#dce1d8; --muted:#566250; }
.contact-page .contact-hero { text-align:left; padding:30px 0 24px; }
.contact-page .contact-hero h1 { font-family:'Jost',sans-serif; font-weight:500; }
.contact-page .contact-hero .ph-desc { font-family:'Jost',sans-serif; max-width:660px; margin:0; font-size:17px; color:#566250; line-height:1.65; }
.contact-page .contact-section { padding:24px 0 40px; border:0; }
.contact-page .contact-layout { display:grid; grid-template-columns:minmax(0, .8fr) minmax(0, 1.2fr); gap:32px; align-items:start; }
.contact-page h2 { font-family:'Jost',sans-serif; font-size:25px; font-weight:500; line-height:1.3; letter-spacing:-.015em; color:#223026; }
.contact-direct { padding:24px 0; }
.contact-direct > p { margin:10px 0 20px; max-width:36ch; color:#566250; font-size:16px; line-height:1.65; }
.contact-methods { display:grid; gap:10px; }
.contact-method { position:relative; display:flex; flex-direction:column; gap:3px; background:#fff; border:1px solid #dce1d8; border-radius:12px; padding:13px 42px 13px 16px; min-width:0; }
.contact-method > span:first-child { font-size:13px; color:#566250; }
.contact-method strong { font-size:18px; font-weight:500; overflow-wrap:anywhere; }
.contact-method .contact-method-arrow { position:absolute; right:16px; top:50%; transform:translateY(-50%); color:#566250; }
.contact-method:hover { background:#f0f3ed; border-color:#a6b5a2; }
.contact-page a:focus-visible, .contact-page summary:focus-visible { outline:2px solid #344f39; outline-offset:4px; }
.contact-direct .contact-response { font-size:14px; margin:16px 0 0; }
/* Same icon cards and legal identity layout as the approved About page. */
.contact-page .contact-methods { grid-template-columns:minmax(0,1fr); gap:12px; }
.contact-page .contact-item { flex-direction:row; align-items:center; gap:12px; padding:16px; min-height:88px; }
.contact-page .contact-ico { display:flex; align-items:center; justify-content:center; flex:0 0 36px; width:36px; height:36px; border-radius:9px; background:#f0f3ec; color:#50594d; }
.contact-page .contact-ico svg { display:block; width:18px; height:18px; }
.contact-page .contact-text { display:flex; flex-direction:column; min-width:0; }
.contact-page .contact-label { font-size:13px; line-height:1.5; color:#50594d; font-weight:400; letter-spacing:0; text-transform:none; margin:0 0 2px; }
.contact-page .contact-val { font-size:17px; line-height:1.4; font-weight:500; overflow-wrap:anywhere; }
.contact-company-section { padding:0 0 36px; }
.contact-company-section h2 { margin:0 0 16px; }
.contact-company-section .about-companies { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.contact-company-section .about-company { padding:18px; background:#fff; border:1px solid #dce1d8; border-radius:12px; }
.contact-company-section .about-company h3 { font-size:18px; line-height:1.4; font-weight:500; margin-bottom:10px; }
.contact-company-section .about-company p { font-size:14px; line-height:1.6; color:#50594d; }
.contact-company-section .about-company .company-country { font-size:13px; margin-bottom:6px; }
.contact-company-section .about-portfolio-link { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:14px; font-weight:500; margin-top:6px; text-underline-offset:4px; }
.contact-company-section .about-portfolio-link:hover { text-decoration:underline; }
@media(max-width:480px) { .contact-company-section .about-companies { grid-template-columns:minmax(0,1fr); } }
.contact-page .form-card { max-width:none; margin:0; padding:28px; background:#f0f3ed; border:1px solid #dce1d8; border-radius:16px; box-shadow:none; min-width:0; }
.contact-form-hint { color:#566250; font-size:14px; margin:8px 0 22px; }
.contact-page .contact-form { gap:18px; }
.contact-page .form-row { gap:16px; }
.contact-page .form-group { min-width:0; gap:7px; }
.contact-page .form-group label { font-family:'Jost',sans-serif; text-transform:none; font-size:15px; font-weight:500; letter-spacing:0; color:#223026; }
.contact-page .lbl-optional { font-size:13px; color:#566250; letter-spacing:0; }
.contact-page .form-group input, .contact-page .form-group textarea { font-family:'Jost',sans-serif; border-color:#cbd3c6; border-radius:8px; font-size:16px; padding:11px 13px; line-height:1.5; min-height:48px; }
.contact-page .form-group textarea { min-height:146px; }
.contact-page input::placeholder, .contact-page textarea::placeholder { color:#70786b; opacity:1; }
.contact-page .form-group input:focus, .contact-page .form-group textarea:focus { border-color:#587151; box-shadow:0 0 0 3px #344f3920; }
.contact-page .btn-submit { align-self:flex-start; width:auto; min-height:48px; margin:0; padding:12px 22px; font-size:16px; font-weight:500; text-transform:none; letter-spacing:0; border-radius:8px; background:#192d22; }
.contact-page .btn-submit:hover { background:#2a4432; transform:none; box-shadow:none; }
.contact-page .btn-submit:disabled { cursor:wait; }
.contact-page .form-privacy { margin:0; font:14px/1.6 'Jost',sans-serif; color:#566250; }
.contact-page .form-privacy a, .contact-page noscript a { text-decoration:underline; text-underline-offset:3px; }
.contact-page #formMsg { font:16px/1.6 'Jost',sans-serif; border:1px solid #a3bea1; padding:12px 14px; background:#e7f2e5; color:#234a29; }
.contact-page #formMsg[data-state="error"] { border-color:#d5aaa2; background:#fff4ef; color:#8c2f23; }
.contact-page #formMsg[hidden] { display:none; }
@media(max-width:760px) {
  .contact-page .contact-layout { grid-template-columns:1fr; gap:22px; }
  .contact-direct { padding:0; }
  .contact-methods { grid-template-columns:1fr 1fr; }
  .contact-direct > p { max-width:none; }
  .contact-method { padding:12px; }
  .contact-method strong { font-size:16px; }
  .contact-method .contact-method-arrow { display:none; }
  .contact-page .form-card { padding:22px; }
  .contact-page .contact-hero { padding:24px 0 22px; }
}
@media(max-width:560px) {
  .contact-page .form-row { grid-template-columns:1fr; }
  .contact-page .form-card { padding:20px; }
  .contact-page .btn-submit { width:100%; }
}
