.contact-page { --contact-red:#c8102e; --contact-burgundy:#671526; --contact-gold:#d9b66d; --contact-cream:#fbf6ec; --contact-ink:#3e342f; --contact-muted:#746b64; }
.contact-inquiry-section { position:relative; overflow:hidden; padding:clamp(3.4rem,6vw,5.8rem) 0 4.5rem; background:linear-gradient(135deg,#fffdf8 0%,#fbf6ec 56%,#fffdfa 100%); }
.contact-inquiry-section::before { position:absolute; top:-210px; right:-155px; width:460px; height:460px; border:1px solid #c69a4c16; border-radius:50%; box-shadow:0 0 0 32px #c69a4c08,0 0 0 68px #c69a4c06; content:""; pointer-events:none; }
.contact-inquiry-section>.container { position:relative; z-index:1; }
.contact-content-grid { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); align-items:stretch; gap:clamp(1.25rem,3.2vw,3rem); }
.contact-info-panel { position:relative; isolation:isolate; overflow:hidden; padding:clamp(1.6rem,3vw,2.55rem); border:1px solid #8c3d4d; border-radius:18px; background:linear-gradient(145deg,#641523 0%,#83192b 54%,#651526 100%); box-shadow:0 20px 48px #4d1b201c; color:#fffaf3; }
.contact-info-panel::after { position:absolute; z-index:-1; right:-100px; bottom:-155px; width:330px; height:330px; border:1px solid #e4bd7250; border-radius:50%; box-shadow:0 0 0 28px #e4bd7210,0 0 0 58px #e4bd7209; content:""; pointer-events:none; }
.contact-eyebrow { display:block; color:#e7c779; font-size:.68rem; font-weight:800; letter-spacing:.19em; }
.contact-info-panel h2 { max-width:440px; margin:.72rem 0 .85rem; color:#fffaf2; font-family:'Playfair Display',Georgia,serif; font-size:clamp(2rem,3.2vw,2.85rem); font-weight:600; line-height:1.08; letter-spacing:-.035em; }
.contact-intro { max-width:430px; margin:0; color:#f2e6e1; font-size:.94rem; line-height:1.75; }
.contact-gold-rule { display:block; width:58px; height:2px; margin:1.5rem 0 1.45rem; background:linear-gradient(90deg,#edcf87,#d4a94e); }
.contact-detail-list { display:grid; gap:.55rem; }
.contact-detail { display:flex; min-width:0; align-items:flex-start; gap:.9rem; padding:.85rem .7rem; border:1px solid #ffffff16; border-radius:11px; color:#fffaf3; transition:background-color .2s ease,border-color .2s ease,transform .2s ease; }
a.contact-detail:hover,.contact-detail:focus-visible { transform:translateY(-2px); border-color:#e9cc816b; background:#ffffff0b; color:#fff; }
.contact-detail-icon { display:grid; width:40px; height:40px; flex:0 0 40px; place-items:center; border:1px solid #e5c77766; border-radius:11px; background:#e5c77714; color:#f0ce7c; font-size:1rem; }
.contact-detail-copy { display:flex; min-width:0; flex-direction:column; gap:.32rem; padding-top:.08rem; }
.contact-detail-label { color:#e7c779; font-size:.63rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.contact-detail-value { color:#fffaf3; font-size:.85rem; line-height:1.6; overflow-wrap:anywhere; }
.contact-detail-action { display:inline-flex; align-items:center; gap:.35rem; margin-top:.08rem; color:#f0d28a; font-size:.69rem; font-weight:700; }
.contact-detail-links { display:flex; flex-wrap:wrap; gap:.25rem .85rem; }
.contact-detail-links a { display:inline-flex; min-height:32px; align-items:center; color:#fffaf3; font-size:.87rem; font-weight:600; transition:color .18s ease; }
.contact-detail-links a:hover { color:#f0d28a; }
.contact-email-value { min-height:32px; }
.contact-form-column { min-width:0; }
.contact-form-panel { height:100%; padding:clamp(1.45rem,3vw,2.45rem); border:1px solid #eee3d4; border-radius:18px; background:#fff; box-shadow:0 18px 48px #49331810; }
.contact-form-heading { margin-bottom:1.55rem; }
.contact-form-heading .contact-eyebrow { color:#a9813f; }
.contact-form-heading h2 { margin:.4rem 0 .45rem; color:var(--contact-red); font-family:'Playfair Display',Georgia,serif; font-size:clamp(1.75rem,2.8vw,2.25rem); font-weight:600; line-height:1.15; }
.contact-form-heading p { max-width:520px; margin:0; color:var(--contact-muted); font-size:.88rem; line-height:1.65; }
.contact-form-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.05rem 1rem; }
.contact-field { display:flex; min-width:0; flex-direction:column; gap:.4rem; }
.contact-field-wide,.contact-submit-row { grid-column:1/-1; }
.contact-field label { color:#443a34; font-size:.76rem; font-weight:700; }
.contact-field label>span,.contact-required-note>span { color:var(--contact-red); }
.contact-field input,.contact-field select,.contact-field textarea { display:block; width:100%; min-width:0; min-height:47px; padding:.72rem .85rem; border:1px solid #e6ddd2; border-radius:8px; outline:0; background:#fffdfa; color:#3e342f; font:400 .88rem/1.45 'DM Sans',sans-serif; transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease; }
.contact-field select { padding-right:2rem; }
.contact-field textarea { min-height:128px; resize:vertical; }
.contact-field input::placeholder,.contact-field textarea::placeholder { color:#9c938b; }
.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus { border-color:#c8102e; background:#fff; box-shadow:0 0 0 3px #c8102e12; }
.contact-field .is-invalid { border-color:#c8102e; background:#fffafa; }
.contact-field .is-invalid:focus { box-shadow:0 0 0 3px #c8102e16; }
.contact-field-error { display:none; color:#b20f27; font-size:.7rem; line-height:1.4; }
.contact-field-error.is-visible { display:block; }
.contact-submit-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:.25rem; }
.contact-submit-button { display:inline-flex; min-height:48px; align-items:center; justify-content:center; gap:.85rem; padding:.78rem 1.2rem; border:1px solid var(--contact-red); border-radius:7px; background:var(--contact-red); color:#fff; font:700 .82rem 'DM Sans',sans-serif; box-shadow:0 8px 18px #c8102e20; transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease; }
.contact-submit-button:hover { transform:translateY(-2px); background:#a90f27; box-shadow:0 12px 24px #c8102e29; }
.contact-submit-button:focus-visible { outline:3px solid #d9b66d; outline-offset:3px; }
.contact-submit-button:disabled { cursor:wait; opacity:.76; transform:none; }
.contact-submit-button[aria-busy="true"] i { animation:contactSpin .8s linear infinite; }
.contact-required-note { color:#81766e; font-size:.68rem; }
.contact-status { display:flex; align-items:flex-start; gap:.65rem; margin:0 0 1rem; padding:.9rem 1rem; border:1px solid transparent; border-radius:10px; font-size:.86rem; line-height:1.5; }
.contact-status>i { flex:0 0 auto; margin-top:.08rem; font-size:1rem; }
.contact-status-success { border-color:#b7dbc3; background:#f0faf3; color:#27663d; }
.contact-status-danger { border-color:#efc4c9; background:#fff4f4; color:#9d1d2e; }
.contact-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; opacity:0!important; pointer-events:none!important; }
.contact-map-frame { margin-top:clamp(2.25rem,4vw,3.5rem); overflow:hidden; border:1px solid #e8ddcd; border-radius:16px; background:#f4ead9; box-shadow:0 12px 32px #4933180d; }
.contact-map-frame iframe { border:0; }
@keyframes contactSpin { to { transform:rotate(360deg); } }
@media (max-width:991.98px) {
  .contact-content-grid { grid-template-columns:minmax(0,1fr); gap:1.25rem; }
  .contact-info-panel { padding:1.5rem; }
  .contact-detail { gap:.65rem; padding:.75rem .55rem; }
  .contact-detail-icon { width:36px; height:36px; flex-basis:36px; }
  .contact-form-panel { padding:1.5rem; }
}
@media (max-width:767.98px) {
  .contact-inquiry-section { padding:2.6rem 0 3rem; }
  .contact-content-grid { grid-template-columns:minmax(0,1fr); gap:1rem; }
  .contact-info-panel { padding:1.55rem; border-radius:16px; }
  .contact-info-panel h2 { max-width:520px; font-size:2.2rem; }
  .contact-intro { font-size:.9rem; }
  .contact-detail-list { gap:.45rem; }
  .contact-detail { padding:.8rem .65rem; }
  .contact-form-panel { padding:1.45rem; border-radius:16px; }
  .contact-form-fields { gap:.9rem; }
  .contact-field input,.contact-field select { min-height:49px; font-size:16px; }
  .contact-field textarea { min-height:132px; font-size:16px; }
  .contact-submit-row { align-items:stretch; flex-direction:column; gap:.65rem; }
  .contact-submit-button { width:100%; min-height:50px; border-radius:9px; }
  .contact-required-note { text-align:right; }
  .contact-map-frame { --bs-aspect-ratio:72%; margin-top:1.8rem; border-radius:14px; }
}
@media (max-width:359.98px) {
  .contact-info-panel,.contact-form-panel { padding:1.1rem; }
  .contact-info-panel h2 { font-size:1.9rem; }
  .contact-detail { gap:.55rem; }
  .contact-detail-value,.contact-detail-links a { font-size:.79rem; }
  .contact-form-heading h2 { font-size:1.7rem; }
}
@media (prefers-reduced-motion:reduce) {
  .contact-detail,.contact-detail-links a,.contact-field input,.contact-field select,.contact-field textarea,.contact-submit-button { transition:none; }
  .contact-submit-button[aria-busy="true"] i { animation:none; }
}
