/* =============================================================================
   LibParl v3 — contact-style.css
   Hero uses the shared .lp-page-hero from lib-style.css.
   ============================================================================= */

.lp-contact {
    max-width: 1200px; margin: 0 auto; padding: 48px 24px 72px;
    display: grid; grid-template-columns: 1fr 320px; gap: 48px; align-items: start;
}
@media (max-width: 860px) { .lp-contact { grid-template-columns: 1fr; gap: 32px; } }

.lp-contact__intro {
    font-size: 15px; line-height: 1.7; color: #444; margin-bottom: 24px;
}
.lp-contact__intro p { margin-bottom: 1em; }

.lp-contact__form {
    background: #fff; border: 1px solid #e8e8e8; border-radius: 14px;
    padding: 26px 28px; box-shadow: 0 2px 12px rgba(20,20,25,.05);
}
@media (max-width: 560px) { .lp-contact__form { padding: 18px 16px; } }

.lp-contact__side { display: flex; flex-direction: column; gap: 14px; }

.lp-contact__card {
    background: #faf8f5; border: 1px solid #efece7; border-radius: 12px;
    padding: 18px 20px;
}
.lp-contact__card-label {
    font-size: 10px; font-weight: 700; letter-spacing: .1em;
    text-transform: uppercase; color: var(--lp-accent); margin-bottom: 8px;
}
.lp-contact__email {
    font-size: 14px; font-weight: 600; color: #1d2327;
    text-decoration: none; word-break: break-word;
}
.lp-contact__email:hover { color: var(--lp-accent); }
.lp-contact__addr { font-size: 13px; line-height: 1.6; color: #444; margin-bottom: 8px; }
.lp-contact__line { font-size: 13px; color: #555; line-height: 1.7; }
.lp-contact__line a { color: #555; text-decoration: none; }
.lp-contact__line a:hover { color: var(--lp-accent); }

.lp-contact__note {
    font-size: 12px; color: #787c82; line-height: 1.6;
    padding-top: 4px;
}

.lp-contact__map {
    display: inline-block; margin-top: 8px;
    font-size: 12px; font-weight: 700; color: var(--lp-accent);
    text-decoration: none; text-transform: uppercase; letter-spacing: .04em;
}
.lp-contact__map:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Details-only mode — shown until a contact form is configured on the hub.
   Two balanced columns rather than a lopsided empty form area. */
/* With no form there's nothing substantial to put in a left column, so a
   50/50 split leaves one side almost empty. Stack instead: copy full width,
   office cards in a row beneath it. */
.lp-contact--details-only { grid-template-columns: 1fr; gap: 28px; }
.lp-contact--details-only .lp-contact__side {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 16px;
    align-items: start;
}
.lp-contact--details-only .lp-contact__note { grid-column: 1 / -1; }
@media (max-width: 560px) {
    .lp-contact--details-only .lp-contact__side { grid-template-columns: 1fr; }
}
.lp-contact__lead { font-size: 16px; line-height: 1.7; color: #444; margin: 0; }
.lp-contact__intro-only { padding-top: 4px; }