/* Contact on photography: scoped to this page. */
.contact-page,.contact-page .site {background:#faf7f1;width:100%;max-width:none;}
.contact-scene {position:relative;isolation:isolate;display:grid;grid-template-columns:1.15fr 1fr;gap:8%;align-items:center;min-height:760px;padding:175px 6% 120px;color:#faf7f1;}
.contact-scene__photo {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.12) sepia(.16) brightness(.65);z-index:-3;}
.contact-scene::before {content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(22,19,16,.58),rgba(22,19,16,.15));}
.contact-scene::after {content:'';position:absolute;inset:auto 0 0;height:75px;background:linear-gradient(transparent,#faf7f1);z-index:-1;pointer-events:none;}
.contact-scene h1 {font-family:var(--font-serif);font-size:clamp(40px,4.2vw,64px);font-weight:400;line-height:1.1;margin:0 0 34px;color:#faf7f1;}
.contact-scene__label {font-size:12px;letter-spacing:.08em;margin:0 0 10px;color:#ddd8cf;}
.contact-scene__phone {font-family:var(--font-serif);font-size:clamp(34px,3.8vw,58px);color:#faf7f1;text-decoration:none;white-space:nowrap;line-height:1.2;}
.contact-scene__note {font-size:16px;line-height:1.7;max-width:43ch;margin:24px 0 28px;color:#faf7f1;}
.contact-scene__actions {display:flex;align-items:center;gap:28px;flex-wrap:wrap;}
.contact-call {display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:15px 26px;min-height:50px;border:1px solid rgba(255,255,255,.45);border-radius:12px;background:linear-gradient(135deg,rgba(255,255,255,.23),rgba(255,255,255,.08));backdrop-filter:blur(14px);box-shadow:inset 0 1px 1px rgba(255,255,255,.3);font-size:14px;color:#faf7f1;text-decoration:none;transition:transform .25s,box-shadow .25s;}
.contact-email {color:#faf7f1;display:inline-flex;gap:18px;font-size:14px;text-decoration:none;transition:transform .25s,text-shadow .25s;}
.contact-call:hover,.contact-email:hover {transform:scale(1.035);text-shadow:0 3px 10px rgba(0,0,0,.4);}
.contact-details {padding:40px;border:1px solid rgba(255,255,255,.5);border-radius:12px;background:linear-gradient(135deg,rgba(255,255,255,.16),rgba(255,255,255,.06));backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:inset 0 1px 1px rgba(255,255,255,.3);}
.contact-details .field+.field {margin-top:26px;padding-top:24px;border-top:1px solid rgba(255,255,255,.18);}
.contact-details .label {color:#bed1da;font-size:12px;letter-spacing:.1em;margin:0 0 10px;}
.contact-details p,.contact-details a {font-size:15px;line-height:1.65;color:#faf7f1;margin:0;text-decoration:none;overflow-wrap:anywhere;}
.contact-details a:hover {text-decoration:underline;}
.contact-page .contact-map-wrap {padding:24px 6% 35px;background:#faf7f1;display:block;}
.contact-page .contact-map {width:100%;max-width:none;height:310px;border-radius:12px;overflow:hidden;background:#e6e3dc;}
.contact-page .contact-map iframe {width:100%;height:100%;filter:saturate(.35);}
.contact-page .contact-info-box {width:100%;max-width:none;padding:18px 0 0;background:none;box-shadow:none;border:0;text-align:left;}
.contact-page .contact-info-box p {font-size:14px;line-height:1.6;margin:0;}
@media(max-width:767px){
.contact-scene {display:block;min-height:0;padding:145px 22px 80px;}
.contact-scene h1 {font-size:42px;margin-bottom:26px;}
.contact-scene__phone {font-size:38px;}
.contact-scene__note {font-size:15px;margin-top:20px;}
.contact-scene__actions {gap:22px;}
.contact-details {padding:25px;margin-top:36px;}
.contact-details .field+.field {margin-top:18px;padding-top:18px;}
.contact-page .contact-map-wrap {padding:12px 22px 26px;}
.contact-page .contact-map {height:260px;}
}
@media(prefers-reduced-motion:reduce){.contact-call,.contact-email {transition:none;}}

/* One compact location block, aligned with the footer below. */
.contact-page .contact-map-wrap {display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr);align-items:center;gap:36px;padding:24px 5% 32px;background:#faf7f1;}
.contact-page .contact-map {height:250px;border:1px solid rgba(92,122,138,.16);box-shadow:none;}
.contact-page .contact-info-box {padding:0;}
.contact-page .contact-info-box p {font-size:15px;line-height:1.75;max-width:34ch;}
.contact-directions {display:inline-flex;gap:16px;color:#5c7a8a;text-decoration:none;font-size:14px;margin-top:22px;}
.contact-directions:hover {text-decoration:underline;}
.contact-page .site-footer {position:relative;padding-top:26px;}
.contact-page .site-footer::before {content:'';position:absolute;top:0;left:5%;right:5%;height:1px;background:rgba(92,122,138,.16);}
@media(max-width:767px){.contact-page .contact-map-wrap {grid-template-columns:1fr;padding:12px 22px 28px;gap:18px;}.contact-page .contact-map {height:230px;}.contact-page .contact-info-box p {max-width:none;font-size:14px;}.contact-page .site-footer::before {left:22px;right:22px;}}

/* Full-width tonal transition, matching the fade below the contact photograph. */
.contact-page .contact-map-wrap {padding-bottom:76px;}
.contact-page .site-footer {padding-top:44px;z-index:2;}
.contact-page .site-footer::before {top:-76px;left:0;right:0;height:104px;background:linear-gradient(180deg,rgba(250,247,241,0) 0%,rgba(79,75,68,.12) 20%,rgba(79,75,68,.42) 38%,rgba(79,75,68,.28) 55%,rgba(79,75,68,.1) 76%,rgba(250,247,241,0) 100%);filter:none;pointer-events:none;}