/* Contact box: functional layout only; colours follow the theme. */
.g25-contact-box { margin: 2rem 0; padding: 1.5rem; border: 1px solid rgba( 70, 57, 45, .25 ); border-radius: 8px; background: rgba( 255, 255, 255, .6 ); max-width: 760px; }
.g25-contact-box h2 { margin-top: 0; }
.g25-contact-form .g25-field-grid { display: grid; grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); gap: 1rem; margin-bottom: 1rem; }
.g25-contact-form label { display: block; font-weight: 600; }
.g25-contact-form input[type=text], .g25-contact-form input[type=email], .g25-contact-form input[type=tel], .g25-contact-form select, .g25-contact-form textarea { display: block; width: 100%; box-sizing: border-box; margin-top: .35rem; padding: .6rem .7rem; font: inherit; font-weight: 400; border: 1px solid rgba( 70, 57, 45, .45 ); border-radius: 4px; background: #fff; color: inherit; }
.g25-contact-form textarea { min-height: 9rem; resize: vertical; margin-bottom: 1rem; }
.g25-contact-form .g25-consent { display: flex; gap: .6rem; align-items: flex-start; font-weight: 400; font-size: .9rem; margin: 0 0 1rem; }
.g25-contact-form .g25-consent input { margin-top: .25rem; }
.g25-contact-req { font-weight: 400; font-size: .8rem; opacity: .7; }
.g25-contact-ok { padding: .9rem 1rem; border-radius: 4px; background: #e8f3ec; color: #17633e; font-weight: 600; }
.g25-contact-alt { margin: 1rem 0 0; font-size: .95rem; }
.g25-contact-form [hidden] { display: none !important; }
@media ( max-width: 640px ) { .g25-contact-form .g25-field-grid { grid-template-columns: 1fr; } .g25-contact-box { padding: 1rem; } }
.g25-contact-form .g25-consent span { flex: 1 1 auto; }
