/* Shared type and reading layout. All pages use these same tokens. */
@font-face{font-family:PortalSans;src:url('/fonts/manrope-regular.woff') format('woff');font-weight:400 500;font-style:normal;font-display:swap}
@font-face{font-family:PortalSans;src:url('/fonts/manrope-bold.woff') format('woff');font-weight:600 800;font-style:normal;font-display:swap}
@font-face{font-family:PortalSerif;src:url('/fonts/noto-serif-regular.woff') format('woff');font-weight:400 500;font-style:normal;font-display:swap}
@font-face{font-family:PortalSerif;src:url('/fonts/noto-serif-semibold.woff') format('woff');font-weight:600 800;font-style:normal;font-display:swap}
:root{
 --sans:PortalSans,Arial,sans-serif;
 --serif:PortalSerif,Georgia,serif;
 --type-body:1rem;
 --type-small:.875rem;
 --type-h1:clamp(1.5rem,3vw + .8rem,2.75rem);
 --type-h2:clamp(1.25rem,1.5vw + .9rem,1.875rem);
 --type-h3:clamp(1.1875rem,1vw + 1rem,1.5rem);
 --type-sacred:clamp(1.125rem,.6vw + 1rem,1.25rem);
 --leading-body:1.65;
 --leading-heading:1.4;
 --reading-width:48rem;
 --gutter:clamp(1.25rem,5vw,4rem);
}
html{font-size:100%;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{font:400 var(--type-body)/var(--leading-body) var(--sans);letter-spacing:normal;word-spacing:normal;text-align:left}
*,*::before,*::after{box-sizing:border-box}
main :is(p,li,dd,dt,a,span,h1,h2,h3,summary){word-break:normal;overflow-wrap:normal;hyphens:none}
main :is(section,article,aside,figure,div),header>*{min-width:0}
p,li,dd{line-height:var(--leading-body);text-align:start;text-wrap:pretty}
p{margin:0 0 1.25em}
main :is(h1,h2,h3){font-family:var(--serif);font-weight:600;line-height:var(--leading-heading);letter-spacing:normal;word-spacing:normal;text-wrap:balance;hyphens:none;overflow-wrap:normal;margin:0 0 .7em}
main h1,.page-intro h1{font-size:var(--type-h1)}
main h2,.prose h2,.question h2,.calendar h2,.place-card h2,.prayer h2{font-size:var(--type-h2)}
main h3,.event h3,#map-detail h3{font-size:var(--type-h3)}
main .prose h2{margin-top:2em}
.prose>h2:first-child,.prose section>h2:first-child{margin-top:0}
main .prose h3{margin-top:1.5em}
.prose p{line-height:var(--leading-body)}
.lead{font-size:1.125rem;line-height:var(--leading-body);max-width:44rem}
.prose.large{--type-body:1.1875rem;font-size:var(--type-body)}
.prose.large p,.prose.large li,.place-article section{font-size:var(--type-body);line-height:var(--leading-body)}
.card p,.place-card p,.split-feature p,.closing p,.event p,#place-detail p,.calendar p,.source-row p,details p,.icon-slide figcaption,.icon-slide figcaption p,.section-head p,.panel p,.memory-map>p{font-size:var(--type-body);line-height:var(--leading-body)}
.notice,.source-note,.source-link,.source-controls :is(label,span),.small,.icon-slide .small,.card-link,.hero-art figcaption,.relic-photo figcaption,figcaption,.place-photo figcaption,.map-credit{font-family:var(--sans);font-size:var(--type-small)!important;line-height:1.7;letter-spacing:normal}
.eyebrow,.number{font-family:var(--sans);font-size:.8125rem;font-weight:700;line-height:1.65;letter-spacing:.075em;margin-bottom:1rem}
.topline{font-size:.75rem;line-height:1.65;letter-spacing:.07em}
.brand{font:600 1.625rem/1.3 var(--serif);gap:.7rem}
.brand small{font:700 .75rem/1.5 var(--sans);letter-spacing:.15em}
.cross{font-family:Georgia,serif;font-size:2.25rem}
header{gap:1.5rem;flex-wrap:wrap;padding-top:1.25rem;padding-bottom:1.25rem}
header nav{gap:1.25rem;flex-wrap:wrap}
header nav a{font:400 .9375rem/1.6 var(--sans)}
button,input,select,textarea{font:400 1rem/1.55 var(--sans)}
.button,.text-link,.tabs button,.menu{font:400 .9375rem/1.6 var(--sans)}
.button{max-width:100%;text-align:center;white-space:normal;padding:.85rem 1.25rem}
.actions{gap:1rem 1.5rem}
summary{font:700 1rem/1.65 var(--sans)}
.hero{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(2rem,6vw,6rem)}
.hero h1{font-size:clamp(1.5rem,2.4vw + .5rem,2.25rem);line-height:1.35;letter-spacing:normal;margin-bottom:1rem}
.hero h1 em{font-size:1.25em;line-height:1.35}
.hero-copy>p{font:400 clamp(1rem,.65vw + .8rem,1.1875rem)/1.65 var(--serif);margin-bottom:1.25rem}
.hero .eyebrow{font-size:.8125rem;line-height:1.7}
.hero-note{font-size:.875rem;letter-spacing:.06em}
.memory-band{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
.memory-band strong{font:600 clamp(1.5rem,2vw + 1rem,2rem)/1.5 var(--serif)}
.memory-band :is(p,a),.memory-band span:not(.eyebrow){font-size:.875rem;line-height:1.7}
.memory-band .eyebrow{max-width:none}
.anthia-facts strong{font:600 1.375rem/1.6 var(--serif)}
.anthia-facts span{font-size:.875rem;line-height:1.65;letter-spacing:normal}
.section-head{align-items:start}
.card{padding:1.5rem}
.card h3,.source-row h2{font-size:var(--type-h3)}
.source-row>div{min-width:0}
.source-row .number{margin-top:.3rem}
.source-row h2{line-height:1.55;margin:.5rem 0}
.source-controls input{font-size:1rem}
.reading-layout{grid-template-columns:13.5rem minmax(0,var(--reading-width));gap:clamp(1.75rem,4vw,4rem)}
.reading-layout aside a{font-size:.9375rem;line-height:1.7;overflow-wrap:normal}
.prose.standalone{max-width:calc(var(--reading-width) + 3rem)}
.relic-prose,.service-intro{max-width:calc(var(--reading-width) + 3rem)}
.prose.large{max-width:var(--reading-width)}
.prose .dropcap:first-letter{font-family:var(--serif);font-size:3rem;line-height:1.2;float:none;padding:0}
blockquote,.prayer>p,.service-original{font:400 var(--type-sacred)/1.9 var(--serif);letter-spacing:normal;word-spacing:normal;text-align:start;text-wrap:pretty;overflow-wrap:normal;word-break:normal;hyphens:none}
blockquote{padding:1.25rem 1.5rem;margin:1.5rem 0}
blockquote p{font:inherit;line-height:inherit}
.prayer>p{font:400 var(--type-sacred)/1.8 var(--serif)}
.service-original{max-width:calc(var(--reading-width) + 4rem);padding:2rem;margin:1rem auto 3rem}
.service-original p,.service-original .txt{font-size:inherit;line-height:inherit;margin:0 0 1.3em}
.service-original .h6cc{font:600 1rem/1.8 var(--serif);margin-top:1.75em}
.service-original h2,.service-original h3{font:600 1.25rem/1.75 var(--serif);text-align:center;margin:1.25rem 0 2rem}
.service-original .color-red{color:#852e35}
.service-original sup{font-size:.75em}
.prayer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
.prayer{padding:1.5rem}
.prayer h2{font-size:var(--type-h3)}
.calendar{gap:2rem}
.calendar h2{font-size:clamp(2rem,4vw,3rem)}
.relic-toc{display:flex;width:auto;flex-direction:row;flex-wrap:wrap;align-items:stretch;gap:.5rem;padding:0 var(--gutter) 2rem}
.relic-toc a{font:400 .9375rem/1.6 var(--sans);padding:.6rem .8rem}
.relic-grid span{font-size:var(--type-body)}
.place-index{padding:0 var(--gutter)}
.place-card{padding:1.5rem;min-height:0}
.place-card h2{font-size:var(--type-h2)}
.place-article{max-width:76rem;padding:0 var(--gutter);grid-template-columns:minmax(0,1fr) minmax(17rem,.7fr);gap:2.5rem}
.place-article.text-only:not(:has(.pilgrim-box)){display:block;max-width:calc(var(--reading-width) + 2 * var(--gutter))}
.place-article.text-only:not(:has(.pilgrim-box)) section{margin-bottom:2.5rem}
.pilgrim-box{padding:1.5rem}
.pilgrim-box h2{font-size:var(--type-h3)}
.pilgrim-box :is(dt,dd,p){font-size:1rem;line-height:1.8;overflow-wrap:normal}
.pilgrim-box dt{font-weight:700}
.icon-slide figcaption h3{font-size:var(--type-h3);line-height:1.5}
.control-set{gap:.4rem}
.control-set label{font:700 .875rem/1.6 var(--sans);padding:.6rem .75rem;min-height:44px;display:flex;align-items:center;justify-content:center}
.control-set>span{font-size:.875rem;white-space:nowrap}
.icon-reading summary{font-size:1rem;line-height:1.65}
.map-layout{grid-template-columns:minmax(0,1.4fr) minmax(17rem,1fr)}
.map-choices button,.map-reset{font-size:.9375rem;line-height:1.6}
.leaflet-container{font-family:var(--sans)}
table,.comparison{font-family:var(--sans);font-size:1rem;line-height:1.75}
th,td,.comparison :is(th,td){font-size:1rem;line-height:1.75;text-align:start}
table caption{font-size:.9375rem;line-height:1.75}
.question-index a{font-size:1rem;line-height:1.8;overflow-wrap:normal}
.question{padding:1.75rem 0}
.question h2{font-size:var(--type-h2)}
footer .brand{font:600 1.5rem/1.5 var(--serif)}
footer p,footer>div{font-size:.875rem;line-height:1.7}
footer>div{flex-wrap:wrap}
@media(min-width:1000px){.comparison-wrap{width:min(70rem,calc(100vw - 2 * var(--gutter)));margin-left:50%;transform:translateX(-50%)}.comparison{min-width:0}.comparison th:first-child{width:18%}}
@media(max-width:1000px){
 .prayer-grid,.place-article{grid-template-columns:minmax(0,1fr)}
 .place-article :is(section,.pilgrim-box){grid-column:1}
 .place-article .pilgrim-box{grid-row:auto}
 .comparison-wrap,.table-scroll{overflow:visible}
 .comparison{display:block;min-width:0;width:100%;margin:1.5rem 0}
 .comparison caption{display:block}
 .comparison thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .comparison tbody{display:block}
 .comparison tr{display:block;margin:0 0 1.25rem;border:1px solid var(--line);background:transparent!important}
 .comparison td{display:block;border:0;border-top:1px solid var(--line);padding:1rem}
 .comparison td:first-child{border:0;background:#eee7da;font-weight:700}
 .comparison td::before{content:attr(data-label);display:block;color:var(--wine);font-size:.875rem;font-weight:700;margin-bottom:.5rem}
}
@media(max-width:760px){
 header,.topline,footer,main>.section,main>.split-feature,.page-intro,.reading-layout,.prayer-grid,.place-browser,.source-controls,.source-list,main>.panel,.art-section,main>#no-results{padding-left:var(--gutter);padding-right:var(--gutter)}
 header{gap:1rem;min-height:0}
 header nav{display:none;flex-direction:column;align-items:stretch;width:100%;gap:0}
 header nav.open{display:flex}
 header nav a{font-size:1rem;padding:.75rem 0}
 .topline{font-size:.75rem;letter-spacing:.045em}
 .menu{min-height:44px;padding:.5rem .8rem}
 .page-intro{padding-top:2rem;padding-bottom:1.5rem}
 .page-intro .lead{font-size:var(--type-body)}
 .hero{grid-template-columns:minmax(0,1fr);padding:2rem var(--gutter);gap:2rem}
 .hero h1{font-size:clamp(1.25rem,3vw + .625rem,1.625rem);line-height:1.35}
 .hero h1 em{font-size:1.25em}
 .hero .actions{align-items:stretch}
 .memory-band{padding:1.5rem var(--gutter);gap:1rem}
 .memory-band .eyebrow,.memory-band p{grid-column:1/-1}
 .memory-band strong{font-size:1.625rem}
 .anthia-facts{margin-left:var(--gutter);margin-right:var(--gutter)}
 .reading-layout{grid-template-columns:minmax(0,1fr);gap:1.5rem}
 .reading-layout aside{display:flex;flex-direction:column;gap:.25rem;position:static}
 .reading-layout aside a{font-size:.9375rem;line-height:1.7;padding:.5rem 0;width:100%}
 .section{padding-top:2.75rem;padding-bottom:2.75rem}
 .card{padding:1.25rem}
 .source-row{grid-template-columns:1.5rem minmax(0,1fr);gap:.75rem}
 .source-row .external{display:none}
 .source-row h2{font-size:1.1875rem}
 .source-controls span{white-space:normal}
 .prose.standalone,.relic-prose,.service-intro{padding-left:var(--gutter);padding-right:var(--gutter)}
 .relic-toc{display:flex;flex-direction:row;flex-wrap:wrap;padding-left:var(--gutter);padding-right:var(--gutter)}
 .relic-toc a{border:1px solid var(--line);font-size:.875rem}
 .relic-grid{grid-template-columns:minmax(0,1fr)}
 .relic-grid a{padding:1.125rem}
 .relic-photo figcaption{margin-top:.75rem}
 blockquote{padding:1rem 1.125rem}
 .service-original{margin:0 var(--gutter) 2.5rem;padding:1.25rem .875rem;font-size:1.125rem;line-height:1.95}
 .service-original h2,.service-original h3{font-size:1.125rem;line-height:1.8}
 .service-original .h6cc{font-size:1rem}
 .prayer{padding:1.25rem}
 .prayer h2{font-size:1.25rem}
 .calendar h2{font-size:2rem}
 .place-index,.place-article{padding-left:var(--gutter);padding-right:var(--gutter)}
 .place-article{gap:2rem}
 .pilgrim-box{padding:1.25rem}
 .pilgrim-box h2{font-size:1.25rem}
 .icon-slide figcaption{font-size:var(--type-body)}
 .icon-stage{padding:1rem}
 .icon-slide{grid-template-columns:minmax(0,1fr)}
 .slide-tools{min-width:0;max-width:100%}
 .icon-thumbs{max-width:100%}
 .map-layout{grid-template-columns:minmax(0,1fr)}
 .table-scroll table,.table-scroll tbody,.table-scroll tr,.table-scroll td{display:block;width:100%}
 .table-scroll thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .table-scroll tr{margin-bottom:1rem;border:1px solid var(--line)}
 .table-scroll td{padding:.8rem 1rem;font-size:1rem;border:0}
 .table-scroll td:first-child{background:#eee7da;font-weight:700}
 .table-scroll td::before{content:attr(data-label);display:block;font-size:.875rem;color:var(--wine);margin-bottom:.4rem}
 .actions{gap:.75rem}
 .button{padding:.8rem 1rem}
 footer .brand{font-size:1.25rem}
}
@media(max-width:359px){.brand{font-size:1.375rem}.brand small{font-size:.75rem}.cross{font-size:2rem}.control-set label{padding:.5rem .55rem}.control-set{gap:.2rem}.service-original{margin-left:.75rem;margin-right:.75rem}}
@media print{.service-original{font-size:12pt;line-height:1.7;max-width:none;margin:0;padding:0;border:0}.service-original h2,.service-original h3{font-size:14pt}.service-original .h6cc{font-size:12pt}}

/* Related hero actions share geometry, while the life remains primary. */
.hero .actions{display:flex;align-items:stretch;flex-wrap:wrap;gap:.75rem;margin-top:0}
.hero .actions>a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.55rem .85rem;border:1px solid var(--wine);font-size:.875rem;line-height:1.5;text-align:center;text-decoration:none;box-shadow:none}
.hero .actions>.text-link{background:transparent;color:var(--wine)}
.hero .actions>.text-link:hover{background:var(--wine);color:var(--paper)}
.hero-note{margin-top:1.5rem;padding-top:1rem}
@media(max-width:640px){.hero{padding-top:1.5rem}.hero .actions{flex-direction:row;gap:.625rem}.hero .actions>a{width:auto;max-width:100%}}
