/* Open editorial layout, with clearly bounded choices and input surfaces. */
body.rc-site[data-page="contact"] .rc-contact-hero {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(48px, 7.5vw, 112px);
  align-items: start;
  padding-block: clamp(64px, 7vw, 108px) 88px;
}
body.rc-site[data-page="contact"] .rc-contact-intro h1 {
  font-size: clamp(48px, 5.4vw, 82px);
  line-height: 1.06;
  letter-spacing: -.052em;
}
body.rc-site[data-page="contact"] .rc-contact-intro > p {
  max-width: 34ch;
  font-size: clamp(16px, 1.3vw, 19px);
  line-height: 1.7;
  margin-top: 28px;
}
body.rc-site[data-page="contact"] .rc-contact-intro .rc-contact-eyebrow {
  margin: 0 0 28px;
  font-size: 11px;
  color: var(--rc-accent);
  letter-spacing: .085em;
}
body.rc-site[data-page="contact"] .rc-contact-form-wrap {
  position: relative;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
body.rc-site[data-page="contact"] .rc-contact-form { margin: 0; }
body.rc-site[data-page="contact"] .rc-contact-chapter {
  min-width: 0;
  border: 0;
  padding: 0;
  margin: 0 0 40px;
}
body.rc-site[data-page="contact"] .rc-contact-chapter legend {
  display: flex;
  align-items: baseline;
  gap: 18px;
  width: 100%;
  padding: 0 0 22px;
  font-size: clamp(21px, 1.8vw, 27px);
  letter-spacing: -.025em;
}
body.rc-site[data-page="contact"] .rc-contact-chapter-number {
  font-size: 11px;
  color: var(--rc-accent);
  letter-spacing: .06em;
  font-variant-numeric: tabular-nums;
}
body.rc-site[data-page="contact"] .rc-contact-field-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 20px 28px;
}
body.rc-site[data-page="contact"] .rc-field { min-width: 0; }
body.rc-site[data-page="contact"] .rc-field label {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 9px;
  font-size: 15px;
  font-weight: 500;
  color: #1d1d1f;
}
body.rc-site[data-page="contact"] .rc-field-required { font-size:11px; font-weight:400; color:var(--rc-accent); }
body.rc-site[data-page="contact"] .rc-field-surface { display: block; position: relative; }
body.rc-site[data-page="contact"] .rc-field :is(input, textarea, select) {
  width: 100%;
  min-height: 58px;
  border: 1px solid #86868b;
  border-radius: 999px;
  background: #f5f5f7;
  padding: 15px 16px;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  font-size: 16px;
  line-height: 1.55;
  transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}
body.rc-site[data-page="contact"] .rc-field-select { margin-bottom: 24px; }
body.rc-site[data-page="contact"] .rc-field select {
  appearance: none;
  -webkit-appearance: none;
  padding-inline-end: 56px;
  color: #1d1d1f;
  cursor: pointer;
}
body.rc-site[data-page="contact"] .rc-field-select-arrow {
  position: absolute;
  width: 24px;
  height: 24px;
  inset-inline-end: 18px;
  top: 50%;
  transform: translateY(-50%);
  color: #1d1d1f;
  pointer-events: none;
}
body.rc-site[data-page="contact"] .rc-field textarea { min-height: 160px; border-radius: 24px; resize: vertical; }
body.rc-site[data-page="contact"] .rc-field :is(input, textarea)::placeholder { color: #6e6e73; opacity: 1; }
body.rc-site[data-page="contact"] .rc-field :is(input, textarea, select):focus {
  background: #fff;
  border-color: var(--rc-accent);
  outline: 2px solid var(--rc-accent);
  outline-offset: 3px;
}
body.rc-site[data-page="contact"] .rc-field :is(input, textarea, select):focus-visible {
  outline: 2px solid var(--rc-accent);
  outline-offset: 3px;
}
body.rc-site[data-page="contact"] .rc-field [aria-invalid="true"] { border-color:#1d1d1f; background:#f5f5f7; box-shadow:inset 0 0 0 1px #1d1d1f; }
body.rc-site[data-page="contact"] .rc-field-error { font-size:13px; line-height:1.5; margin-top:9px; }
body.rc-site[data-page="contact"] .rc-field-error:empty { display: none; }
body.rc-site[data-page="contact"] .rc-contact-help { margin: 15px 0 0; font-size: 13px; line-height: 1.6; }
body.rc-site[data-page="contact"] .rc-contact-submit {
  width: 100%;
  min-height: 64px;
  margin-top: 0;
  justify-content: space-between;
  padding: 16px 24px;
  border: 1px solid var(--rc-accent);
  border-radius: 999px;
  color: #fff;
  background: var(--rc-accent);
  box-shadow: none;
  text-align: left;
  font-size: 16px;
}
body.rc-site[data-page="contact"] .rc-contact-submit > span { font-size: 26px; line-height: 1; }
body.rc-site[data-page="contact"] .rc-contact-submit:is(:hover, :focus-visible, .is-reference-hover) {
  color: #fff;
  background: #151517;
  border-color: var(--rc-accent);
}
body.rc-site[data-page="contact"] .rc-contact-submit:active { transform: scale(.99); }
body.rc-site[data-page="contact"] .rc-contact-local-note { margin: 14px 0 0; font-size: 11px; line-height: 1.6; }
body.rc-site[data-page="contact"] .rc-contact-summary {
  margin-top: 32px;
  padding: 28px 0;
  border: 0;
  border-block: 1px solid var(--rc-line);
  box-shadow: none;
  background: transparent;
}

/* Fade only the geographic canvas: controls, address and attribution sit above it. */
body.rc-site[data-page="contact"] .rc-contact-map {
  border: 0;
  box-shadow: none;
  background: #fff;
  margin-bottom: 20px;
}
body.rc-site[data-page="contact"] .rc-contact-map-canvas { background: #fff; }
body.rc-site[data-page="contact"] .rc-contact-map-canvas::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 650;
  pointer-events: none;
  background:
    linear-gradient(90deg, #fff, rgba(255,255,255,0) clamp(28px, 4vw, 64px), rgba(255,255,255,0) calc(100% - clamp(28px, 4vw, 64px)), #fff),
    linear-gradient(180deg, #fff, rgba(255,255,255,0) 64px, rgba(255,255,255,0) calc(100% - 72px), #fff);
}
body.rc-site[data-page="contact"] .rc-contact-map-address {
  width: min(440px, calc(100% - 64px));
  left: clamp(28px, 3vw, 48px);
  bottom: 42px;
  padding: 28px;
  border: 0;
  border-radius: 18px;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  isolation: isolate;
}
/* Only the glass backing fades. Address text, links and focus outlines remain crisp. */
body.rc-site[data-page="contact"] .rc-contact-map-address::before {
  content: '';
  position: absolute;
  inset: -10px;
  z-index: -1;
  pointer-events: none;
  border-radius: 28px;
  background: linear-gradient(130deg, rgba(255,255,255,.94), rgba(255,255,255,.82));
  box-shadow: 0 10px 32px -20px rgba(29,29,31,.12);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 14px, #000 calc(100% - 14px), transparent), linear-gradient(180deg, transparent, #000 14px, #000 calc(100% - 14px), transparent);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent, #000 14px, #000 calc(100% - 14px), transparent), linear-gradient(180deg, transparent, #000 14px, #000 calc(100% - 14px), transparent);
  mask-composite: intersect;
}
body.rc-site[data-page="contact"] .rc-contact-map-address h3 { font-size: clamp(25px, 2.4vw, 34px); letter-spacing: .04em; }
body.rc-site[data-page="contact"] .rc-contact-map-address address { font-size: 14px; }
body.rc-site[data-page="contact"] .leaflet-top .leaflet-control { margin-top: 26px; }
body.rc-site[data-page="contact"] .leaflet-right .leaflet-control-zoom { margin-right: 26px; border-color: rgba(29,29,31,.1); box-shadow: none; }
body.rc-site[data-page="contact"] .leaflet-control-attribution { position: relative; z-index: 801; }
@media (min-width: 1100px) {
  body.rc-site[data-page="contact"] .rc-contact-intro { position: sticky; top: 140px; }
}
@media (max-width: 900px) {
  body.rc-site[data-page="contact"] .rc-contact-hero { grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); gap: 40px; }
  body.rc-site[data-page="contact"] .rc-contact-field-grid { gap: 20px; }
}
@media (max-width: 760px) {
  body.rc-site[data-page="contact"] .rc-contact-hero { display: block; padding-block: 48px 56px; }
  body.rc-site[data-page="contact"] .rc-contact-intro h1 { font-size: clamp(44px, 9vw, 64px); }
  body.rc-site[data-page="contact"] .rc-contact-intro .rc-contact-eyebrow { margin-bottom: 20px; }
  body.rc-site[data-page="contact"] .rc-contact-form-wrap { margin-top: 48px; }
  body.rc-site[data-page="contact"] .rc-contact-chapter { margin-bottom: 34px; }
  body.rc-site[data-page="contact"] .rc-contact-field-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  body.rc-site[data-page="contact"] .rc-contact-map-address {
    position: relative;
    inset: auto;
    width: 100%;
    margin: 0;
    padding: 22px 16px;
    border: 0;
    background: transparent;
    box-shadow: none;
  }
  body.rc-site[data-page="contact"] .rc-contact-map-address::before {
    inset: -16px 0 0;
    border-radius: 0;
    background: linear-gradient(180deg, rgba(255,255,255,.5), #fff 36px);
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    -webkit-mask-image: linear-gradient(180deg, transparent, #000 20px);
    mask-image: linear-gradient(180deg, transparent, #000 20px);
  }
  body.rc-site[data-page="contact"] .rc-contact-map-canvas::after {
    background: linear-gradient(90deg, #fff, transparent 22px, transparent calc(100% - 22px), #fff), linear-gradient(180deg, #fff, transparent 42px, transparent calc(100% - 42px), #fff);
  }
}
@media (prefers-reduced-motion: reduce) {
  body.rc-site[data-page="contact"] .rc-field :is(input, textarea, select) { transition: none; }
}
html:is(.rc-motion-paused,.rc-motion-suspended) body.rc-site[data-page="contact"] .rc-field :is(input, textarea, select) { transition:none; }

/* Keep a full business email from squeezing the social links on narrow phones. */
@media (max-width:380px){
  .rc-contact-details{grid-template-columns:minmax(0,1fr)}
  .rc-contact-details .rc-contact-social{border-left:0;padding-left:0;flex-direction:row;flex-wrap:wrap;gap:12px 20px}
  .rc-contact-details .rc-contact-social a{flex:1 1 110px;min-width:0}
  .rc-contact-details .rc-contact-addresses a{max-width:100%;overflow-wrap:anywhere}
}
