@charset "UTF-8";
* {
  padding: 0;
  margin: 0;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
  word-break: normal;
}

img, fieldset {
  border: 0;
}

abbr {
  text-decoration: none;
}

code {
  line-height: 1em;
}

pre {
  overflow: auto;
  word-wrap: normal;
  tab-size: 4;
}

sub, sup {
  line-height: 0.5em;
}

img {
  max-width: 100%;
  height: auto;
}

iframe, video, embed, object {
  display: block;
  max-width: 100%;
}

img, .left, .right, .center {
  display: block;
}

.center {
  float: none;
  text-align: center;
  margin-right: auto;
  margin-left: auto;
}

button, input[type=submit] {
  cursor: pointer;
  overflow: visible;
}

body {
  font-family: "Gotham SSm A", "Gotham SSm B", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 18px;
  line-height: 29px;
  color: #202020;
  background-color: #f4f4f4;
  overflow-x: hidden;
}

h1 {
  font-family: "Mercury SSm A", "Mercury SSm B", Georgia, "Times New Roman", serif;
  font-size: 37px;
  line-height: 56px;
  font-weight: bold;
  margin-bottom: 29px;
}

h2 {
  font-family: "Mercury SSm A", "Mercury SSm B", Georgia, "Times New Roman", serif;
  font-size: 29px;
  line-height: 45px;
  font-weight: bold;
  margin-top: 47px;
  margin-bottom: 29px;
}

h3 {
  font-family: "Mercury SSm A", "Mercury SSm B", Georgia, "Times New Roman", serif;
  font-size: 23px;
  line-height: 36px;
  font-weight: bold;
  margin-top: 29px;
  margin-bottom: 18px;
}

h4 {
  font-family: "Mercury SSm A", "Mercury SSm B", Georgia, "Times New Roman", serif;
  font-size: 18px;
  line-height: 29px;
  font-weight: bold;
  margin-bottom: 11px;
}

h1 + h2, h2 + h3, h1:first-child, h2:first-child, h3:first-child, hr + h2 {
  margin-top: 0;
}

a {
  color: #202020;
  text-decoration: none;
}
p a, .page-content a {
  text-decoration: underline;
}
p a.button, .page-content a.button {
  text-decoration: none;
}

ul {
  list-style-type: disc;
}

ul, ol {
  margin-left: 29px;
}

ul ul, ul ol, ol ul, ol ol {
  margin-top: 11px;
  margin-bottom: 0;
  margin-left: 18px;
}

li {
  margin-bottom: 11px;
}
li:last-child {
  margin-bottom: 0;
}

blockquote {
  background-color: #fff4d9;
  padding: 18px;
  border-radius: 0 11px 11px 0;
  border-left: 7px solid rgba(0, 0, 0, 0.1);
}
blockquote > :last-child {
  margin-bottom: 0;
}

sub, sup {
  color: #7b7b7b;
}

code, pre, kbd {
  font-size: 16px;
}

code {
  background-color: rgba(0, 0, 0, 0.08);
  padding: 4px;
  border-radius: 7px;
  margin: 0 1px;
}
strong code {
  font-weight: normal;
}

pre {
  background-color: #e2ecfe;
  padding: 18px;
  border-radius: 0 11px 11px 0;
  border-left: 7px solid rgba(0, 0, 0, 0.1);
}

kbd {
  font-size: 14px;
  color: #4e4e4e;
  background-color: #f7f7f7;
  padding: 4px 7px;
  border: 1px solid #ccc;
  border-radius: 7px;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 1px #fafafa inset, 0 0 0 1px #fff inset;
  margin: 0 1px;
}

svg {
  width: 18px;
  height: 18px;
  vertical-align: text-bottom;
}

hr {
  border: 1px dotted rgba(0, 0, 0, 0.25);
  border-width: 0 0 1px 0;
  margin: 29px 0;
}

.drop-cap {
  font-family: "Mercury SSm A", "Mercury SSm B", Georgia, "Times New Roman", serif;
  font-size: 58px;
  line-height: 1em;
  font-weight: bold;
  margin-right: 7px;
  float: left;
}

.small {
  font-size: 14px;
  line-height: 24px;
  color: #7b7b7b;
}

.callout {
  color: #111111;
  background-color: #d5facc;
  padding: 18px;
}
.callout.alert {
  color: #111111;
  background-color: #fff27a;
}
.callout.note {
  color: #111111;
  background-color: #cef1fd;
}
.callout > :last-child {
  margin-bottom: 0;
}

.highlight {
  background-color: #fffb7a;
  padding: 4px 0;
}

.impact {
  font-size: 23px;
  line-height: 36px;
}

.pop {
  box-shadow: 0 0 11px rgba(0, 0, 0, 0.4);
}

.caption {
  font-size: 14px;
  line-height: 24px;
  color: #7b7b7b;
  margin-top: -25px;
}
.caption code {
  font-size: 13px;
}
.center + .caption {
  text-align: center;
}
blockquote + .caption {
  padding-left: 25px;
}
h1 + .caption, h2 + .caption {
  margin-top: -26.5px;
}
h3 + .caption {
  margin-top: -16.5px;
  margin-bottom: 18px;
}

p, ul, ol, blockquote, pre, img, .callout, .caption {
  margin-bottom: 29px;
}

@media all and (min-width: 680px) {
  body:not(.has-sidebar) h1 {
    font-size: 47px;
    line-height: 69px;
  }
  body:not(.has-sidebar) h2 {
    font-size: 37px;
    line-height: 56px;
  }
  body:not(.has-sidebar) h3 {
    font-size: 29px;
    line-height: 45px;
  }
  body:not(.has-sidebar) h4 {
    font-size: 23px;
    line-height: 36px;
  }
  body:not(.has-sidebar) h1 + .caption, body:not(.has-sidebar) h2 + .caption {
    margin-top: -25px;
  }
  body:not(.has-sidebar) h3 + .caption {
    margin-top: -15px;
  }
  .impact {
    font-size: 29px;
    line-height: 45px;
  }
  .left:not(.bar) {
    float: left;
    clear: both;
    margin-right: 29px;
  }
  .right:not(.bar) {
    float: right;
    clear: both;
    margin-left: 29px;
  }
}
.page-container + .page-container {
  margin-top: 47px;
}

.page-content > :last-child {
  margin-bottom: 0;
}

.page-list {
  margin-bottom: 0;
}

.page-title {
  font-family: "Mercury SSm A", "Mercury SSm B", Georgia, "Times New Roman", serif;
  font-weight: bold;
}
.page-title a {
  color: #202020;
}
.page-title a:hover {
  color: #202020;
}
.page-title:has(+ .byline) {
  margin-bottom: 0;
}

.byline {
  font-size: 14px;
  line-height: 24px;
  color: #7b7b7b;
  margin-bottom: 29px;
}
.byline .page-author:after, .byline .page-date:after, .byline .page-edit:after {
  display: block;
  height: 0;
  content: "\a";
  white-space: pre;
}
.byline .avatar {
  width: 48px;
  height: 48px;
}

.author-description {
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  padding-top: 29px;
}
.author-description .avatar {
  float: left;
  width: 87px;
  height: 87px;
  margin-right: 18px;
}

.author-description-intro {
  font-weight: bold;
}

.page-container, .headline-area, .byline, .page-content, .page-list, .author-description {
  display: flow-root;
}

@media all and (min-width: 420px) {
  .byline .page-author:after, .byline .page-date:after {
    display: none;
  }
  .byline .page-author + .page-date-intro:before, .byline .page-author + .page-date:before, .byline .page-date + .page-date-intro:before {
    color: #7b7b7b;
    content: "• ";
  }
}
@media all and (min-width: 680px) {
  .headline-area {
    position: relative;
  }
}
.page-content + .modular-content {
  margin-top: 29px;
}
.modular-content > :last-child {
  margin-bottom: 0;
}

label {
  display: block;
  font-weight: bold;
}
label .required {
  font-weight: normal;
  color: #dd0000;
}

input, textarea, select {
  display: block;
  width: auto;
  max-width: 100%;
  box-sizing: border-box;
  font-family: inherit;
  font-size: inherit;
  line-height: 1em;
  font-weight: inherit;
  padding: 7px;
  border: 1px solid rgba(0, 0, 0, 0.1);
}

input[type=checkbox], input[type=radio], input[type=image], input[type=submit], select {
  width: auto;
}

input[type=checkbox], input[type=radio] {
  display: inline-block;
}
input[type=checkbox] + label, input[type=radio] + label {
  display: inline;
  font-weight: normal;
  margin-left: 4px;
  user-select: none;
}

textarea {
  line-height: inherit;
  padding: 7px;
  border: 1px solid rgba(0, 0, 0, 0.1);
}

select {
  border: 1px solid rgba(0, 0, 0, 0.1);
}

button, input[type=submit], .button {
  display: inline-block;
  width: auto;
  font-family: inherit;
  font-size: inherit;
  font-weight: normal;
  line-height: 1em;
  vertical-align: top;
  color: #111111;
  text-decoration: none;
  background-color: #ffebb3;
  padding: 11px 11px;
  border: 1px solid rgba(0, 0, 0, 0.18);
  border-bottom-width: 4px;
  border-bottom-color: rgba(0, 0, 0, 0.25);
  border-radius: 11px;
  cursor: pointer;
  user-select: none;
}
button:hover, button:active, input[type=submit]:hover, input[type=submit]:active, .button:hover, .button:active {
  text-decoration: none;
  background-color: #fff5d9;
  transition: background-color 0.3s ease;
}
button:active, input[type=submit]:active, .button:active {
  border-bottom-width: 2px;
  margin-top: 2px;
}

button.save, .button.save {
  color: #FFFFFF;
  background-color: #509b26;
}
button.save:hover, button.save:active, .button.save:hover, .button.save:active {
  background-color: #60ba2e;
}
button.delete, .button.delete {
  color: #FFFFFF;
  background-color: #d50b0b;
}
button.delete:hover, button.delete:active, .button.delete:hover, .button.delete:active {
  background-color: #f31313;
}
button.action, .button.action {
  color: #FFFFFF;
  background-color: #12a7ff;
}
button.action:hover, button.action:active, .button.action:hover, .button.action:active {
  background-color: #38b5ff;
}
button.update, .button.update {
  color: #111111;
  background-color: #fcfc0d;
}
button.update:hover, button.update:active, .button.update:hover, .button.update:active {
  background-color: #fcfc33;
}
button svg, .button svg {
  vertical-align: inherit;
}

#banner {
  background-color: #ffffa8;
  padding-top: 11px;
  padding-bottom: 11px;
  padding-left: 18px;
  padding-right: 18px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
@media all and (min-width: 702px) {
  #banner {
    padding-left: 29px;
    padding-right: 29px;
  }
}

#header {
  color: white;
  background-color: orangered;
  padding-top: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

#nav {
  background-color: orangered;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

#content {
  word-break: break-word;
  padding-top: 29px;
  padding-bottom: 29px;
}

#footer {
  padding-top: 18px;
  padding-bottom: 18px;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.container {
  box-sizing: border-box;
  padding-left: 18px;
  padding-right: 18px;
}
@media all and (min-width: 680px) {
  .container {
    max-width: 644px;
    padding-left: 0;
    padding-right: 0;
    margin-left: auto;
    margin-right: auto;
  }
}
@media all and (min-width: 702px) {
  .container {
    max-width: 100%;
    padding-left: 29px;
    padding-right: 29px;
    margin-left: 0;
    margin-right: 0;
  }
}
@media all and (min-width: 1098px) {
  .container {
    max-width: 1040px;
    padding-left: 0;
    padding-right: 0;
    margin-left: auto;
    margin-right: auto;
  }
}

#site-title {
  font-family: "Gotham SSm A", "Gotham SSm B", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 37px;
  line-height: 56px;
  font-weight: bold;
}
#site-title a {
  color: inherit;
}

.menu {
  list-style: none;
  margin-bottom: 0;
  margin-left: 0;
  display: flex;
  align-items: baseline;
  white-space: nowrap;
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: -ms-autohiding-scrollbar;
}
.menu::-webkit-scrollbar {
  display: none;
}
.menu li {
  margin-right: 29px;
  margin-bottom: 0;
}
.menu li:last-child {
  margin-right: 0;
}
.menu a {
  display: block;
  color: white;
  padding-top: 11px;
  padding-bottom: 11px;
}
.menu:before {
  content: "↔";
  color: #7b7b7b;
  margin-right: 29px;
}
@media all and (min-width: 680px) {
  .focus .menu {
    justify-content: center;
  }
  .menu:before {
    display: none;
  }
}

.bar {
  color: #7b7b7b;
}
@media all and (min-width: 1098px) {
  .text .bar {
    width: 100%;
  }
  .text .bar code {
    font-size: 13px;
  }
  .readability .text .bar, .focus .text .bar {
    box-sizing: border-box;
    float: right;
    clear: right;
    font-size: 14px;
    line-height: 24px;
    margin-bottom: 18px;
  }
  .readability .text .bar {
    max-width: 349px;
    margin-right: -396px;
  }
  .focus .text .bar {
    max-width: 169px;
    margin-right: -198px;
  }
  .focus .text .bar.left {
    float: left;
    clear: left;
    margin-left: -198px;
  }
}

.bleed {
  display: flow-root;
  position: relative;
  width: 100vw;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  margin-top: 47px;
  margin-bottom: 47px;
  margin-left: -18px;
}
.bleed + .bleed {
  margin-top: -47px;
}
.bleed:has(+ .bleed) {
  border-bottom: 0;
}
.text:first-child > .page-content:first-child > .bleed:first-child {
  border-top: 0;
  margin-top: -29px;
}
.page-content:last-child .bleed:last-child {
  border-bottom: 0;
  margin-bottom: -29px;
}
@media all and (min-width: 680px) {
  .bleed {
    margin-left: calc((644px - 100vw) / 2);
  }
}
@media all and (min-width: 702px) {
  .bleed {
    margin-left: -29px;
  }
}
@media all and (min-width: 1098px) {
  .bleed {
    margin-left: calc((1040px - 100vw) / 2);
  }
}
.focus .bleed {
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}
.bleed .container {
  padding-top: 29px;
  padding-bottom: 29px;
}
.bleed pre {
  background-color: rgba(0, 0, 0, 0.1);
}
.bleed.no-border {
  border-top: none;
}
.bleed.red {
  background-color: hsl(0, 100%, 90%);
}
.bleed.red blockquote, .bleed.red .page-content > .small, .bleed.red .caption, .bleed.red .bar {
  color: hsl(0, 100%, 25%);
}
.bleed.salmon {
  background-color: hsl(20, 100%, 90%);
}
.bleed.salmon blockquote, .bleed.salmon .page-content > .small, .bleed.salmon .caption, .bleed.salmon .bar {
  color: hsl(20, 100%, 25%);
}
.bleed.orange {
  background-color: hsl(40, 100%, 90%);
}
.bleed.orange blockquote, .bleed.orange .page-content > .small, .bleed.orange .caption, .bleed.orange .bar {
  color: hsl(40, 100%, 25%);
}
.bleed.yellow {
  background-color: hsl(60, 100%, 90%);
}
.bleed.yellow blockquote, .bleed.yellow .page-content > .small, .bleed.yellow .caption, .bleed.yellow .bar {
  color: hsl(60, 100%, 25%);
}
.bleed.chartreuse {
  background-color: hsl(80, 100%, 90%);
}
.bleed.chartreuse blockquote, .bleed.chartreuse .page-content > .small, .bleed.chartreuse .caption, .bleed.chartreuse .bar {
  color: hsl(80, 100%, 25%);
}
.bleed.lime {
  background-color: hsl(100, 100%, 90%);
}
.bleed.lime blockquote, .bleed.lime .page-content > .small, .bleed.lime .caption, .bleed.lime .bar {
  color: hsl(100, 100%, 25%);
}
.bleed.green {
  background-color: hsl(120, 100%, 90%);
}
.bleed.green blockquote, .bleed.green .page-content > .small, .bleed.green .caption, .bleed.green .bar {
  color: hsl(120, 100%, 25%);
}
.bleed.aquamarine {
  background-color: hsl(140, 100%, 90%);
}
.bleed.aquamarine blockquote, .bleed.aquamarine .page-content > .small, .bleed.aquamarine .caption, .bleed.aquamarine .bar {
  color: hsl(140, 100%, 25%);
}
.bleed.turquoise {
  background-color: hsl(160, 100%, 90%);
}
.bleed.turquoise blockquote, .bleed.turquoise .page-content > .small, .bleed.turquoise .caption, .bleed.turquoise .bar {
  color: hsl(160, 100%, 25%);
}
.bleed.cyan {
  background-color: hsl(180, 100%, 90%);
}
.bleed.cyan blockquote, .bleed.cyan .page-content > .small, .bleed.cyan .caption, .bleed.cyan .bar {
  color: hsl(180, 100%, 25%);
}
.bleed.blue {
  background-color: hsl(200, 100%, 90%);
}
.bleed.blue blockquote, .bleed.blue .page-content > .small, .bleed.blue .caption, .bleed.blue .bar {
  color: hsl(200, 100%, 25%);
}
.bleed.steel {
  background-color: hsl(220, 100%, 90%);
}
.bleed.steel blockquote, .bleed.steel .page-content > .small, .bleed.steel .caption, .bleed.steel .bar {
  color: hsl(220, 100%, 25%);
}
.bleed.lavender {
  background-color: hsl(240, 100%, 90%);
}
.bleed.lavender blockquote, .bleed.lavender .page-content > .small, .bleed.lavender .caption, .bleed.lavender .bar {
  color: hsl(240, 100%, 25%);
}
.bleed.purple {
  background-color: hsl(260, 100%, 90%);
}
.bleed.purple blockquote, .bleed.purple .page-content > .small, .bleed.purple .caption, .bleed.purple .bar {
  color: hsl(260, 100%, 25%);
}
.bleed.orchid {
  background-color: hsl(280, 100%, 90%);
}
.bleed.orchid blockquote, .bleed.orchid .page-content > .small, .bleed.orchid .caption, .bleed.orchid .bar {
  color: hsl(280, 100%, 25%);
}
.bleed.magenta {
  background-color: hsl(300, 100%, 90%);
}
.bleed.magenta blockquote, .bleed.magenta .page-content > .small, .bleed.magenta .caption, .bleed.magenta .bar {
  color: hsl(300, 100%, 25%);
}
.bleed.pink {
  background-color: hsl(320, 100%, 90%);
}
.bleed.pink blockquote, .bleed.pink .page-content > .small, .bleed.pink .caption, .bleed.pink .bar {
  color: hsl(320, 100%, 25%);
}
.bleed.rose {
  background-color: hsl(340, 100%, 90%);
}
.bleed.rose blockquote, .bleed.rose .page-content > .small, .bleed.rose .caption, .bleed.rose .bar {
  color: hsl(340, 100%, 25%);
}

.focus #header, .focus #nav, .focus #nav-2, .focus #footer {
  text-align: center;
}
.focus #header-image, .focus #logo {
  margin-left: auto;
  margin-right: auto;
}
@media all and (min-width: 680px) {
  .focus .text .headline-area, .focus .text .featured-image-wrap, .focus .text .page-content h1, .focus .text h2, .focus .text h3, .focus .text h1 + .caption, .focus .text h2 + .caption, .focus .text h3 + .caption, .focus .text .impact, .focus .text .extend + .caption, .focus .text .extend .caption {
    text-align: center;
  }
  .focus .text .byline .avatar {
    margin-left: auto;
    margin-right: auto;
  }
}

.readability .text .byline .avatar {
  float: right;
  margin-left: 18px;
  margin-bottom: 0;
}
.focus .text .byline .avatar {
  margin-bottom: 7px;
}
@media all and (min-width: 680px) {
  .readability .text .byline .avatar {
    float: left;
    margin-left: 0;
    margin-right: 18px;
  }
  .focus .text .byline .avatar {
    margin-bottom: 11px;
  }
}
.focus .text .breakout {
  margin-left: auto;
  margin-right: auto;
}
.text .breakout.left {
  float: none;
  margin-left: 0;
  margin-right: 0;
}
.text .pullout.left {
  float: none;
  margin-right: 0;
}
@media all and (min-width: 702px) {
  .readability .text, .focus .text {
    max-width: 644px;
  }
  .readability .text .extend, .focus .text .extend {
    display: flow-root;
    box-sizing: border-box;
    max-width: calc(100vw - 58px);
  }
  .readability .text .headline-area, .readability .text .page-content > h1, .readability .text .page-content > h2, .readability .text .page-content > h3, .readability .text .page-content > .impact, .readability .text .extend, .readability .text .extend + .caption {
    margin-right: calc(702px - 100vw);
  }
  .focus .text {
    margin-left: auto;
    margin-right: auto;
  }
  .focus .text .headline-area, .focus .text .page-content > h1, .focus .text .page-content > h2, .focus .text .page-content > h3, .focus .text .page-content > .impact, .focus .text .extend, .focus .text .extend + .caption {
    margin-left: calc(351px - 50vw);
    margin-right: calc(351px - 50vw);
  }
  .focus .text .extend.right {
    margin-left: 29px;
  }
  .focus .text .extend.left {
    margin-right: 29px;
  }
}
@media all and (min-width: 1098px) {
  .readability .text .pullout, .focus .text .pullout {
    float: right;
    box-sizing: border-box;
  }
  .readability .text .extend, .focus .text .extend {
    max-width: 1040px;
  }
  .readability .text .extend .pullout, .focus .text .extend .pullout {
    float: none;
    max-width: 100%;
  }
  .readability .text .headline-area, .readability .text .page-content > h1, .readability .text .page-content > h2, .readability .text .page-content > h3, .readability .text .page-content > .impact, .readability .text .extend, .readability .text .extend + .caption {
    margin-right: -396px;
  }
  .readability .text .breakout {
    max-width: calc(703.5px + (100vw - 1040px) / 2);
    margin-right: calc(-396px - (100vw - 1040px) / 2);
  }
  .readability .text .pullout {
    max-width: calc(100vw - (100vw - 1040px) / 2 - 691px);
    margin-right: calc(-396px - (100vw - 1040px) / 2);
  }
  .readability .text .extend .pullout {
    margin-left: 0;
    margin-right: 0;
  }
  .focus .text .headline-area, .focus .text .page-content > h1, .focus .text .page-content > h2, .focus .text .page-content > h3, .focus .text .page-content > .impact, .focus .text .extend, .focus .text .extend + .caption {
    margin-left: -198px;
    margin-right: -198px;
  }
  .focus .text .breakout {
    max-width: calc(505.5px + (100vw - 1040px) / 2);
    margin-left: 29px;
    margin-right: calc(322px - 50vw);
  }
  .focus .text .breakout.left {
    margin-left: calc(322px - 50vw);
    margin-right: 29px;
  }
  .focus .text .pullout {
    max-width: calc(100vw - (100vw - 1040px) / 2 - 871px);
    margin-right: calc(-198px - (100vw - 1040px) / 2);
  }
  .focus .text .pullout.left {
    float: left;
    margin-left: calc(-198px - (100vw - 1040px) / 2);
    margin-right: 0;
  }
  .focus .text .extend .pullout {
    margin-left: auto;
    margin-right: auto;
  }
  .text .breakout, .text .extend .breakout {
    float: right;
    box-sizing: border-box;
    max-width: calc(505.5px + (100vw - 1040px) / 2);
    margin-left: 29px;
    margin-right: calc((1040px - 100vw) / 2);
  }
  .text .breakout.left, .text .extend .breakout.left {
    float: left;
    margin-left: calc((1040px - 100vw) / 2);
    margin-right: 29px;
  }
  .has-sidebar .text .breakout, .has-sidebar .text .extend .breakout {
    float: none;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
}

/*---:[ Custom CSS ]:---*/
:root {
  --font-gotham: "Gotham SSm A", "Gotham SSm B", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-mercury: "Mercury SSm A", "Mercury SSm B", Georgia, "Times New Roman", serif;
  --tct-orange: #ff4500;
}

body {
  font-family: var(--font-gotham);
  font-weight: 300;
  color: #202020;
}

h1, h2, h3, h4, h5, h6,
.page-title,
.drop-cap {
  font-family: var(--font-mercury);
}

h1, h2, h3 {
  font-weight: 700;
}

strong, b {
  font-weight: 700;
  font-synthesis: none;
}

.byline,
.caption,
.small,
#site-title,
#nav,
.menu a {
  font-family: var(--font-gotham);
}

.byline,
.page-author-intro,
.page-author,
.page-date-intro,
.page-date {
  display: none;
}

/* --------------------------------------------------------------------------
   Ordinary text links (the site-wide standard)
   Ink (#202020) at rest and when visited, the surrounding font weight (never
   bold by default), a 1px underline offset 2px. On hover the colour stays ink
   and the underline is removed. Keyboard focus shows an orange outline.
   Applies to classless links in page prose (.page-content a), the Churches of
   Rome pages (.cor-page a), guide-hub/guide-index link lists, and the Papal
   Guide/Tickets prose (body.template-papal-calendar .page-body a, below).
   Deliberately excluded (each styles itself): navigation, footer, buttons and
   CTAs (.button, .tp-status-cta, .tp-cta-solid, .day-tour-cta), the pilgrimage
   status/cancel/alert bands (white on colour), the directory components
   (.th-pil-row, .dir-row) and the Papal event/jump-nav components.
   -------------------------------------------------------------------------- */
a {
  color: #202020;
}

a:visited {
  color: #202020;
}

a:hover:not(.button) {
  color: #202020;
  text-decoration: none;
}

/* ==========================================================================
   Design-system mixins (Pass 1)
   tct-h1-type   the ONE standard H1: Mercury, regular weight, clamp(36-47px),
                 1.234 line-height (58px at 47px), centered, 40px below. Taken from the church
                 page H1 (e.g. Santo Spirito dei Napoletani).
   tct-h2-type   the ONE standard H2: the Guide to Papal Events H2 (Mercury,
                 regular, clamp(22-30px), light-gray rule, 8px under the text).
   tct-h2-space  standard spacing around an H2 (64px above / 30px below;
                 48px / 24px on phones).
   ========================================================================== */
.page-content a:not([class]),
.cor-page a:not([class]),
a.guide-index-link,
a.guide-hub-link {
  color: #202020;
  font-weight: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.page-content a:not([class]):visited,
.cor-page a:not([class]):visited,
a.guide-index-link:visited,
a.guide-hub-link:visited {
  color: #202020;
}

.page-content a:not([class]):hover,
.cor-page a:not([class]):hover,
a.guide-index-link:hover,
a.guide-hub-link:hover {
  color: #202020;
  text-decoration: none;
}

.page-content a:not([class]):focus-visible,
.cor-page a:not([class]):focus-visible,
a.guide-index-link:focus-visible,
a.guide-hub-link:focus-visible {
  outline: 2px solid #ff4500;
  outline-offset: 2px;
  border-radius: 1px;
}

#header .container,
#nav .container {
  max-width: 1600px;
  padding-left: clamp(28px, 4.5vw, 64px);
  padding-right: clamp(28px, 4.5vw, 64px);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

@media all and (max-width: 705px) {
  #header .container,
  #nav .container {
    max-width: none;
    padding-left: 19px;
    padding-right: 19px;
    margin-left: 0;
    margin-right: 0;
  }
}
#header,
#nav {
  background-color: #ff4500;
  text-align: center;
}

#site-title {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: clamp(20px, 2.2vw, 26px);
  line-height: 1.15;
}

#site-title a {
  display: inline-flex;
  color: #fff;
  font-family: "Gotham SSm A", "Gotham SSm B", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 400;
  text-decoration: none;
}

#site-title a:hover {
  color: #fff;
}

#nav {
  border-top: 1px solid rgba(32, 32, 32, 0.14);
  border-bottom: 1px solid rgba(32, 32, 32, 0.14);
}

#nav ul.menu,
#nav .menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
}

#nav ul.menu li,
#nav .menu li {
  margin: 0;
}

#nav a {
  display: inline-block;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 13px;
  line-height: 1.75;
  color: #fff;
  padding: 8px 14px;
  border-radius: 3px;
  text-decoration: none;
  transition: background-color 150ms ease-out;
}

#nav a:visited {
  color: #fff;
}

#nav a:hover {
  color: #fff;
  background-color: rgba(0, 0, 0, 0.15);
  text-decoration: none;
}

#nav a[aria-current=page],
#nav a.current {
  background-color: rgba(0, 0, 0, 0.15);
  color: #fff;
}

#nav li:has(a[href="/blog/"]),
#nav li:has(a[href="/in-the-media/"]) {
  display: none;
}

#nav .menu::before,
#nav-menu::before {
  content: none;
}

@media all and (max-width: 1360px) {
  #header {
    padding: 32px 0 20px;
    border-bottom: none;
  }
  #nav {
    padding: 16px 0 20px;
    border-top: none;
    border-bottom: none;
  }
  #nav .container {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  #nav-toggle {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    width: 40px;
    height: 34px;
    padding: 0;
    margin: 0;
    background: transparent;
    border: none;
    cursor: pointer;
  }
  #nav-toggle:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
  }
  #nav-toggle .nav-toggle-bar {
    display: block;
    width: 24px;
    height: 2px;
    background: #fff;
    border-radius: 1px;
    transition: transform 150ms ease-out, opacity 150ms ease-out;
  }
  #nav.is-open #nav-toggle .nav-toggle-bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }
  #nav.is-open #nav-toggle .nav-toggle-bar:nth-child(2) {
    opacity: 0;
  }
  #nav.is-open #nav-toggle .nav-toggle-bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }
  #nav ul.menu,
  #nav .menu {
    display: none;
    flex-direction: column;
    align-items: center;
    width: 100%;
    margin: 16px 0 0;
    padding: 0;
    gap: 2px;
    overflow-x: visible;
    white-space: normal;
    scroll-behavior: auto;
  }
  #nav.is-open ul.menu,
  #nav.is-open .menu {
    display: flex;
  }
  #nav ul.menu li,
  #nav .menu li {
    width: 100%;
    max-width: 320px;
    text-align: center;
  }
  #nav ul.menu li a,
  #nav .menu li a {
    display: block;
    white-space: nowrap;
    font-size: 13px;
    padding: 10px 10px;
    letter-spacing: 0.04em;
    border-radius: 2px;
  }
}
@media all and (min-width: 1361px) {
  #nav-toggle {
    display: none;
  }
  #header {
    padding: 48px 0;
  }
  #header .container {
    height: 40px;
    display: flex;
    align-items: center;
  }
  #site-title a {
    flex-direction: row;
    align-items: center;
    gap: 10px;
  }
  #nav {
    padding: 48px 0;
    margin-top: -136px;
    border-top: none;
    border-bottom: none;
    pointer-events: none;
  }
  #nav .container {
    height: 40px;
    display: flex;
    align-items: center;
  }
  #nav ul.menu,
  #nav .menu {
    justify-content: flex-end;
    width: 100%;
  }
  #nav a {
    padding: 7px 16px;
    border-radius: 2px;
    pointer-events: auto;
  }
}
#content {
  padding-top: 30px;
  padding-bottom: 102px;
}

@media all and (max-width: 1024px) {
  #content {
    padding-top: 24px;
    padding-bottom: 82px;
  }
}
@media all and (max-width: 705px) {
  #content {
    padding-top: 20px;
    padding-bottom: 68px;
  }
}
#content:has(.tct-pilgrimage) {
  padding-bottom: 0;
}

#footer {
  padding: 0;
  border-top: none;
}

#footer .container {
  max-width: 1600px;
  padding-left: 38px;
  padding-right: 38px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

@media all and (min-width: 706px) {
  #footer .container {
    padding-left: calc(2 * clamp(28px, 4.5vw, 64px));
    padding-right: calc(2 * clamp(28px, 4.5vw, 64px));
  }
}
.tp-footer {
  color: #fff;
  background: #ff4500;
  font-weight: 300;
  line-height: 1.75;
  box-shadow: 0 0 0 100vmax #ff4500;
  clip-path: inset(0 -100vmax);
}

.tp-footer a {
  color: #fff;
  text-decoration: none;
}

.tp-footer a:visited {
  color: #fff;
}

.tp-footer a:hover {
  color: rgba(255, 255, 255, 0.68);
  text-decoration: none;
}

.tp-footer-top {
  box-sizing: border-box;
  max-width: 1600px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 80px;
  padding-bottom: 64px;
  padding-left: 0;
  padding-right: 0;
}

@media all and (max-width: 705px) {
  .tp-footer-top {
    padding-top: 56px;
    padding-bottom: 40px;
  }
}
.tp-footer-cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: 56px;
}

@media all and (min-width: 861px) {
  .tp-footer-cols {
    grid-template-columns: 1.2fr 1fr;
    gap: clamp(48px, 6vw, 96px);
    align-items: start;
  }
}
.tp-footer-newsletter,
.tp-footer-follow {
  min-width: 0;
}

#footer .tp-footer-col-heading {
  margin: 0 0 16px;
  font-family: "Gotham SSm A", "Gotham SSm B", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 700;
  font-size: 29px;
  line-height: 47px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
  white-space: nowrap;
}

.tp-footer-cols .tp-footer-col-heading {
  text-align: left;
}

.tp-footer-newsletter {
  text-align: left;
}

.tp-footer-newsletter-copy {
  font-family: "Mercury SSm A", "Mercury SSm B", Georgia, "Times New Roman", serif;
  font-size: 18px;
  font-weight: 300;
  line-height: 1.55;
  letter-spacing: normal;
  color: rgba(255, 255, 255, 0.92);
  max-width: 46ch;
  margin: 0 0 28px;
}

.tp-footer-newsletter-copy em {
  font-family: "Mercury SSm A", "Mercury SSm B", Georgia, "Times New Roman", serif;
  font-size: 18px;
  font-weight: 300;
  font-style: italic;
  line-height: 1.55;
  letter-spacing: normal;
}

.tp-footer-form {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  max-width: 440px;
  min-width: 0;
}

.tp-footer-form input {
  flex: 1 1 240px;
  min-width: 0;
  padding: 15px 18px;
  border: none;
  border-radius: 3px;
  background: #fff;
  color: #202020;
  font-family: "Gotham SSm A", "Gotham SSm B", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 15px;
}

.tp-footer-form input::placeholder {
  color: rgba(32, 32, 32, 0.45);
}

.tp-footer-form button {
  flex: 0 0 auto;
  padding: 15px 26px;
  border: none;
  border-radius: 3px;
  background: #202020;
  color: #fff;
  font-family: "Gotham SSm A", "Gotham SSm B", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: background-color 150ms ease-out;
}

.tp-footer-form button:hover {
  background: #202020;
}

.tp-footer-subhead {
  margin: 16px 0 0;
  font-family: "Mercury SSm A", "Mercury SSm B", Georgia, "Times New Roman", serif;
  font-size: 17px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.8);
}

.tp-follow-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.tp-follow-item {
  font-family: "Mercury SSm A", "Mercury SSm B", Georgia, "Times New Roman", serif;
  font-size: 32px;
  line-height: 1.15;
  color: #fff;
  text-decoration: none;
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.tp-follow-item:visited {
  color: #fff;
}

.tp-follow-item:hover {
  color: rgba(255, 255, 255, 0.7);
}

.tp-follow-count {
  font-family: "Gotham SSm A", "Gotham SSm B", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.75);
}

.tp-footer-bottombar {
  background: #202020;
  box-shadow: 0 0 0 100vmax #202020;
  clip-path: inset(0 -100vmax);
  text-align: center;
  padding: 28px 20px;
  margin-top: -1px;
  font-family: "Gotham SSm A", "Gotham SSm B", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 12px;
  font-weight: 300;
  line-height: 1.75;
  letter-spacing: 0.03em;
  color: rgba(255, 255, 255, 0.75);
}

.tp-footer-bottombar p {
  margin: 0 0 4px;
}

.tp-footer-bottombar p:last-child {
  margin-bottom: 0;
}

@media all and (max-width: 705px) {
  .tp-footer-bottombar {
    padding: 22px 20px;
  }
  .tp-follow-item {
    font-size: 26px;
  }
}
.churches-content {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 24px;
  box-sizing: border-box;
}

@media (max-width: 705px) {
  .churches-content {
    padding: 0 20px;
  }
}
/* Church page template: see "Church page template" further down. */
.tct-pilgrimage, .tct-pilgrimage *, .tct-pilgrimage *::before, .tct-pilgrimage *::after {
  box-sizing: border-box;
}

/* Pilgrimage headings are left-aligned, with centred exceptions below. The
   text-align !important declarations in this template must stay: they beat the
   theme's ".focus .text h2 { text-align: center }" and the embedded CSS of the
   prototype pages (e.g. .pt-title on /partnerships-prototype/). */
.tct-pilgrimage h1,
.tct-pilgrimage h2,
.tct-pilgrimage h3 {
  text-align: left !important;
}

body.template-pilgrimage #site-title a {
  font-weight: 400;
}

body.template-pilgrimage #site-title a::before {
  display: none;
}

@media all and (min-width: 706px) {
  body.template-pilgrimage {
    --tp-max: 1600px;
    --tp-gutter: clamp(28px, 4.5vw, 64px);
  }
  body.template-pilgrimage .container {
    max-width: var(--tp-max);
    padding-left: var(--tp-gutter);
    padding-right: var(--tp-gutter);
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
  }
}
.pilgrimage-content {
  max-width: none;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.tct-pilgrimage {
  --ink: var(--tct-ink, #202020);
  --orange: var(--tct-orange, #ff4500);
  --near-black: #202020;
  --hair: rgba(32, 32, 32, 0.14);
  color: var(--ink);
}

.tp-measure {
  max-width: 640px;
}

.tp-tone {
  background-color: rgba(32, 32, 32, 0.028);
  box-shadow: 0 0 0 100vmax rgba(32, 32, 32, 0.028);
  clip-path: inset(0 -100vmax);
}

.tp-section {
  padding-top: 72px;
  padding-bottom: 72px;
}

@media all and (max-width: 705px) {
  .tp-section {
    padding-top: 44px;
    padding-bottom: 44px;
  }
}
.tp-title {
  font-family: var(--font-mercury);
  font-weight: normal;
  font-size: clamp(36px, 5.2vw, 72px);
  line-height: 1.06;
  margin: 0 0 36px;
}

@media all and (max-width: 705px) {
  .tp-title {
    margin-bottom: 24px;
  }
}
.tp-title.tp-title-display {
  font-size: clamp(44px, 6.4vw, 84px);
  line-height: 1.15;
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
}

.tct-pilgrimage h2.tp-title-display {
  text-align: center !important;
}

@media all and (min-width: 706px) {
  .tp-title.tp-title-display {
    width: calc(100% + 2 * var(--tp-gutter, 64px));
    max-width: none;
    margin-left: calc(-1 * var(--tp-gutter, 64px));
    margin-right: calc(-1 * var(--tp-gutter, 64px));
  }
}
.tp-hero {
  padding: 48px 0 64px;
}

@media all and (min-width: 706px) {
  .tp-hero {
    padding: 64px 0 96px;
  }
}
.tp-hero-inner {
  max-width: 1320px;
  margin: 0 auto;
  text-align: center;
}

.tp-hero-title {
  font-family: var(--font-mercury);
  font-weight: normal;
  font-size: clamp(48px, 8.6vw, 136px);
  line-height: 0.94;
  letter-spacing: -0.015em;
  max-width: 1280px;
  margin: 0 auto 48px;
  color: var(--ink);
}

.tct-pilgrimage h1.tp-hero-title {
  text-align: center !important;
}

.tp-hero-title em {
  font-style: italic;
  color: var(--orange);
}

.tp-hero-meta {
  max-width: 620px;
  margin: 0 auto;
  text-align: left;
}

.tp-hero-stats {
  font-family: var(--font-mercury);
  font-weight: normal;
  font-size: clamp(22px, 2.8vw, 32px);
  line-height: 1.3;
  margin: 0 0 40px;
  color: var(--ink);
}

.tp-hero-stats-sep {
  display: inline-block;
  margin: 0 16px;
  color: var(--orange);
  vertical-align: middle;
}

.tp-hero-stats-price {
  font-family: var(--font-gotham);
  font-weight: 700;
  color: var(--orange);
}

.tp-hero-stats-note {
  font-family: var(--font-gotham);
  font-size: 0.5em;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(32, 32, 32, 0.55);
  margin-left: 8px;
}

.tp-hero-tagline {
  font-family: var(--font-gotham);
  font-weight: 300;
  font-size: 18px;
  line-height: 1.6;
  margin: 0 0 24px;
  color: rgba(32, 32, 32, 0.85);
}

.tp-hero-callout {
  font-family: var(--font-mercury);
  font-style: italic;
  font-size: clamp(18px, 1.9vw, 22px);
  line-height: 1.4;
  margin: 0 0 24px;
  padding-left: 20px;
  border-left: 3px solid var(--orange);
  color: var(--orange);
}

.tp-status {
  background: var(--orange);
  box-shadow: 0 0 0 100vmax var(--orange);
  clip-path: inset(0 -100vmax);
  color: #fff;
  padding: 56px 0;
}

/* "available" is the default orange band above; the other states go dark. */
.tp-status[data-status=sold-out],
.tp-status[data-status=waitlist],
.tp-status[data-status=get-notified] {
  background: var(--near-black);
  box-shadow: 0 0 0 100vmax var(--near-black);
  color: #fff;
}

.tp-status-inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
}

.tp-status .tp-status-inner.container {
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
}

@media all and (min-width: 706px) {
  .tp-status-inner {
    display: grid;
    /* The status column keeps a readable minimum width, so a long badge
       (e.g. "One room available") wraps instead of crushing the copy and button. */
    grid-template-columns: auto minmax(min(100%, clamp(17rem, 30vw, 18rem)), 1fr);
    align-items: start;
    gap: clamp(40px, 6vw, 96px);
  }
}
.tp-status-right {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
}

.tp-status-badge {
  font-family: var(--font-gotham);
  font-weight: 700;
  font-size: clamp(38px, 5.6vw, 64px);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1;
  margin: 0;
  overflow-wrap: normal; /* wrap between words, never mid-word */
  word-break: normal;
}

.tp-status-copy {
  font-family: var(--font-gotham);
  font-weight: 300;
  font-size: 17px;
  line-height: 1.55;
  max-width: 52ch;
  margin: 0;
  opacity: 0.85;
}

a.tp-status-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-gotham);
  font-weight: 700;
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--near-black);
  background: #fff;
  text-decoration: none;
  padding: 17px 34px;
  border-radius: 3px;
  transition: color 150ms ease-out;
}

a.tp-status-cta:hover {
  background: #fff;
  color: var(--orange);
}

@media all and (max-width: 705px) {
  .tp-status {
    padding: 40px 0;
  }
  .tp-status-inner {
    gap: 20px;
  }
}
/* Early-access band (TCT Pilgrimages adds .tp-status-early on /early/ pages only).
   Its copy is long, so the badge wraps onto two lines and the text column gets
   its full reading width (the copy's own 442px measure). The band's height then
   follows the text, with 72px of breathing room above and below. Public
   status bands are unaffected. */
@media all and (min-width: 706px) {
  .tp-status.tp-status-early {
    padding: 72px 0;
  }
  .tp-status-early .tp-status-inner {
    grid-template-columns: minmax(min-content, 1fr) minmax(min(100%, clamp(17rem, 30vw, 18rem)), 27.625rem);
  }
}
.tp-story.tp-section {
  padding-top: 56px;
  padding-bottom: 56px;
}

@media all and (max-width: 705px) {
  .tp-story.tp-section {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}
.tp-story .tp-measure {
  margin-left: auto;
  margin-right: auto;
}

/* Pilgrimage long-form prose: one shared treatment, the site body copy
   (Gotham 18px / 29px, as on the guide and church pages). Its ink
   (light weight, #202020) is set once, below the .tp-extension rules, because
   it has to win ties against ".tp-extension p" for prose inside an extension. */
.tp-story p,
.tp-prose p,
.tp-itin-intro p,
.tp-itin-more p {
  font-family: var(--font-gotham);
  font-size: 18px;
  line-height: 29px;
}

.tp-story p,
.tp-prose p {
  margin: 0 0 24px;
}

.tp-story p:last-child,
.tp-prose p:last-child {
  margin-bottom: 0;
}

.tp-foryou-item {
  padding: 40px 0;
  border-bottom: 1px solid var(--hair);
  display: grid;
  gap: 16px;
}

.tp-foryou-item:last-child {
  border-bottom: none;
}

@media all and (min-width: 900px) {
  .tp-foryou-item {
    grid-template-columns: minmax(280px, 0.9fr) minmax(320px, 1.1fr);
    gap: clamp(32px, 5vw, 80px);
    padding: 48px 0;
  }
}
/* The theme's desktop heading scale (body:not(.has-sidebar) h3 { 29px / 45px }
   at >= 680px) outranks single-class component rules, which blew the small
   pilgrimage h3s below up to 29px on desktop. Prefixing .tct-pilgrimage restores
   each component's own size at every width, scoped to the pilgrimage system only.
   Line-heights on the two label-style h3s match what they render below 680px
   (the base h3 36px) so desktop and mobile agree. */
.tct-pilgrimage .tp-foryou-head {
  font-family: var(--font-mercury);
  font-weight: normal;
  font-size: clamp(28px, 3.2vw, 40px);
  line-height: 1.15;
  color: var(--orange);
  margin: 0;
}

.tp-foryou-body p {
  font-family: var(--font-gotham);
  font-size: 16px;
  line-height: 1.65;
  color: rgba(32, 32, 32, 0.82);
  max-width: 60ch;
  margin: 0 0 16px;
}

.tp-foryou-body p:last-child {
  margin-bottom: 0;
}

#itinerary .tp-measure,
#itinerary .tp-itin-highlights,
#itinerary .tp-itin-days {
  margin-left: auto;
  margin-right: auto;
}

#itinerary .tp-title {
  text-align: center !important;
}

.tp-itin-intro p, .tp-itin-more p {
  margin: 0 0 20px;
}

.tp-itin-intro p:last-child {
  margin-bottom: 0;
}

.tp-itin-highlights {
  list-style: none;
  margin: 40px 0;
  padding: 0;
  border-top: 1px solid var(--hair);
  max-width: 640px;
}

/* Highlights within a descriptive itinerary (the Italy trips): a restrained
   Gotham list, 17px on phones and 19px on desktop, with a small orange marker
   centred on the first line. They read as highlights, not display headlines. */
.tp-itin-highlights li {
  font-family: var(--font-gotham);
  font-weight: 400;
  font-size: 17px;
  line-height: 26px;
  padding: 14px 0 14px 26px;
  border-bottom: 1px solid var(--hair);
  position: relative;
  color: var(--ink);
}

.tp-itin-highlights li::before {
  content: "→";
  position: absolute;
  left: 0;
  top: 14px;
  font-family: var(--font-gotham);
  font-weight: 400;
  font-size: 12px;
  line-height: 26px;
  color: var(--orange);
}

@media all and (min-width: 706px) {
  .tp-itin-highlights li {
    font-size: 19px;
    line-height: 29px;
    padding: 15px 0 15px 28px;
  }
  .tp-itin-highlights li::before {
    top: 15px;
    font-size: 13px;
    line-height: 29px;
  }
}
.tp-itin-more {
  margin-top: 40px;
}

.tp-itin-days {
  list-style: none;
  margin: 40px 0;
  padding: 0;
  border-top: 1px solid var(--hair);
  max-width: 640px;
}

.tp-itin-day {
  font-family: var(--font-gotham);
  font-weight: 300;
  font-size: 17px;
  line-height: 1.65;
  padding: 18px 0;
  border-bottom: 1px solid var(--hair);
  color: rgba(32, 32, 32, 0.88);
}

.tp-itin-day strong {
  color: var(--ink);
  font-weight: 700;
}

.tp-price-inner {
  max-width: 980px;
  margin: 0 auto;
}

.tp-price-grid {
  display: grid;
  gap: 40px;
  align-items: start;
  padding-bottom: 40px;
  border-bottom: 1px solid var(--hair);
  margin-bottom: 40px;
}

@media all and (min-width: 800px) {
  .tp-price-grid {
    grid-template-columns: auto 1fr;
    gap: clamp(48px, 6vw, 96px);
  }
}
.tp-price-headline {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.tp-price-amount {
  font-family: var(--font-gotham);
  font-weight: 400;
  font-size: clamp(56px, 9vw, 128px);
  line-height: 0.95;
  color: var(--orange);
}

.tp-price-per {
  font-family: var(--font-gotham);
  font-weight: 700;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(32, 32, 32, 0.6);
}

.tp-price-details p {
  font-family: var(--font-gotham);
  font-size: 18px;
  line-height: 1.6;
  margin: 0 0 14px;
  max-width: 52ch;
}

.tp-price-details p:last-child {
  margin-bottom: 0;
}

.tp-price-details strong {
  color: var(--ink);
}

.tct-pilgrimage .tp-price-single h3 {
  font-family: var(--font-mercury);
  font-weight: normal;
  font-size: 22px;
  line-height: 36px;
  margin: 0 0 12px;
}

.tp-price-single p {
  font-family: var(--font-gotham);
  font-size: 16px;
  line-height: 1.65;
  color: rgba(32, 32, 32, 0.82);
  margin: 0 0 16px;
  max-width: 68ch;
}

.tp-price-single p:last-child {
  margin-bottom: 0;
}

#included .tp-title {
  text-align: center !important;
}

.tp-include-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
}

@media all and (min-width: 900px) {
  .tp-include-grid {
    grid-template-columns: 1fr 1fr;
    column-gap: clamp(48px, 6vw, 96px);
    row-gap: 40px;
  }
}
.tp-include-item {
  padding-top: 32px;
  border-top: 1px solid var(--hair);
}

.tp-include-item:first-child {
  border-top: none;
  padding-top: 0;
}

@media all and (min-width: 900px) {
  .tp-include-item:nth-child(2) {
    border-top: none;
    padding-top: 0;
  }
}
.tct-pilgrimage .tp-include-item h3 {
  font-family: var(--font-gotham);
  font-weight: 700;
  font-size: 13px;
  line-height: 36px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--orange);
  margin: 0 0 10px;
}

.tp-include-item p {
  font-family: var(--font-gotham);
  font-weight: 300;
  font-size: 16px;
  line-height: 1.65;
  color: rgba(32, 32, 32, 0.85);
  margin: 0;
  max-width: 56ch;
}

#not-included .tp-title {
  text-align: center !important;
}

#not-included .tp-measure {
  margin-left: auto;
  margin-right: auto;
}

.tp-notinc-grid {
  display: grid;
  gap: 20px;
}

#not-included .tp-notinc-item h3 {
  font-family: var(--font-mercury);
  font-weight: normal;
  font-size: 19px;
  line-height: 36px;
  color: var(--ink);
  margin: 0;
}

.tp-notinc-dates {
  display: grid;
  gap: 24px;
}

@media all and (min-width: 800px) {
  .tp-notinc-dates {
    grid-template-columns: 1fr 1fr;
    gap: clamp(40px, 5vw, 80px);
  }
}
.tp-notinc-date {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.tp-notinc-label {
  font-family: var(--font-gotham);
  font-weight: 700;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--orange);
}

.tp-notinc-value {
  font-family: var(--font-mercury);
  font-weight: normal;
  font-size: 19px;
  line-height: 1.4;
  color: var(--ink);
}

.tp-notinc-date p {
  font-family: var(--font-gotham);
  font-size: 15px;
  line-height: 1.65;
  color: rgba(32, 32, 32, 0.75);
  margin: 6px 0 0;
  max-width: 52ch;
}

.tp-cancel {
  background: var(--near-black);
  box-shadow: 0 0 0 100vmax var(--near-black);
  clip-path: inset(0 -100vmax);
  color: #fff;
  padding: 72px 0;
}

@media all and (max-width: 705px) {
  .tp-cancel {
    padding: 52px 0;
  }
}
/* Seam above the footer: .tp-cancel and .tp-footer both paint full-bleed via
   box-shadow + clip-path: inset(0 -100vmax). When the shared edge lands on a
   fractional pixel both clip edges are anti-aliased and the light page
   background shows through as a hairline. When the dark band is the last
   thing on a pilgrimage page (so it meets the footer), its clip extends 1px
   down: dark, not the page background, sits behind the footer's top edge.
   The footer paints over it; layout is unchanged. */
.tct-pilgrimage > .tp-cancel:last-child {
  clip-path: inset(0 -100vmax -1px);
}

.tp-cancel .tp-cancel-inner.container {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

.tp-cancel-title {
  font-family: var(--font-mercury);
  font-weight: normal;
  font-size: clamp(36px, 5.4vw, 68px);
  line-height: 1.05;
  margin: 0 0 20px;
  color: var(--orange);
}

.tp-cancel-lead {
  font-family: var(--font-mercury);
  font-style: italic;
  font-size: clamp(19px, 2vw, 24px);
  line-height: 1.5;
  margin: 0 0 32px;
  color: rgba(255, 255, 255, 0.92);
}

.tp-cancel-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.tp-cancel-list li {
  font-family: var(--font-gotham);
  font-size: 17px;
  line-height: 1.6;
  padding: 20px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.92);
  max-width: 68ch;
}

.tp-cancel-list li:last-child {
  border-bottom: none;
}

.tp-insurance {
  margin-top: 40px;
  padding-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}

@media all and (max-width: 705px) {
  .tp-insurance {
    margin-top: 32px;
    padding-top: 28px;
  }
}
.tct-pilgrimage .tp-insurance-title {
  font-family: var(--font-mercury);
  font-weight: normal;
  font-size: clamp(19px, 2.2vw, 24px);
  line-height: 1.2;
  margin: 0 0 14px;
  color: rgba(255, 255, 255, 0.82);
}

.tp-insurance p {
  font-family: var(--font-gotham);
  font-size: 16px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.75);
  margin: 0;
}

.tp-hotels {
  display: grid;
  gap: 32px;
}

@media all and (min-width: 800px) {
  .tp-hotels {
    grid-template-columns: 1fr 1fr;
    gap: clamp(40px, 5vw, 80px);
  }
}
.tp-hotel {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.tp-hotel-label {
  font-family: var(--font-gotham);
  font-weight: 700;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--orange);
}

.tp-hotel-name {
  font-family: var(--font-mercury);
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.2;
  color: var(--ink);
}

.tp-hotel p {
  font-family: var(--font-gotham);
  font-size: 15px;
  line-height: 1.65;
  color: rgba(32, 32, 32, 0.75);
  margin: 6px 0 0;
  max-width: 52ch;
}

.tp-extension {
  padding: 40px 0;
  border-top: 1px solid var(--hair);
}

.tp-extension-label {
  font-family: var(--font-gotham);
  font-weight: 700;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--orange);
  margin: 0 0 10px;
}

.tp-extension-title {
  font-family: var(--font-mercury);
  font-weight: normal;
  font-size: clamp(24px, 2.8vw, 34px);
  line-height: 1.2;
  margin: 0 0 12px;
  color: var(--ink);
}

.tp-extension p {
  font-family: var(--font-gotham);
  font-size: 16px;
  line-height: 1.65;
  color: rgba(32, 32, 32, 0.82);
  margin: 0 0 14px;
  max-width: 60ch;
}

.tp-extension p:last-child {
  margin-bottom: 0;
}

/* Pilgrimage prose ink: light (300) #202020, bold stays a true 700 face and
   is never synthesised. Deliberately after .tp-extension (see above). */
.tp-story p,
.tp-prose p,
.tp-itin-intro p,
.tp-itin-more p {
  font-weight: 300;
  color: #202020;
  font-synthesis: none;
}

.tp-story p strong, .tp-story p b,
.tp-prose p strong, .tp-prose p b,
.tp-itin-intro p strong, .tp-itin-intro p b,
.tp-itin-more p strong, .tp-itin-more p b {
  font-weight: 700;
  color: inherit;
  font-synthesis: none;
}

.tp-cancel a:not(.tp-status-cta),
.tp-cancel a:visited:not(.tp-status-cta),
.tp-status[data-status=sold-out] a:not(.tp-status-cta),
.tp-status[data-status=sold-out] a:visited:not(.tp-status-cta),
.tp-status[data-status=waitlist] a:not(.tp-status-cta),
.tp-status[data-status=waitlist] a:visited:not(.tp-status-cta),
.tp-status[data-status=get-notified] a:not(.tp-status-cta),
.tp-status[data-status=get-notified] a:visited:not(.tp-status-cta) {
  color: #fff;
  text-decoration: underline;
}

.tp-cancel a:hover:not(.tp-status-cta),
.tp-status[data-status=sold-out] a:hover:not(.tp-status-cta),
.tp-status[data-status=waitlist] a:hover:not(.tp-status-cta),
.tp-status[data-status=get-notified] a:hover:not(.tp-status-cta) {
  color: var(--orange);
  text-decoration: underline;
}

.tp-status[data-status=available] a:not(.tp-status-cta),
.tp-status[data-status=available] a:visited:not(.tp-status-cta) {
  color: #fff;
  text-decoration: underline;
}

.tp-status[data-status=available] a:hover:not(.tp-status-cta) {
  color: rgba(255, 255, 255, 0.68);
  text-decoration: underline;
}

.tp-alert {
  background: var(--orange);
  box-shadow: 0 0 0 100vmax var(--orange);
  clip-path: inset(0 -100vmax);
  color: #fff;
  padding: 72px 0;
}

@media all and (max-width: 705px) {
  .tp-alert {
    padding: 52px 0;
  }
}
.tp-alert .tp-alert-inner.container {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

.tp-alert-title {
  font-family: var(--font-mercury);
  font-weight: normal;
  font-size: clamp(36px, 5.4vw, 68px);
  line-height: 1.05;
  margin: 0 0 28px;
  color: #fff;
}

.tp-alert p {
  font-family: var(--font-gotham);
  font-weight: 300;
  font-size: 17px;
  line-height: 1.65;
  margin: 0 0 20px;
  color: rgba(255, 255, 255, 0.92);
}

.tp-alert p:last-child {
  margin-bottom: 0;
}

.tp-alert a {
  color: #fff;
  text-decoration: underline;
}

.tp-alert a:visited {
  color: #fff;
}

.tp-alert a:hover {
  color: rgba(255, 255, 255, 0.68);
  text-decoration: underline;
}

a.tp-cta-solid {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-gotham);
  font-weight: 700;
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #fff;
  background: var(--orange);
  text-decoration: none;
  padding: 19px 40px;
  border-radius: 3px;
  transition: background 150ms ease-out, color 150ms ease-out;
}

.tp-cta-solid:visited {
  color: #fff;
}

a.tp-cta-solid:hover {
  background: var(--near-black);
  color: #fff;
}

.page-container:has(.guide-article) > .headline-area {
  display: none;
}

@media all and (min-width: 1024px) {
  .page-container:has(.guide-article) {
    max-width: 1200px;
  }
}
.focus .text .guide-article-body h3 {
  text-align: left;
}

.guide-article-title {
  text-align: center;
  color: #202020;
  margin: 0 0 40px;
}

.guide-article-measure {
  max-width: 644px;
  margin-left: auto;
  margin-right: auto;
}

.guide-article-body p {
  color: #202020;
  margin: 0 0 20px;
}

.guide-article-body p:last-child {
  margin-bottom: 0;
}

.guide-article-body .guide-article-status {
  font-family: "Gotham SSm A", "Gotham SSm B", Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: rgba(32, 32, 32, 0.55);
  margin: -12px 0 20px;
}

.guide-article-image {
  margin: 32px 0;
}

.guide-article-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 2px;
}

.guide-article-practical {
  margin-top: 56px;
  padding-top: 40px;
  border-top: 1px solid rgba(32, 32, 32, 0.1);
}

.focus .text .guide-article-practical-heading {
  text-align: left;
  font-family: "Gotham SSm A", "Gotham SSm B", Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(32, 32, 32, 0.65);
  margin: 0 0 20px;
}

/* Practical Information: a plain  of  label /  value pairs laid out
   as a two-column grid. No wrapper  per row: the visual editor (TinyMCE)
   does not allow  inside  and strips the whole structure on save. */
.guide-article-details {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  column-gap: 24px;
  margin: 0;
}

.guide-article-details > dt,
.guide-article-details > dd {
  padding: 14px 0;
  border-top: 1px solid rgba(32, 32, 32, 0.1);
}

.guide-article-details > dt {
  grid-column: 1;
}

.guide-article-details > dd {
  grid-column: 2;
}

.guide-article-details > dt:first-of-type,
.guide-article-details > dt:first-of-type + dd {
  border-top: none;
  padding-top: 0;
}

.guide-article-details > dt {
  font-family: "Gotham SSm A", "Gotham SSm B", Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #202020;
  margin: 0;
}

.guide-article-details > dd {
  margin: 0;
  color: #202020;
}

.guide-article-detail-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.guide-article-detail-list li {
  margin: 0 0 8px;
}

.guide-article-detail-list li:last-child {
  margin-bottom: 0;
}

@media all and (max-width: 560px) {
  .guide-article-details {
    grid-template-columns: minmax(0, 1fr);
  }
  .guide-article-details > dt,
  .guide-article-details > dd {
    grid-column: 1;
  }
  .guide-article-details > dt {
    padding-bottom: 0;
  }
  .guide-article-details > dd {
    padding-top: 4px;
    border-top: none;
  }
}
.page-container:has(.guide-hub) > .headline-area {
  display: none;
}

@media all and (min-width: 1024px) {
  .page-container:has(.guide-hub) {
    max-width: 1200px;
  }
}
.guide-hub-title {
  text-align: center;
  color: #202020;
  margin: 0 0 48px;
}

.guide-hub-list {
  max-width: 644px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 72px;
}

@media all and (max-width: 700px) {
  .guide-hub-list {
    margin-bottom: 56px;
  }
}
.guide-hub-row {
  margin: 0 0 28px;
}

.guide-hub-row:last-child {
  margin-bottom: 0;
}

.guide-hub-link {
  display: block;
  font-family: "Mercury SSm A", "Mercury SSm B", Georgia, "Times New Roman", serif;
  font-size: 17px;
}

.guide-hub-desc {
  display: block;
  max-width: 644px;
  font-family: "Gotham SSm A", "Gotham SSm B", Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: rgba(32, 32, 32, 0.65);
  margin: 4px 0 0;
}

@media all and (min-width: 1024px) {
  .container.columns:has(> .column-content > .page-container.text:not(.page-1)) {
    max-width: 1200px;
  }
}
/* Standard pages: the 644px reading column inside a 1200px page. Pages that
   carry their own layout (guide articles, guide hubs, day-tour pages) are
   excluded by content, not by page ID. */
@media all and (min-width: 1024px) {
  .page-container.text:not(.page-1):not(:has(.guide-article)):not(:has(.guide-hub)):not(:has(.dt-landing)):not(:has(.day-tour)) {
    max-width: 1200px;
  }
  .page-container.text:not(.page-1):not(:has(.guide-article)):not(:has(.guide-hub)):not(:has(.dt-landing)):not(:has(.day-tour)) > .headline-area {
    margin-left: 0;
    margin-right: 0;
  }
  .page-container.text:not(.page-1):not(:has(.guide-article)):not(:has(.guide-hub)):not(:has(.dt-landing)):not(:has(.day-tour)) > .page-content {
    max-width: 644px;
    margin-left: auto;
    margin-right: auto;
  }
}
.page-container.text:not(.page-1) .headline-area,
.page-container.text:not(.page-1) .page-content > h1 {
  text-align: center;
}

.page-container.text:not(.page-1):not(:has(.guide-article)):not(:has(.guide-hub)):not(:has(.dt-landing)):not(:has(.day-tour)) .page-content h2,
.page-container.text:not(.page-1):not(:has(.guide-article)):not(:has(.guide-hub)):not(:has(.dt-landing)):not(:has(.day-tour)) .page-content h3 {
  text-align: left !important;
}

.page-container.text:not(.page-1) .page-title {
  margin-bottom: 40px;
}

.guide-breakout-image {
  margin: 0 auto 32px;
  max-width: 644px;
}

@media all and (min-width: 1024px) {
  .guide-breakout-image {
    width: 960px;
    max-width: 960px;
    margin-left: -158px;
    margin-right: -158px;
  }
}
.guide-breakout-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 2px;
}

.dt-landing,
.day-tour {
  padding-top: 0 !important;
}

.page-container.text .dt-landing .dt-title,
.page-container.text .day-tour .day-tour-title {
  text-align: center !important;
}

.page-container.text .day-tour .day-tour-callout {
  box-sizing: border-box;
}

.page-container.text .day-tour .day-tour-heading {
  max-width: 644px;
  margin-left: auto;
  margin-right: auto;
  color: #202020;
}

/* ==========================================================================
   Papal Calendar system (body.template-papal-calendar)
   One shared foundation for the three Papal Calendar pages:
     1075 Calendar   1076 Guide   1077 Tickets
   The pages differ only in the small blocks marked "Page differences" below.
   Specificity note: "body.template-papal-calendar" (0,1,1) is deliberately the
   same weight the old per-page "body:has(.page-NNNN)" scopes had, so nothing
   here out-ranks or under-ranks the theme or the standard-page column rule.
   The four !important declarations on ".page-content" (max-width, width,
   margin-left, margin-right) are the only ones left here, and they are
   required: the standard-page column rule above
   (.page-container.text:not(.page-1)...) out-ranks any selector we can write.
   ========================================================================== */
body.template-papal-calendar {
  /* Plain "When are tickets required?" lines (replaced the table): label bold,
     explanation regular, comfortable paragraph spacing, no borders/columns. */
  /* ---- Page differences --------------------------------------------- */
  /* 1075 Calendar: the lede is full width, not the 644px reading column. */
  /* 1075: the opening text and Jump-to line sit on a narrower page, and the
     redundant "Pope Leo XIV Schedule" heading is hidden (the H1 and the
     month headings already say it). The event data itself is untouched. */
  /* 1076 Guide: extra bottom room under the long guide text, and its own
     underlined section headings (.page-body h2 exists only on this page). */
  /* 1077 Tickets: tighter chapter spacing, and the first chapter heading
     sits 56px below the subnav instead of 24px. */
}
@media all and (min-width: 706px) {
  body.template-papal-calendar .page-container.text {
    max-width: none;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
  body.template-papal-calendar .text .extend {
    max-width: none;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
  body.template-papal-calendar .page-content {
    max-width: none !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
body.template-papal-calendar .pc-page {
  --pc-ink: #202020;
  --pc-ink-soft: #777777;
  --pc-ink-faint: #999999;
  --pc-line: rgba(0,0,0,0.1);
  --pc-accent: #FF4500;
  --pc-alert: #B3261E;
  --pc-warn: #A6650B;
  color: var(--pc-ink);
  font-family: "Gotham SSm A", "Gotham SSm B", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  font-weight: 300;
  line-height: 1.75;
}
body.template-papal-calendar .pc-page, body.template-papal-calendar .pc-page *, body.template-papal-calendar .pc-page *::before, body.template-papal-calendar .pc-page *::after {
  box-sizing: border-box;
}
body.template-papal-calendar .pc-page a {
  color: inherit;
  text-decoration: none;
}
body.template-papal-calendar .pc-page h1, body.template-papal-calendar .pc-page h2, body.template-papal-calendar .pc-page h3 {
  text-align: left;
}
body.template-papal-calendar .pc-page .wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}
body.template-papal-calendar .pc-maintitle-wrap {
  text-align: center;
  padding: 64px 24px 8px;
}
body.template-papal-calendar .pc-maintitle {
  font-family: var(--font-mercury);
  font-weight: 400;
  font-size: clamp(36px, 6vw, 47px);
  line-height: 1.234; /* 58px at 47px: two 29px body lines */
  letter-spacing: 0.005em;
  text-transform: none;
  text-align: center;
  color: #202020;
  text-wrap: balance;
  margin: 0 0 40px;
  padding: 0;
  margin: 0;
}
body.template-papal-calendar .pc-page .pc-maintitle-wrap .pc-maintitle {
  text-align: center;
}
@media all and (max-width: 480px) {
  body.template-papal-calendar .pc-maintitle-wrap {
    padding: 48px 20px 8px;
  }
}
body.template-papal-calendar .pc-subnav {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px clamp(28px, 5vw, 56px);
  padding: 24px 24px 56px;
}
body.template-papal-calendar .pc-subnav-link {
  font-family: var(--font-gotham);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pc-ink);
  padding-bottom: 10px;
  border-bottom: 2px solid transparent;
  transition: color 150ms ease-out, border-color 150ms ease-out;
}
body.template-papal-calendar .pc-subnav-link:hover {
  color: var(--pc-accent);
}
body.template-papal-calendar .pc-subnav-link.is-current {
  color: var(--pc-ink);
  border-bottom-color: var(--pc-accent);
}
body.template-papal-calendar .ev-tickets a, body.template-papal-calendar .ev-learn-more a, body.template-papal-calendar .jump-nav a {
  color: inherit;
  font-weight: 400;
  text-decoration: underline;
  text-underline-offset: 2px;
}
body.template-papal-calendar .ev-tickets a:hover, body.template-papal-calendar .ev-learn-more a:hover, body.template-papal-calendar .jump-nav a:hover {
  text-decoration: none;
}
body.template-papal-calendar .next-eyebrow {
  margin: 0 0 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--pc-accent);
}
body.template-papal-calendar .event.is-next-event {
  background: rgba(255, 69, 0, 0.06);
  border-left: 3px solid var(--pc-accent);
  border-bottom: none;
  padding-left: 15px;
  padding-right: 15px;
  padding-bottom: 34px;
  margin-bottom: 24px;
}
body.template-papal-calendar .jump-nav {
  display: flex;
  flex-wrap: wrap;
  row-gap: 4px;
  padding: 4px 24px 32px;
  font-size: 14px;
  color: var(--pc-ink-soft);
}
body.template-papal-calendar .jump-nav-label {
  margin-right: 6px;
}
body.template-papal-calendar .jump-nav a {
  margin: 0 10px 0 0;
}
body.template-papal-calendar .jump-nav a:first-of-type {
  margin-left: 0;
}
body.template-papal-calendar .month-section {
  padding: 0 24px;
}
body.template-papal-calendar .chapter-heading {
  font-family: var(--font-mercury);
  font-weight: 400;
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
  color: #202020;
  text-align: left;
  padding: 0 0 8px;
  border: 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  margin: 120px 0 30px;
  scroll-margin-top: 16px;
}
body.template-papal-calendar .chapter-heading.is-first-chapter,
body.template-papal-calendar .month-section.is-first .chapter-heading {
  margin-top: 24px;
}
body.template-papal-calendar .event {
  padding: 40px 0;
  border-bottom: 1px solid var(--pc-line);
}
body.template-papal-calendar .events > .event:last-child {
  border-bottom: none;
}
body.template-papal-calendar .ev-when {
  margin: 0 0 6px;
  font-weight: 700;
  color: var(--pc-accent);
  font-size: 24px;
  line-height: 1.25;
}
body.template-papal-calendar .ev-when-range {
  margin: 0 0 6px;
  font-weight: 400;
  color: var(--pc-ink-soft);
  font-size: 15px;
  line-height: 1.5;
}
body.template-papal-calendar .ev-title {
  margin: 0 0 4px;
  font-size: 19px;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  text-align: left;
}
body.template-papal-calendar .ev-location, body.template-papal-calendar .ev-status-note, body.template-papal-calendar .ev-tickets, body.template-papal-calendar .ev-learn-more {
  margin: 4px 0 0;
  font-size: 15px;
  color: var(--pc-ink-soft);
}
body.template-papal-calendar .ev-learn-more a + a {
  margin-left: 14px;
}
body.template-papal-calendar .ev-status {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 2px 8px;
  border: 1px solid var(--pc-alert);
  color: var(--pc-alert);
}
body.template-papal-calendar .ev-status-cancelled {
  border-color: var(--pc-alert);
  color: var(--pc-alert);
}
body.template-papal-calendar .ev-status-changed {
  border-color: var(--pc-warn);
  color: var(--pc-warn);
}
body.template-papal-calendar .ev-status-tentative {
  border-style: dashed;
  border-color: var(--pc-warn);
  color: var(--pc-warn);
}
body.template-papal-calendar .event-cancelled .ev-title {
  text-decoration: line-through;
  text-decoration-color: var(--pc-alert);
}
body.template-papal-calendar .ev-status-note {
  color: var(--pc-alert);
  font-weight: 700;
}
body.template-papal-calendar .ev-status-note-changed, body.template-papal-calendar .ev-status-note-tentative {
  color: var(--pc-warn);
}
body.template-papal-calendar .journey-eyebrow {
  margin: 0 0 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--pc-ink-faint);
}
body.template-papal-calendar .journey-children {
  margin-top: 16px;
  padding-left: 18px;
}
body.template-papal-calendar .event-child {
  padding: 12px 0;
  border-bottom: none;
}
body.template-papal-calendar .event-child .ev-when {
  font-size: 15px;
  font-weight: 700;
  color: var(--pc-accent);
}
body.template-papal-calendar .event-child .ev-title {
  font-size: 16px;
  font-weight: 400;
}
body.template-papal-calendar .event-child .ev-location {
  font-weight: 700;
}
body.template-papal-calendar .no-more-note {
  padding: 32px 0 20px;
  color: var(--pc-ink-soft);
  font-size: 15px;
  border-top: 1px solid var(--pc-line);
}
body.template-papal-calendar .pc-disclaimer {
  padding: 4px 0 56px;
}
body.template-papal-calendar .pc-disclaimer p {
  margin: 0;
  font-size: 13px;
  line-height: 1.7;
  color: var(--pc-ink-faint);
  max-width: 720px;
}
body.template-papal-calendar .pc-disclaimer p + p {
  margin-top: 10px;
}
body.template-papal-calendar .page-body {
  max-width: 644px;
  margin-left: auto;
  margin-right: auto;
  padding: 8px 24px 40px;
}
body.template-papal-calendar .page-lede-heading {
  font-family: var(--font-mercury);
  font-size: 22px;
  font-weight: 700;
  margin: 8px 0 14px;
}
body.template-papal-calendar .page-body h3 {
  font-family: var(--font-mercury);
  font-size: 18px;
  font-weight: 700;
  margin: 36px 0 12px;
  scroll-margin-top: 16px;
}
body.template-papal-calendar .page-body p {
  margin: 0 0 14px;
  font-size: 16px;
  line-height: 1.7;
  color: var(--pc-ink);
}
body.template-papal-calendar .page-body ul {
  margin: 8px 0 18px;
  padding-left: 22px;
}
body.template-papal-calendar .page-body li {
  margin: 0 0 12px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--pc-ink);
}
body.template-papal-calendar .page-body a {
  color: #202020;
  font-weight: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
body.template-papal-calendar .page-body a:visited {
  color: #202020;
}
body.template-papal-calendar .page-body a:hover {
  color: #202020;
  text-decoration: none;
}
body.template-papal-calendar .page-body a:focus-visible {
  outline: 2px solid #ff4500;
  outline-offset: 2px;
  border-radius: 1px;
}
body.template-papal-calendar .callout {
  margin: 24px 0;
  padding: 18px 20px 18px 17px;
  background: rgba(255, 69, 0, 0.06);
  border-left: 3px solid var(--pc-accent);
}
body.template-papal-calendar .callout p {
  margin: 0 0 8px;
  font-size: 16px;
  line-height: 1.7;
  color: var(--pc-ink);
}
body.template-papal-calendar .callout p:last-child {
  margin-bottom: 0;
}
body.template-papal-calendar .callout-label {
  font-size: 17px;
  font-weight: 700;
  color: var(--pc-ink);
}
body.template-papal-calendar .ticket-lines {
  margin: 0 0 8px;
}
body.template-papal-calendar .ticket-lines p {
  margin: 0 0 14px;
}
body.template-papal-calendar .ticket-lines p:last-child {
  margin-bottom: 0;
}
body.template-papal-calendar .ticket-lines strong {
  font-weight: 700;
}
@media all and (max-width: 480px) {
  body.template-papal-calendar .pc-subnav {
    padding: 16px 20px 40px;
  }
  body.template-papal-calendar .ev-when {
    font-size: 18px;
  }
  body.template-papal-calendar .chapter-heading {
    margin: 80px 0 28px;
  }
  body.template-papal-calendar .event {
    padding: 32px 0;
  }
  body.template-papal-calendar .event.is-next-event {
    margin-bottom: 14px;
  }
}
body.template-papal-calendar .page-1075 .page-body {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}
body.template-papal-calendar .page-1075 .pc-page .wrap {
  max-width: 860px;
}
body.template-papal-calendar .page-1075 .page-lede-heading {
  display: none;
}
body.template-papal-calendar .page-1076 .page-body {
  padding-bottom: 128px;
}
body.template-papal-calendar .page-1076 .page-body h2 {
  font-family: var(--font-mercury);
  font-weight: 400;
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
  color: #202020;
  text-align: left;
  padding: 0 0 8px;
  border: 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  margin: 64px 0 30px;
  scroll-margin-top: 16px;
}
@media all and (max-width: 480px) {
  body.template-papal-calendar .page-1076 .page-body h2 {
    margin: 48px 0 24px;
  }
}
@media all and (max-width: 480px) {
  body.template-papal-calendar .page-1076 .page-body {
    padding-bottom: 80px;
  }
  body.template-papal-calendar .page-1076 .page-body h2 {
    margin: 48px 0 24px;
  }
}
body.template-papal-calendar .page-1077 .chapter-heading {
  margin: 64px 0 30px;
}
body.template-papal-calendar .page-1077 .chapter-heading.is-first-chapter {
  margin-top: 56px;
}
@media all and (max-width: 480px) {
  body.template-papal-calendar .page-1077 .chapter-heading {
    margin: 48px 0 24px;
  }
}

/* ==========================================================================
   Standard H2 system
   One H2 treatment for normal editorial pages: Mercury, #202020, regular
   (400) weight, clamp(30px, 2.6vw, 36px) with a 1.2 line height, 48px above
   and 20px below, left-aligned. Clearly subordinate to the H1 (47px / 700).
   Applies to plain H2s (no class) that are direct children of ".page-content"
   (Rome, Borgo, Assisi, Packing, About, Mountain, blog posts, archives ...) and
   of ".guide-article-body" (guide articles), to the photo-essay blocks
   (".page-content > .event" and ".event-last"), plus two directory headings
   that adopt the same type: ".guide-index-heading" (Rome guide sections) and
   ".dir-heading" (Churches of Rome directory). The rule removes the theme's
   H2 breakout margins (-198px, or the calc(351px - 50vw) form at 702-1097px)
   so every H2 sits on the reading column. Inline emphasis inside an H2
   inherits the same face.
   Deliberately different component headings are NOT touched: home section
   titles (.th-title), pilgrimage (.tp-title*, .tp-cancel-title), Papal Calendar
   event/chapter headings, day-tour headings, church-page blocks
   (.cor-block-title, .cor-section-label), blog-index headlines and directory
   display titles.
   ========================================================================== */
.focus .page-container.text .page-content > h2:not([class]),
.focus .page-container.text .guide-article-body > h2:not([class]),
.focus .page-container.text .page-content > .event > h2:not([class]),
.focus .page-container.text .page-content > .event-last > h2:not([class]) {
  font-family: var(--font-mercury);
  font-weight: 400;
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
  color: #202020;
  text-align: left;
  padding: 0 0 8px;
  border: 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  margin: 64px 0 30px;
}
@media all and (max-width: 480px) {
  .focus .page-container.text .page-content > h2:not([class]),
  .focus .page-container.text .guide-article-body > h2:not([class]),
  .focus .page-container.text .page-content > .event > h2:not([class]),
  .focus .page-container.text .page-content > .event-last > h2:not([class]) {
    margin: 48px 0 24px;
  }
}

.focus .page-container.text .page-content > h2:not([class]):first-child,
.focus .page-container.text .guide-article-body > h2:not([class]):first-child,
.focus .page-container.text .page-content > .event > h2:not([class]):first-child,
.focus .page-container.text .page-content > .event-last > h2:not([class]):first-child {
  margin-top: 0;
}

.focus .page-container.text .page-content > h2:not([class]) *,
.focus .page-container.text .guide-article-body > h2:not([class]) *,
.focus .page-container.text .page-content > .event > h2:not([class]) *,
.focus .page-container.text .page-content > .event-last > h2:not([class]) * {
  font: inherit;
  color: inherit;
}

.focus .text .guide-index-heading {
  font-family: var(--font-mercury);
  font-weight: 400;
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
  color: #202020;
  text-align: left;
  padding: 0 0 8px;
  border: 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  margin: 0 0 30px;
}

.template-churches-of-rome h2.dir-heading {
  font-family: var(--font-mercury);
  font-weight: 400;
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
  color: #202020;
  text-align: left;
  padding: 0 0 8px;
  border: 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  margin: 64px 0 30px;
}
@media all and (max-width: 480px) {
  .template-churches-of-rome h2.dir-heading {
    margin: 48px 0 24px;
  }
}

.template-churches-of-rome h2.dir-heading:first-child {
  margin-top: 0;
}

.template-churches-of-rome h2.dir-heading + .dir-list {
  border-top: 0;
}

/* ==========================================================================
   Shared directory components
   One definition each, used by every page that shows the component, so the
   homepage and its dedicated index page cannot drift apart:
     List rows            .th-pil-list / .th-pil-row  home #pilgrimages, #rome, #guides,
                                                      /guides/, /catholic-pilgrimages/
     Church rows          .dir-list / .dir-row        /churches-of-rome/
     Rome guide sections  .guide-index                /guides/rome/
   Page-level wrappers (.tct-home, .tct-guides-index, .tct-pil-index) keep only
   their own layout (section padding, width). Rows are designed components:
   they are excluded from the ordinary text-link rule at the top of this file.
   ========================================================================== */
/* Directional arrow: orange, fixed text-relative gap, restrained rightward
   nudge on hover/focus (none under reduced motion). */
.th-pil-row .arrow,
.dir-row .arrow {
  display: inline-flex;
  color: #ff4500;
  margin-left: 0.4em;
}

@media (prefers-reduced-motion: no-preference) {
  .th-pil-row .arrow,
  .dir-row .arrow {
    transition: transform 150ms ease-out;
  }
  a.th-pil-row:hover .arrow,
  a.th-pil-row:focus-visible .arrow,
  a.dir-row:hover .arrow,
  a.dir-row:focus-visible .arrow {
    transform: translateX(6px);
  }
}
/* ---- Pilgrimage rows -------------------------------------------------- */
/* Trip name first, then the full date on the line below. The action sits on
   the right when there is room (sold-out trips read "Sold out — Join the
   waitlist") and stacks beneath the trip info on narrow screens. */
.th-pil-list {
  border-top: 1px solid rgba(32, 32, 32, 0.14);
}

a.th-pil-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 24px;
  row-gap: 8px;
  padding: 24px 6px;
  border-bottom: 1px solid rgba(32, 32, 32, 0.14);
  text-decoration: none;
  color: #202020;
  transition: background-color 150ms ease-out, color 150ms ease-out;
}

a.th-pil-row:hover {
  background-color: rgba(32, 32, 32, 0.045);
  color: #ff4500;
  text-decoration: none;
}

a.th-pil-row:focus-visible {
  outline: 2px solid #ff4500;
  outline-offset: -2px;
  background-color: rgba(32, 32, 32, 0.045);
}

.th-pil-info {
  display: block;
  min-width: 0;
}

.th-pil-dest {
  display: block;
  font-family: var(--font-mercury);
  font-size: clamp(20px, 2.2vw, 27px);
  line-height: 1.3;
}

.th-pil-date {
  display: block;
  margin-top: 4px;
  font-family: var(--font-gotham);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: rgba(32, 32, 32, 0.62);
  transition: color 150ms ease-out;
}

.th-pil-sub {
  display: block;
  margin-top: 2px;
  font-family: var(--font-gotham);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.4;
  color: rgba(32, 32, 32, 0.6);
  transition: color 150ms ease-out;
}

.th-pil-action {
  font-family: var(--font-gotham);
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-align: right;
  white-space: nowrap;
}

.th-pil-action-text {
  display: inline-flex;
  align-items: center;
}

/* Category label (GUIDED, IN PERSON ...) in the action column: same type as the
   status text, orange instead of ink. */
.th-pil-action-cat {
  color: #ff4500;
}

/* Single-line rows (guides): the arrow follows the title. */
.th-pil-dest .arrow {
  font-size: 0.55em;
}

a.th-pil-row:hover .th-pil-date,
a.th-pil-row:hover .th-pil-sub {
  color: #ff4500;
}

@media all and (max-width: 705px) {
  a.th-pil-row {
    grid-template-columns: minmax(0, 1fr);
    padding: 18px 4px;
  }
  .th-pil-action {
    text-align: left;
    white-space: normal;
  }
}
/* ---- Church directory rows ------------------------------------------- */
/* Italian name primary (near-black Mercury), English name smaller and softer
   beneath it, an orange arrow cue on the right. No prose underline. */
.dir-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(32, 32, 32, 0.14);
}

.dir-list > li {
  margin: 0;
  padding: 0;
  border-bottom: 1px solid rgba(32, 32, 32, 0.14);
}

a.dir-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 16px;
  padding: 14px 6px;
  text-decoration: none;
  color: #202020;
  transition: background-color 150ms ease-out;
}

a.dir-row.dir-row-numbered {
  grid-template-columns: 32px minmax(0, 1fr) auto;
}

a.dir-row:hover {
  background-color: rgba(32, 32, 32, 0.045);
  color: #202020;
  text-decoration: none;
}

a.dir-row:focus-visible {
  outline: 2px solid #ff4500;
  outline-offset: -2px;
  background-color: rgba(32, 32, 32, 0.045);
}

.dir-num {
  font-family: var(--font-gotham);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: rgba(32, 32, 32, 0.55);
}

.dir-names {
  display: block;
  min-width: 0;
}

.dir-it {
  display: block;
  font-family: var(--font-mercury);
  font-size: clamp(19px, 2.4vw, 22px);
  font-weight: 400;
  line-height: 1.3;
  color: #202020;
}

.dir-en {
  display: block;
  margin-top: 2px;
  font-family: var(--font-gotham);
  font-size: 13.5px;
  font-weight: 400;
  line-height: 1.4;
  color: rgba(32, 32, 32, 0.62);
}

.dir-list-major .dir-it {
  font-size: clamp(22px, 2.8vw, 26px);
}

a.dir-row .arrow {
  font-size: 0.9em;
}

@media all and (max-width: 480px) {
  a.dir-row {
    padding: 12px 4px;
  }
  a.dir-row.dir-row-numbered {
    grid-template-columns: 28px minmax(0, 1fr) auto;
  }
}
/* ---- Rome guide sections (.guide-index) ------------------------------- */
.guide-index-hero {
  margin: 0 0 56px;
}

.guide-index-hero img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 2px;
}

.guide-index-section {
  margin: 0 0 72px;
  padding: 0;
  border: none;
}

.guide-index-section:last-of-type {
  margin-bottom: 0;
}

.guide-index-list {
  max-width: 644px;
}

.guide-index-row {
  margin: 0 0 14px;
}

.guide-index-row:last-child {
  margin-bottom: 0;
}

a.guide-index-link {
  display: block;
  font-size: 17px;
}

.guide-index-row-label {
  display: block;
  font-size: 17px;
  color: #202020;
  margin-bottom: 6px;
}

.guide-index-row-text {
  display: block;
  max-width: 644px;
  font-family: var(--font-gotham);
  font-size: 14px;
  line-height: 1.6;
  color: rgba(32, 32, 32, 0.65);
  margin: 4px 0 0;
}

/* The theme zeroes the H1's bottom margin when a byline wrapper follows it;
   restore the standard 48px above the hero image on this page. */
.page-container.text:has(.guide-index) .page-title {
  margin-bottom: 40px;
}

/* ==========================================================================
   Day-tour pages (.day-tour): 108 Saints, Apostles & an Apparition, 109 Life
   of Christ, 110 Seven Pilgrimage Churches. This was an identical 
   block embedded in each of the three pages (differing only in the page ID);
   it now lives here once. Selectors keep the weight the page-ID versions had.
   Kept last on purpose: the embedded blocks sat after the theme stylesheet, so
   these win equal-weight ties exactly as before. The theme rules above
   (.day-tour padding, .day-tour-title centring, .day-tour-heading measure)
   are deliberate and unchanged.
   ========================================================================== */
.page-container.text:has(.day-tour) > .headline-area {
  display: none;
}

.page-container.text .day-tour-title {
  color: #202020;
  margin: 0 0 40px;
}

.page-container.text .day-tour-measure {
  max-width: 644px;
  margin-left: auto;
  margin-right: auto;
}

.page-container.text .day-tour-lede p {
  color: #202020;
  margin: 0 0 20px;
}

.page-container.text .day-tour-lede p:last-child {
  margin-bottom: 0;
}

.page-container.text .day-tour-callout {
  margin-top: 32px;
  margin-bottom: 0;
  padding: 4px 0 4px 20px;
  border-left: 3px solid #ff4500;
  color: #202020;
}

.page-container.text .day-tour-section {
  padding: 56px 0;
}

.page-container.text .day-tour-heading {
  text-align: left;
  color: #202020;
  margin: 0 0 24px;
}

.page-container.text .day-tour-list {
  list-style: none;
  padding: 0;
  margin-top: 0;
  margin-bottom: 20px;
  color: #202020;
}

.page-container.text .day-tour-list li {
  padding: 6px 0;
}

.page-container.text .day-tour-list li:first-child {
  padding-top: 0;
}

.page-container.text .day-tour-list li:last-child {
  padding-bottom: 0;
}

.page-container.text .day-tour-caveat {
  font-family: "Gotham SSm A", "Gotham SSm B", Helvetica, Arial, sans-serif;
  font-size: 14px;
  color: rgba(32, 32, 32, 0.65);
  margin-top: 0;
  margin-bottom: 0;
}

/* Tour details: a plain  of  label /  value pairs laid out as a two-column grid, so the
   visual editor keeps it intact (it strips a  row wrapper inside a ). The label column's
   24px gap is padding rather than a grid gap, so each row's divider stays one continuous line. */
.page-container.text .day-tour-details {
  display: grid;
  grid-template-columns: 174px minmax(0, 1fr);
  margin-top: 0;
  margin-bottom: 0;
}

.page-container.text .day-tour-details > dt,
.page-container.text .day-tour-details > dd {
  margin: 0;
  padding: 14px 0;
  border-top: 1px solid rgba(32, 32, 32, 0.1);
}

.page-container.text .day-tour-details > dt:first-of-type,
.page-container.text .day-tour-details > dt:first-of-type + dd {
  border-top: none;
  padding-top: 0;
}

.page-container.text .day-tour-details > dt {
  grid-column: 1;
  padding-right: 24px;
  font-family: "Gotham SSm A", "Gotham SSm B", Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #202020;
}

.page-container.text .day-tour-details > dd {
  grid-column: 2;
  color: #202020;
}

@media all and (max-width: 560px) {
  .page-container.text .day-tour-details {
    grid-template-columns: minmax(0, 1fr);
  }
  .page-container.text .day-tour-details > dt,
  .page-container.text .day-tour-details > dd {
    grid-column: 1;
  }
  .page-container.text .day-tour-details > dt {
    padding-right: 0;
    padding-bottom: 0;
  }
  .page-container.text .day-tour-details > dd,
  .page-container.text .day-tour-details > dt:first-of-type + dd {
    padding-top: 4px;
    border-top: none;
  }
}
.page-container.text .day-tour .faq {
  margin: 0;
}

.page-container.text .day-tour .faq .qa {
  padding: 20px 0;
}

.page-container.text .day-tour .faq .qa:first-child {
  padding-top: 0;
}

.page-container.text .day-tour .faq .qa:last-child {
  padding-bottom: 0;
}

.page-container.text .day-tour .faq .qa h3 {
  text-align: left;
  font-family: "Mercury SSm A", "Mercury SSm B", Georgia, "Times New Roman", serif;
  font-size: 19px;
  color: #202020;
  margin: 0 0 8px;
}

.page-container.text .day-tour .faq .qa .answer {
  color: #202020;
  margin: 0;
}

.page-container.text .day-tour-form {
  margin-top: 28px;
}

.page-container.text .day-tour-field {
  margin-bottom: 20px;
}

.page-container.text .day-tour-field label {
  display: block;
  font-family: "Gotham SSm A", "Gotham SSm B", Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #202020;
  margin-bottom: 8px;
}

.page-container.text .day-tour-field input,
.page-container.text .day-tour-field textarea {
  width: 100%;
  box-sizing: border-box;
  font-family: "Mercury SSm A", "Mercury SSm B", Georgia, "Times New Roman", serif;
  font-size: 17px;
  color: #202020;
  background: #fff;
  border: 1px solid rgba(32, 32, 32, 0.3);
  border-radius: 3px;
  padding: 12px 14px;
}

.page-container.text .day-tour-field input:focus,
.page-container.text .day-tour-field textarea:focus {
  outline: 2px solid #ff4500;
  outline-offset: 1px;
}

.page-container.text .day-tour-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.page-container.text .day-tour-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: "Gotham SSm A", "Gotham SSm B", Helvetica, Arial, sans-serif;
  font-weight: 700;
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #fff;
  background: #ff4500;
  border: none;
  cursor: pointer;
  text-decoration: none;
  padding: 17px 34px;
  border-radius: 3px;
  transition: background 150ms ease-out, color 150ms ease-out;
}

.page-container.text .day-tour-cta:hover,
.page-container.text .day-tour-cta:focus-visible {
  background: #e63e00;
  color: #fff;
}

.page-container.text .day-tour-cta:disabled {
  opacity: 0.6;
  cursor: default;
}

.page-container.text .day-tour-form-message {
  color: #b02a00;
  font-family: "Gotham SSm A", "Gotham SSm B", Helvetica, Arial, sans-serif;
  font-size: 14px;
  margin: 14px 0 0;
}

.page-container.text .day-tour-form-success {
  margin-top: 28px;
  background: #1F1D1A;
  border-radius: 4px;
  padding: 32px 36px;
  box-sizing: border-box;
}

.page-container.text .day-tour-success-eyebrow {
  font-family: "Gotham SSm A", "Gotham SSm B", Helvetica, Arial, sans-serif;
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #ff4500;
  margin: 0 0 12px;
}

.page-container.text .day-tour-success-heading {
  text-align: left;
  font-family: "Mercury SSm A", "Mercury SSm B", Georgia, "Times New Roman", serif;
  font-size: 24px;
  color: #fff;
  margin: 0 0 10px;
}

.page-container.text .day-tour-success-body {
  font-family: "Mercury SSm A", "Mercury SSm B", Georgia, "Times New Roman", serif;
  font-size: 17px;
  color: rgba(255, 255, 255, 0.85);
  margin: 0;
}

@media all and (min-width: 1024px) {
  .page-container.text:has(.day-tour) {
    max-width: 1200px;
  }
}
/* ==========================================================================
   Homepage hero: the lead is the page's single H1 and stays left-aligned.
   The theme's ".focus .text .page-content h1 { text-align: center }" would
   otherwise centre it; this selector out-ranks that rule for this one element.
   ========================================================================== */
body.template-home .tct-home h1.th-hero-lead {
  text-align: left;
}

/* ==========================================================================
   Day tours: the standard H2
   The section headings on the three tour pages (.day-tour-heading) are the
   standard H2 (tct-h2-type:
   Mercury, 400, light-gray rule). They sit inside sections that already carry
   their own vertical padding, so the top margin is 0. Tour-page headings stay
   on the 644px measure.
   ========================================================================== */
.focus .page-container.text .day-tour-heading {
  font-family: var(--font-mercury);
  font-weight: 400;
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
  color: #202020;
  text-align: left;
  padding: 0 0 8px;
  border: 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  text-align: left !important;
  max-width: 644px;
  margin: 0 auto 30px;
}

/* ==========================================================================
   Church page template (.cor-page)
   One editable page-content structure for every individual church page,
   including the four major basilicas. CSS controls presentation only; every
   heading, highlight, hour, Mass, address and link is ordinary page content.
   Order: hero (H1, optional Italian subtitle, introduction), optional visitor
   alert, Highlights, then plain sections with meaningful H2s (Opening Hours,
   Mass Times, Confession, Eucharistic Adoration, Vespers, Devotions, Museum,
   Titular Cardinal, Address & Official Website).
   The H1 is the site H1 (tct-wide-title = tct-h1-type, centered on the page);
   every H2 is the site H2. Schedules are ordinary sentences and lines; the
   only rules on the page are the H2 rules.
   ========================================================================== */
.cor-page, .cor-page * {
  box-sizing: border-box;
}

.cor-page {
  --ink: #202020;
  --ink-soft: rgba(32, 32, 32, 0.7);
  --ink-faint: rgba(32, 32, 32, 0.55);
  --line: rgba(0, 0, 0, 0.1);
  --band: #f0f0f0;
  --paper: #ffffff;
  --accent: #ff4500;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

/* Hero: centered H1 and Italian subtitle; introduction left-aligned in a
   narrower reading measure. */
.cor-page .cor-hero {
  margin: 0;
  padding: 0;
  text-align: center;
}

.template-churches-of-rome .cor-page .cor-hero > h1.cor-title {
  font-family: var(--font-mercury);
  font-weight: 400;
  font-size: clamp(36px, 6vw, 47px);
  line-height: 1.234; /* 58px at 47px: two 29px body lines */
  letter-spacing: 0.005em;
  text-transform: none;
  text-align: center;
  color: #202020;
  text-wrap: balance;
  margin: 0 0 40px;
  padding: 0;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: calc(100vw - 48px);
  max-width: 1104px;
  padding: 64px 0 0;
}

.template-churches-of-rome .cor-page .cor-hero > h1.cor-title:has(+ .cor-subtitle) {
  margin-bottom: 8px;
}

.cor-page .cor-subtitle {
  margin: 0 0 40px;
  font-size: 17px;
  line-height: 1.5;
  color: var(--ink-soft);
  text-align: center;
}

.cor-page .cor-intro {
  max-width: 644px;
  margin: 0 auto;
  font-size: 17px;
  line-height: 1.75;
  color: var(--ink);
  text-align: left;
}

.cor-page .cor-intro p {
  margin: 0;
  text-align: left;
}

@media all and (max-width: 480px) {
  .template-churches-of-rome .cor-page .cor-hero > h1.cor-title {
    padding-top: 48px;
  }
}
/* Sections: the H2 (site standard) carries the only rule. */
.cor-page .cor-block {
  margin: 0;
  padding: 0;
}

.template-churches-of-rome .cor-page h2.cor-block-title {
  font-family: var(--font-mercury);
  font-weight: 400;
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
  color: #202020;
  text-align: left;
  padding: 0 0 8px;
  border: 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  margin: 64px 0 30px;
}
@media all and (max-width: 480px) {
  .template-churches-of-rome .cor-page h2.cor-block-title {
    margin: 48px 0 24px;
  }
}

.cor-page .cor-block-title em {
  font-style: italic;
}

.cor-page .cor-block p,
.cor-page .cor-block li {
  color: var(--ink);
}

.cor-page .cor-block > p {
  max-width: 66ch;
  margin: 0 0 10px;
  font-size: 16px;
  line-height: 1.7;
}

.cor-page .cor-block > p:last-child {
  margin-bottom: 0;
}

.cor-page .cor-block > p.cor-label {
  margin: 28px 0 10px;
  font-weight: 700;
  color: var(--ink);
}

.cor-page .cor-block > h2 + p.cor-label {
  margin-top: 0;
}

.cor-page .cor-block > p.cor-fine {
  font-size: 15px;
  color: var(--ink-soft);
}

.cor-page .cor-block > p.cor-verify-line {
  font-size: 13px;
  color: var(--ink-faint);
  margin-top: 14px;
}

.cor-page .cor-list {
  margin: 0 0 10px;
  padding-left: 20px;
  font-size: 16px;
  line-height: 1.7;
}

.cor-page .cor-list li {
  margin: 0 0 6px;
}

.cor-page .cor-list li:last-child {
  margin-bottom: 0;
}

/* Highlights: one card system. Number, short bold title, one line of detail.
   The count follows the church's content. */
.cor-page .cor-h-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
}

@media all and (min-width: 640px) {
  .cor-page .cor-h-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.cor-page .cor-h-card {
  border: 1px solid var(--line);
  padding: 22px 22px 20px;
  background: #fff;
}

.cor-page .cor-h-card-num {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--accent);
}

.template-churches-of-rome .cor-page h3.cor-h-card-title {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
  text-align: left;
  color: var(--ink);
}

.cor-page .cor-h-card-why {
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
  color: var(--ink);
}

.cor-page .cor-block > .cor-h-grid + p.cor-label {
  margin-top: 32px;
}

/* Subheading used inside a section (Saint Peter's brief tour locations). */
.template-churches-of-rome .cor-page h3.cor-sub {
  margin: 32px 0 8px;
  font-family: var(--font-mercury);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.25;
  text-align: left;
  color: #202020;
}

.template-churches-of-rome .cor-page h2 + h3.cor-sub {
  margin-top: 0;
}

/* Saint Peter's: Right Now / Next Mass feature. */
.cor-page .cor-qf {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border: 1px solid var(--line);
  background: #fff;
}

.cor-page .cor-qf-item {
  padding: 18px 20px;
  border-left: 1px solid var(--line);
  background: none;
}

.cor-page .cor-qf-item:first-child {
  border-left: none;
}

.cor-page .cor-qf-label {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 6px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--ink-faint);
}

.cor-page .cor-qf-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--ink-faint);
}

.cor-page .cor-qf-value {
  margin: 0;
  font-size: 15.5px;
  font-weight: 700;
  line-height: 1.35;
  color: var(--ink);
}

.cor-page .cor-qf-sub {
  margin: 3px 0 0;
  font-size: 13px;
  font-weight: 400;
  color: var(--ink-soft);
}

@media all and (max-width: 420px) {
  .cor-page .cor-qf {
    grid-template-columns: 1fr;
  }
  .cor-page .cor-qf-item {
    border-left: none;
    border-top: 1px solid var(--line);
  }
  .cor-page .cor-qf-item:first-child {
    border-top: none;
  }
}
/* Saint Peter's: FAQ, chapel list, source note. No separator lines. */
.cor-page .cor-faq-item {
  margin: 0 0 26px;
}

.cor-page .cor-faq-item:last-child {
  margin-bottom: 0;
}

.cor-page .cor-faq-q {
  margin: 0 0 6px;
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
}

.cor-page .cor-faq-a {
  max-width: 66ch;
  font-size: 16px;
  line-height: 1.7;
  color: var(--ink);
}

.cor-page .cor-faq-a p {
  margin: 0 0 12px;
}

.cor-page .cor-faq-a p:last-child {
  margin-bottom: 0;
}

.cor-page .cor-faq-a ul {
  margin: 0 0 12px;
  padding-left: 20px;
}

.cor-page .cor-block > ul {
  max-width: 66ch;
  margin: 0 0 12px;
  padding-left: 20px;
  font-size: 16px;
  line-height: 1.7;
}

.cor-page .cor-chapel-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.cor-page .cor-chapel-chip {
  border: 1px solid var(--line);
  padding: 12px 14px;
}

.cor-page .cor-chapel-chip-name {
  margin: 0 0 4px;
  font-size: 14px;
  font-weight: 700;
}

.cor-page .cor-chapel-chip-note {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--ink-soft);
}

.cor-page .cor-dsub {
  margin-top: 10px;
}

.cor-page .cor-dsub summary {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  list-style: none;
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
}

.cor-page .cor-dsub summary::-webkit-details-marker {
  display: none;
}

.cor-page .cor-dsub summary::before {
  content: "+";
  width: 12px;
  font-weight: 700;
  color: var(--accent);
}

.cor-page .cor-dsub[open] summary::before {
  content: "–";
}

.cor-page .cor-dsub .cor-dsub-body {
  padding: 12px 0 4px;
}

.cor-page .cor-source-note {
  margin-top: 64px;
  padding: 0 0 64px;
}

.cor-page .cor-source-note p {
  margin: 0;
  max-width: 66ch;
  font-size: 13px;
  line-height: 1.7;
  color: var(--ink-faint);
}

/* Reusable visitor alert: operational information only (temporary closures,
   restoration, changed entrances, access restrictions, unusual hours, major
   events). Light orange field with an orange rule; optional bold title. */
.tct-alert {
  margin: 0 0 8px;
  padding: 16px 20px 16px 17px;
  background: rgba(255, 69, 0, 0.06);
  border-left: 3px solid #ff4500;
  color: #202020;
}

.tct-alert p {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: #202020;
}

.tct-alert p + p {
  margin-top: 4px;
}

.tct-alert .tct-alert-title {
  font-weight: 700;
}

.cor-page > .tct-alert {
  margin-top: 40px;
  max-width: 644px;
  margin-left: auto;
  margin-right: auto;
}

.guide-article-body > .tct-alert {
  margin: 0 0 20px;
}

/* About and other standard pages that open with a photograph: an empty
   caption-placeholder paragraph and the image's own margin must not add to the
   title's 48px bottom spacing. */
.page-container.text:not(.page-1):not(:has(.guide-article)):not(:has(.guide-hub)):not(:has(.dt-landing)):not(:has(.day-tour)) .page-content > p:empty {
  display: none;
  margin: 0;
}

.page-container.text:not(.page-1):not(:has(.guide-article)):not(:has(.guide-hub)):not(:has(.dt-landing)):not(:has(.day-tour)) .page-content > img:first-child,
.page-container.text:not(.page-1):not(:has(.guide-article)):not(:has(.guide-hub)):not(:has(.dt-landing)):not(:has(.day-tour)) .page-content > p:empty + img {
  margin-top: 0 !important;
}

/* ==========================================================================
   Pass 1 design system: global H1, global H2, Guide/Mass article pages,
   Day Tours directory.
   ========================================================================== */
/* ---- One H1 -------------------------------------------------------------
   Every normal page's single H1 uses tct-h1-type (church-page H1). Exceptions
   are the homepage (.page-1) and individual pilgrimage pages
   (.tp-hero-title / .pt-hero-title). The :not() list counts as one class, so
   this beats the theme's ".focus .text .page-content h1". Component-specific
   H1 classes (.guide-article-title, .day-tour-title, .tgi-title, .tpi-title,
   .dt-title, .cor-maintitle, .pc-maintitle) get the same rule by being H1s. */
body .page-container:not(.page-1) h1:not(.tp-hero-title, .pt-hero-title, .article-h1) {
  font-family: var(--font-mercury);
  font-weight: 400;
  font-size: clamp(36px, 6vw, 47px);
  line-height: 1.234; /* 58px at 47px: two 29px body lines */
  letter-spacing: 0.005em;
  text-transform: none;
  text-align: center;
  color: #202020;
  text-wrap: balance;
  margin: 0 0 40px;
  padding: 0;
}

/* One vertical position for every standard H1: the church-page offset
   (64px above; 48px on phones). Heroes that already carry this offset in
   their own wrapper (.tgi-title, .tpi-title, .cor-maintitle, .pc-maintitle)
   and the church title (tct-wide-title) are excluded so nothing doubles up. */
body .page-container:not(.page-1) h1:not(.tp-hero-title, .pt-hero-title, .article-h1, .tgi-title, .tpi-title, .cor-maintitle, .pc-maintitle, .cor-title) {
  padding-top: 64px;
}
@media all and (max-width: 480px) {
  body .page-container:not(.page-1) h1:not(.tp-hero-title, .pt-hero-title, .article-h1, .tgi-title, .tpi-title, .cor-maintitle, .pc-maintitle, .cor-title) {
    padding-top: 48px;
  }
}

body .page-container:not(.page-1) .tct-work h1 {
  padding-top: 0;
}

/* ---- Arrival & Departure (pilgrimage pages) -----------------------------
   The notes under each Arrive by / Depart on or after date use the same body
   type as the section's intro paragraph (Gotham, the section's 18/29 size,
   ink), so the component reads as one text style. The orange labels and the
   Mercury place / date lines keep their own styles. */
#not-included .tp-notinc-date p {
  font-size: inherit;
  line-height: inherit;
  color: inherit;
}

/* The section's intro: one short, understated line directly under the centred
   heading (not a separate block), with room before the two date columns. */
#not-included .tp-notinc-intro {
  font-family: var(--font-gotham);
  font-weight: 300;
  font-size: 16px;
  line-height: 1.6;
  color: rgba(32, 32, 32, 0.72);
  text-align: center;
  max-width: 34em;
  margin: -8px auto 48px;
}
@media all and (max-width: 705px) {
  #not-included .tp-notinc-intro {
    margin-bottom: 36px;
  }
}

/* ---- Photo cards (.tct-cards / .tct-card) ---------------------------------
   One card family for the Day Tours directory, /guides/ and the homepage
   Guides section. Built from existing parts: white surface with the site
   hairline (as the church Highlight boxes), Mercury title at the directory-row
   size, Gotham body copy, and the existing orange button (a.tp-cta-solid) with
   the Day Tour button hover. Only the title and the button are links; the card
   lifts slightly on hover. Two across from 720px, one across below; an odd
   last card is centred rather than leaving a hole. */
.tct-cards {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  max-width: 860px;
  margin: 0 auto;
}

@media all and (min-width: 720px) {
  .tct-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
  }
  .tct-cards > .tct-card:last-child:nth-child(odd) {
    grid-column: 1/-1;
    justify-self: center;
    width: calc(50% - 16px);
  }
}
.tct-card {
  --orange: #ff4500;
  --near-black: #1F1D1A;
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 3px;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(32, 32, 32, 0.06);
}

@media (prefers-reduced-motion: no-preference) {
  .tct-card {
    transition: transform 200ms ease-out, box-shadow 200ms ease-out;
  }
  .tct-card:hover,
  .tct-card:focus-within {
    transform: translateY(-4px);
  }
}
.tct-card:hover,
.tct-card:focus-within {
  box-shadow: 0 10px 24px rgba(32, 32, 32, 0.1);
}

.tct-card a.tct-card-media {
  display: block;
  line-height: 0;
  text-decoration: none;
}

.page-container .tct-card img.tct-card-img {
  display: block;
  width: 100%;
  aspect-ratio: 3/2;
  height: auto;
  object-fit: cover;
  margin: 0;
  border-radius: 0;
}

.tct-card .tct-card-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  align-items: flex-start;
  padding: 24px 24px 28px;
}

.page-container .tct-cards .tct-card .tct-card-title {
  font-family: var(--font-mercury);
  font-weight: 400;
  font-size: clamp(22px, 2.2vw, 27px);
  line-height: 1.25;
  letter-spacing: 0;
  text-transform: none;
  text-align: left !important;
  color: #202020;
  margin: 0 0 12px;
  padding: 0;
  border: 0;
}

.page-container .tct-cards .tct-card .tct-card-title:has(+ .tct-card-cta) {
  margin-bottom: 24px;
}

.tct-card .tct-card-title a {
  color: #202020;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: transparent;
  transition: text-decoration-color 150ms ease-out;
}

.tct-card .tct-card-title a:visited {
  color: #202020;
}

.tct-card .tct-card-title a:hover {
  color: #202020;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: currentColor;
}

.tct-card .tct-card-title a:focus-visible {
  outline: 2px solid #ff4500;
  outline-offset: 2px;
  border-radius: 1px;
}

/* Day Tours and /guides/: the title link does not underline on hover (the
   card lift and the button carry the hover cue). The homepage cards are left
   as they were. */
.dt-landing .tct-card .tct-card-title a:hover,
.tct-guides-index .tct-card .tct-card-title a:hover {
  text-decoration-color: transparent;
}

.page-container .tct-card p.tct-card-desc {
  font-family: var(--font-gotham);
  font-weight: 300;
  font-size: 16px;
  line-height: 1.7;
  color: #202020;
  margin: 0 0 24px;
}

.tct-card a.tct-card-cta,
.tct-card a.tct-card-cta:visited {
  margin-top: auto;
  color: #fff;
  text-decoration: none;
}

.tct-card a.tct-card-cta:hover,
.tct-card a.tct-card-cta:focus-visible {
  background: #e63e00;
  color: #fff;
}

.tct-card a.tct-card-cta:focus-visible {
  outline: 2px solid #ff4500;
  outline-offset: 2px;
}

@media all and (max-width: 480px) {
  .tct-card .tct-card-body {
    padding: 20px 20px 24px;
  }
  .tct-card a.tct-card-cta {
    padding: 17px 30px;
  }
}
/* ---- Guide article pages (guides, English Mass, Traditional Latin Mass) ---- */
.focus .text .guide-article-body h3.guide-sub {
  margin: 28px 0 8px;
  font-family: var(--font-mercury);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.25;
  text-align: left;
  color: #202020;
}

.focus .text .guide-article-body h2 + h3.guide-sub,
.focus .text .guide-article-body p + h3.guide-sub {
  margin-top: 28px;
}

.guide-article-body p.guide-line {
  margin: 0 0 8px;
}

.guide-article-body p.guide-label {
  margin: 18px 0 8px;
  font-weight: 700;
}

.guide-article-body p.guide-line + p.guide-label {
  margin-top: 20px;
}

/* ---- Directory lists: one width ------------------------------------------
   The homepage lists and cards and the /guides/ cards sit in .th-pil-inner,
   the same 860px column (no extra side padding, so /guides/ lines up with
   the homepage and Day Tours cards). */
.tct-guides-index .th-pil-inner {
  max-width: 860px;
  margin: 0 auto;
  padding: 0;
}

/* ---- Day Tours directory (.dt-landing) -------------------------------------
   The standard H1, then the tours as photo cards (.tct-cards, above). */
.page-container.text:has(.dt-landing) > .headline-area {
  display: none;
}

@media all and (min-width: 1024px) {
  .page-container.text:has(.dt-landing) {
    max-width: 1200px;
  }
}
/* Image gallery: images side by side in equal columns (replaces the old WordPress [gallery]).
   Markup:  (2-5 columns). */
.gallery {
  display: grid;
  gap: 12px;
  margin: 0 0 29px;
}

.gallery-columns-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gallery-columns-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gallery-columns-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.gallery-columns-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.gallery img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
}

@media all and (max-width: 560px) {
  .gallery {
    gap: 8px;
  }
}
/*pm-css m:0*/