.gp-contact { padding-block: clamp(40px, 6vw, 88px) clamp(56px, 7vw, 100px); color: #000; }
.gp-contact [hidden] { display: none !important; }
.gp-contact__hero { max-width: 780px; margin-bottom: 42px; }
.gp-contact .gp-contact__eyebrow { margin: 0 0 18px; font-size: 12px; font-weight: 750; letter-spacing: .15em; color: #000; }
.gp-contact .gp-contact__hero h1 { font-size: clamp(38px, 5vw, 66px); line-height: 1.08; letter-spacing: -.045em; margin: 0 0 24px; }
.gp-contact__hero h1 span { color: #39B54A; }
.gp-contact__hero > p:last-child { font-size: 17px; line-height: 1.8; max-width: 660px; margin: 0; color: #000; }
.gp-contact__layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 48px; align-items: start; }
.gp-contact__card { padding: clamp(22px, 3.2vw, 44px); border: 1px solid #dedede; border-radius: 24px; background: #fff; box-shadow: 0 12px 40px #00000006; min-width: 0; }
.gp-contact__progress { display: flex; list-style: none; padding: 0 0 28px; margin: 0 0 32px; border-bottom: 1px solid #dedede; gap: 20px; justify-content: space-between; }
.gp-contact__progress li { display: flex; align-items: center; gap: 9px; font-size: 12px; font-weight: 650; color: #000; }
.gp-contact__progress li > span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #f5f5f5; flex-shrink: 0; }
.gp-contact__progress [aria-current] { color: #000; }
.gp-contact__progress [aria-current] > span, .gp-contact__progress .is-complete > span { background: #39B54A; color:#fff; }
.gp-contact fieldset { padding: 0; margin: 0; border: 0; min-width: 0; }
.gp-contact legend { padding: 0; font-size: clamp(21px, 2.3vw, 28px); font-weight: 700; letter-spacing: -.035em; line-height: 1.3; }
.gp-contact__hint { font-size: 14px; color: #000; line-height: 1.65; margin: 12px 0 24px; }
.gp-contact__choices { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.gp-contact__choice { position: relative; cursor: pointer; }
.gp-contact__choice input { position: absolute; top: 20px; right: 20px; width: 18px; height: 18px; accent-color: #000; margin: 0; }
.gp-contact__choice-body { display: flex; flex-direction: column; padding: 24px; border: 1px solid #dedede; border-radius: 14px; min-height: 200px; height: 100%; transition: background .15s, border-color .15s; }
.gp-contact__choice-body svg { width: 28px; height: 28px; margin-bottom: 24px; color: #39B54A; }
.gp-contact__choice-body strong { font-size: 18px; margin-bottom: 7px; }
.gp-contact__choice-body > span { font-size: 13px; line-height: 1.65; color: #000; }
.gp-contact__choice:hover .gp-contact__choice-body { border-color: #39B54A; background: #fff; }
.gp-contact__choice input:checked + .gp-contact__choice-body { background: #fff; border-color: #000; box-shadow: inset 0 0 0 1px #39B54A; }
.gp-contact__choice input:focus-visible + .gp-contact__choice-body { outline: 3px solid var(--gp-focus); outline-offset: 3px; }
.gp-contact__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.gp-contact__fields label { display: flex; flex-direction: column; gap: 8px; font-size: 13px; font-weight: 650; }
.gp-contact__wide { grid-column: 1 / -1; }
.gp-contact__fields input, .gp-contact__fields select, .gp-contact__fields textarea { width: 100%; min-width: 0; box-sizing: border-box; background: #fff; color: #000; border: 1px solid #c7c7c7; border-radius: 9px; padding: 12px 14px; font: inherit; font-size: 16px; font-weight: 400; }
.gp-contact__fields textarea { resize: vertical; min-height: 150px; }
.gp-contact__fields small { font-size: 12px; font-weight: 400; line-height: 1.6; color: #000; }
.gp-contact__fields .gp-contact__hint { margin: -10px 0 0; font-size: 12px; }
.gp-contact :is(input, select, textarea, button, a):focus-visible { outline: 3px solid var(--gp-focus); outline-offset: 3px; }
.gp-contact__actions { margin-top: 28px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.gp-contact__actions button { cursor: pointer; font: inherit; font-size: 14px; font-weight: 650; min-height: 48px; border-radius: 8px; padding: 13px 22px; }
.gp-contact__next { margin-left: auto; background: #39B54A; color:#fff; border: 1px solid #39B54A; }
.gp-contact__next:hover { background: #39B54A; }
.gp-contact__next:disabled { background: #eee; color: #000; border-color: #dedede; cursor: not-allowed; }
.gp-contact__back { background: transparent; border: 0; color: #000; }
.gp-contact__privacy { font-size: 11px; line-height: 1.6; color: #000; margin: 22px 0 0; text-align: right; }
.gp-contact__aside { padding: 18px 0; }
.gp-contact__aside-mark { display: grid; place-items: center; border: 1px solid #39B54A; border-radius: 50%; width: 42px; height: 42px; font-size: 24px; color: #000; margin-bottom: 22px; }
.gp-contact .gp-contact__aside h2 { font-size: 28px; line-height: 1.2; letter-spacing: -.035em; margin: 0 0 18px; }
.gp-contact__aside p { font-size: 14px; line-height: 1.85; color: #000; }
.gp-contact .gp-contact__aside h3 { font-size: 14px; line-height: 1.5; margin: 0 0 14px; }
.gp-contact__help { border-top: 1px solid #dedede; padding-top: 26px; margin-top: 30px; }
.gp-contact__help a { display: flex; justify-content: space-between; gap: 12px; padding-block: 12px; font-size: 12px; line-height: 1.5; color: #000; text-decoration: none; border-bottom: 1px solid #dedede; }
.gp-contact__help a:hover { text-decoration: underline; }
.gp-contact__stock { margin-top: 28px; }
.gp-contact__review { display: grid; grid-template-columns: 140px minmax(0,1fr); gap: 12px 20px; font-size: 14px; line-height: 1.7; }
.gp-contact__review dt { font-weight: 650; }
.gp-contact__review dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.gp-contact__notice { background: #f5f5f5; padding: 20px; border-radius: 12px; margin-top: 24px; font-size: 14px; line-height: 1.7; }
.gp-contact__notice p { margin: 8px 0 0; }
.gp-contact__error { color: #a12020; font-size: 14px; }
@media (max-width: 1000px) { .gp-contact__layout { grid-template-columns: minmax(0, 1fr) 240px; gap: 28px; } .gp-contact__progress { gap: 10px; } }
@media (max-width: 780px) { .gp-contact__layout { grid-template-columns: 1fr; } .gp-contact__aside { max-width: 540px; } .gp-contact__hero { margin-bottom: 28px; } }
@media (max-width: 480px) { .gp-contact__progress li { flex-direction: column; gap: 6px; font-size: 10px; } .gp-contact__progress { margin-bottom: 24px; padding-bottom: 22px; } .gp-contact__choices { gap: 10px; } .gp-contact__choice-body { padding: 18px 14px; min-height: 202px; } .gp-contact__choice input { top: 18px; right: 14px; } .gp-contact__choice-body strong { font-size: 16px; } .gp-contact__choice-body > span { font-size: 12px; } .gp-contact__fields { grid-template-columns: 1fr; } .gp-contact__review { grid-template-columns: 1fr; gap: 4px; } .gp-contact__review dd { margin-bottom: 14px; } .gp-contact__actions button { padding-inline: 14px; font-size: 12px; } }

.gp-contact__preview { margin: 0 0 24px; padding: 10px 14px; border-radius: 8px; background: #f5f5f5; color: #000; font-size: 12px; line-height: 1.6; }

.gp-contact__choice-body svg, .gp-contact__aside-mark { color: #39B54A; }
.gp-contact__next:hover { box-shadow: inset 0 0 0 2px #000; }
/* Override inherited resource-page colours inside this page as well. */
.gp-contact { --gp-ink: #000; --gp-muted: #000; --gp-forest: #000; --gp-paper: #fff; --gp-rule: #dedede; }
.gp-contact .gp-contact__error { color: #a12020; }
