/* Contact / RFQ presentation using the shared Ginperain design tokens. */
.gp-contact { background: var(--gp-color-cream-light); color: var(--gp-color-ink); }
.gp-contact :where(h1,h2,h3,p,figure) { margin-block: 0; }
.gp-contact-section { padding-block: clamp(44px,5vw,72px); }
.gp-contact h1 { font-size: clamp(44px,4.6vw,68px); line-height: 1.05; letter-spacing: -.04em; }
.gp-contact h2 { font-size: clamp(29px,3vw,42px); line-height: 1.15; }
.gp-contact h3 { font-size: 21px; line-height: 1.3; }
.gp-contact p { line-height: 1.7; }
.gp-contact-hero-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(32px,5vw,72px); }
.gp-contact-hero-copy { display: grid; gap: 24px; }
.gp-contact-hero-copy > p:last-child { color: var(--gp-color-muted); font-size: 18px; max-width: 540px; }
.gp-contact-hero-image { border-radius: var(--gp-radius-large); overflow: hidden; border-bottom: 6px solid var(--gp-color-yellow); }
.gp-contact-hero-image img { display: block; width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; }
.gp-contact-project { background: var(--gp-color-cream); }
.gp-contact-project-grid { display: grid; grid-template-columns: minmax(0,2.15fr) minmax(0,1fr); align-items: start; gap: clamp(28px,4vw,56px); }
.gp-contact-form-panel { min-width: 0; padding: clamp(24px,3vw,40px); border-radius: var(--gp-radius-large); background: var(--gp-color-cream-light); }
.gp-contact-form-intro { color: var(--gp-color-muted); margin-top: 16px !important; margin-bottom: 28px !important; }
.gp-contact-form-panel .fluentform { margin-top: 26px; }
.gp-contact .fluentform .ff-el-group { margin-bottom: 22px; }
.gp-contact .fluentform .ff-el-input--label label { font-size: 14px; font-weight: 650; color: var(--gp-color-ink); }
.gp-contact .fluentform .ff-el-form-control { min-height: 48px; border: 1px solid var(--gp-color-line); border-radius: 8px; background: #fff; color: var(--gp-color-ink); font: inherit; font-size: 15px; padding: 12px 14px; max-width: 100%; }
.gp-contact .fluentform .ff-el-form-control::placeholder { color: #68766e; opacity: 1; }
.gp-contact .fluentform .ff-el-form-control:focus { border-color: var(--gp-color-green); outline: 2px solid var(--gp-color-green); outline-offset: 2px; box-shadow: none; }
.gp-contact .fluentform textarea.ff-el-form-control { min-height: 124px; resize: vertical; }
.gp-contact .fluentform .ff-btn-submit { background: var(--gp-color-yellow); color: var(--gp-color-ink); border: 0; border-radius: 99px; min-height: 50px; padding: 15px 28px; font: inherit; font-size: 14px; font-weight: 750; }
.gp-contact .fluentform .ff-btn-submit:focus-visible { outline: 2px solid var(--gp-color-green); outline-offset: 4px; }
.gp-contact .ff-message-success { border-color: var(--gp-color-green); color: var(--gp-color-ink); }
.gp-contact-help { padding-top: 12px; }
.gp-contact-help h2 { font-size: clamp(26px,2.4vw,32px); }
.gp-contact-help ul { margin: 26px 0 30px; padding-left: 20px; }
.gp-contact-help li { padding: 8px 0; line-height: 1.6; }
.gp-contact-help li::marker { color: var(--gp-color-green); }
.gp-contact-help p { margin-top: 12px; color: var(--gp-color-muted); }
.gp-contact-process .gp-product-process__steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 30px; margin: 36px 0 0; padding: 0; list-style: none; }
.gp-contact-process .gp-product-process__steps li { padding: 22px 0 0; border-top: 2px solid var(--gp-color-yellow); }
.gp-contact-process .gp-product-process__steps li::after { content: none; }
.gp-contact-process .gp-product-process__steps span { font-size: 27px; color: var(--gp-color-green); }
.gp-contact-process .gp-product-process__steps strong { display: block; margin-top: 14px; font-size: 21px; }
.gp-contact-process .gp-product-process__steps p { margin-top: 12px; color: var(--gp-color-muted); font-size: 15px; }
.gp-contact-channels { background: var(--gp-color-cream); }
.gp-contact-channel-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; margin-top: 32px; }
.gp-contact-channel { border-top: 1px solid var(--gp-color-line); padding-top: 22px; min-width: 0; }
.gp-contact-channel p { margin-top: 14px; overflow-wrap: anywhere; }
.gp-contact-channel a { text-underline-offset: 4px; }
.gp-contact-faq .gp-product-faq__list { margin-top: 30px; }
@media (max-width:1199.98px) {
 .gp-contact-project-grid { grid-template-columns: 1fr; }
 .gp-contact-help { max-width: 760px; }
 .gp-contact-process .gp-product-process__steps { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width:899.98px) {
 .gp-contact-hero-grid { grid-template-columns: 1fr; }
 .gp-contact-hero-image { max-width: 640px; }
}
@media (max-width:767px) {
 .gp-contact-channel-grid,.gp-contact-process .gp-product-process__steps { grid-template-columns: 1fr; }
 .gp-contact .fluentform .ff-t-container { display: block; }
 .gp-contact .fluentform .ff-t-cell { width: 100%; display: block; padding: 0; }
 .gp-contact .fluentform .ff-btn-submit { width: 100%; }
 .gp-contact-form-panel { padding: 24px 20px; }
}
