.saint-hero { padding: clamp(2.5rem,5vw,5.5rem) 0; background: #f5f2ec; }
.saint-hero-grid { display: grid; grid-template-columns: 1fr; gap: clamp(1.3rem,3vw,2.5rem); align-items: center; }
.saint-hero-grid:has(> :only-child) { grid-template-columns: 1fr; }
.saint-hero h1 { margin: .65rem 0 1rem; font: 400 clamp(2.1rem,4vw,4.2rem)/1.12 Georgia,serif; overflow-wrap: anywhere; }
.saint-breadcrumb { font-size: .88rem; margin: 0 0 1.2rem; }
.saint-hero-image { margin: 0; text-align: center; }
.saint-hero-image a { display: inline-block; max-width: 100%; cursor: zoom-in; }
.saint-hero-image img { display: block; max-width: 100%; max-height: min(65vh,650px); width: auto; height: auto; margin-inline: auto; object-fit: contain; box-shadow: 0 12px 30px rgba(0,0,0,.12); }
.saint-body { padding: clamp(2rem,5vw,4.5rem) 0; }
.saint-content-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(190px,230px); gap: clamp(2rem,4vw,4rem); align-items: start; }
.saint-copy { min-width: 0; max-width: 900px; line-height: 1.65; overflow-wrap: anywhere; }
.saint-copy p, .saint-copy div, .saint-copy li { max-width: 100%; }
.saint-copy h2 { margin: 2rem 0 1rem; font: 400 clamp(1.5rem,2.5vw,2rem)/1.25 Georgia,serif; }
.saint-copy h3, .saint-copy h4 { margin: 1.7rem 0 .7rem; line-height: 1.35; }
.saint-copy p { margin-block: 0 1.2rem; }
.saint-copy p:has(img), .saint-copy h2:has(img), .saint-copy div:has(> img) { text-align: center; }
.saint-copy img { width: auto; height: auto; max-width: min(100%,540px); max-height: 540px; margin: .45rem; object-fit: contain; vertical-align: middle; }
.saint-copy a:has(> img) { display: inline-block; max-width: 100%; cursor: zoom-in; }
.saint-copy table { max-width: 100%; width: 100%; border-collapse: collapse; table-layout: auto; }
.saint-copy td { max-width: 100%; width: auto; vertical-align: top; }
.saint-copy iframe { max-width: 100%; }
.saint-copy hr { border: 0; border-top: 1px solid #ded8cd; margin: 2rem 0; }
.saint-aside-card { padding: 1.5rem; background: #f8f6f2; border: 1px solid #e1dbd0; }
.saint-aside-card strong { display: block; font: 400 1.25rem Georgia,serif; }
.saint-aside-card p { margin: .8rem 0 1.2rem; }
.saint-bottom-nav { grid-column: 1/-1; padding-top: 1.5rem; border-top: 1px solid #ded8cd; }
.saint-gallery { grid-column: 1/-1; padding-top: 2rem; border-top: 1px solid #ded8cd; min-width: 0; }
.saint-gallery h2 { margin: 0 0 1.5rem; font: 400 clamp(1.5rem,2.5vw,2rem)/1.25 Georgia,serif; }
.saint-gallery-grid, .saint-gallery-source { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; align-items: start; }
.saint-gallery-source { grid-column: 1/-1; }
.saint-gallery-grid > p, .saint-gallery-grid > figure, .saint-gallery-source > p, .saint-gallery-source > figure, .saint-gallery-source > a { margin: 0; padding: 1rem; background: #f8f6f2; border: 1px solid #e1dbd0; text-align: center; min-width: 0; line-height: 1.55; }
.saint-gallery img { display: inline-block; max-width: 100%; width: auto; height: auto; max-height: 430px; object-fit: contain; vertical-align: middle; margin: .25rem; }
.saint-gallery p a:has(img), .saint-gallery-source a:has(img) { display: inline-block; max-width: 100%; }
.saint-gallery-grid > :has(img):only-child { grid-column: 1/-1; }
.saint-index-intro, .saint-index-list { padding: clamp(2rem,5vw,4.5rem) 0; }
.saint-index-intro { max-width: 100%; }
.saint-index-intro .wrap { max-width: 860px; }
.saint-index-list { background: #f8f6f2; }
.saint-index-note { margin-bottom: 1.8rem; }
.saint-card-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; align-items: stretch; }
.saint-card { padding: 1.35rem; background: #fff; border: 1px solid #e1dbd0; }
.saint-card h3 { margin: 0 0 .55rem; font: 400 1.28rem/1.3 Georgia,serif; }
.saint-card p { margin: 0; color: #615e58; font-size: .9rem; }
.saint-card-featured { margin: 1.6rem 0 2.5rem; border-left: 4px solid #a32832; max-width: 860px; }
.saint-card-related { margin-top: 2rem; max-width: 860px; }
.saint-devotions { padding: clamp(2rem,5vw,4.5rem) 0; }
@media (max-width: 900px) { .saint-content-grid { grid-template-columns: 1fr; } .saint-aside { display: none; } .saint-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 650px) { .saint-hero-grid,.saint-card-grid,.saint-gallery-grid,.saint-gallery-source { grid-template-columns: 1fr; } .saint-copy table,.saint-copy tbody,.saint-copy tr,.saint-copy td { display: block; width: 100%; } .saint-copy img { max-width: calc(100% - 1rem); } }
