.home-location[hidden], .footer-contact[hidden] { display: none !important; }
.home-location { padding: 0 0 clamp(2rem, 6vw, 5rem); }
.location-inner { max-width: 1200px; }
.location-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem; }
.location-heading > div { flex: 1 1 260px; min-width: 0; }
.location-heading h2 { margin: .3rem 0 .8rem; }
.location-heading p { white-space: pre-line; overflow-wrap: anywhere; }
.location-inner iframe { display: block; width: 100%; height: clamp(280px, 35vw, 420px); border: 1px solid var(--color-border, #e5ded7); border-radius: 20px; background: #f4efe8; }

/* Shared footer layout: one authoritative desktop rule and one mobile rule. */
.site-footer { --footer-font-size: 16px; --footer-mobile-font-size: 13px; }
.site-footer .footer-inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: nowrap;
  gap: clamp(.65rem, 1.4vw, 1.3rem);
  min-width: 0;
  min-height: 4.5rem;
  overflow: hidden;
  font-size: var(--footer-font-size);
}
.site-footer .footer-brand,
.site-footer .footer-rights { flex: 0 0 auto; margin: 0; white-space: nowrap; }
.footer-contact {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  flex-wrap: nowrap;
  gap: clamp(.65rem, 1.35vw, 1.25rem);
  width: auto;
  min-width: 0;
  white-space: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  overscroll-behavior-inline: contain;
}
.footer-contact::-webkit-scrollbar { display: none; }
.footer-contact address,
.footer-contact p { flex: 0 0 auto; margin: 0; font-style: normal; white-space: nowrap; overflow-wrap: normal; }
.footer-contact-links { display: flex; flex: 0 0 auto; flex-direction: row; align-items: center; flex-wrap: nowrap; gap: clamp(.65rem, 1.35vw, 1.25rem); }
.footer-contact a { text-decoration: underline; text-underline-offset: .2em; }

/* Dedicated contact page. */
.contact-page-inner { padding-block: clamp(1.5rem, 3.5vh, 2.75rem); }
.contact-page .page-heading { margin-bottom: clamp(1rem, 2vw, 1.5rem); }
.contact-page .page-heading h1 { margin: 0; font-size: var(--contact-title-font-size, clamp(2.5rem, 5vw, 4.15rem)); line-height: .98; }
.contact-page-grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: clamp(1rem,2vw,1.5rem); align-items: stretch; margin-top: calc(-1 * var(--contact-layout-lift, 0px)); }
.contact-page-card { padding: clamp(1.5rem,2.6vw,2.25rem); min-height: 24rem; height: 100%; }
.contact-page-card h2 { margin: 0 0 .8rem; font-size: clamp(1.45rem,1.1rem + .85vw,2rem); }
.contact-page-copy { margin: 0 0 1.35rem; color: var(--color-text-muted); line-height: 1.7; white-space: pre-line; }
.contact-page-list { display: grid; gap: 0; margin: 0; }
.contact-page-list > div { display: grid; grid-template-columns: 8.5rem minmax(0,1fr); gap: 1rem; padding: .9rem 0; border-top: 1px solid var(--color-border); }
.contact-page-list dt { font-weight: 800; }
.contact-page-list dd { margin: 0; color: var(--color-text-muted); white-space: pre-line; overflow-wrap: anywhere; }
.contact-page-list a { color: inherit; text-decoration: underline; text-underline-offset: .2em; }
.contact-page-map { padding: .75rem; min-height: 24rem; height: 100%; overflow: hidden; display: flex; flex-direction: column; }
.contact-page-map iframe { display:block; width:100%; height:auto; min-height:24rem; flex:1 1 auto; border:0; border-radius: calc(var(--radius-large) - .5rem); }
.contact-page-map .secondary-button { display:block; flex:0 0 auto; margin-top:.75rem; text-align:center; }

@media (max-width: 48rem) {
  .location-heading > a { width: 100%; text-align: center; }
  .location-inner iframe { border-radius: 14px; height: 300px; }

  .site-footer .footer-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: stretch;
    align-items: start;
    gap: .75rem;
    min-height: 0;
    padding-block: 1.1rem;
    padding-inline: max(.85rem, env(safe-area-inset-left, 0px));
    font-size: var(--footer-mobile-font-size);
    line-height: 1.55;
    text-align: left;
    overflow: visible;
  }
  .site-footer .footer-brand { font-size: 1em; font-weight: 600; white-space: normal; }
  .site-footer .footer-contact {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .65rem;
    width: 100%;
    align-items: start;
    overflow: visible;
    white-space: normal;
  }
  .site-footer .footer-contact address,
  .site-footer .footer-contact p { font-size: 1em; line-height: 1.55; white-space: pre-line; overflow-wrap: anywhere; }
  .site-footer .footer-contact-links { display: flex; flex-direction: column; align-items: flex-start; gap: .3rem; white-space: normal; }
  .site-footer .footer-contact-links a { display: inline-block; max-width: 100%; padding-block: .2rem; font-size: 1em; line-height: 1.6; overflow-wrap: anywhere; }
  .site-footer .footer-rights {
    width: 100%;
    padding-top: .75rem;
    border-top: 1px solid var(--color-border, #e5ded7);
    font-size: .85em;
    line-height: 1.6;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .contact-page .page-heading h1 { font-size: var(--contact-title-font-size-mobile, clamp(2rem, 10vw, 2.85rem)); line-height: 1.02; }
  .contact-page-grid { grid-template-columns: 1fr; margin-top: calc(-1 * var(--contact-layout-lift-mobile, 0px)); }
  .contact-page-card, .contact-page-map { min-height:0; height:auto; padding:1rem; border-radius:1rem; }
  .contact-page-list > div { grid-template-columns:1fr; gap:.25rem; }
  .contact-page-map iframe { height:18rem; min-height:18rem; flex:none; }
}

/* v1.9.209 — map media has intrinsic dimensions before the remote iframe paints. */
.contact-page-map iframe { width: 100%; max-width: 100%; }
