/* Compact homepage ending and the full Movement story. */
.ending-inner { width: min(1248px, calc(100% - 86px)); margin-inline: auto; }
.ending-eyebrow { color: #865937; font-size: 11px; font-weight: 700; letter-spacing: .17em; line-height: 1.5; }
.ending-heading { color: #172938; font: 400 clamp(32px, 3.3vw, 46px)/1.08 Georgia, 'Times New Roman', serif; letter-spacing: -.045em; }
.ending-heading em { color: #976947; font-style: italic; }
.ending-tools, .ending-story, .ending-contact { scroll-margin-top: 100px; }
.ending-tool[id], .ending-tool [id], .ending-story-links [id] { scroll-margin-top: 115px; }
.ending-tools a:focus-visible, .ending-story a:focus-visible, .ending-contact a:focus-visible, .ending-footer a:focus-visible { outline: 2px solid #b9855d; outline-offset: 5px; }

.ending-tools { background: #f8f5ee; border-top: 1px solid #d9cdbc; padding-block: 44px 46px; }
.ending-tools-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.ending-tools-heading .ending-heading { font-size: clamp(30px, 3vw, 39px); }
.ending-tool-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #c8b6a3; }
.ending-tool { position: relative; display: grid; grid-template-columns: 23px minmax(0, 1fr) 16px; align-items: start; gap: 12px; padding: 25px 26px 4px; min-width: 0; }
.ending-tool:first-child { padding-left: 0; }
.ending-tool:last-child { padding-right: 0; }
.ending-tool + .ending-tool::before { content: ''; position: absolute; top: 25px; bottom: 4px; left: 0; width: 1px; background: #ddcfc0; }
.ending-tool-number { padding-top: 4px; color: #976947; font-size: 10px; letter-spacing: .05em; }
.ending-tool h3 { color: #172938; font: 400 23px/1.12 Georgia, 'Times New Roman', serif; letter-spacing: -.035em; }
.ending-tool p { margin-top: 9px; max-width: 26ch; color: #5c666b; font-size: 13px; line-height: 1.6; }
.ending-tool-arrow { color: #976947; font-size: 20px; line-height: 1.2; }
.ending-tool:hover h3 { text-decoration: underline; text-decoration-color: #b88b68; text-underline-offset: 5px; text-decoration-thickness: 1px; }

.ending-story { padding-block: 45px; background: #eee8df; }
.ending-story-grid { display: grid; grid-template-columns: 210px minmax(0, 1fr); align-items: center; gap: clamp(32px, 6vw, 82px); }
.ending-portrait { margin: 0; width: 210px; }
.ending-portrait img { width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: contain; }
.ending-story-copy { max-width: 800px; }
.ending-story-copy .ending-heading { margin-top: 13px; }
.ending-story-intro { max-width: 680px; margin-top: 18px; color: #4e5c64; font-size: 15px; line-height: 1.75; }
.ending-text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 14px; min-height: 44px; border-bottom: 1px solid #976947; color: #172938; font-size: 13px; font-weight: 650; }
.ending-text-link:hover { color: #865937; }
.ending-story-links { display: flex; flex-wrap: wrap; gap: 5px 22px; margin-top: 8px; }
.ending-story-links a { display: inline-flex; align-items: center; min-height: 38px; color: #5a6264; font-size: 11px; }
.ending-story-links a:hover { text-decoration: underline; text-underline-offset: 4px; }

.ending-contact { background: #172938; padding-block: 54px 45px; }
.ending-contact-grid { display: grid; grid-template-columns: 1fr 1.08fr; gap: 60px; align-items: center; }
.ending-contact .ending-eyebrow { color: #d3aa88; }
.ending-contact .ending-heading { margin-top: 18px; color: #f8f5ee; font-size: clamp(38px, 4vw, 54px); }
.ending-contact .ending-heading em { color: #d3aa88; }
.ending-contact-actions > p { margin-bottom: 17px; color: #d3dcdf; font-size: 15px; }
.ending-action { display: inline-flex; justify-content: space-between; align-items: center; gap: 42px; min-height: 51px; padding: 12px 21px; color: #172938; background: #f8f5ee; font-size: 13px; font-weight: 650; }
.ending-action:hover { background: #ead9c7; }
.ending-action > span:last-child { font-size: 19px; }
.ending-direct { display: flex; flex-wrap: wrap; gap: 0 25px; margin-top: 14px; }
.ending-direct a { display: inline-flex; align-items: center; min-height: 42px; color: #f8f5ee; font-size: 13px; overflow-wrap: anywhere; }
.ending-direct a:hover { text-decoration: underline; text-underline-offset: 5px; }
.ending-social { display: flex; flex-wrap: wrap; gap: 0 17px; margin-top: 2px; }
.ending-social a { display: inline-flex; align-items: center; min-height: 40px; color: #bdc9cf; font-size: 10px; line-height: 1.5; }
.ending-social a:hover { color: #f8f5ee; text-decoration: underline; text-underline-offset: 4px; }

.site-footer.ending-footer { padding: 24px 0 18px; border-top: 1px solid #ffffff1f; background: #172938; }
.ending-footer-main { display: flex; align-items: center; justify-content: space-between; gap: 25px; }
.ending-footer .footer-brand { color: #f8f5ee; }
.ending-footer .footer-brand svg { width: 34px; }
.ending-footer .footer-brand > span { font-size: 19px; }
.ending-footer .footer-brand small { font-size: 9px; letter-spacing: .11em; }
.ending-footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 24px; }
.ending-footer-links a { display: inline-flex; align-items: center; min-height: 40px; color: #d2dce0; font-size: 11px; }
.ending-footer-links a:hover { text-decoration: underline; text-underline-offset: 4px; }
.ending-footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 20px; color: #acbcc5; font-size: 10px; }
.ending-footer .website-language-note { width: min(1248px, calc(100% - 86px)); max-width: none; padding: 12px 0 0; font-size: 10px !important; color: #acbcc5 !important; }

/* The complete approved biography has its own editorial reading space. */
.about-page .about-section { padding-block: 64px 80px; background: #f8f5ee; }
.about-page .about-layout { width: min(1248px, calc(100% - 86px)); grid-template-columns: .85fr 1.15fr; gap: clamp(38px, 6vw, 82px); align-items: start; }
.about-page .portrait-official { margin-top: 6px; }
.about-page .portrait-wrap figcaption { background: #172938ee; color: #f8f5ee; font-size: 10px; flex-wrap: wrap; padding: 17px 20px; }
.about-page .about-copy h1 { color: #172938; font: 400 clamp(44px, 5.5vw, 76px)/1.02 Georgia, 'Times New Roman', serif; letter-spacing: -.05em; }
.about-page .about-copy .eyebrow { color: #865937; font-size: 11px; }
.about-page .about-copy > p:not(.eyebrow) { margin-top: 20px; font-size: 15px; line-height: 1.8; color: #4f5e66; }
.about-page .about-copy > p.lead { font: 400 23px/1.45 Georgia, 'Times New Roman', serif; color: #976947; }
.about-page .about-copy > p.bio-credentials { font-size: 14px; color: #172938; }
.about-page .bio-detail { border-color: #d7c8b7; }
.about-page .bio-detail summary { color: #172938; }
.about-page .bio-detail p { font-size: 14px; line-height: 1.8; }
.about-page .family-section { width: min(1248px, calc(100% - 86px)); padding-block: 64px; border-top: 1px solid #d7c8b7; }
.about-page .family-section .expanded-two-column { align-items: center; gap: 64px; }
.about-page .family-section h2, .about-page .expanded-faq h2 { color: #172938; font: 400 clamp(36px, 4vw, 52px)/1.08 Georgia, 'Times New Roman', serif; letter-spacing: -.04em; }
.about-page .family-section .eyebrow, .about-page .expanded-faq .eyebrow, .about-page .music-feedback .eyebrow { color: #865937; }
.about-page .family-section .service-audiences { margin-top: 24px; }
.about-page #workshop-stories { width: min(1248px, calc(100% - 86px)); padding-block: 20px 55px; }
.about-page .music-feedback { margin: 0; padding: 36px; background: #eee8df; }
.about-page .music-feedback blockquote { margin-inline: 0; color: #172938; font-family: Georgia, 'Times New Roman', serif; }
.about-page .music-feedback .inline-link, .about-page .expanded-faq .inline-link { color: #865937; }
.about-page .expanded-faq { width: min(950px, calc(100% - 86px)); padding-block: 20px 70px; }
.about-page .expanded-faq h2 { margin-bottom: 15px; }
.about-page .expanded-faq details { border-color: #d7c8b7; }

@media (max-width: 1000px) {
  .ending-inner, .ending-footer .website-language-note, .about-page .about-layout, .about-page .family-section, .about-page #workshop-stories { width: calc(100% - 48px); }
  .ending-tool { grid-template-columns: 19px minmax(0, 1fr) 15px; gap: 9px; padding-inline: 18px; }
  .ending-tool h3 { font-size: 21px; }
  .ending-story-grid { gap: 36px; }
  .ending-contact-grid { gap: 35px; }
  .about-page .about-layout { grid-template-columns: .8fr 1.2fr; gap: 36px; }
  .about-page .family-section .expanded-two-column { gap: 38px; }
}
@media (max-width: 760px) {
  .ending-tools { padding-block: 35px; }
  .ending-tools-heading { align-items: flex-start; flex-direction: column; gap: 10px; margin-bottom: 22px; }
  .ending-tool-links { grid-template-columns: 1fr; }
  .ending-tool, .ending-tool:first-child, .ending-tool:last-child { padding: 20px 0; grid-template-columns: 23px minmax(0, 1fr) 20px; gap: 15px; }
  .ending-tool + .ending-tool { border-top: 1px solid #ddcfc0; }
  .ending-tool + .ending-tool::before { display: none; }
  .ending-tool:last-child { padding-bottom: 0; }
  .ending-tool h3 { font-size: 23px; }
  .ending-tool p { max-width: none; margin-top: 6px; }
  .ending-story { padding-block: 35px; }
  .ending-story-grid { grid-template-columns: 170px minmax(0, 1fr); gap: 26px; align-items: start; }
  .ending-portrait { width: 170px; }
  .ending-story-copy .ending-heading { font-size: 35px; }
  .ending-story-intro { font-size: 14px; margin-top: 14px; }
  .ending-story-links { gap: 0 17px; }
  .ending-contact-grid { grid-template-columns: 1fr; gap: 28px; }
  .ending-contact { padding-block: 38px 30px; }
  .ending-contact .ending-heading { margin-top: 14px; }
  .ending-contact-actions > p { margin-bottom: 15px; }
  .ending-footer-main { align-items: flex-start; flex-direction: column; gap: 14px; }
  .ending-footer-bottom { flex-wrap: wrap; gap: 6px 20px; margin-top: 15px; }
  .about-page .about-section { padding-block: 30px 48px; }
  .about-page .about-layout { grid-template-columns: 1fr; gap: 32px; }
  .about-page .portrait-official { width: min(400px, 100%); margin-top: 0; }
  .about-page .about-copy { grid-row: 1; }
  .about-page .about-copy h1 { font-size: clamp(44px, 8.5vw, 66px); }
  .about-page .family-section { padding-block: 45px; }
  .about-page .family-section .expanded-two-column { grid-template-columns: 1fr; gap: 26px; }
  .about-page .music-feedback { grid-template-columns: 1fr; padding: 25px; gap: 22px; }
  .about-page #workshop-stories { padding-block: 5px 40px; }
  .about-page .expanded-faq { width: calc(100% - 48px); padding-bottom: 45px; }
}
@media (max-width: 540px) {
  .ending-inner, .ending-footer .website-language-note, .about-page .about-layout, .about-page .family-section, .about-page #workshop-stories, .about-page .expanded-faq { width: calc(100% - 40px); }
  .ending-story-grid { grid-template-columns: 1fr; gap: 23px; }
  .ending-portrait { width: 140px; }
  .ending-story-copy .ending-heading { font-size: 37px; }
  .ending-story-intro { max-width: 42ch; }
  .ending-story-links a { min-height: 42px; }
  .ending-contact .ending-heading { font-size: 42px; }
  .ending-direct { flex-direction: column; gap: 0; }
  .ending-social { gap: 0 17px; }
  .ending-social a { font-size: 11px; }
  .ending-footer-links { gap: 0 19px; }
  .ending-footer-bottom { flex-direction: column; }
  .about-page .about-copy > p:not(.eyebrow) { font-size: 14px; }
  .about-page .about-copy > p.lead { font-size: 22px; }
}
@media print {
  .ending-contact, .ending-footer { background: white; color: #172938; }
  .ending-contact .ending-heading, .ending-contact .ending-heading em, .ending-contact a, .ending-contact p { color: #172938; }
  .ending-social, .ending-footer-links, .ending-footer .website-language-note { display: none; }
  .ending-action { border: 1px solid #172938; }
  .about-page .about-section, .about-page .family-section { padding-block: 20px; }
}
