/* ==========================================================================
   Contact page — hero (text + rows) and dark "visit the atelier" band
   ========================================================================== */

.soa-contact__hero-grid{align-items:start;}
.soa-contact__h1{font-size:clamp(46px,7vw,108px);line-height:.95;letter-spacing:-.01em;margin-top:18px;max-width:13ch;}
.soa-contact__lead{max-width:50ch;margin-top:clamp(22px,3vw,34px);font-family:var(--font-serif);font-style:italic;font-size:clamp(16px,1.2vw,19px);line-height:1.7;}
.soa-contact__lead p{margin:0 0 1em;}
.soa-contact__lead p:last-child{margin-bottom:0;}
.soa-contact__hero-btn{margin-top:32px;}

.soa-contact__h2{font-size:clamp(30px,3.6vw,48px);line-height:1.06;margin-top:8px;margin-bottom:22px;}

/* ── contact rows ── */
.soa-contact__rows{border-top:1px solid rgba(var(--soa-line-rgb),.18);}
.soa-contact__row{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 18px;padding:20px 0;border-bottom:1px solid rgba(var(--soa-line-rgb),.18);padding-left:var(--pl,0);}
.soa-contact__row-label{flex:1 1 100%;font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--soa-muted);}
.soa-contact__row-value{font-family:var(--font-serif);font-size:clamp(20px,2vw,26px);color:var(--rc,var(--soa-ink));line-height:1.15;}
.soa-contact__row-arrow{margin-left:auto;font-family:var(--font-mono);font-size:14px;color:var(--rc,var(--soa-accent));}

.soa-contact__hours{padding-top:26px;}
.soa-contact__hours-label{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--soa-accent);margin-bottom:10px;}
.soa-contact__hours-text{font-size:15px;line-height:1.7;color:var(--soa-ink-soft);max-width:42ch;}

/* ── visit band ── */
.soa-contact__visit-p{color:var(--soa-dark-fg-soft);}
.soa-contact__visit-media{aspect-ratio:4/5;overflow:hidden;background:var(--soa-dark-card);}
.soa-contact__visit-media img{width:100%;height:100%;object-fit:cover;}
