.page-hero {
    padding: 6rem 0 4rem;
    border-bottom: none;
    text-align: left;
}
.page-hero .eyebrown { display: block; margin-bottom: 1rem; text-align: left; }
.page-hero h1 { font: 700 clamp(2.25rem, 4vw, 3.25rem)/1.1 'Montserrat', sans-serif; color: var(--color-text); margin: 0 0 1.25rem; max-width: 820px; }
.page-hero p.intro { color: #c9c9c9; font-size: 1.05rem; line-height: 1.7; margin: 0; max-width: 680px; }
.contact-cards {
    display: grid;
    grid-template-columns: 1.35fr 1fr 1fr 1.05fr;
    grid-template-rows: 1fr auto;
    gap: 1rem;
    margin-top: 2.5rem;
}
.contact-card {
    display: flex; flex-direction: column;
    background: #0c0c0c; border: 1px solid #1a1a1a; border-radius: 0.85rem;
    padding: 2.25rem 1.75rem; text-decoration: none; color: inherit;
    transition: border-color .25s ease, transform .25s ease;
}
.contact-card:hover { }
.contact-card.cc-email:hover .cc-title { color: var(--color-primary); }
.contact-card.cc-phone:hover .cc-value,
.contact-card.cc-form:hover .cc-value { color: var(--color-primary); }
.contact-card .cc-icon {
    width: 44px; height: 44px; border-radius: 50%;
    background: rgba(211, 47, 47, 0.12);
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 1.35rem; flex-shrink: 0;
}
.contact-card .cc-icon svg { width: 20px; height: 20px; color: var(--color-primary); }
.contact-card .cc-label { font: 300 0.82rem/1.4 'Inter', sans-serif; color: #9E9E9E; margin: 0 0 0.5rem; }
.contact-card .cc-value { font: 700 1.1rem/1.3 'Montserrat', sans-serif; color: #fff; margin: 0; transition: color .25s ease; }
.cc-email { grid-row: 1 / 3; }
.contact-card.cc-email .cc-title { font: 700 1.25rem/1.3 'Montserrat', sans-serif; color: #fff; margin: 0 0 0.65rem; transition: color .25s ease; }
.contact-card.cc-email .cc-desc { font: 300 0.9rem/1.65 'Inter', sans-serif; color: #9E9E9E; margin: 0; flex: 1; }
.contact-card .cc-link {
    display: inline-flex; align-items: center; gap: 0.4rem;
    margin-top: auto; padding-top: 1.5rem;
    font: 500 13.5px/1 'Inter', sans-serif; color: #fff;
}
.contact-card .cc-link svg { width: 14px; height: 14px; color: var(--color-primary); transition: transform .2s; }
.contact-card:hover .cc-link svg { transform: translateX(3px); }
.cc-social {
    grid-column: 2 / 4;
    flex-direction: row; align-items: center; justify-content: space-between;
}
.cc-social .cc-social-label { font: 700 0.95rem/1 'Montserrat', sans-serif; color: #fff; transition: color .25s ease; }
.cc-social:hover .cc-social-label { color: var(--color-primary); }
.cc-social .cc-social-icons { display: flex; gap: 0.75rem; align-items: center; }
.cc-social .cc-social-icons svg { width: 20px; height: 20px; color: var(--color-primary); }
.cc-photo {
    grid-row: 1 / 3;
    grid-column: 4;
    padding: 0; overflow: hidden; border-radius: 0.85rem;
    min-height: 220px;
}
.cc-photo img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0.85rem; }
.cc-photo:hover { }

@media (max-width: 900px) {
    .contact-cards { grid-template-columns: 1fr 1fr; grid-template-rows: auto; margin-top: 1.75rem; }
    .cc-email { grid-row: auto; grid-column: 1 / 3; }
    .cc-social { grid-column: 1 / 3; }
    .cc-photo { display: none; }
}
@media (max-width: 560px) {
    .page-hero { padding: 4rem 0 3rem; }
    .contact-cards { grid-template-columns: 1fr; }
    .cc-email { grid-column: auto; }
    .cc-social { grid-column: auto; flex-direction: column; align-items: flex-start; gap: 1rem; }
    .contact-card { padding: 1.35rem; }
}

.contact-split { padding: 5rem 0 6rem; }
.contact-split .grid {
    display: grid;
    grid-template-columns: 1.6fr 0.7fr;
    grid-template-areas: "form intro" "form hours";
    gap: 2rem 4rem;
}
.contact-split .grid .form-card { grid-area: form; }
.contact-intro { grid-area: intro; }
.contact-hours { grid-area: hours; align-self: end; }
.contact-intro .aside-title { font: 700 1.35rem/1.25 'Montserrat', sans-serif; color: var(--color-text); margin: 0.5rem 0 0.75rem; }
.contact-aside .aside-desc { font: 300 0.95rem/1.7 'Inter', sans-serif; color: #9E9E9E; margin: 0; }
.hours-card { background: #0c0c0c; border: 1px solid #1a1a1a; border-radius: 0.85rem; padding: 2rem 1.75rem; }
.hours-card .hc-label { font: 500 11px/1 'Inter', sans-serif; letter-spacing: 0.2em; text-transform: uppercase; color: var(--color-primary); display: block; margin-bottom: 0.6rem; }
.hours-card h3 { font: 700 1.1rem/1.2 'Montserrat', sans-serif; color: #fff; margin: 0 0 1.1rem; }
.hours-card .hours { display: grid; grid-template-columns: auto 1fr; gap: 0.5rem 1.75rem; font: 400 14px/1.5 'Inter', sans-serif; }
.hours-card .hours dt { color: #9E9E9E; }
.hours-card .hours dd { color: #fff; margin: 0; }

.form-card { background: #0c0c0c; border: 1px solid #1a1a1a; border-radius: 0.85rem; padding: 3rem 2.5rem; }
.form-card h2 { font: 700 1.25rem/1.2 'Montserrat', sans-serif; color: #fff; margin: 0 0 0.4rem; }
.form-card .lede { font: 300 0.95rem/1.55 'Inter', sans-serif; color: #9E9E9E; margin: 0 0 1.5rem; }
.form-card .row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin-bottom: 0; }
.form-card .field { display: flex; flex-direction: column; gap: 0.55rem; margin-bottom: 1.25rem; }
.form-card .row .field { margin-bottom: 1.25rem; }
.form-card .field label {
    font: 500 12.5px/1 'Inter', sans-serif; color: #aaa;
    letter-spacing: 0.05em; text-transform: uppercase;
}
.form-card input, .form-card select, .form-card textarea {
    background: #111; border: 1px solid #242424; border-radius: 0.55rem;
    padding: 0.9rem 1rem; color: #fff; font: 400 14.5px/1.4 'Inter', sans-serif;
    transition: border-color .2s ease, background .2s ease;
    width: 100%; box-sizing: border-box;
}
.form-card input::placeholder, .form-card textarea::placeholder { color: #444; }
.form-card input:hover, .form-card select:hover, .form-card textarea:hover { border-color: #333; }
.form-card input:focus, .form-card select:focus, .form-card textarea:focus { outline: none; border-color: var(--color-primary); background: #131313; }
.form-card textarea { min-height: 160px; resize: vertical; }
.form-card .check { display: flex; align-items: flex-start; gap: 0.7rem; font: 300 13px/1.6 'Inter', sans-serif; color: #777; margin: 0.25rem 0 1.5rem; }
.form-card .check input { accent-color: var(--color-primary); margin-top: 3px; flex-shrink: 0; width: auto; }
.form-card .check a { color: var(--color-primary); text-decoration: none; font-size: inherit; }
.form-card .check a:hover { text-decoration: underline; }
.form-card .submit-row { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.form-card .submit-row button { padding: 0.9rem 2rem; width: auto; }
.form-card .submit-row button::after { content: none; }
.form-card .submit-row button svg { width: 15px; height: 15px; flex-shrink: 0; }
.form-card .submit-row .note { font: 300 12px/1.5 'Inter', sans-serif; color: #555; }
.map-section .map-info .btn.outline::after { content: none; }
.map-section .map-info .btn.outline svg { width: 14px; height: 14px; color: var(--color-primary); flex-shrink: 0; }

.info-aside { display: flex; flex-direction: column; }
.info-block { padding: 1.4rem 0; border-bottom: 1px solid #1a1a1a; }
.info-block:first-child { padding-top: 0; }
.info-block:last-child { border-bottom: 0; padding-bottom: 0; }
.info-block .label { font: 500 11px/1 'Inter', sans-serif; letter-spacing: 0.2em; text-transform: uppercase; color: var(--color-primary); }
.info-block h3 { font: 700 1.05rem/1.25 'Montserrat', sans-serif; color: #fff; margin: 0.5rem 0 0.85rem; }
.info-block p, .info-block a { font: 400 14px/1.6 'Inter', sans-serif; color: #c9c9c9; margin: 0; display: block; text-decoration: none; }
.info-block a:hover { color: var(--color-primary); }
.info-block .row-line { display: flex; gap: 0.6rem; align-items: center; margin-top: 0.4rem; }
.info-block .row-line .ic {
    width: 28px; height: 28px; border-radius: 50%;
    background: rgba(211, 47, 47, 0.12); color: var(--color-primary);
    display: inline-flex; align-items: center; justify-content: center;
    font: 700 12px/1 'Montserrat', sans-serif; flex: 0 0 auto;
}
.info-block .hours { display: grid; grid-template-columns: auto 1fr; gap: 0.4rem 1.5rem; font: 400 13.5px/1.5 'Inter', sans-serif; }
.info-block .hours dt { color: #9E9E9E; }
.info-block .hours dd { color: #fff; margin: 0; }

.map-section { padding: 2rem 0 6rem; }
.map-section .map-card {
    display: grid; grid-template-columns: 1fr 2.2fr; gap: 0;
    background: #0a0a0a; border: 1px solid #1a1a1a; border-radius: 0.7rem;
    overflow: hidden;
}
.map-section .map-info { padding: 2rem 1.85rem; display: flex; flex-direction: column; gap: 0.4rem; align-self: center; }
.map-section .map-info .label { font: 500 11px/1 'Inter', sans-serif; letter-spacing: 0.2em; text-transform: uppercase; color: var(--color-primary); }
.map-section .map-info h2 { font: 700 1.4rem/1.2 'Montserrat', sans-serif; color: #fff; margin: 0.5rem 0 0.6rem; }
.map-section .map-info p { font: 400 14.5px/1.7 'Inter', sans-serif; color: #c9c9c9; margin: 0 0 1.25rem; }
.map-section .map-info .btn { align-self: flex-start; }
.map-section .map-frame { position: relative; min-height: 340px; }
.map-section .map-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; filter: invert(0.92) hue-rotate(180deg) saturate(0.4); }

.form-msg {
    display: none;
    margin-bottom: 1rem;
    padding: 0.85rem 1rem;
    border-radius: 0.4rem;
    font: 400 13.5px/1.5 'Inter', sans-serif;
}
.form-msg.success { display: block; background: rgba(76, 175, 80, 0.1); border: 1px solid rgba(76, 175, 80, 0.4); color: #b9e9b9; }
.form-msg.error { display: block; background: rgba(211, 47, 47, 0.1); border: 1px solid rgba(211, 47, 47, 0.4); color: #f4a4a4; }

@media (max-width: 900px) {
    /* Hero cards */
    .contact-cards { grid-template-columns: 1fr 1fr; grid-template-rows: auto; margin-top: 1.75rem; }
    .cc-email { grid-row: auto; grid-column: 1 / 3; }
    .cc-social { grid-column: 1 / 3; }
    .cc-photo { display: none; }

    /* Form section */
    .contact-split { padding: 3.5rem 0 4rem; }
    .contact-split .grid {
        grid-template-columns: 1fr;
        grid-template-areas: "intro" "form" "hours";
        gap: 2rem;
    }

    /* Map */
    .map-section .map-card { grid-template-columns: 1fr; }
    .map-section .map-frame { min-height: 0; }
    .map-section .map-frame iframe { position: relative; height: 280px; }
}

@media (max-width: 600px) {
    /* Hero */
    .page-hero { padding: 3.5rem 0 2.5rem; }
    .contact-cards { grid-template-columns: 1fr; }
    .cc-email { grid-column: auto; }
    .cc-social { grid-column: auto; flex-direction: column; align-items: flex-start; gap: 1rem; }
    .contact-card { padding: 1.5rem 1.25rem; }

    /* Form */
    .form-card { padding: 2rem 1.25rem; }
    .form-card .row { grid-template-columns: 1fr; }
    .contact-split { padding: 2.5rem 0 3rem; }

    /* Map */
    .map-section { padding: 1.5rem 0 3rem; }
}
