[hidden] { display: none !important; }
.contact-main { max-width: 1440px; margin: auto; padding: 150px 6vw 72px; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 6vw; }
.contact-eyebrow { font-size: 12px; letter-spacing: .15em; color: #b4c4aa; margin-bottom: 22px; }
.contact-intro h1 { font-size: clamp(62px, 6.8vw, 108px); line-height: .96; font-weight: 400; margin-bottom: 32px; }
.contact-copy { max-width: 440px; font-size: 15px; line-height: 1.9; color: #e5ecdf; }
.contact-book-link { display: inline-block; margin-top: 24px; font-size: 13px; border-bottom: 1px solid #b4c4aa; padding-bottom: 6px; }
.contact-photo { margin-top: 40px; max-width: 400px; }
.contact-photo img { width: 100%; height: 300px; object-fit: cover; }
.contact-photo figcaption { font-size: 12px; margin-top: 12px; color: #b4c4aa; }
.contact-booking { min-width: 0; scroll-margin-top: 24px; }
.contact-booking h2 { font-family: Baskerville, 'Times New Roman', serif; font-size: clamp(30px, 3vw, 42px); line-height: 1.15; margin-bottom: 12px; }
.contact-booking > p:not(.contact-eyebrow) { font-size: 13px; line-height: 1.8; color: #e5ecdf; }
.calendly-inline-widget { margin-top: 24px; background: #f7f5f0; border-radius: 5px; overflow: hidden; }
.contact-fallback { margin-top: 16px; }
.contact-fallback a { text-decoration: underline; text-underline-offset: 4px; }
.contact-footer { border-top: 1px solid #b4c4aa40; margin: 0 6vw; padding: 26px 0; display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; font-size: 12px; color: #b4c4aa; }
a:focus-visible, button:focus-visible { outline: 2px solid #f7f5f0; outline-offset: 5px; }
.skip-link { position: absolute; top: -100px; left: 20px; z-index: 100; background: #f7f5f0; color: #172013; padding: 12px; }
.skip-link:focus { top: 20px; }
@media (max-width: 900px) { .contact-main { grid-template-columns: 1fr; padding-top: 120px; gap: 48px; } .contact-intro h1 br { display: none; } .contact-photo { max-width: none; } .contact-photo img { height: 260px; } }
@media (max-width: 639px) { body > header { right: 52px; padding-left: 12px; padding-right: 0; } body > header h2 { letter-spacing: .1em; font-size: 13px; } .contact-main { padding: 105px 16px 40px; } .contact-intro h1 { font-size: 64px; } .contact-eyebrow { font-size: 10px; } .contact-photo { margin-top: 30px; } .contact-footer { margin: 0 16px; flex-direction: column; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
