/* Shared contact footer on every page. */
.footer-scene {
  --space-page: clamp(1.25rem, 5.2vw, 6rem);
  --content-width: 88rem;
  --ease-standard: cubic-bezier(.2,.7,.2,1);
  background: var(--color-contact-home-surface);
  color: var(--color-text-primary);
  isolation: isolate;
}
.footer-scene h2 { margin: 0; font-family: var(--font-display); font-weight: 400; }
.footer-scene a { color: inherit; text-decoration: none; }
.footer-scene .eyebrow { margin: 0; color: var(--color-text-secondary); font-size: .69rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.closing-note, .site-footer { width: min(100% - 2 * var(--space-page), var(--content-width)); margin-inline: auto; }
.closing-note { display: grid; grid-template-columns: minmax(15rem, .8fr) minmax(20rem, 1fr); align-items: start; gap: clamp(2rem, 7vw, 8rem); padding-block: clamp(4rem, 9vw, 9rem); border-top: 1px solid var(--color-border-subtle); }
.contact-intro h2 { margin: .7rem 0 1.5rem; font-size: clamp(3rem, 6vw, 6rem); line-height: 1.05; }
.contact-intro address { font-style: normal; line-height: 1.8; }
.contact-direct { display: block; width: fit-content; margin-top: .6rem; text-decoration: underline; text-underline-offset: .2em; overflow-wrap: anywhere; }
.contact-intro .contact-hours { margin-top: 2rem; font-size: .8rem; line-height: 1.8; }
.contact-form { display: grid; gap: 1rem; width: 100%; }
.contact-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1.3rem; }
.contact-field { display: grid; gap: .25rem; min-width: 0; font-size: .75rem; }
.contact-field input, .contact-field textarea { width: 100%; min-width: 0; border: 0; border-bottom: 1px solid currentColor; border-radius: 0; padding: .55rem 0; background: transparent; color: inherit; font: inherit; font-size: 1rem; }
.contact-field textarea { resize: vertical; }
.contact-field textarea::placeholder { color: inherit; }
.contact-field input:focus, .contact-field textarea:focus { outline: 2px solid var(--color-contact-home-text); outline-offset: 3px; }
.contact-salutation { display: flex; gap: 1.5rem; border: 0; padding: 0; margin: 0; font-size: .8rem; }
.contact-salutation legend { margin-bottom: .4rem; }
.contact-salutation input { accent-color: var(--color-contact-home-text); }
.contact-form-note { font-size: .7rem; }
.contact-form button { display: flex; justify-content: space-between; gap: 1rem; padding: .9rem 1rem; border: 1px solid currentColor; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.contact-form button:hover { background: var(--color-text-on-inverse); color: var(--color-surface-inverse); }
/* Shared footer layout and reveal targets. */
.site-footer { border-top: 1px solid var(--color-border-subtle); }
.site-footer[data-contact-reveal] { position: relative; width: 100%; margin: 0 auto; border: 0; color: var(--color-contact-home-text); background: var(--color-contact-home-surface); }
.footer-body { --footer-columns: minmax(0, .8fr) minmax(0, 1.2fr); --footer-column-gap: clamp(2rem, 6vw, 6rem); position: relative; z-index: 2; width: min(90%, 72rem); margin-inline: auto; min-height: 100svh; display: grid; grid-template-columns: var(--footer-columns); column-gap: var(--footer-column-gap); grid-template-rows: 0 auto 1fr; }
.footer-contact-block { grid-row: 2; grid-column: 1 / -1; display: grid; grid-template-columns: var(--footer-columns); align-items: start; gap: var(--footer-column-gap); width: 100%; margin: 0; padding-block: clamp(2.3rem, 4.14vw, 3.68rem) clamp(5rem, 9vw, 8rem); }
.footer-word, .footer-char, .footer-line { display: inline-block; }
.footer-contact-block .eyebrow { margin-top: 1.2rem; color: inherit; }
.footer-address { color: inherit; line-height: 1.7; }
.site-footer-bottom { grid-row: 3; grid-column: 1 / -1; align-self: end; display: flex; align-items: center; justify-content: space-between; width: 100%; margin: 0; min-height: 6rem; font-size: .75rem; gap: 1rem; }
.footer-legal { grid-column: 2; justify-content: flex-start; gap: 2rem; }
.site-footer-bottom .wordmark { font: 400 1.15rem var(--font-display); }
.site-footer-bottom .wordmark span { color: var(--color-accent-decorative); }
.site-footer p { margin: 0; color: inherit; }
.site-footer a { transition: color .2s var(--ease-standard); }
.site-footer[data-contact-reveal] a:hover { color: inherit; }
.site-footer[data-contact-reveal] a:focus-visible { outline: 2px solid var(--color-contact-home-text); outline-offset: 4px; }

@media (max-width: 900px) {
  .closing-note { gap: 2.5rem; }
  .footer-body { --footer-columns: minmax(0, 1fr); --footer-column-gap: 2rem; }
  .footer-legal { grid-column: 1; }
}
@media (max-width: 650px) {
  .closing-note { grid-template-columns: 1fr; gap: 2.5rem; }
  .site-footer-bottom { width: 100%; flex-wrap: wrap; gap: .7rem; padding-block: 1rem; }
}
