/* The site's existing pages in the 2027 design. Loads after parish-2027.css.
   These pages keep eCatholic's native sections and modules, and the parish's own stez-* content blocks. */

body.stage-page #background#background #core#core {
  /* Page title: on these pages it is the headline, since they have no story photo */
  & #interiorHeader.stage-title { padding: clamp(1rem, 2.5vw, 2rem) 1.2rem clamp(.8rem, 2vw, 1.5rem) !important; }
  & .stage-crumb { display: inline-block; margin-bottom: .5rem; font: 700 .875rem/1.4 var(--body) !important; color: var(--wine) !important; text-decoration: none !important; }
  & .stage-crumb:hover { text-decoration: underline !important; }
  & #interiorHeader.stage-title #pageTitle { font: 400 clamp(2.4rem, 5.2vw, 4.6rem)/1.02 var(--display) !important; letter-spacing: -.02em; color: var(--ink) !important; text-wrap: balance; }

  /* Single-module rows become cards, with text at a readable measure */
  & .stage-page-module, & .rowSection > .sectionBody > .modulePosition > li > .moduleInner { box-sizing: border-box; padding: clamp(1.4rem, 2.8vw, 2.6rem) !important; border-radius: var(--r-xl) !important; background: var(--sheet) !important; border: 1px solid var(--hair) !important; }
  & .customModule .moduleBody > :is(p, ul, ol, h2, h3, h4, blockquote), & .stez-polished > :is(p, ul, ol), & .newsDetails { max-width: 70ch; }
  & :is(.moduleBody, .stage-region) h2:not(.moduleName):not(.hero-title) { font-size: clamp(1.75rem, 3vw, 2.5rem) !important; line-height: 1.1 !important; margin-bottom: .6em; }
  & :is(.moduleBody, .stage-region) :is(h3, h4, h5) { margin: 1.5em 0 .5em !important; }
  & :is(.moduleBody, .stage-region) :is(h3, h4, h5):first-child { margin-top: 0 !important; }
  & :is(.moduleBody, .stage-region) h4 { font: 700 1.05rem/1.3 var(--body) !important; color: var(--ink) !important; }
  & .stage-region { list-style: none !important; margin: 0 !important; padding: 0 !important; }
  & .stage-region > li { margin: 0 0 1.25rem !important; }
  & .stage-region .moduleInner { padding: 0 !important; }
  & .modulePositionColumn .stage-side { background: var(--mist) !important; }
  & table { border-collapse: collapse; max-width: 100%; }
  & :is(td, th) { padding: .45rem .6rem; border-color: var(--hair) !important; }
  & :is(img, iframe, video) { max-width: 100% !important; height: auto; border-radius: var(--r-lg); }
  & iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }
  & iframe[src*="google.com/maps"] { aspect-ratio: 4 / 3; }

  /* The parish's own content blocks */
  & .stez-lead { font: 400 clamp(1.3rem, 2vw, 1.6rem)/1.35 var(--display) !important; color: var(--ink) !important; margin-bottom: 1.1em !important; }
  & .stez-polish-actions, & .stez-related-links { display: flex !important; flex-wrap: wrap; gap: .6rem; margin: 1.1rem 0 !important; padding: 0 !important; background: none !important; border: 0 !important; list-style: none; }
  & a.stez-action, & .stez-give-link, & .stez-contact-button { display: inline-block !important; padding: .6rem 1.1rem !important; border-radius: 999px !important; background: none !important; border: 0 !important; box-shadow: inset 0 0 0 1px var(--teal) !important; color: var(--teal) !important; font: 700 .9375rem/1.25 var(--body) !important; text-decoration: none !important; overflow-wrap: normal !important; }
  & a.stez-action:hover, & .stez-give-link:hover, & .stez-contact-button:hover { background: rgb(23 60 69 / .08) !important; }
  & a.stez-action.stez-primary, & .stez-contact-button:not(.stez-contact-button-alt) { background: var(--teal) !important; color: #fff !important; box-shadow: none !important; }
  & a.stez-action.stez-primary:hover { background: var(--cloak) !important; }
  & :is(.stez-generated-content, .stez-polished, .stez-original-content) { background: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; max-width: none !important; box-shadow: none !important; }
  & :is(.stez-polish-grid, .stez-ministry-grid, .stez-contact-grid, .stez-photo-grid, .stez-giving-options) { display: grid !important; gap: 1rem !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)) !important; margin: 1.2rem 0 !important; padding: 0 !important; background: none !important; }
  & :is(.stez-polish-card, .stez-ministry-entry, .stez-contact-card, .stez-giving-option) { padding: 1.2rem 1.3rem !important; border-radius: var(--r-lg) !important; background: var(--mist) !important; border: 1px solid var(--hair) !important; box-shadow: none !important; margin: 0 !important; color: var(--text) !important; width: auto !important; }
  & :is(.stez-note, .stez-stream-help, .stez-giving-help) { padding: 1rem 1.2rem !important; border-radius: var(--r-lg) !important; background: var(--mist) !important; border: 0 !important; margin: 1.2rem 0 !important; color: var(--text) !important; }
  & .stez-original-heading { display: block; font: 700 .875rem/1.4 var(--body) !important; color: var(--muted) !important; background: none !important; border: 0 !important; padding: 0 !important; margin: 1.5rem 0 .5rem !important; }
  & .stez-timeline { list-style: none; padding: 0 !important; margin: 1rem 0 !important; background: none !important; border: 0 !important; }
  & .stez-timeline li { padding: .7rem 0 !important; border-top: 1px solid var(--hair) !important; margin: 0 !important; background: none !important; }
  & .stez-video-list { list-style: none; padding: 0 !important; display: grid !important; gap: .35rem 1.5rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); margin: .5rem 0 1.5rem !important; }
  & .stez-provider-image { max-height: 3rem; width: auto; }
  & :is(.stez-related-pages, .stez-archive) { margin-top: 1.5rem !important; padding: 0 !important; background: none !important; border: 0 !important; }

  /* Native tabs */
  & .tabsSection > .sectionBody { display: block !important; }
  & .tabArea { list-style: none !important; display: flex !important; flex-wrap: wrap; gap: .5rem; float: none !important; width: auto !important; margin: 0 0 var(--gap) !important; padding: 0 !important; background: none !important; }
  & .tabArea > .tab { list-style: none !important; float: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; }
  & .tabArea > .tab a { display: inline-block; padding: .6rem 1.1rem !important; border-radius: 999px; background: rgb(23 60 69 / .08) !important; color: var(--ink) !important; font: 700 .9375rem/1.25 var(--body) !important; text-decoration: none !important; }
  & .tabArea > .tab.selected a { background: var(--teal) !important; color: #fff !important; }
  & .tabArea { flex-direction: row !important; align-items: center; height: auto !important; }
  & .tabArea > .tab { flex: 0 0 auto !important; width: auto !important; min-width: 0 !important; min-height: 0 !important; height: auto !important; }
  & .tabArea > .tab a { float: none !important; width: auto !important; height: auto !important; min-height: 44px !important; display: inline-flex !important; align-items: center; box-shadow: none !important; border: 0 !important; }
  & .tabContent { display: none !important; float: none !important; width: auto !important; box-sizing: border-box; margin: 0 !important; padding: clamp(1.4rem, 2.8vw, 2.6rem) !important; border-radius: var(--r-xl) !important; background: var(--sheet) !important; border: 1px solid var(--hair) !important; }
  & .tabContent.selected { display: block !important; }
  & .tabContent > .tab { display: none !important; }

  /* Native documents and bulletins */
  & .documentsModule .aggregate, & .bulletinsSideNav ul { list-style: none !important; padding: 0 !important; margin: 0 !important; }
  & .document.group { padding: .55rem 0 !important; border-top: 1px solid var(--hair); margin: 0 !important; }
  & .bulletinsSideNav { margin: 0 !important; }
  & .archiveTitle .navName, & .aggregateYear > .navName, & .aggregateLabel > .navName { display: block; font: 400 1.5rem/1.2 var(--display) !important; color: var(--ink) !important; margin: .9rem 0 .3rem; background: none !important; }
  & .bulletin.group { display: inline-block; width: auto !important; float: none !important; margin: 0 .9rem .15rem 0 !important; padding: 0 !important; background: none !important; border: 0 !important; }
  & .bulletinName, & .bulletinName a { background: none !important; padding: 0 !important; }
  & .bulletinName :is(.month, .day, .year) { margin-right: .22em; }
  & .aggregateSideNav, & .aggregateMonths, & .aggregatePages { list-style: none !important; padding: 0 !important; margin: 0 !important; }

  /* Native event pages */
  & .listView .date, & .moduleInner.content .date { font: 700 1.05rem/1.45 var(--body) !important; color: var(--ink) !important; margin: 0 0 .8rem !important; background: none !important; }
  & .date :is(.dayName, .month, .day, .year, .time, .dash) { margin-right: .22em; }
  & .date .comma { margin: 0 .22em 0 -.22em; }
  & :is(.location, .recurringSchedule) { margin: .35rem 0 !important; font-weight: 500 !important; }
  & :is(.locationLabel) { font-weight: 700; margin-right: .3em; }
  & .moduleInner.content > picture img.picture { float: none !important; max-width: 16rem !important; border-radius: var(--r-lg); margin: 0 0 1rem !important; }

  /* Native online forms */
  & .formStyling { width: auto !important; max-width: 48rem; padding: 0 !important; background: none !important; }
  & #onlineFormFields, & .formStyling .aggregate { list-style: none !important; padding: 0 !important; margin: 0 !important; display: block !important; }
  & .ofField { float: none !important; width: auto !important; margin: 0 0 1.1rem !important; padding: 0 !important; background: none !important; border: 0 !important; }
  & .formStyling label, & .ofField .fieldLabel { display: block; font: 700 .9375rem/1.35 var(--body) !important; color: var(--ink) !important; margin-bottom: .3rem !important; }
  & .formStyling :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="date"], input:not([type]), textarea, select) { box-sizing: border-box; display: block; width: 100% !important; max-width: 100% !important; min-height: 44px; padding: .55rem .8rem !important; border: 1px solid #7d7464 !important; border-radius: 12px !important; background: #fff !important; font: 500 1rem/1.4 var(--body) !important; color: var(--ink) !important; box-shadow: none !important; float: none !important; margin: 0 !important; }
  & .formStyling :is(input[type="checkbox"], input[type="radio"]) { width: 1.15rem !important; height: 1.15rem !important; margin: 0 .5rem 0 0 !important; float: none !important; vertical-align: -.15em; accent-color: var(--teal); }
  & .firstLastNameField { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); }
  & .firstLastNameField > * { float: none !important; width: auto !important; margin: 0 !important; }
  & :is(input[type="submit"], button[type="submit"]):not(.btn) { display: inline-block; min-height: 44px; padding: .6rem 1.4rem !important; border: 0 !important; border-radius: 999px !important; background: var(--teal) !important; color: #fff !important; font: 700 1rem var(--body) !important; cursor: pointer; float: none !important; width: auto !important; }
  & #submissionLimitMessage { display: none !important; }
  & #onlineForm.submissionLimitReached #submissionLimitMessage { display: block !important; padding: 1rem 1.2rem; border-radius: 12px; background: var(--mist); color: var(--ink); font-weight: 600; }
  & .onlineFormModule { max-width: 48rem; padding: clamp(1.2rem, 3vw, 2.2rem) !important; border: 1px solid var(--hair) !important; border-radius: 22px !important; background: var(--sheet) !important; }
  & .ofField .required { display: inline-block; margin-left: .35em; font: 600 .6875rem/1 var(--body) !important; letter-spacing: .04em; color: var(--muted) !important; background: none !important; vertical-align: .08em; text-transform: lowercase; }
  & .formStyling :is(input, select, textarea):focus-visible { outline: 3px solid var(--teal-soft) !important; outline-offset: 2px; border-color: var(--teal) !important; }
  & .requiredErrorText, & .validateErrorText { display: none !important; }
  & .parish-bad-required .requiredErrorText, & .parish-bad-invalid .validateErrorText { display: block !important; margin-top: .3rem; font: 600 .875rem/1.35 var(--body) !important; color: #8a1f33 !important; }
  & :is(.parish-bad-required, .parish-bad-invalid) :is(input, select, textarea) { border-color: #8a1f33 !important; border-width: 2px !important; }
  & .groupName { margin: 1.4rem 0 .7rem !important; font: 400 1.5rem/1.2 var(--display) !important; color: var(--ink) !important; background: none !important; padding: 0 !important; }
  & .fieldGroup { list-style: none !important; margin: 0 !important; padding: 0 !important; }
  & .ofFieldGroup { border: 0 !important; background: none !important; padding: 0 !important; }
  & li.ofReplicatorHidden { display: none !important; }
  & .replicatorCounter { max-width: 8rem !important; }
  & .submitForm:not([style*="display: none"]) { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; margin: .6rem .6rem 0 0; padding: .6rem 1.8rem; border-radius: 999px; background: var(--teal); color: #fff; font: 700 1rem var(--body); cursor: pointer; }
  & .submitForm:hover { background: var(--teal-soft); }
  & .submitForm:focus-visible { outline: 3px solid var(--teal-soft); outline-offset: 3px; }
  & .parish-progress { position: sticky; top: 5.5rem; z-index: 2; display: grid; gap: .35rem; margin: 0 0 1.2rem; padding: .7rem 1rem; border-radius: 14px; background: var(--mist); font: 600 .875rem var(--body); color: var(--ink); }
  & .parish-progress-bar { display: block; height: 6px; border-radius: 3px; background: rgb(23 60 69 / .15); overflow: hidden; }
  & .parish-progress-bar i { display: block; width: 0; height: 100%; background: var(--teal); transition: width .2s; }
  & form[hidden] { display: none !important; }
  & .formStyling ::placeholder { color: #6d7a7e !important; font-weight: 400 !important; opacity: 1; }
  & .ofField .required::before, & .ofField .required::after { content: none !important; }
  & .phoneFormatter { display: grid !important; grid-template-columns: minmax(6rem, 8rem) minmax(0, 1fr); gap: .5rem; float: none !important; width: auto !important; }
  & .phoneFormatter > * { float: none !important; width: 100% !important; margin: 0 !important; min-width: 0; }
  & input.phoneField { display: none !important; }

  /* Latest bulletin card, built by the live feed script from Parishes Online */
  & .stez-lpi-slot { list-style: none; margin: 0 0 2rem; }
  & .stez-lpi { display: grid; grid-template-columns: minmax(0, 13rem) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
  & .stez-lpi-cover img { display: block; width: 100%; height: auto; border-radius: .5rem; box-shadow: 0 .5rem 1.4rem rgba(23, 60, 69, .18); }
  & .stez-lpi-kicker { margin: 0; font-weight: 700; color: var(--ink); }
  & .stez-lpi h2 { margin: .25rem 0 .9rem; }
  & .stez-lpi-actions { display: flex; flex-wrap: wrap; gap: .6rem 1.1rem; align-items: center; margin: 0 0 1.2rem; }
  & .stez-lpi h3 { margin: 0 0 .4rem; }
  & .stez-lpi ul { margin: 0 0 .9rem; padding: 0; list-style: none; }
  & .stez-lpi li { display: flex; flex-wrap: wrap; gap: .25rem 1rem; padding: .55rem 0; border-bottom: 1px solid rgba(23, 60, 69, .14); }
  & .stez-lpi li::before { content: none; }
  & .stez-lpi-more { margin: 0; }
  & .stez-lpi-older { display: none !important; }
  @media (max-width: 600px) {
    & .stez-lpi { grid-template-columns: minmax(0, 1fr); }
    & .stez-lpi-cover { max-width: 13rem; }
  }

  /* Archive lists that open and close */
  & details.stez-resource-archive > summary { display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: .6rem 1rem; border: 1px solid rgba(23, 60, 69, .18); border-radius: .75rem; background: #fff; font-weight: 600; cursor: pointer; }
  & details.stez-resource-archive > summary::-webkit-details-marker { display: none; }
  & details.stez-resource-archive > summary::after { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin: -4px 4px 0 12px; }
  & details.stez-resource-archive[open] > summary::after { transform: rotate(-135deg); margin-top: 4px; }

  /* Saint Elizabeth page: her story film and map */
  & .stez-saint-map-wrap { max-width: 37.5rem; margin: 1rem auto 1.5rem; }
  & .stez-saint-map { display: block; width: 100%; height: auto; }
  & .stez-story-video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: .75rem; background: #000; }

  /* Some live pages set their own two columns. Keep the side column wide enough to read, or stack it. */
  & .columnSection.duoColumn > .sectionBody { grid-template-columns: minmax(0, 1fr) !important; column-gap: var(--gap) !important; }
  @media (min-width: 1150px) {
    & .columnSection.duoColumn > .sectionBody { grid-template-columns: minmax(0, 2.15fr) minmax(16rem, 1fr) !important; }
  }
  @media (max-width: 1149px) {
    & .columnSection.duoColumn > .sectionBody > ul > li { grid-column: 1 !important; grid-row: auto !important; }
  }

  /* Mass archive: the player comes straight after the introduction, before the contact card */
  & ul.modulePosition:has(#archive-embed) { display: flex; flex-direction: column; }
  & li:has(> .moduleInner #archive-embed) { order: -1; }
  & #archive-embed { display: block; width: 100% !important; }
  & .calendarMonthTitle :is(.lastButton, .nextButton) { box-sizing: border-box !important; border: 0 !important; }
  & .stez-calendar-page-intro { margin-bottom: 1.2rem; }
  & .stez-calendar-page-intro > a { display: inline-block; margin-right: 1.2rem; }
  & .stez-calendar-legend { display: flex; flex-wrap: wrap; gap: .3rem 1rem; margin-top: .6rem; font-size: .875rem; color: var(--muted); }
  & table.calendar td { text-align: left !important; }
  & li:has(> .stage-form-alt), & li:has(> .stage-form-alt) > .onlineFormModule { height: auto !important; }
  & .stez-explore-row { list-style: none !important; }
  & .stez-explore ul { list-style: none !important; display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin: .6rem 0 0 !important; padding: 0 !important; }
  & .stez-explore li { margin: 0 !important; padding: 0 !important; }
  & .stez-explore li::before { content: none !important; }
  & .stez-explore h2 { font: 400 clamp(1.3rem, 2.2vw, 1.6rem)/1.2 var(--display) !important; color: var(--ink) !important; }
  & .stage-sent { padding: 1.4rem 1.6rem; border-radius: 16px; background: var(--mist); color: var(--ink); }
  & .stage-sent h3 { margin: 0 0 .4rem !important; }
  & .stage-sent:focus { outline: none; }
  & .stage-form-alt { max-width: 48rem; margin-top: 1rem; padding: 1rem 1.2rem; border-radius: 16px; background: rgb(23 60 69 / .05); }
  & .stage-form-alt p { margin: 0 0 .5rem !important; font-weight: 700; color: var(--ink); }
  & .stez-form-help { max-width: 48rem; padding: 1.2rem 1.4rem; border-radius: 16px; background: var(--mist); }
  & .stez-polish-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .6rem; }
  & .stez-action { display: inline-flex; align-items: center; min-height: 44px; padding: .45rem 1.1rem; border-radius: 999px; border: 1px solid var(--teal); color: var(--teal) !important; font: 700 .9375rem var(--body); text-decoration: none !important; }
  & .stez-action.stez-primary { background: var(--teal); color: #fff !important; }
  & .stez-form-button, & .stez-video-launch { display: inline-flex; align-items: center; min-height: 48px; padding: .6rem 1.4rem; border: 0; border-radius: 999px; background: var(--teal); color: #fff !important; font: 700 1rem var(--body); cursor: pointer; text-decoration: none !important; }
  & .stage-liveplayer { position: relative; margin: 1rem 0 0; border-radius: 16px; overflow: hidden; background: #0b1d22; color: #fff; }
  & .stage-liveplayer img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; opacity: .55; }
  & .stage-liveplayer p { position: absolute; inset: auto 0 0 0; margin: 0 !important; padding: .9rem 1.2rem; color: #fff !important; font: 600 .9375rem/1.4 var(--body) !important; }
  & .stage-playlist iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 16px; }
  & .parish-video-find { max-width: 34rem; margin: 0 0 1rem; }
  & .parish-video-find label { display: block; margin-bottom: .3rem; font: 700 .9375rem var(--body); color: var(--ink); }
  & .parish-video-find input { box-sizing: border-box; width: 100%; min-height: 44px; padding: .55rem .9rem; border: 1px solid #7d7464; border-radius: 999px; background: #fff; font: 500 1rem var(--body); }
  & .parish-video-find p { margin: .3rem 0 0 !important; font-size: .875rem !important; color: var(--muted) !important; }
  & .stez-video-year { margin: .4rem 0 !important; border: 1px solid var(--hair); border-radius: 14px; background: var(--sheet); }
  & .stez-video-year > summary { display: flex; justify-content: space-between; gap: 1rem; padding: .85rem 1.1rem; cursor: pointer; font: 400 1.35rem/1.2 var(--display); color: var(--ink); }
  & .stez-video-year > summary span { font: 500 .875rem/1.8 var(--body); color: var(--muted); }
  & .stez-video-list { list-style: none !important; margin: 0 !important; padding: 0 1.1rem .8rem !important; }
  & .stez-video-list li { margin: 0 !important; padding: .5rem 0 !important; border-top: 1px solid var(--hair); }
  & .stage-cal-search { max-width: 34rem; margin: 0 0 1.2rem; }
  & .stage-cal-search label { display: block; margin-bottom: .3rem; font: 700 .9375rem var(--body); color: var(--ink); }
  & .stage-cal-search input { box-sizing: border-box; width: 100%; min-height: 44px; padding: .55rem .9rem; border: 1px solid #7d7464; border-radius: 999px; background: #fff; font: 500 1rem var(--body); }
  & .stage-cal-search p { margin: .35rem 0 0 !important; font-size: .875rem !important; }
  & .stage-cal-results { list-style: none !important; margin: .5rem 0 0 !important; padding: 0 !important; }
  & .stage-cal-results li { display: grid; margin: 0 !important; padding: .6rem 0 !important; border-top: 1px solid var(--hair); }
  & .stage-cal-results span { font-size: .875rem; color: var(--muted); }

  /* Native calendar */
  & .stage-calendar { overflow-x: auto; }
  & .calendarMonthTitle { display: flex !important; align-items: center; gap: .75rem; position: static !important; margin: 0 0 1rem !important; background: none !important; padding: 0 !important; height: auto !important; }
  & .calendarMonthTitle .dateTitle { flex: 1 1 auto; min-width: 0; text-align: center; background: none !important; width: auto !important; font: 400 clamp(1.6rem, 3vw, 2.4rem)/1.1 var(--display) !important; color: var(--ink) !important; float: none !important; }
  & .calendarMonthTitle :is(.lastButton, .nextButton)::after { content: none !important; display: none !important; }
  & .calendarMonthTitle { overflow: visible !important; }
  & .calendarMonthTitle :is(.lastButton, .nextButton) { display: inline-grid !important; place-items: center; width: 44px !important; height: 44px !important; flex: none; border-radius: 50%; background: rgb(23 60 69 / .08) !important; cursor: pointer; float: none !important; position: static !important; color: var(--ink); }
  & .lastButton::before { content: "‹"; font: 500 1.6rem/1 var(--body); }
  & .nextButton::before { content: "›"; font: 500 1.6rem/1 var(--body); }
  & .calendarExportContainer, & .dayCalendar, & .dayCalendarTitle, & .noItemsError { display: none !important; }
  & table.calendar { width: 100% !important; min-width: 44rem; table-layout: fixed; background: none !important; }
  & table.calendar th { font: 700 .8125rem var(--body) !important; color: var(--muted) !important; background: none !important; text-align: left; border: 0 !important; }
  & table.calendar td { height: auto !important; min-height: 6rem; vertical-align: top; border: 1px solid var(--hair) !important; background: var(--sheet) !important; padding: .4rem !important; }
  & table.calendar .dateNumber { font: 700 .8125rem var(--body) !important; color: var(--ink) !important; background: none !important; float: none !important; }
  & table.calendar .eventRepository { display: none !important; }
  & table.calendar td.hasEvents { cursor: pointer; }
  & table.calendar td.hasEvents:hover { background: var(--mist) !important; }
  & table.calendar .calendarEvent { display: block !important; position: static !important; margin: .2rem 0 0 !important; padding: 0 !important; border: 0 !important; background: none !important; color: var(--text) !important; font: 500 .75rem/1.3 var(--body) !important; white-space: normal !important; overflow: visible !important; height: auto !important; width: auto !important; }
  & table.calendar :is(.calendarEventTime, .calendarEventName) { display: inline !important; }
  & table.calendar .calendarEventTime { font-weight: 700; color: var(--ink); margin-right: .25em; background: none !important; }
  & table.calendar .calendarEventName { background: none !important; color: inherit !important; }

  @media (max-width: 700px) {
    & .stage-calendar { overflow: visible; }
    & table.calendar, & table.calendar tbody, & table.calendar tr { display: block !important; width: 100% !important; min-width: 0 !important; }
    & table.calendar thead, & table.calendar td:not(.hasEvents) { display: none !important; }
    & table.calendar td.hasEvents { display: block !important; width: auto !important; min-height: 0; padding: .7rem .8rem !important; margin-bottom: .5rem; border-radius: 12px; }
    & table.calendar td .dateNumber { font: 400 1.3rem/1.2 var(--display) !important; }
    & .fr-view img:not(.stez-provider-image) { float: none !important; margin: 0 0 1rem !important; width: 100% !important; max-width: 100% !important; }
  }

  /* The old home page's blocks, kept for reference */
  & .stez-portrait img { max-width: min(100%, 22rem) !important; }
  & :is(.stez-contact, .stez-around, .stez-quick-links) { background: none !important; padding: 0 !important; margin: 0 !important; border: 0 !important; box-shadow: none !important; width: auto !important; max-width: none !important; }

  /* Photo albums */
  & :is(.stage-albums, ul.photos, .stage-sitemap, .stage-long, .stage-results, .stage-search) { max-width: none !important; }
  & .stage-albums { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 13.5rem), 1fr)); }
  & .stage-albums li { margin: 0 !important; list-style: none !important; }
  & :is(.bulletinsSideNav, .aggregateSideNav) li, & .stage-region > li, & .stage-sitemap li, & .stage-long li, & .stage-results li, & ul.photos > li, & .document.group, & .ofField { list-style: none !important; }
  & .stage-albums a { display: block; text-decoration: none !important; }
  & .stage-albums a:hover span { text-decoration: underline; }
  & .stage-albums img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-lg); background: var(--mist); margin-bottom: .5rem; }
  & .stage-albums span { display: block; font: 400 1.2rem/1.2 var(--display); color: var(--ink); }
  & .stage-albums small { display: block; font: 500 .8125rem var(--body); color: var(--muted); }
  & ul.photos { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid !important; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(min(46%, 10rem), 1fr)); }
  & ul.photos > li { float: none !important; margin: 0 !important; padding: 0 !important; width: auto !important; height: auto !important; background: none !important; }
  & ul.photos img { width: 100% !important; aspect-ratio: 1; object-fit: cover; border-radius: 12px; }
  & .photoAlbumsModule .aggregate, & .aggregate.albums { list-style: none !important; padding: 0 !important; }

  /* Every page, search */
  & .stage-sitemap { display: grid; gap: 1.5rem 2.5rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); margin-bottom: 1.5rem; }
  & .stage-group h2 { font-size: 1.7rem !important; margin-bottom: .5rem !important; }
  & .stage-group h2 a { color: var(--ink) !important; text-decoration: none !important; }
  & .stage-group ul { list-style: none !important; padding: 0 !important; margin: 0 !important; }
  & .stage-group li { padding: .22rem 0; margin: 0 !important; }
  & .stage-long { list-style: none !important; padding: 0 !important; columns: 17rem; }
  & .stage-long li { break-inside: avoid; margin: 0 !important; padding: .18rem 0; }
  & .stage-search label { display: block; font-weight: 700; color: var(--ink); margin-bottom: .35rem; }
  & .stage-search div { display: flex; gap: .6rem; flex-wrap: wrap; }
  & .stage-search input { box-sizing: border-box; flex: 1 1 14rem; min-width: 0; min-height: 44px; padding: .55rem .9rem; border: 1px solid #7d7464; border-radius: 12px; background: #fff; font: 500 1rem var(--body); color: var(--ink); }
  & .stage-search button { border: 0; cursor: pointer; }
  & #stage-count { margin-top: 1rem !important; font-weight: 700 !important; }
  & .stage-results { list-style: none !important; padding: 0 !important; margin: 0 !important; }
  & .stage-results li { padding: .9rem 0; margin: 0 !important; border-top: 1px solid var(--hair); }
  & .stage-results a { font: 400 1.35rem/1.2 var(--display) !important; }
  & .stage-results small { margin-left: .6rem; font-size: .8125rem; color: var(--muted); }
  & .stage-results p { margin: .3rem 0 0 !important; font-size: .9375rem !important; }
  & .stage-note { margin: .75rem 0 0 !important; padding: .7rem 1rem; border-radius: 12px; background: var(--mist); color: var(--ink) !important; font-weight: 600 !important; }
}

#stage-viewer { padding: 0; border: 0; border-radius: var(--r-lg, 18px); background: #0b1d22; max-width: min(94vw, 1100px); max-height: 92vh; overflow: hidden; }
#stage-viewer::backdrop { background: rgb(11 29 34 / .8); }
#stage-viewer img { display: block; max-width: 100%; max-height: 92vh; }
#stage-viewer button { position: absolute; top: .5rem; right: .5rem; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgb(255 255 255 / .9); color: #173c45; font: 500 1.5rem/1 sans-serif; cursor: pointer; }

#stage-day { box-sizing: border-box; width: min(92vw, 34rem); max-height: 85vh; padding: 1.5rem; border: 0; border-radius: var(--r-xl, 24px); background: var(--sheet, #fff); color: var(--text, #34444a); font: 500 1rem/1.5 var(--body, sans-serif); overflow: auto; }
#stage-day::backdrop { background: rgb(11 29 34 / .55); }
#stage-day .stage-day-close { float: right; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgb(23 60 69 / .08); color: var(--ink, #173c45); font-size: 1.4rem; cursor: pointer; }
#stage-day .backButton { display: none; }
#stage-day .dayCalendarTitle { font: 400 1.7rem/1.15 var(--display, serif); color: var(--ink, #173c45); margin: 0 3rem 1rem 0; }
#stage-day .dateTitle :is(.month, .day) { margin-right: .22em; }
#stage-day ul { list-style: none; margin: 0; padding: 0; }
#stage-day li { padding: .7rem 0; border-top: 1px solid var(--hair, #ddd); }
#stage-day .groupCover, #stage-day .readMore, #stage-day .startDate { display: none; }
#stage-day .name a { font-weight: 700; color: var(--wine, #8a1f33); }
#stage-day .date, #stage-day .summary { font-size: .875rem; color: var(--muted, #555); }
#stage-day .dayCalendarTitle, #stage-day .dayCalendarTitle * { background: none !important; color: var(--ink, #173c45) !important; font-style: normal !important; text-align: left !important; padding: 0 !important; }
#stage-day li, #stage-day .name, #stage-day .info, #stage-day .date, #stage-day .time { display: block; background: none !important; text-align: left !important; float: none !important; width: auto !important; font-style: normal !important; padding-inline: 0 !important; margin-inline: 0 !important; }
#stage-day .name a { font: 700 1.05rem/1.3 var(--body, sans-serif) !important; }
#stage-day .summary { background: none !important; text-align: left !important; font-style: normal !important; }

/* Home: quiet today and tomorrow line */

/* Parish calendar tools */
.stage-cal-tools { margin-bottom: 1rem; }
.stage-cal-search label { display: block; font-weight: 700; margin-bottom: .35rem; }
.stage-cal-search > div { display: flex; gap: .5rem; max-width: 34rem; }
.stage-cal-search input { flex: 1; min-width: 0; min-height: 44px; padding: .5rem .9rem; border: 1px solid var(--ink, #173c45); border-radius: 12px; font: inherit; }
.stage-cal-tools button { min-height: 40px; padding: 0 1rem; border: 1px solid var(--ink, #173c45); border-radius: 999px; background: transparent; color: var(--ink, #173c45); font: 600 .9375rem/1 var(--body, inherit); cursor: pointer; }
.stage-cal-tools button[aria-pressed="true"] { background: var(--ink, #173c45); color: #fff; }
.stage-cal-tools button[hidden] { display: none; }
.stage-cal-help { font-size: .875rem; margin: .4rem 0 0 !important; }
.stage-cal-bar { display: flex; justify-content: space-between; gap: .5rem; flex-wrap: wrap; margin-top: .9rem; }
.stage-cal-bar[hidden] { display: none; }
.stage-cal-bar [role="group"] { display: flex; gap: .35rem; }
.stage-cal-results, .stage-cal-list ul { list-style: none !important; margin: .4rem 0 1rem !important; padding: 0 !important; }
.stage-cal-results li, .stage-cal-list li { margin: 0 !important; padding: .45rem 0 .45rem .7rem !important; border-left: 3px solid var(--hair, #ddd); }
.stage-cal-results .stage-ev-mass, .stage-cal-list .stage-ev-mass { border-left-color: var(--wine, #8a1f33); }
.stage-cal-results .stage-ev-other, .stage-cal-list .stage-ev-other { border-left-color: var(--ink, #173c45); }
.stage-cal-list { margin-top: 1rem; }
.stage-cal-list h3 { margin: 1rem 0 .2rem !important; }
.stage-calendar.stage-list-view table.calendar { display: none !important; }
.stage-calendar[hidden] { display: none !important; }
table.calendar .calendarEvent.stage-grid-mass { color: var(--wine, #8a1f33); }
table.calendar td.stage-sunday { background: rgb(23 60 69 / .04) !important; }
table.calendar td.stage-holiday { box-shadow: inset 0 0 0 2px #a3333b; }
@media print { .stage-cal-tools form, .stage-cal-help, .stage-cal-bar { display: none !important; } }

/* Forms and requests page */
.forms-hub .forms-filter { max-width: 34rem; margin: 1.2rem 0 2rem; }
.forms-hub .forms-filter label { display: block; margin-bottom: .3rem; font: 700 .9375rem var(--body); color: var(--ink); }
.forms-hub .forms-filter input { box-sizing: border-box; width: 100%; min-height: 48px; padding: .6rem 1.1rem; border: 1px solid #7d7464; border-radius: 999px; background: #fff; font: 500 1rem var(--body); }
.forms-hub .forms-filter input:focus-visible { outline: 3px solid var(--teal-soft); outline-offset: 2px; }
.forms-hub .forms-count { min-height: 1.3em; margin: .35rem 0 0 !important; font-size: .875rem !important; color: var(--muted); }
.forms-hub .forms-group { margin-top: 2.2rem; }
.forms-hub .forms-group h3 { margin: 0 0 .5rem !important; font: 400 clamp(1.4rem, 2.4vw, 1.8rem)/1.15 var(--display) !important; color: var(--ink) !important; }
.forms-hub .forms-list { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)); gap: 0 clamp(1rem, 3vw, 2.5rem); }
.forms-hub .forms-list li { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin: 0 !important; padding: .85rem 0 !important; border-top: 1px solid var(--hair); }
.forms-hub .forms-list li[hidden], .forms-hub .forms-group[hidden] { display: none; }
.forms-hub .forms-list li > div { min-width: 0; }
.forms-hub .forms-list a b { font-weight: 700; }
.forms-hub .forms-list span { display: block; margin-top: .15rem; font-size: .9375rem; line-height: 1.4; color: var(--muted); }
.forms-hub .forms-list em { flex: none; padding: .15rem .6rem; border-radius: 999px; background: rgb(23 60 69 / .08); color: var(--ink); font: 600 .75rem/1.5 var(--body); white-space: nowrap; }
.forms-hub .forms-list em.online { background: var(--teal); color: #fff; }
.forms-hub .forms-list em.closed { background: #f0e4d8; color: #6d4a22; }
.forms-hub .forms-none { margin-top: 1.5rem; font-weight: 600; }

/* Video and recording player */
#stage-player { box-sizing: border-box; width: min(94vw, 62rem); max-height: 92vh; padding: 0; border: 0; border-radius: var(--r-lg, 18px); background: #0b1d22; color: #fff; overflow: hidden; }
#stage-player::backdrop { background: rgb(11 29 34 / .82); }
.stage-player-bar { display: flex; align-items: center; gap: 1rem; padding: .5rem .6rem .5rem 1.1rem; }
.stage-player-bar h2 { flex: 1; min-width: 0; margin: 0; font: 600 1rem/1.3 var(--body, sans-serif); color: #fff; }
.stage-player-bar a { flex: none; font: 600 .875rem var(--body, sans-serif); color: #fff; }
.stage-player-bar button { flex: none; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgb(255 255 255 / .14); color: #fff; font: 500 1.5rem/1 sans-serif; cursor: pointer; }
.stage-player-body iframe { display: block; width: 100%; aspect-ratio: 16 / 9; max-height: calc(92vh - 60px); border: 0; }
.stage-player-body audio { display: block; width: 100%; padding: 1rem; box-sizing: border-box; }

/* Ministry dates and add to calendar */
.stage-ministry-dates { margin-top: 2rem; }
.stage-ministry-dates summary { min-height: 24px; font-weight: 700; cursor: pointer; }
.stage-add-cal { margin-top: .9rem; }
.stage-add-cal summary { display: inline-flex; align-items: center; min-height: 40px; padding: 0 1rem; border: 1px solid var(--ink, #173c45); border-radius: 999px; font-weight: 600; font-size: .9375rem; color: var(--ink, #173c45); cursor: pointer; list-style: none; }
.stage-add-cal summary::-webkit-details-marker { display: none; }
.stage-add-cal ul { list-style: none !important; margin: .5rem 0 0 !important; padding: 0 !important; }
.stage-add-cal li { margin: 0 !important; padding: .35rem 0 !important; }
.stage-add-cal li::before { content: none !important; }

/* The header's emergency line: keep a space before the number */
.util-urgent { gap: .35em; }

/* Today and Tomorrow, right under the home hero */
#core #days.band { padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; }
.parish-days { container-type: inline-size; }
.parish-days .days-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@container (min-width: 700px) { .parish-days .days-grid { grid-template-columns: 1fr 1fr; } }
.parish-days .days-card { box-sizing: border-box; padding: clamp(1.4rem, 3vw, 2.4rem); border-radius: var(--r-xl); min-width: 0; }
.parish-days .days-today { background: var(--cloak); color: var(--on-dark); }
.parish-days .days-tomorrow { background: var(--mist); color: var(--ink); border: 1px solid var(--hair); }
.parish-days .days-head { display: block; margin: 0 0 1rem !important; }
.parish-days .days-word { display: block; font-family: var(--display) !important; font-size: clamp(2.4rem, 4.5vw, 3.4rem) !important; font-weight: 500 !important; line-height: 1.05; }
.parish-days .days-today .days-word { color: var(--gold-lit); }
.parish-days .days-tomorrow .days-word { color: var(--teal); }
.parish-days .days-date { display: block; margin-top: .3rem; font-family: var(--body) !important; font-size: 1.0625rem !important; font-weight: 600 !important; line-height: 1.3; letter-spacing: 0; }
.parish-days .days-today .days-date { color: var(--on-dark); }
.parish-days .days-tomorrow .days-date { color: var(--ink); }
.parish-days .days-list { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.parish-days .days-list li { display: grid; grid-template-columns: minmax(5.5rem, 34%) minmax(0, 1fr); gap: .15rem 1rem; margin: 0 !important; padding: .6rem 0 !important; border-top: 1px solid var(--hair); }
.parish-days .days-today .days-list li { border-top-color: var(--hair-dark); }
.parish-days .days-time { font-weight: 700; font-size: .9375rem; }
.parish-days .days-list a { overflow-wrap: anywhere; }
body.ecatholic #background#background #core#core .parish-days .days-today a:not(.btn):not(.htmlButton):not(.x):not(.y) { color: var(--on-dark) !important; }
body.ecatholic #background#background #core#core .parish-days .days-tomorrow a:not(.btn):not(.htmlButton):not(.x):not(.y) { color: var(--ink) !important; }
.parish-days .days-empty { margin: .75rem 0 0 !important; font-size: .9375rem; }
.parish-days .days-more { display: inline-block; margin-top: .75rem; font-weight: 600; font-size: .9375rem; }
.parish-days .days-foot { margin: 1rem .5rem 0 !important; }
@media (max-width: 500px) { .parish-days .days-list li { grid-template-columns: 1fr; } }

/* A row of real parish photos */
.photo-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); gap: .75rem; list-style: none !important; margin: 1.25rem 0 !important; padding: 0 !important; }
.photo-row li { margin: 0 !important; padding: 0 !important; }
.photo-row img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-lg); }

/* The menu's way to every ministry */
html body.ecatholic #background#background #headerBackground #header :is(#nav, #nav.moduleContainer) .secondLevel .secondLevel .navAll > a:not(.x):not(.y):not(.z), html body.ecatholic #mobilePanel#mobilePanel #mobileNav .navAll > a:not(.x):not(.y):not(.z) { font-weight: 800 !important; }

/* Christ's invitation under the home headline */
html body.ecatholic .hero .hero-in .hero-verse { margin: 1rem 0 0 !important; max-width: 34rem; font: italic 400 clamp(1.3rem, 2vw, 1.7rem)/1.3 var(--display) !important; color: var(--on-dark) !important; }
html body.ecatholic .hero .hero-in .hero-verse cite { display: block; margin-top: .3rem; font: 600 .875rem/1.5 var(--body) !important; color: var(--gold-lit) !important; }

/* Native module subtitle: one quiet line under the title */
html body.ecatholic .moduleName .moduleSubtitle, html body.ecatholic .moduleName .moduleSubtitle span { display: block; order: 1 !important; margin: .35rem 0 0 !important; padding: 0 !important; font: italic 400 1.15rem/1.3 var(--display) !important; color: inherit !important; text-transform: none !important; background: none !important; border: 0 !important; }
