.contact-page { max-width:1120px; margin:0 auto; }
.contact-welcome { display:grid; grid-template-columns:1.08fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:center; }
.contact-eyebrow { display:block; color:var(--accent-gold); font-size:.75rem; font-weight:600; text-transform:uppercase; letter-spacing:.12em; margin-bottom:.9rem; }
.contact-welcome h1 { font-size:clamp(2.6rem,4.5vw,4.2rem); line-height:1.02; margin-bottom:1.5rem; }
.contact-lead { font-size:1.15rem; line-height:1.8; margin-bottom:1.8rem; max-width:520px; }
.contact-personal { margin:1rem 0 0; }
.contact-personal a { text-decoration:underline; text-underline-offset:3px; }
.contact-portrait { margin:0; }
.contact-portrait img { display:block; width:100%; aspect-ratio:1.05; object-fit:cover; object-position:center; border-radius:3px; }
.contact-portrait figcaption { font-family:var(--font-serif); font-style:italic; font-size:1.1rem; color:var(--text-secondary); padding-top:.75rem; }
.contact-direct { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:3.5rem 0 4rem; padding:1.8rem 0; border-block:1px solid var(--border-light); }
.contact-direct > div { padding:0 1.5rem; }
.contact-direct > div:first-child { padding-left:0; }
.contact-direct > div + div { border-left:1px solid var(--border-light); }
.contact-direct .contact-eyebrow { margin-bottom:.5rem; }
.contact-direct-link { display:inline-block; color:var(--text-primary); font-size:1.25rem; overflow-wrap:anywhere; text-decoration:underline; text-decoration-color:var(--border-medium); text-underline-offset:5px; }
.contact-direct p { margin:.7rem 0 0; font-size:.95rem; }
.contact-arrival { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
.contact-arrival h2 { font-size:clamp(1.8rem,3vw,2.4rem); line-height:1.15; }
.contact-arrival address { font-style:normal; margin:1.5rem 0; line-height:1.8; }
.contact-by-appointment { color:var(--accent-gold); font-weight:600; }
.contact-route-card { padding:clamp(1.5rem,3vw,2.5rem); background:linear-gradient(125deg,#f6ede2,#edddc9); border:1px solid var(--border-medium); }
.contact-route-card .contact-navigation-address { font-size:1.5rem; line-height:1.3; font-weight:500; color:var(--text-primary); }
.contact-navigation-address span { display:block; font-size:1rem; margin-top:.35rem; font-weight:400; }
.contact-page .btn { white-space:normal; text-align:center; }
.contact-map-section { margin-top:2.5rem; }
.contact-map-section iframe { display:block; width:100%; height:300px; border:1px solid var(--border-light); border-radius:3px; }
.contact-map-section p { margin:.7rem 0 0; color:var(--text-muted); font-size:.9rem; }
.contact-business { border-top:1px solid var(--border-light); margin-top:3rem; padding-top:1.5rem; }
.contact-business h2 { font-family:var(--font-sans); font-size:1rem; font-weight:500; }
.contact-business dl { display:flex; flex-wrap:wrap; gap:1rem 3rem; font-size:.9rem; }
.contact-business dt { color:var(--text-muted); }
.contact-business dd { margin:0; color:var(--text-secondary); }
@media(max-width:760px) {
 .contact-welcome,.contact-arrival { grid-template-columns:1fr; }
 .contact-welcome { gap:2rem; }
 .contact-portrait img { aspect-ratio:4/3; }
 .contact-direct { grid-template-columns:1fr; margin:2.5rem 0; padding:0; }
 .contact-direct > div,.contact-direct > div:first-child { padding:1.25rem 0; }
 .contact-direct > div + div { border-left:0; border-top:1px solid var(--border-light); }
 .contact-map-section iframe { height:260px; }
}
