/* =================================================================
   pages/contact.css - page-specific styles for contact.php
   Layered on top of css/site.css (which is loaded first). Only the
   Contact page links this file. Everything here is scoped so it
   cannot leak onto other routes.
   ================================================================= */

/* -----------------------------------------------------------------
   Page title band (not part of the shared foundation)
----------------------------------------------------------------- */
#page-title {
    padding: 42px 0;
    background: #f7f8f9;
    border-bottom: 1px solid var(--line);
}
#page-title h1 {
    margin: 0;
    font-size: 1.9rem;
    line-height: 1.2;
}
#page-title > .container > span {
    display: block;
    margin-top: 8px;
    color: var(--muted);
    font-size: 1.05rem;
}

/* -----------------------------------------------------------------
   Section headings with a leading brand icon
----------------------------------------------------------------- */
.contact-heading {
    display: flex;
    align-items: baseline;
    gap: 10px;
    font-size: 1.35rem;
    margin-bottom: 22px;
}
.contact-heading i { color: var(--brand); font-size: 1.1em; }

/* -----------------------------------------------------------------
   Contact form
----------------------------------------------------------------- */
.contact-form label { font-weight: 600; margin-bottom: 4px; }
.contact-form label .req { color: #c0392b; }

/* Inline "sending" indicator, hidden until the JS submit handler
   reveals it. Content stays usable without JS. */
.form-process {
    display: none;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    color: var(--muted);
    font-size: 0.95rem;
}
.form-process.is-busy { display: flex; }
.form-process .spinner {
    width: 16px; height: 16px;
    border: 2px solid rgba(63, 137, 177, 0.35);
    border-top-color: var(--brand);
    border-radius: 50%;
    animation: contact-spin 0.7s linear infinite;
}
@keyframes contact-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
    .form-process .spinner { animation: none; }
}

/* Result / status message region */
.contact-form-result:empty { display: none; }
.contact-form-result { margin-bottom: 20px; }

/* -----------------------------------------------------------------
   Contact details column (call + postal address)
----------------------------------------------------------------- */
.contact-details { padding-left: 0; }
@media (min-width: 992px) {
    .contact-details { padding-left: 20px; border-left: 1px solid var(--line); }
}
.contact-phone { font-size: 1.05rem; margin-bottom: 26px; }
.contact-phone .number { color: var(--brand); font-weight: 600; }
.contact-logo { max-height: 48px; width: auto; margin-bottom: 16px; }
.contact-details address { font-style: normal; line-height: 1.7; margin: 0; }
.contact-details address i { color: var(--brand); }
