/* ============================================================
   Contact page — L'Ambroisie & L'Espace Canal
   Scoped to .contact-page. Matches "Le Journal" identity:
   oxblood #770f00 + gold #cc9b56, Cormorant headings + Montserrat.
   Restyle only — form markup / names / JS untouched.
   ============================================================ */
.contact-page {
    --ox: #770f00;
    --ox-deep: #560a00;
    --gold: #cc9b56;
    --gold-deep: #b07f38;
    --ink: #2a211d;
    --muted: #8a7d74;
    --paper: #fbf8f3;
    --rule: #e8ded0;
}

/* section backgrounds -> warm paper */
.contact-page .section_wrapper,
.contact-page .section_wrapper1,
.contact-page .section_wrapper2 { background: var(--paper); }

/* ---- section headings ---- */
.contact-page .cont_text_holder .title,
.contact-page .cont_text_holder h3.title {
    font-family: "Cormorant Garamond", Georgia, serif !important;
    font-weight: 600 !important;
    font-size: clamp(1.6rem, 3vw, 2.15rem) !important;
    line-height: 1.18 !important;
    color: var(--ox) !important;
    text-transform: none !important;
    letter-spacing: .002em !important;
    position: relative;
    padding-top: .55em;
    margin-bottom: .6em;
}
.contact-page .cont_text_holder .title::before {
    content: ""; display: block;
    width: 34px; height: 2px; background: var(--gold);
    margin-bottom: 16px;
}

/* eyebrow / highlight labels */
.contact-page .highlight {
    color: var(--gold-deep) !important;
    font-weight: 600 !important;
    letter-spacing: .22em !important;
    font-size: 12px !important;
}

/* body copy + list items */
.contact-page .cont_text_holder p { color: var(--ink); }
.contact-page .cont_text_holder a { color: var(--ox); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--gold); }
.contact-page .cont_text_holder a:hover { color: var(--gold-deep); }
.contact-page .cont_text_holder ul { list-style: none; padding-left: 0; }
.contact-page .cont_text_holder ul li { position: relative; padding: 6px 0 6px 26px; color: var(--ink); line-height: 1.6; }
.contact-page .cont_text_holder ul li .fa,
.contact-page .cont_text_holder ul li .fa-angle-right { color: var(--gold); position: absolute; left: 2px; top: 9px; }

/* ---- buttons / CTAs on this page ---- */
.contact-page .btn-black,
.contact-page a.btn-black,
.contact-page .frm-contact button {
    background: var(--ox) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 2px !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 12px !important; font-weight: 600 !important;
    letter-spacing: .18em !important; text-transform: uppercase !important;
    padding: 15px 32px !important;
    transition: background .2s ease, transform .2s ease !important;
    box-shadow: none !important;
}
.contact-page .btn-black:hover,
.contact-page a.btn-black:hover,
.contact-page .frm-contact button:hover {
    background: var(--gold) !important; color: var(--ox) !important; transform: translateY(-2px);
}

/* ---- the form as an elegant card ---- */
.contact-page .form-wrap {
    background: #fff;
    border: 1px solid var(--rule);
    border-radius: 4px;
    padding: 40px 38px 34px;
    box-shadow: 0 30px 60px -38px rgba(42,33,29,.4);
    max-width: 940px;
}
.contact-page .form-group { padding: 10px !important; }
.contact-page .form-group .form-control {
    border: 1px solid #d9cfc0 !important;
    box-shadow: none !important;
    background: #fdfbf7 !important;
    border-radius: 2px !important;
    padding: .7rem .85rem !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 13.5px !important;
    color: var(--ink) !important;
    letter-spacing: .04em;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease !important;
}
.contact-page .form-group .form-control::placeholder {
    color: #a99f95 !important; letter-spacing: .08em; font-size: 12px;
}
.contact-page .form-group .form-control:focus {
    border-color: var(--ox) !important;
    background: #fff !important;
    box-shadow: 0 0 0 3px rgba(119,15,0,.08) !important;
    outline: 0 !important;
}
.contact-page .form-group textarea.form-control { min-height: 140px; resize: vertical; }
.contact-page .form-group small { color: var(--muted); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }

/* AJAX message area */
.contact-page #msg1-contact:not(:empty) {
    padding: 12px 16px; margin-bottom: 8px; border-radius: 2px;
    font-family: "Montserrat", sans-serif; font-size: 14px;
}

/* required-fields note */
.contact-page .contactform_holder .highlight.no-letterspace {
    letter-spacing: .04em !important; color: var(--muted) !important; font-weight: 500 !important;
}

@media (max-width: 600px) {
    .contact-page .form-wrap { padding: 26px 18px 22px; }
}

/* ============================================================
   Contact layout (cx-*) — clean centered sections, map+info grid
   ============================================================ */
.contact-page .cx-section { padding: 76px 0; background: var(--paper); }
.contact-page .cx-section.cx-alt { background: #fff; }
.contact-page .cx-wrap { max-width: 1080px; margin: 0 auto; padding: 0 24px; }
.contact-page .cx-wrap.cx-narrow { max-width: 780px; }
.contact-page .cx-head { max-width: 720px; margin: 0 auto 46px; }
.contact-page .cx-head.cx-center { text-align: center; }
.contact-page .cx-eyebrow {
    font-family: "Montserrat", sans-serif; font-size: 12px; font-weight: 600;
    letter-spacing: .28em; text-transform: uppercase; color: var(--gold-deep); margin: 0 0 14px;
}
.contact-page .cx-title {
    font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600;
    font-size: clamp(2rem, 4.5vw, 3rem); line-height: 1.1; color: var(--ox); margin: 0;
}
.contact-page .cx-lede {
    font-family: "Montserrat", sans-serif; font-size: 15px; line-height: 1.75;
    color: var(--muted); max-width: 600px; margin: 16px auto 0;
}

.contact-page .cx-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: stretch; }
.contact-page .cx-info { align-self: center; }
.contact-page .cx-info p { font-family: "Montserrat", sans-serif; font-size: 15px; line-height: 1.8; color: var(--ink); margin: 0 0 14px; }
.contact-page .cx-info .cx-eyebrow { margin-bottom: 18px; }
.contact-page .cx-info p a { color: var(--ox); text-decoration: none; border-bottom: 1px solid var(--gold); }
.contact-page .cx-info p a:hover { color: var(--gold-deep); }
.contact-page .cx-info .cx-btn { margin-top: 10px; }
.contact-page .cx-map { min-height: 380px; border-radius: 4px; overflow: hidden; box-shadow: 0 26px 52px -32px rgba(42,33,29,.45); }
.contact-page .cx-map iframe { width: 100%; height: 100%; min-height: 380px; border: 0; display: block; }

.contact-page .cx-card { background: var(--paper); border: 1px solid var(--rule); border-radius: 4px; padding: 38px 34px; }
.contact-page .cx-section.cx-alt .cx-card { background: #fff; }
.contact-page .cx-h3 {
    font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600;
    font-size: 1.7rem; line-height: 1.2; color: var(--ox); margin: 0 0 18px;
}
.contact-page .cx-h3::before { content: ""; display: block; width: 32px; height: 2px; background: var(--gold); margin-bottom: 15px; }
.contact-page .cx-card ul { list-style: none; padding: 0; margin: 0 0 22px; }
.contact-page .cx-card ul li { position: relative; padding: 7px 0 7px 24px; font-family: "Montserrat", sans-serif; font-size: 14.5px; line-height: 1.6; color: var(--ink); }
.contact-page .cx-card ul li::before { content: ""; position: absolute; left: 0; top: 14px; width: 7px; height: 7px; border: 1.5px solid var(--gold); border-radius: 50%; }

.contact-page .cx-btn {
    display: inline-block; background: var(--ox); color: #fff; text-decoration: none; border: none;
    font-family: "Montserrat", sans-serif; font-size: 12px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
    padding: 15px 32px; border-radius: 2px; transition: background .2s, transform .2s;
}
.contact-page .cx-btn:hover { background: var(--gold); color: var(--ox); transform: translateY(-2px); }
.contact-page .cx-btn-outline {
    display: inline-block; background: transparent; color: var(--ox); text-decoration: none;
    font-family: "Montserrat", sans-serif; font-size: 11.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
    padding: 13px 26px; border: 1px solid var(--ox); border-radius: 2px; transition: all .2s;
}
.contact-page .cx-btn-outline:hover { background: var(--ox); color: #fff; }

.contact-page .cx-newsletter { background: var(--ox); color: #fff; padding: 66px 0; text-align: center; }
.contact-page .cx-newsletter .cx-h3 { color: #fff; }
.contact-page .cx-newsletter .cx-h3::before { margin-left: auto; margin-right: auto; }
.contact-page .cx-newsletter p { font-family: "Montserrat", sans-serif; font-size: 15px; line-height: 1.75; color: rgba(255,255,255,.85); max-width: 520px; margin: 0 auto 26px; }
.contact-page .cx-newsletter .cx-btn { background: var(--gold); color: var(--ox); }
.contact-page .cx-newsletter .cx-btn:hover { background: #e0b877; }

.contact-page .cx-notice { text-align: center; max-width: 720px; }
.contact-page .cx-notice h3 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; font-size: 1.7rem; color: var(--ox); margin: 0 0 14px; }
.contact-page .cx-notice p { font-family: "Montserrat", sans-serif; font-size: 15px; line-height: 1.75; color: var(--muted); margin: 0; }
.contact-page .cx-notice b { color: var(--ox-deep); }

.contact-page .cx-note { font-family: "Montserrat", sans-serif; font-size: 13.5px; color: var(--muted); text-align: center; margin-top: 26px; line-height: 1.9; }
.contact-page .cx-note a { color: var(--ox); }

/* opening-hours schedule rows */
.contact-page .cx-hours { margin-top: 22px; border-top: 1px solid var(--rule); padding-top: 18px; }
.contact-page .cx-hours-label {
    font-family: "Montserrat", sans-serif; font-size: 11px; font-weight: 600;
    letter-spacing: .22em; text-transform: uppercase; color: var(--gold-deep); margin: 0 0 8px;
}
.contact-page .cx-hours-row {
    display: flex; justify-content: space-between; align-items: baseline;
    padding: 8px 0; font-family: "Montserrat", sans-serif; font-size: 14.5px;
    border-bottom: 1px dashed var(--rule);
}
.contact-page .cx-hours-row:last-child { border-bottom: 0; }
.contact-page .cx-hours-row .day { color: var(--ox); font-weight: 600; letter-spacing: .03em; }
.contact-page .cx-hours-row .time { color: var(--ink); }

/* burgundy CTA box with gold inner rule (matches blog-detail) */
.contact-page .cx-cta {
    position: relative; overflow: hidden; text-align: center;
    background: var(--ox); color: #fff;
    padding: 48px 34px; border-radius: 4px; margin-top: 50px;
}
.contact-page .cx-cta::after {
    content: ""; position: absolute; inset: 10px; pointer-events: none;
    border: 1px solid rgba(204,155,86,.45); border-radius: 2px;
}
.contact-page .cx-cta > * { position: relative; z-index: 1; }
.contact-page .cx-cta .cx-eyebrow { color: var(--gold); margin-bottom: 12px; }
.contact-page .cx-cta h3 {
    font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600;
    font-size: 2rem; line-height: 1.2; color: #fff; margin: 0 0 14px;
}
.contact-page .cx-cta p {
    font-family: "Montserrat", sans-serif; font-size: 15px; line-height: 1.75;
    color: rgba(255,255,255,.85); max-width: 520px; margin: 0 auto 26px;
}
.contact-page .cx-cta .cx-btn { background: var(--gold); color: var(--ox); }
.contact-page .cx-cta .cx-btn:hover { background: #e0b877; color: var(--ox); }

/* thin grey line under the nav once scrolled (past 80px) */
.contact-page .header.fixed-nav { border-bottom: 1px solid #e4e4e4 !important; }
/* keep the footer white like the rest of the site (not the contact paper tone) */
.contact-page .footer-wrap { background: #fff; }

@media (max-width: 820px) {
    .contact-page .cx-grid-2 { grid-template-columns: 1fr; gap: 34px; }
    .contact-page .cx-map, .contact-page .cx-map iframe { min-height: 300px; }
    .contact-page .cx-section { padding: 54px 0; }
    .contact-page .cx-newsletter { padding: 50px 0; }
}
