.contact-hero{max-width:var(--max-width);padding:var(--space-9) var(--gutter) var(--space-8);border-bottom:1px solid var(--color-rule);margin:0 auto}.contact-hero h1{font-family:var(--type-display);font-size:max(72px,min(9vw,144px));line-height:var(--lh-tight);letter-spacing:var(--tracking-display);max-width:14ch;margin:0}.contact-hero h1 em{color:var(--color-brand);font-style:italic}.contact-hero .deck{margin-top:var(--space-5);max-width:56ch;font-family:var(--type-display);font-size:var(--fs-3xl);letter-spacing:var(--tracking-tight);color:var(--color-ink-2);line-height:1.35}.contact-hero .deck em{color:var(--color-brand);font-style:italic}.contact-cta{margin-top:var(--space-6);gap:var(--space-3);flex-wrap:wrap;display:flex}.contact-cta a{min-height:var(--touch-cta);font-family:var(--type-ui);font-weight:var(--fw-semibold);font-size:var(--fs-sm);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--color-ink);color:var(--color-ink);background:var(--color-paper);border-radius:var(--radius-1);transition:background var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out);justify-content:center;align-items:center;padding:14px 22px;text-decoration:none;display:inline-flex}.contact-cta a.primary{background:var(--color-brand);color:var(--color-on-brand);border-color:var(--color-brand)}.contact-cta a.primary:hover{background:var(--color-brand-700)}.contact-cta a.ghost:hover{background:var(--color-ink);color:var(--color-paper)}.contact-info{max-width:var(--max-width);padding:var(--space-8) var(--gutter);border-bottom:1px solid var(--color-rule);margin:0 auto}.info-grid{gap:var(--space-5);grid-template-columns:repeat(4,1fr);display:grid}.info-card{padding:var(--space-5) 0 0;border-top:1px solid var(--color-ink);flex-direction:column;gap:6px;min-width:0;display:flex}.info-card .lbl{font-family:var(--type-num);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--color-ink-3);font-size:10px}.info-card .val{font-family:var(--type-display);font-size:var(--fs-2xl);letter-spacing:var(--tracking-tight);color:var(--color-ink);word-break:break-word;line-height:1.15;text-decoration:none}.info-card a.val:hover{color:var(--color-brand)}.info-card .val-stack{font-size:var(--fs-xl);line-height:1.3}.hours-list{font-family:var(--type-num);font-size:var(--fs-sm);letter-spacing:var(--tracking-mono);text-transform:uppercase}.hours-list>div{border-bottom:1px solid var(--color-rule);justify-content:space-between;padding:6px 0;display:flex}.hours-list>div:last-child{border-bottom:0}.hours-list>div span:last-child{color:var(--color-ink);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.hours-list .today{background:var(--color-paper-2);border-left:2px solid var(--color-brand);margin:0 -8px;padding:8px}.social-row{margin-top:var(--space-6);gap:var(--space-3);display:flex}.social-btn{border:1px solid var(--color-ink);background:var(--color-paper);font-family:var(--type-ui);font-weight:var(--fw-semibold);font-size:var(--fs-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink);border-radius:var(--radius-1);transition:background var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out);flex:1;justify-content:space-between;align-items:center;padding:14px 18px;text-decoration:none;display:inline-flex}.social-btn:hover{background:var(--color-ink);color:var(--color-paper)}.contact-map-section{border-bottom:1px solid var(--color-rule);position:relative}.contact-map{background:var(--color-paper-2);width:100%;height:480px}.contact-map .leaflet-popup-content-wrapper{border-radius:var(--radius-1);border:1px solid var(--color-ink)}.contact-map .leaflet-popup-content{font-family:var(--type-ui);font-size:var(--fs-sm);margin:12px 14px;line-height:1.4}.contact-map .leaflet-popup-content strong{font-family:var(--type-display);font-style:italic;font-size:var(--fs-lg);color:var(--color-brand);margin-bottom:4px;display:block}.map-directions{z-index:1000;background:var(--color-paper);border:1px solid var(--color-ink);font-family:var(--type-num);font-size:var(--fs-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--color-ink);border-top-left-radius:var(--radius-1);transition:background var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out);border-bottom:0;border-right:0;padding:10px 14px;text-decoration:none;position:absolute;bottom:0;right:0}.map-directions:hover{background:var(--color-ink);color:var(--color-paper)}.contact-form-section{max-width:800px;padding:var(--space-9) var(--gutter);border-bottom:1px solid var(--color-rule);margin:0 auto}.cfs-head{margin-bottom:var(--space-6)}.cfs-head h2{font-family:var(--type-display);font-size:var(--fs-7xl);letter-spacing:var(--tracking-display);margin:0 0 var(--space-3)}.cfs-head h2 em{color:var(--color-brand);font-style:italic}.cfs-head p{font-size:var(--fs-lg);color:var(--color-ink-3);max-width:56ch;line-height:1.5}.contact-form .field-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.contact-form .field-grid .span-2{grid-column:span 2}.contact-form .field{flex-direction:column;gap:6px;min-width:0;display:flex}.contact-form .field label{font-family:var(--type-num);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--color-ink-3);font-size:10px}.contact-form .field label .req{color:var(--color-red)}.contact-form .field label .opt{color:var(--color-ink-3);font-weight:var(--fw-regular);text-transform:none;letter-spacing:0;font-size:10px}.contact-form .field input,.contact-form .field textarea{font:inherit;font-size:var(--fs-base);border:1px solid var(--color-rule);background:var(--color-paper);color:var(--color-ink);border-radius:var(--radius-1);min-height:48px;transition:border-color var(--dur-base) var(--ease-out);padding:12px 14px}.contact-form .field textarea{resize:vertical;min-height:140px;line-height:1.5}.contact-form .field input:focus,.contact-form .field textarea:focus{border-color:var(--color-brand);outline:none}.submit-row{margin-top:var(--space-5);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.submit-row .privacy-note{font-family:var(--type-num);font-size:var(--fs-xs);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--color-ink-3);max-width:36ch}.submit-row .cta-solid{background:var(--color-brand);color:var(--color-on-brand);font-family:var(--type-ui);font-weight:var(--fw-semibold);font-size:var(--fs-sm);letter-spacing:.06em;text-transform:uppercase;border-radius:var(--radius-1);min-height:var(--touch-cta);cursor:pointer;transition:background var(--dur-base) var(--ease-out);border:0;align-items:center;gap:10px;padding:14px 22px;display:inline-flex}.submit-row .cta-solid:hover{background:var(--color-brand-700)}.form-status{padding:var(--space-3) var(--space-4);margin-bottom:var(--space-5);border:1px solid var(--color-rule);background:var(--color-paper-2);font-size:var(--fs-sm);border-radius:var(--radius-1);line-height:1.4}.form-status.success{border-color:var(--color-brand);color:var(--color-ink);background:#3847780f}.form-status.error{border-color:var(--color-red);color:var(--color-ink);background:#dc1f2a0f}@media (max-width:760px){.contact-hero{padding:var(--space-6) var(--gutter-mb);max-width:none}.contact-hero h1{max-width:none;font-size:max(56px,min(13vw,80px))}.contact-hero .deck{margin-top:var(--space-4);font-size:var(--fs-2xl);max-width:none;line-height:1.3}.contact-cta{margin-top:var(--space-5);flex-direction:column}.contact-cta a{width:100%}.contact-info{padding:var(--space-6) var(--gutter-mb);max-width:none}.info-grid{gap:var(--space-4);grid-template-columns:1fr}.info-card{padding-top:var(--space-4)}.info-card .val{font-size:var(--fs-xl)}.info-card .val-stack{font-size:var(--fs-lg)}.social-row{margin-top:var(--space-5);flex-direction:column}.social-btn{width:100%}.contact-map{height:360px}.map-directions{padding:8px 12px;font-size:10px}.contact-form-section{padding:var(--space-7) var(--gutter-mb);max-width:none}.cfs-head h2{font-size:var(--fs-5xl)}.cfs-head p{font-size:var(--fs-base);max-width:none}.contact-form .field-grid{gap:var(--space-3);grid-template-columns:1fr}.contact-form .field-grid .span-2{grid-column:span 1}.submit-row{align-items:stretch;gap:var(--space-3);flex-direction:column-reverse}.submit-row .cta-solid{justify-content:center;width:100%}.submit-row .privacy-note{text-align:center;max-width:none}}