/* Shared TPL masthead and opening rhythm. Keep this stylesheet last in every page head. */
html { overflow-y: scroll; scrollbar-gutter: stable; }
body { margin: 0; }
#tpl-masthead {
  all: initial; box-sizing: border-box; display: block; position: sticky; top: 0;
  z-index: 60; width: 100%; margin: 0; padding: 0; background: #fff;
  border-bottom: 1px solid #e7e7e4; color: #172033;
  font: 400 16px/1.5 Arial, Helvetica, sans-serif; text-align: left;
}
#tpl-masthead * { all: unset; box-sizing: border-box; }
#tpl-masthead .tpl-masthead-inner {
  display: grid; grid-template-columns: 140px minmax(0,1fr) auto;
  align-items: center; gap: 28px; width: 100%; max-width: 1420px;
  margin: 0 auto; padding: 20px 44px 16px;
}
#tpl-masthead .tpl-masthead-logo-link,
#tpl-masthead .tpl-masthead-logo { display: block; width: 126px; height: 126px; }
#tpl-masthead .tpl-masthead-logo { object-fit: contain; }
#tpl-masthead .tpl-masthead-brand { display: block; min-width: 0; }
#tpl-masthead h1 {
  display: block; margin: 0; color: #075a70;
  font: 500 44px/1.5 Georgia, 'Times New Roman', serif; letter-spacing: .02em;
}
#tpl-masthead .tpl-masthead-tagline {
  display: block; margin: 4px 0 0; color: #343434;
  font: 400 20px/1.5 Georgia, 'Times New Roman', serif;
}
#tpl-masthead .tpl-masthead-nav {
  display: flex; align-items: center; justify-content: flex-end;
  flex-wrap: wrap; gap: 8px 28px; margin: 0; padding: 0;
}
#tpl-masthead a { cursor: pointer; }
#tpl-masthead .tpl-masthead-nav a {
  display: block; padding: 10px 0; color: #1f2937;
  font: 400 15px/1.5 Arial, Helvetica, sans-serif;
  letter-spacing: .06em; text-transform: uppercase; text-decoration: none;
  border-bottom: 2px solid transparent; white-space: nowrap;
}
#tpl-masthead .tpl-masthead-nav a:hover,
#tpl-masthead .tpl-masthead-nav a[aria-current="page"] { border-bottom-color: #007b98; }
#tpl-masthead .tpl-masthead-nav a.tpl-masthead-support { color: #075a70; font-weight: 700; }
#tpl-masthead a:focus-visible { outline: 3px solid #d7a331; outline-offset: 4px; }
/* Intro labels and titles use pixel units to avoid legacy root-font differences. */
body[data-tpl-page] .tpl-intro-label {
  display: block; margin: 0; padding: 0; color: #007b98;
  font: 700 14px/21px Arial, Helvetica, sans-serif;
  letter-spacing: .18em; text-transform: uppercase; text-align: left;
}
body[data-tpl-page] .tpl-intro-title {
  display: block; margin: 12px 0 22px; padding: 0;
  font: 500 66px/1.08 Georgia, 'Times New Roman', serif;
  letter-spacing: normal; color: #0c213f; text-transform: none; text-align: left;
}
body[data-tpl-page] .tpl-opening { padding-top: 80px; text-align: left; }
body[data-tpl-page] .wrap { box-sizing: border-box; max-width: 1420px; margin-left: auto; margin-right: auto; padding-left: 44px; padding-right: 44px; }
body[data-tpl-page="index"] .hero { align-items: start; }
body[data-tpl-page="music"] .site-shell { box-sizing: border-box; width: 100%; max-width: 1420px; padding: 0 44px; margin: 0 auto; }
body[data-tpl-page="music"] .hero p { margin: 0; text-align: left; font: 400 19px/1.6 Arial, Helvetica, sans-serif; color: #5d6572; }
body[data-tpl-page="meals-of-presence"] .intro p { font: 400 19px/1.6 Arial, Helvetica, sans-serif; }
/* Preserve legacy donation/contact content, while aligning their first text with the other pages. */
body[data-tpl-page="support"] #wrapper,
body[data-tpl-page="contact"] #wrapper { margin: 0; padding: 0; }
body[data-tpl-page] .tpl-legacy-opening { padding: 80px 0 70px; margin: 0; background: #fbfbfa; }
body[data-tpl-page] .tpl-legacy-opening > .container { box-sizing: border-box; width: 100%; max-width: 1420px; margin: 0 auto; padding: 0 44px; }
body[data-tpl-page] .tpl-legacy-opening > .container > .row { display: block; margin: 0; padding: 0; }
body[data-tpl-page] .tpl-legacy-opening > .container > .row > [class*="col-"] { width: 100%; max-width: 100%; flex: none; padding: 0; margin: 0; }
body[data-tpl-page] .tpl-legacy-opening .block-content { padding-top: 0; margin-top: 0; text-align: left !important; }
body[data-tpl-page] .tpl-opening-heading { margin: 0; padding: 0; }
body[data-tpl-page] .tpl-opening-heading .tpl-intro-title { margin-top: 0; }
body[data-tpl-page] .tpl-legacy-opening .lead { max-width: 780px; font: 400 19px/1.6 Arial, Helvetica, sans-serif; color: #5d6572; }
@media (max-width: 1200px) {
  #tpl-masthead .tpl-masthead-inner { grid-template-columns: 92px minmax(0,1fr); }
  #tpl-masthead .tpl-masthead-logo-link, #tpl-masthead .tpl-masthead-logo { width: 88px; height: 88px; }
  #tpl-masthead .tpl-masthead-nav { grid-column: 1 / -1; justify-content: flex-start; }
}
@media (max-width: 1000px) {
  body[data-tpl-page] .tpl-opening, body[data-tpl-page] .tpl-legacy-opening { padding-top: 64px; }
  body[data-tpl-page] .tpl-intro-title { font-size: 52px; }
}
@media (max-width: 680px) {
  #tpl-masthead { position: static; }
  #tpl-masthead .tpl-masthead-inner { padding: 0 22px; }
  #tpl-masthead h1 { font-size: 30px; }
  #tpl-masthead .tpl-masthead-tagline { font-size: 16px; }
  #tpl-masthead .tpl-masthead-nav { gap: 8px 20px; }
  #tpl-masthead .tpl-masthead-nav a { font-size: 13px; }
  body[data-tpl-page] .wrap, body[data-tpl-page="music"] .site-shell,
  body[data-tpl-page] .tpl-legacy-opening > .container { padding-left: 22px; padding-right: 22px; }
  body[data-tpl-page] .tpl-opening, body[data-tpl-page] .tpl-legacy-opening { padding-top: 40px; }
  body[data-tpl-page] .tpl-intro-title { font-size: 42px; }
  body[data-tpl-page="music"] .hero p, body[data-tpl-page="meals-of-presence"] .intro p,
  body[data-tpl-page] .tpl-legacy-opening .lead { font-size: 17px; }
}
