.contact-page { color: #15263f; background: #f7f4eb; }
body:has(.contact-page) .site-footer { margin-top: 0; }
.contact-hero { padding: 4.25rem 0 3.6rem; border-bottom: 1px solid #d8d3c5; background: linear-gradient(135deg, #f7f4eb 0%, #fffaf2 64%, #e7efff 100%); }
.contact-hero__grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(18rem, .65fr); gap: clamp(2rem, 7vw, 7rem); align-items: end; }
.contact-kicker, .contact-section-label { margin: 1.7rem 0 .65rem; color: #155eef; font-size: .74rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.contact-hero h1 { max-width: 48rem; margin: 0; font-family: "Prox Newsreader", Georgia, serif; font-size: clamp(3rem, 7vw, 6.4rem); font-weight: 560; letter-spacing: -.055em; line-height: .92; }
.contact-hero__intro { max-width: 42rem; margin: 1.25rem 0 0; color: #43536a; font-size: clamp(1.05rem, 2vw, 1.25rem); }
.contact-hero__note { padding: 1.35rem 0 0 1.4rem; border-top: 4px solid #f06449; border-left: 1px solid #d8d3c5; }
.contact-hero__note span { display: block; color: #6b7280; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.contact-hero__note strong { margin-top: .45rem; display: block; font-family: "Prox Newsreader", Georgia, serif; font-size: 1.6rem; line-height: 1.08; }
.contact-hero__note p { margin: .7rem 0 0; color: #526176; font-size: .9rem; }
.contact-layout { padding-block: 4rem 5.5rem; display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(17rem, .65fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.contact-form-panel { padding: clamp(1.35rem, 4vw, 2.6rem); border: 1px solid #d6dce5; border-radius: .8rem; background: #fff; box-shadow: 0 18px 45px rgba(21, 38, 63, .07); }
.contact-form-panel__heading { max-width: 42rem; }
.contact-form-panel__heading .contact-section-label { margin-top: 0; }
.contact-form-panel__heading h2 { margin: 0; font-family: "Prox Newsreader", Georgia, serif; font-size: clamp(2rem, 4vw, 3.1rem); letter-spacing: -.035em; line-height: 1; }
.contact-form-panel__heading > p:last-child { margin: .8rem 0 0; color: #5a687b; }
.contact-form { margin-top: 2rem; display: grid; gap: 1.2rem; }
.contact-form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.contact-form label { display: grid; gap: .4rem; color: #263b58; font-size: .84rem; font-weight: 800; }
.contact-form label span { display: flex; justify-content: space-between; gap: 1rem; }
.contact-form label small { color: #788496; font-weight: 600; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; border: 1px solid #bfc9d6; border-radius: .42rem; color: #15263f; background: #fff; }
.contact-form input, .contact-form select { min-height: 3.15rem; padding: .7rem .8rem; }
.contact-form textarea { min-height: 12rem; padding: .8rem; resize: vertical; line-height: 1.55; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: #155eef; outline: 3px solid rgba(21, 94, 239, .14); }
.contact-form__hint { margin-top: -.1rem; display: block; color: #788496; font-size: .76rem; font-weight: 600; }
.contact-form__honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.contact-form .auth-turnstile { padding: .8rem; border: 1px solid #d6dce5; border-radius: .5rem; background: #f7f9fc; }
.contact-form .auth-turnstile__label { margin: 0 0 .55rem; color: #6f7c8f; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.contact-form .auth-turnstile__widget { max-width: 100%; overflow: hidden; }
.contact-form__actions { padding-top: .25rem; display: flex; align-items: center; gap: 1rem; }
.contact-form__actions p { margin: 0; color: #788496; font-size: .78rem; }
.contact-submit { min-height: 3.15rem; padding: .75rem 1.35rem; border: 0; border-radius: .42rem; color: #fff; background: #155eef; font-weight: 850; cursor: pointer; }
.contact-submit:hover { background: #0b45b5; }
.contact-success, .contact-errors { margin: 0 0 1.5rem; padding: 1rem 1.1rem; border-radius: .5rem; display: flex; gap: .8rem; align-items: flex-start; }
.contact-success { border: 1px solid #9fd5c8; color: #075e52; background: #e5f4f0; }
.contact-success > span { font-size: 1.2rem; font-weight: 900; }
.contact-success p { margin: .15rem 0 0; }
.contact-errors { border: 1px solid #e6aab5; display: block; color: #8d1831; background: #fff1f3; }
.contact-errors ul { margin: .45rem 0 0; padding-left: 1.2rem; }
.contact-field-error { margin: -.65rem 0 0; color: #b4233d; font-size: .8rem; font-weight: 750; }
.contact-details { display: grid; gap: 0; }
.contact-details section { padding: 1.45rem 0; border-top: 1px solid #cfc9bb; }
.contact-details section:first-child { border-top: 4px solid #b7d93d; }
.contact-details__number { color: #155eef; font-size: .7rem; font-weight: 900; letter-spacing: .12em; }
.contact-details h2 { margin: .35rem 0 0; font-family: "Prox Newsreader", Georgia, serif; font-size: 1.55rem; }
.contact-details p { margin: .55rem 0 0; color: #526176; font-size: .9rem; }
@media (max-width: 800px) {
    .contact-hero { padding: 2.8rem 0 2.5rem; }
    .contact-hero__grid, .contact-layout { grid-template-columns: 1fr; gap: 2rem; }
    .contact-hero__note { max-width: 32rem; }
    .contact-layout { padding-block: 2.3rem 3.5rem; }
}
@media (max-width: 560px) {
    .contact-form__row { grid-template-columns: 1fr; }
    .contact-form__actions { align-items: stretch; flex-direction: column; }
    .contact-submit { width: 100%; }
}
