/* ============================================================
   THE LAYMAN'S LANTERN — Lucerna Memoriae
   Shared stylesheet · editorial / literary-press aesthetic
   ============================================================ */

:root{
  --ink:#241a10;
  --espresso:#1a120b;
  --espresso-2:#23170e;
  --paper:#f6f1e6;
  --paper-card:#fbf8ef;
  --gold:#9a7a2e;
  --gold-deep:#7d6224;
  --champagne:#c9a85a;
  --rule:#ddd0b4;
  --rule-dark:rgba(201,168,90,.30);
  --muted:#655740;
  --muted-dark:rgba(246,241,230,.92);
  --display:'Cinzel',serif;
  --head:'Cormorant Garamond',serif;
  --body:'EB Garamond',serif;
  --measure:720px;
  --wide:1120px;
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;scroll-padding-top:80px;}
body{
  font-family:var(--body);
  color:var(--ink);
  background:var(--paper);
  font-size:20px;
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
  background-image:
    radial-gradient(circle at 18% 12%, rgba(201,168,90,.05), transparent 42%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.028'/%3E%3C/svg%3E");
}
h1,h2,h3,h4{font-family:var(--head);font-weight:600;line-height:1.12;color:var(--ink);}
a{color:var(--gold-deep);text-decoration:none;transition:color .2s;}
a:hover{color:var(--gold);}
em,i{font-style:italic;}
.wrap{max-width:var(--wide);margin:0 auto;padding:0 32px;}
.measure{max-width:var(--measure);margin:0 auto;padding:0 32px;}

/* kicker / labels */
.kicker{
  font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.32em;
  color:var(--gold);
}
.kicker.on-dark{color:var(--champagne);}

/* ornamental rule */
.orn{display:flex;align-items:center;justify-content:center;gap:16px;}
.orn .ln{height:1px;width:64px;background:var(--rule);}
.orn .dot{color:var(--gold);font-size:13px;}
.orn.on-dark .ln{background:var(--rule-dark);}
.orn.on-dark .dot{color:var(--champagne);}

/* buttons / textlinks */
.readmore{
  display:inline-flex;align-items:center;gap:8px;font-family:var(--display);
  font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);
}
.readmore .arr{transition:transform .25s;}
.readmore:hover .arr{transform:translateX(5px);}

/* ───────────────── CATHOLIC TIMELINE PROMO ───────────────── */
.timeline-promo{
  position:relative;display:grid;grid-template-columns:90px 1fr auto;gap:24px;align-items:center;
  margin:0 0 42px;padding:28px 30px;overflow:hidden;
  background:#26170f;border:1px solid rgba(201,168,90,.55);color:#f6ead3;
  box-shadow:8px 9px 0 rgba(111,33,29,.09);transition:transform .25s,box-shadow .25s,border-color .25s;
}
.timeline-promo::after{
  position:absolute;right:-56px;bottom:-82px;width:190px;height:190px;
  border:1px solid rgba(217,189,120,.12);border-radius:50%;content:"";
  box-shadow:0 0 0 32px rgba(217,189,120,.025),0 0 0 64px rgba(217,189,120,.018);
}
.timeline-promo:hover{transform:translateY(-3px);border-color:#d9bd78;box-shadow:11px 13px 0 rgba(111,33,29,.12);}
.timeline-promo-mark{position:relative;z-index:1;display:flex;align-items:center;gap:9px;color:#d9bd78;font-family:var(--head);font-size:24px;font-style:italic;}
.timeline-promo-mark i{width:28px;height:1px;background:rgba(217,189,120,.5);}
.timeline-promo-copy{position:relative;z-index:1;display:flex;flex-direction:column;gap:5px;}
.timeline-promo-copy small{color:#d9bd78;font-family:var(--display);font-size:8px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;}
.timeline-promo-copy strong{color:#fff3dc;font-family:var(--head);font-size:29px;font-weight:600;line-height:1.05;}
.timeline-promo-copy>span{max-width:630px;color:#d1c1aa;font-family:var(--body);font-size:16px;line-height:1.45;}
.timeline-promo>b{position:relative;z-index:1;color:#ead7b4;font-family:var(--display);font-size:9px;font-weight:500;letter-spacing:.14em;line-height:1.6;text-align:right;text-transform:uppercase;white-space:nowrap;}
.timeline-promo>b em{display:inline-block;margin-left:5px;color:#d9bd78;font-size:16px;font-style:normal;transition:transform .25s;}.timeline-promo:hover>b em{transform:translateX(4px);}
.timeline-promo-bible{width:min(100%,1060px);margin:0 auto 34px;}
@media(max-width:680px){
  .timeline-promo{grid-template-columns:1fr;padding:25px 24px;gap:14px}.timeline-promo-mark{font-size:19px}.timeline-promo-copy strong{font-size:26px}.timeline-promo>b{text-align:left}.timeline-promo>b br{display:none}
}

/* ───────────────── NAV ───────────────── */
.nav{position:sticky;top:0;z-index:50;background:var(--espresso);border-bottom:1px solid var(--rule-dark);}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:92px;}
.nav-brand{display:flex;flex-direction:column;align-items:center;gap:6px;}
.nav-brand img{height:36px;width:auto;filter:drop-shadow(0 1px 5px rgba(201,168,90,.35));}
.nav-brand .nm{font-family:var(--display);font-size:7px;letter-spacing:.2em;color:var(--paper);line-height:1;}
.nav-links{display:flex;gap:34px;align-items:center;}
.nav-links a{font-family:var(--display);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--paper);opacity:.82;}
.nav-links a:hover,.nav-links a.active{opacity:1;color:var(--champagne);}
.nav-tog{display:none;background:none;border:none;color:var(--paper);font-size:24px;cursor:pointer;}
@media(max-width:760px){
  .nav-links{position:absolute;top:92px;left:0;right:0;flex-direction:column;gap:0;background:var(--espresso);
    max-height:0;overflow:hidden;visibility:hidden;transition:max-height .3s,visibility 0s .3s;border-bottom:1px solid var(--rule-dark);}
  .nav-links.open{max-height:450px;visibility:visible;transition:max-height .3s,visibility 0s;}
  .nav-links a{padding:15px 32px;width:100%;border-top:1px solid var(--rule-dark);}
  .nav-tog{display:block;}
}

/* ───────────────── NAV SEARCH BUTTON ───────────────── */
.nav-search-btn{
  background:none;border:none;color:var(--paper);opacity:.82;cursor:pointer;
  font-size:16px;padding:4px 0 4px 8px;display:flex;align-items:center;
  transition:opacity .2s,color .2s;
}
.nav-search-btn:hover{opacity:1;color:var(--champagne);}
.nav-search-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
@media(max-width:760px){
  .nav-search-btn{position:absolute;right:52px;top:50%;transform:translateY(-50%);}
}

/* ───────────────── SITE SEARCH OVERLAY ───────────────── */
.site-search-overlay{
  position:fixed;inset:0;z-index:200;
  background:rgba(26,18,11,.88);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  opacity:0;pointer-events:none;
  transition:opacity .25s;
  display:flex;flex-direction:column;align-items:center;
  padding:0 20px;
  overflow-y:auto;
}
.site-search-overlay.active{opacity:1;pointer-events:auto;}
.site-search-wrap{width:100%;max-width:620px;margin-top:min(12vh,120px);}
.site-search-header{margin-bottom:24px;}
.site-search-input-wrap{position:relative;}
.site-search-input{
  width:100%;padding:18px 50px 18px 48px;
  border:1px solid var(--champagne);border-radius:6px;
  background:rgba(246,241,230,.96);
  font-family:var(--body);font-size:20px;color:var(--ink);
  transition:border-color .2s,box-shadow .2s;
}
.site-search-input::placeholder{color:var(--muted);font-style:italic;font-family:var(--head);}
.site-search-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(154,122,46,.25);}
.site-search-icon{
  position:absolute;left:16px;top:50%;transform:translateY(-50%);
  color:var(--muted);font-size:18px;pointer-events:none;
}
.site-search-close{
  position:absolute;right:14px;top:50%;transform:translateY(-50%);
  background:none;border:none;color:var(--muted);font-size:24px;cursor:pointer;padding:4px;
  transition:color .2s;
}
.site-search-close:hover{color:var(--ink);}
.site-search-results{display:flex;flex-direction:column;gap:6px;padding-bottom:60px;}
.site-search-result{
  display:block;padding:16px 20px;border-radius:6px;
  background:rgba(251,248,239,.95);
  border:1px solid var(--rule);
  text-decoration:none;transition:border-color .2s,box-shadow .2s;
}
.site-search-result:hover{border-color:var(--gold);box-shadow:0 2px 12px rgba(154,122,46,.18);}
.site-search-result-type{
  display:block;font-family:var(--display);font-size:10px;
  letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:4px;
}
.site-search-result-title{
  display:block;font-family:var(--head);font-size:22px;font-weight:600;
  color:var(--ink);line-height:1.2;margin-bottom:4px;
}
.site-search-result-desc{
  display:block;font-family:var(--body);font-size:16px;color:var(--muted);line-height:1.5;
}
.site-search-result mark{background:rgba(201,168,90,.25);color:var(--ink);border-radius:2px;padding:0 1px;}
.site-search-no-results{
  text-align:center;font-family:var(--head);font-style:italic;
  color:var(--muted-dark);font-size:18px;padding:28px 0;
}
.site-search-empty{
  text-align:center;font-family:var(--head);font-style:italic;
  color:var(--muted-dark);font-size:17px;padding:20px 0;opacity:.8;
}
@media(max-width:560px){
  .site-search-wrap{margin-top:24px;}
  .site-search-input{font-size:18px;padding:16px 46px 16px 44px;}
  .site-search-result-title{font-size:19px;}
}

/* ───────────────── MASTHEAD (home) ───────────────── */
.masthead{
  background:
    radial-gradient(ellipse at 50% 30%, rgba(201,168,90,.16), transparent 60%),
    linear-gradient(180deg,var(--espresso) 0%, #251910 60%, var(--espresso) 100%);
  color:var(--paper);text-align:center;padding:70px 0 60px;position:relative;overflow:hidden;
}
.masthead::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");}
.masthead .inner{position:relative;z-index:2;}
.masthead .emblem{height:118px;width:auto;filter:drop-shadow(0 0 34px rgba(201,168,90,.45));
  animation:glow 5.5s ease-in-out infinite;}
@keyframes glow{0%,100%{filter:drop-shadow(0 0 30px rgba(201,168,90,.4));}50%{filter:drop-shadow(0 0 46px rgba(201,168,90,.62));}}
.masthead .motto{margin:22px 0 8px;}
.masthead h1{
  font-family:var(--display);font-weight:600;color:#f5ecd6;
  font-size:clamp(30px,5.6vw,58px);letter-spacing:.08em;line-height:1.04;
}
.masthead .dbl{max-width:560px;margin:22px auto 16px;}
.masthead .dbl .top{height:2px;background:var(--champagne);opacity:.85;}
.masthead .dbl .bot{height:1px;background:var(--champagne);opacity:.5;margin-top:3px;}
.masthead .dline{
  font-family:var(--display);font-size:11px;letter-spacing:.26em;
  color:var(--champagne);opacity:.9;
}
.masthead .sub{font-family:var(--head);font-style:italic;font-size:clamp(17px,2.4vw,23px);color:var(--muted-dark);margin-top:14px;}
.masthead .plain-desc{font-family:var(--body);font-size:clamp(14px,1.8vw,17px);color:rgba(246,241,230,.72);margin-top:12px;letter-spacing:.01em;max-width:560px;margin-left:auto;margin-right:auto;}

/* ───────────────── SECTIONS ───────────────── */
section{padding:78px 0;}
.sec-label{text-align:center;margin-bottom:8px;}
.sec-title{text-align:center;font-size:clamp(26px,4vw,40px);margin-bottom:10px;}

/* ABOUT / THE AIM */
.aim{background:linear-gradient(180deg,var(--paper-card),var(--paper));}
.aim .measure{text-align:center;}
.aim h2{font-size:clamp(26px,4vw,40px);margin:14px 0 18px;}
.aim p{color:var(--ink);margin-bottom:18px;font-size:21px;}
.aim p.scripture{font-family:var(--head);font-style:italic;color:var(--gold-deep);font-size:23px;margin-top:8px;}

/* FEATURED ARTICLE (editorial, not a boxy card) */
.featured{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:14px 0;}
.featured .fwrap{display:grid;grid-template-columns:0.92fr 1.08fr;gap:48px;align-items:center;}
.featured .fart{
  background:radial-gradient(ellipse at 50% 35%, rgba(201,168,90,.22), transparent 62%),
             linear-gradient(160deg,var(--espresso),#2a1c11);
  border-radius:4px;padding:54px 40px;text-align:center;
}
.featured .fart img{height:130px;width:auto;filter:drop-shadow(0 0 28px rgba(201,168,90,.5));}
.featured .meta{font-family:var(--display);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:14px;}
.featured h3{font-size:clamp(30px,4.6vw,46px);line-height:1.05;margin-bottom:6px;}
.featured h3 a{color:var(--ink);}
.featured h3 a:hover{color:var(--gold-deep);}
.featured .dek{font-family:var(--head);font-style:italic;color:var(--gold-deep);font-size:21px;margin-bottom:16px;}
.featured .exc{color:var(--muted);margin-bottom:22px;}
@media(max-width:820px){.featured .fwrap{grid-template-columns:1fr;gap:30px;}.featured .fart{padding:40px 28px;}.featured .fart img{height:100px;}}

/* ARTICLE LIST (hairline rows) */
.list{margin-top:8px;}
.entry{padding:30px 0;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:160px 1fr;gap:36px;align-items:baseline;}
.entry:first-child{border-top:1px solid var(--rule);}
.entry .when{font-family:var(--display);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-top:6px;}
.entry .when time{display:block;color:var(--gold-deep);margin-bottom:5px;}
.entry .when .cat{display:block;color:var(--gold);margin-bottom:5px;}
.entry h4{font-size:28px;line-height:1.12;margin-bottom:8px;}
.entry h4 a{color:var(--ink);}
.entry h4 a:hover{color:var(--gold-deep);}
.entry p{color:var(--muted);font-size:18px;margin-bottom:12px;}
.entry .soon{font-family:var(--display);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);
  border:1px solid var(--rule);border-radius:20px;padding:4px 11px;}
@media(max-width:640px){.entry{grid-template-columns:1fr;gap:8px;}.entry .when{padding-top:0;}}

/* LATEST WRITING (home page) */
.latest-sec{padding:64px 0 48px;}
.latest-sec .kicker{display:block;text-align:center;}
.latest-sec h2{text-align:center;}

/* BEGIN HERE — four pillars */
.begin-here-sec{padding:64px 0;background:linear-gradient(180deg,var(--paper),var(--paper-card));border-top:1px solid var(--rule);}
.begin-here-heading{text-align:center;font-size:clamp(24px,3.6vw,36px);margin-top:10px;margin-bottom:36px;}
.begin-here-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;max-width:var(--wide);margin:0 auto;}
.begin-here-card{display:block;text-align:center;padding:36px 24px 32px;border:1px solid var(--rule);border-radius:4px;background:var(--paper-card);text-decoration:none;transition:border-color .25s,box-shadow .25s,transform .25s;}
.begin-here-card:hover{border-color:var(--champagne);box-shadow:0 6px 24px rgba(154,122,46,.12);transform:translateY(-3px);}
.begin-here-icon{display:block;color:var(--gold);font-size:20px;margin-bottom:14px;letter-spacing:.1em;}
.begin-here-card h3{font-family:var(--head);font-size:clamp(19px,2.2vw,24px);color:var(--ink);margin-bottom:8px;line-height:1.2;}
.begin-here-card p{font-size:16px;color:var(--muted);line-height:1.55;margin:0;}
@media(max-width:820px){.begin-here-grid{grid-template-columns:repeat(2,1fr);gap:22px;}}
@media(max-width:540px){.begin-here-grid{grid-template-columns:1fr;gap:18px;}.begin-here-card{padding:28px 22px 24px;}}

/* HOW TO USE THIS SITE */
.howto-sec{padding:52px 0 64px;background:var(--paper-card);border-top:1px solid var(--rule);}
.howto-heading{text-align:center;font-size:clamp(22px,3.2vw,32px);margin-top:10px;margin-bottom:32px;}
.howto-paths{max-width:620px;margin:0 auto;display:flex;flex-direction:column;gap:18px;}
.howto-path{padding:18px 24px;border-left:3px solid var(--gold);background:var(--paper);border-radius:0 4px 4px 0;}
.howto-path strong{font-family:var(--head);font-size:19px;color:var(--ink);display:block;margin-bottom:4px;}
.howto-path span{font-size:17px;color:var(--muted);line-height:1.5;}
.howto-path a{color:var(--gold-deep);text-decoration:underline;text-decoration-color:var(--champagne);text-underline-offset:2px;transition:color .2s;}
.howto-path a:hover{color:var(--gold);}

/* KEEPER SIGNATURE */
.keeper-sig{margin-top:44px;text-align:center;padding-top:32px;border-top:1px solid var(--rule);}
.keeper-mark{display:inline-block;margin-bottom:14px;}
.keeper-lantern{width:28px;height:36px;display:block;margin:0 auto;opacity:.7;transition:opacity .3s;}
.keeper-sig:hover .keeper-lantern{opacity:1;}
.keeper-line{font-family:var(--head);font-style:italic;font-size:17px;color:var(--muted);letter-spacing:.02em;}

/* EXPLORE / WHAT YOU WILL FIND HERE */
.explore-sec{padding:64px 0;background:var(--paper);border-top:1px solid var(--rule);}
.explore-intro{text-align:center;max-width:620px;margin:0 auto 40px;color:var(--muted);font-size:19px;font-family:var(--head);font-style:italic;}
.explore-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;max-width:var(--wide);margin:0 auto;}
.explore-card{display:block;padding:34px 30px;border:1px solid var(--rule);border-radius:4px;background:var(--paper-card);transition:border-color .25s,box-shadow .25s,transform .25s;text-decoration:none;}
.explore-card:hover{border-color:var(--champagne);box-shadow:0 6px 24px rgba(154,122,46,.12);transform:translateY(-3px);}
.explore-icon{display:block;color:var(--gold);font-size:16px;margin-bottom:14px;}
.explore-card h3{font-family:var(--head);font-size:clamp(20px,2.4vw,26px);color:var(--ink);margin-bottom:8px;line-height:1.18;}
.explore-card p{font-size:17px;color:var(--muted);line-height:1.58;margin:0;}
@media(max-width:820px){.explore-grid{grid-template-columns:repeat(2,1fr);gap:22px;}}
@media(max-width:540px){.explore-grid{grid-template-columns:1fr;gap:18px;}.explore-card{padding:26px 24px;}}

/* BIBLE READING PLANS */
.bible-plans-sec{padding:48px 0 56px;background:var(--paper);}
.bible-plans-heading{text-align:center;font-family:var(--head);font-size:clamp(22px,3vw,30px);color:var(--ink);margin:24px 0 32px;}
.bible-plan-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media(max-width:800px){.bible-plan-cards{grid-template-columns:1fr;}}
.bible-plan-card{border:1px solid var(--rule);border-radius:8px;padding:28px 24px 24px;background:#fdfaf2;transition:border-color .2s,box-shadow .2s;}
.bible-plan-card:hover{border-color:var(--gold);box-shadow:0 4px 16px rgba(154,122,46,.1);}
.bible-plan-card h3{font-family:var(--head);font-size:19px;color:var(--ink);margin-bottom:10px;font-weight:600;}
.bible-plan-card p{font-size:16px;line-height:1.65;color:var(--ink);margin-bottom:16px;}
.bible-plan-card .readmore{font-size:13px;}

/* SUBSCRIBE */
.subscribe-sec{background:linear-gradient(135deg,var(--espresso),#2a1c11);color:var(--paper);text-align:center;}
.subscribe-sec h2{color:#f5ecd6;font-size:clamp(24px,3.6vw,36px);}
.subscribe-sec p{color:var(--muted-dark);max-width:500px;margin:12px auto 28px;}
.subscribe{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;max-width:520px;margin:0 auto;}
.subscribe input[type=email]{flex:1;min-width:230px;padding:14px 18px;border:1px solid var(--champagne);
  border-radius:3px;background:rgba(246,241,230,.96);font-family:var(--body);font-size:18px;color:var(--ink);}
.subscribe button{font-family:var(--display);font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  padding:14px 28px;border:none;border-radius:3px;cursor:pointer;color:var(--espresso);
  background:linear-gradient(135deg,var(--champagne),#b8942f);transition:transform .2s,box-shadow .2s;}
.subscribe button:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(201,168,90,.4);}
.hp{position:absolute;left:-9999px;}
.subscribe-sec .fineprint{margin-top:18px;font-size:14px;color:var(--muted-dark);font-style:italic;font-family:var(--head);}

/* ───────────────── PAGE HEADER (inner pages) ───────────────── */
.pagehead{background:linear-gradient(180deg,var(--paper-card),var(--paper));text-align:center;padding:64px 0 30px;border-bottom:1px solid var(--rule);}
.pagehead h1{font-family:var(--display);font-size:clamp(28px,4.6vw,46px);letter-spacing:.05em;margin:10px 0 6px;}
.pagehead .sub{font-family:var(--head);font-style:italic;color:var(--gold-deep);font-size:20px;}
.pagehead .a-emblem{display:block;height:60px;width:auto;margin:0 auto 26px;filter:drop-shadow(0 2px 10px rgba(154,122,46,.25));}
/* Dark page header — matches the home masthead colour */
.pagehead-dark{
  background:
    radial-gradient(ellipse at 50% 30%, rgba(201,168,90,.16), transparent 60%),
    linear-gradient(180deg,var(--espresso) 0%, #251910 60%, var(--espresso) 100%);
  color:var(--paper);border-bottom:1px solid rgba(201,162,75,.28);
}
.pagehead-dark h1{color:#f5ecd6;}
.pagehead-dark .sub{color:var(--muted-dark);}
.pagehead-dark .kicker{color:var(--champagne);}
.pagehead-dark .a-emblem{filter:drop-shadow(0 2px 10px rgba(201,162,75,.35)) brightness(1.1);}

/* ───────────────── ARTICLE PAGE ───────────────── */
.article{padding:60px 0 40px;}
.article .a-emblem{display:block;height:60px;width:auto;margin:0 auto 26px;filter:drop-shadow(0 2px 10px rgba(154,122,46,.25));}
.article .a-kicker{text-align:center;display:block;margin-bottom:14px;}
.article h1{font-family:var(--display);font-size:clamp(30px,5.2vw,52px);text-align:center;letter-spacing:.04em;line-height:1.08;margin-bottom:10px;}
.article .dek{text-align:center;font-family:var(--head);font-style:italic;color:var(--gold-deep);font-size:clamp(19px,2.6vw,25px);margin-bottom:24px;}
.byline{text-align:center;font-family:var(--display);font-size:11px;letter-spacing:.18em;color:var(--muted);margin-bottom:8px;}
.byline .nm{color:var(--gold-deep);}
.a-rule{height:1px;background:var(--rule);max-width:120px;margin:26px auto;}
.article .verse{text-align:center;font-family:var(--head);font-style:italic;color:var(--ink);font-size:23px;max-width:540px;margin:26px auto;}
.prose{max-width:var(--measure);margin:0 auto;}
.prose p{margin-bottom:22px;text-align:justify;hyphens:auto;}
.prose p.center{text-align:center;}
.prose p.first::first-letter{font-family:var(--display);font-weight:700;float:left;font-size:74px;line-height:.74;padding:8px 12px 0 0;color:var(--gold);}
.prose h2{font-family:var(--display);font-size:16px;font-weight:600;letter-spacing:.16em;color:var(--gold-deep);text-align:center;margin:44px 0 18px;}
.prose .big{text-align:center;font-family:var(--display);font-size:38px;color:var(--gold);margin:26px 0;}
.article-figure{max-width:var(--measure);margin:0 auto 34px;}
.article-figure.article-figure-end{margin:42px auto 0;}
.article-figure img{display:block;width:100%;height:auto;border:1px solid var(--rule);box-shadow:0 18px 44px rgba(60,45,25,.12);}
.article-figure figcaption{text-align:center;font-family:var(--display);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:10px;}
.article-list-block{margin:28px 0;}
.article-list-item{border-top:1px solid var(--rule);padding-top:18px;margin-top:18px;}
.article-list-item h3{font-family:var(--display);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:10px;}
.article-list-item h3 .vk{font-family:var(--head);font-style:italic;font-weight:500;letter-spacing:0;text-transform:none;color:var(--muted);}
.notes-block{margin-top:44px;padding-top:26px;border-top:1px solid var(--rule);}
.notes-block h2{margin-top:0;}
.notes-block ol{padding-left:22px;color:var(--muted);font-size:16px;line-height:1.55;}
.notes-block li{margin-bottom:12px;}
.notes-block a{color:var(--gold-deep);}
.pullquote{margin:38px auto;max-width:600px;text-align:center;position:relative;}
.pullquote p{font-family:var(--head);font-style:italic;font-size:26px;line-height:1.4;color:var(--ink);}
.pullquote::before{content:"\201C";font-family:var(--display);font-size:70px;color:var(--gold);opacity:.35;display:block;line-height:.6;margin-bottom:6px;}
.colophon{max-width:var(--measure);margin:34px auto 0;text-align:center;font-family:var(--head);font-style:italic;color:var(--muted);font-size:16px;}
.article-foot{max-width:var(--measure);margin:40px auto 0;padding-top:26px;border-top:1px solid var(--rule);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;}
@media(max-width:560px){.prose p{text-align:left;}.prose p.first::first-letter{font-size:60px;}}

/* ── ARTICLE WITH SIDE IMAGE — image-right sticky layout ──
   The centred header is left untouched; the body becomes two columns — the
   meditation on the left and a devotional image on the right that stays still
   (sticky) while the article is read, the way the Scriptural Rosary pairs each
   mystery with a stationary illustration. Collapses to a single column, image
   first, on narrow screens. */
.aml-body{
  width:min(1140px,94vw);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.6fr);
  gap:clamp(1.8rem,4vw,3.6rem);
  align-items:start;
}
.aml-body .prose{max-width:none;margin:0;min-width:0;}
.aml-figure{position:sticky;top:96px;margin:0;align-self:start;}
.aml-frame{
  position:relative;border-radius:12px;overflow:hidden;
  border:1px solid var(--rule);
  box-shadow:0 24px 56px -30px rgba(40,28,8,.55);
  background:var(--paper-card);
}
.aml-frame::after{
  content:"";position:absolute;inset:7px;
  border:1px solid rgba(125,98,36,.20);border-radius:7px;pointer-events:none;
}
.aml-frame img{display:block;width:100%;height:auto;}
.aml-cap{
  text-align:center;font-style:italic;color:var(--gold-deep);
  font-size:.92rem;margin:.85rem .3rem 0;line-height:1.5;
}
@media(max-width:880px){
  .aml-body{width:auto;grid-template-columns:1fr;gap:0;}
  .aml-figure{position:static;top:auto;order:-1;margin:0 auto 2rem;max-width:460px;}
}
@media print{
  .aml-body{display:block;width:auto;}
  .aml-figure{position:static;break-inside:avoid;margin:0 auto 1.5rem;max-width:440px;}
}

/* Protoevangelium — small sticky illustration tucked to the right of the
   section text. A narrow right column keeps the (landscape) image small and
   right-aligned, while position:sticky freezes it in place as the reader moves
   through the section, the way the other illustrated pages do. The image is
   deliberately held to ~half its former size so it reads as a compact side
   companion rather than a block. */
.proto-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 150px;
  gap:clamp(1.6rem,3.5vw,3rem);
  align-items:start;
}
.proto-text{min-width:0;}
.proto-fig{position:sticky;top:96px;margin:6px 0 0;max-width:120px;margin-left:auto;align-self:start;}
.proto-fig .aml-cap{font-size:12px;line-height:1.4;}
@media(max-width:880px){
  .proto-grid{display:block;}
  .proto-fig{position:static;top:auto;margin:0 auto 2rem;max-width:200px;}
  .proto-fig .aml-cap{font-size:13px;}
}
@media print{
  .proto-grid{display:block;}
}

/* ───────────────── FOOTER ───────────────── */
footer{background:var(--espresso);color:var(--muted-dark);padding:50px 0 28px;border-top:1px solid var(--rule-dark);}
.foot-in{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:28px;}
.foot-brand{display:flex;align-items:center;gap:12px;}
.foot-brand img{height:44px;width:auto;}
.foot-brand .nm{font-family:var(--display);font-size:14px;letter-spacing:.18em;color:var(--paper);}
.foot-brand .nm small{display:block;font-size:9px;letter-spacing:.28em;color:var(--champagne);margin-top:4px;}
.foot-nav{display:flex;gap:30px;flex-wrap:wrap;}
.foot-nav a{font-family:var(--display);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-dark);}
.foot-nav a:hover{color:var(--champagne);}
.foot-bottom{margin-top:34px;padding-top:20px;border-top:1px solid var(--rule-dark);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:13px;}
.foot-bottom .latin{font-family:var(--head);font-style:italic;color:var(--champagne);}

/* footer contact email */
.foot-contact{text-align:center;margin-top:28px;padding-top:24px;border-top:1px solid var(--rule-dark);}
.foot-email{display:inline-flex;flex-direction:column;align-items:center;gap:4px;text-decoration:none;transition:opacity .2s;}
.foot-email:hover{opacity:.85;}
.foot-email-label{font-family:var(--display);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--champagne);}
.foot-email-addr{font-family:var(--head);font-size:17px;color:var(--paper);font-style:italic;}

/* subscribe section contact line */
.subscribe-sec .contact-line{font-family:var(--head);font-size:16px;color:var(--muted-dark);margin-top:18px;font-style:italic;}
.subscribe-sec .contact-line a{color:var(--champagne);text-decoration:underline;text-decoration-color:rgba(201,168,90,.4);text-underline-offset:3px;transition:text-decoration-color .2s;}
.subscribe-sec .contact-line a:hover{text-decoration-color:var(--champagne);}

/* ───────────────── PRAYERS PAGE ───────────────── */
.prayer-toc .toc-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  counter-reset:toc-group;
}
.prayer-toc .toc-group{
  counter-increment:toc-group;
  position:relative;
  min-width:0;
  padding:18px 20px 16px;
  border:1px solid rgba(125,98,36,.18);
  border-radius:6px;
  background:linear-gradient(180deg,rgba(251,248,239,.72),rgba(246,241,230,.42));
  box-shadow:0 14px 28px -26px rgba(36,26,16,.58);
}
.prayer-toc .toc-heading{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--display);
  font-size:11px;
  font-weight:600;
  line-height:1.35;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--gold-deep);
  margin-bottom:11px;
}
.prayer-toc .toc-heading::before{
  content:counter(toc-group,upper-roman);
  flex:0 0 auto;
  min-width:28px;
  height:28px;
  display:inline-grid;
  place-items:center;
  border:1px solid rgba(154,122,46,.34);
  border-radius:999px;
  background:rgba(255,255,255,.36);
  font-size:10px;
  letter-spacing:.04em;
  color:var(--gold);
}
.prayer-toc .toc-group a{
  position:relative;
  display:block;
  padding:7px 0;
  border-top:1px solid rgba(221,208,180,.72);
  font-size:17px;
  line-height:1.35;
  color:var(--ink);
  transition:color .2s,transform .2s;
}
.prayer-toc .toc-group a:hover,
.prayer-toc .toc-group a:focus-visible{
  color:var(--gold-deep);
  transform:translateX(3px);
}
.prayer-toc .toc-group a:focus-visible{outline:2px solid rgba(154,122,46,.32);outline-offset:3px;}
@media(max-width:760px){
  .prayer-toc .toc-list{grid-template-columns:1fr;gap:14px;}
  .prayer-toc .toc-group{padding:16px 18px 14px;}
}

.prayer-section-heading{font-family:var(--display);font-size:16px;font-weight:600;letter-spacing:.16em;color:var(--gold-deep);text-align:center;margin:56px 0 4px;}

.prayer-card{margin-bottom:44px;padding-bottom:44px;border-bottom:1px solid var(--rule);}
.prayer-card:last-child{border-bottom:none;}
.prayer-title{font-family:var(--head);font-size:clamp(24px,3.4vw,32px);font-weight:600;color:var(--ink);margin-bottom:16px;text-align:center;}
.prayer-text{margin-bottom:14px;font-size:20px;line-height:1.72;text-align:justify;hyphens:auto;}
.prayer-text:last-child{margin-bottom:0;}
.prayer-note{font-family:var(--head);font-style:italic;font-size:17px;color:var(--muted);text-align:center;}
.prayer-verse{text-align:center;font-family:var(--head);font-style:italic;font-size:21px;line-height:1.7;color:var(--ink);}
.prayer-verse p{margin-bottom:4px;}
.prayer-verse strong{font-style:normal;}
.prayer-list{list-style:none;padding:0;}
.prayer-list li{position:relative;padding:10px 0 10px 28px;border-bottom:1px solid var(--rule);font-size:19px;line-height:1.6;}
.prayer-list li:last-child{border-bottom:none;}
.prayer-list li::before{content:"✦";position:absolute;left:0;top:10px;color:var(--gold);font-size:11px;}

.doctors-list{
  display:grid;
  gap:28px;
  width:min(calc(100vw - 64px), var(--wide));
  margin:0 50% 44px;
  transform:translateX(-50%);
}
.doctors-intro,
.doctors-process,
.doctors-stats,
.doctors-sources{
  max-width:var(--measure);
  margin:0 auto 44px;
}
.doctors-intro h2,
.doctors-process h2,
.doctors-stats h2,
.doctors-sources h2{
  margin:0 0 18px;
  font-family:var(--display);
  font-size:clamp(27px,3.4vw,38px);
  line-height:1.12;
  letter-spacing:.04em;
  text-align:center;
  color:var(--ink);
}
.doctors-intro .scripture{
  margin:28px auto 0;
  max-width:680px;
  text-align:center;
  font-family:var(--head);
  font-style:italic;
  color:var(--ink-soft);
}
.doctor-steps{
  display:grid;
  gap:0;
  margin:28px 0;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.doctor-step{
  display:grid;
  grid-template-columns:64px 1fr;
  gap:20px;
  padding:20px 0;
  border-bottom:1px solid var(--rule);
}
.doctor-step:last-child{border-bottom:0;}
.doctor-step .no{
  font-family:var(--display);
  font-size:34px;
  line-height:1;
  color:var(--gold-deep);
}
.doctor-step h3{
  margin:0 0 8px;
  font-family:var(--head);
  font-size:21px;
  color:var(--ink);
}
.doctor-step p{margin:0;text-align:left;}
.doctors-stats{
  width:min(calc(100vw - 64px), var(--wide));
  max-width:none;
  padding:34px;
  border:1px solid rgba(201,168,90,.38);
  background:linear-gradient(135deg,#1f160f 0%,#2d2115 100%);
  color:#e7ddc8;
  box-shadow:0 18px 44px rgba(43,28,15,.14);
}
.doctors-stats h2{color:#d6b66d;}
.stat-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:14px;
  margin-bottom:28px;
}
.stat-card{
  padding:18px;
  border:1px solid rgba(201,168,90,.26);
  background:rgba(255,255,255,.055);
  text-align:center;
}
.stat-card .big{
  display:block;
  margin-bottom:6px;
  font-family:var(--display);
  font-size:46px;
  line-height:1;
  color:#d6b66d;
}
.stat-card .label{
  display:block;
  font-family:var(--head);
  font-size:14px;
  line-height:1.3;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#c8b99d;
}
.stat-section{
  margin-top:24px;
  padding-top:18px;
  border-top:1px solid rgba(201,168,90,.25);
}
.stat-section h3{
  margin:0 0 12px;
  font-family:var(--head);
  font-size:22px;
  color:#d6b66d;
}
.stat-bar-row{
  display:grid;
  grid-template-columns:minmax(130px,190px) 1fr 42px;
  align-items:center;
  gap:12px;
  margin:8px 0;
  font-size:16px;
}
.bar-track{height:10px;background:rgba(255,255,255,.1);overflow:hidden;}
.bar-fill{height:100%;background:linear-gradient(90deg,#a8843c,#d6b66d);}
.bar-count{text-align:right;color:#d6b66d;font-weight:600;}
.stat-note{margin-top:12px;color:#c8b99d;font-size:17px;text-align:left;}
.doctors-era{
  padding:18px 24px;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  background:linear-gradient(to right,transparent,rgba(168,132,60,.11),transparent);
  text-align:center;
}
.doctors-era h3{
  margin:0;
  font-family:var(--display);
  font-size:25px;
  letter-spacing:.08em;
  color:var(--ink);
}
.doctors-era .range{
  display:block;
  margin-top:4px;
  font-family:var(--head);
  font-size:13px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--gold-deep);
}
.doctors-sources{
  padding:28px 32px;
  border:1px solid var(--rule);
  background:var(--paper-card);
}
.doctors-sources ul{margin:0;padding-left:22px;}
.doctors-sources li{margin:10px 0;}
.doctor-section{
  display:grid;
  grid-template-columns:minmax(360px, 44%) 1fr;
  align-items:start;
  overflow:hidden;
  border:1px solid var(--rule);
  background:var(--paper-card);
  box-shadow:0 14px 36px rgba(68,44,20,.08);
}
.doctor-section img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4 / 5;
  align-self:start;
  object-fit:cover;
  object-position:center top;
  background:#1c130c;
}
.doctor-section-contain img{
  object-fit:contain;
  background:#110b06;
}
.doctor-image-missing{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:260px;
  height:100%;
  padding:24px;
  background:linear-gradient(135deg, rgba(201,162,75,.11), rgba(255,255,255,.55));
  border-right:1px solid var(--rule);
  color:var(--muted);
  font-family:var(--display);
  font-size:13px;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.doctor-number{
  display:inline-block;
  margin-bottom:8px;
  color:var(--gold-deep);
  font-family:var(--display);
  font-size:14px;
  letter-spacing:.16em;
}
.doctor-section > div{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding:34px 36px;
}
.doctor-section h2{
  margin:8px 0 12px;
  font-family:var(--display);
  font-size:clamp(24px,3vw,34px);
  line-height:1.1;
  letter-spacing:.04em;
  color:var(--ink);
}
.doctor-section .kicker{font-size:12px;}
.doctor-section .prayer-text{margin:0;text-align:left;}
.doctor-dates,
.doctor-meta{
  display:block;
  color:var(--muted);
  font-size:17px;
  line-height:1.45;
}
.doctor-dates{
  font-family:var(--head);
  font-style:italic;
  color:var(--gold-deep);
}
.doctor-meta{margin-bottom:10px;}
.doctors-quote{max-width:760px;margin-left:auto;margin-right:auto;text-align:center;}
.doctors-quote .prayer-text{text-align:center;}

@media(max-width:860px){
  .doctor-section{grid-template-columns:1fr;}
  .doctors-list{width:auto;margin:0 0 44px;transform:none;}
  .doctor-section img{height:auto;min-height:0;aspect-ratio:4 / 5;}
  .doctors-stats{width:auto;padding:26px 22px;}
  .doctor-step{grid-template-columns:44px 1fr;gap:14px;}
  .stat-bar-row{grid-template-columns:1fr 42px;}
  .stat-bar-row .bar-label{grid-column:1 / -1;}
  .doctor-image-missing{min-height:150px;border-right:0;border-bottom:1px solid var(--rule);}
  .doctor-section > div{padding:26px 24px 30px;}
}
@media(max-width:560px){.prayer-text{text-align:left;}}

/* ───────────────── APOSTLES ───────────────── */
.page-apostles{
  background:
    radial-gradient(circle at 78% 6%, rgba(201,168,90,.08), transparent 36%),
    var(--paper);
}
.page-apostles .apostle-pagehead{
  padding-bottom:38px;
}
.apostles-body{
  padding:42px 0 66px;
}
.apostle-index{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px;
  max-width:960px;
  margin:0 auto 24px;
}
.apostle-index a,
.apostle-index span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:7px 12px 6px;
  border:1px solid rgba(157,122,46,.32);
  background:rgba(251,248,239,.74);
  color:var(--gold-deep);
  font-family:var(--display);
  font-size:10px;
  letter-spacing:.13em;
  line-height:1.25;
  text-transform:uppercase;
}
.apostle-index span{
  color:var(--muted);
  opacity:.78;
}
.apostle-index a:hover,
.apostle-index a:focus-visible{
  color:var(--espresso);
  border-color:var(--gold);
  background:var(--paper-card);
}
.apostle-legend{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:10px 14px;
  margin:0 auto 34px;
}
.legend-title,
.source-badge{
  font-family:var(--display);
  font-size:10px;
  line-height:1;
  letter-spacing:.17em;
  text-transform:uppercase;
}
.legend-title{color:var(--muted);}
.source-badge{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:5px 8px 4px;
  border:1px solid currentColor;
  color:var(--gold-deep);
  background:rgba(251,248,239,.62);
  white-space:nowrap;
}
.source-badge.scripture{color:#8b5c22;}
.source-badge.early{color:#6c6f35;}
.source-badge.later{color:#846646;}
.apostle-dist{
  max-width:1180px;margin:0 auto 30px;padding:30px 32px 26px;
  border:1px solid var(--rule);background:rgba(251,248,239,.7);
  box-shadow:0 12px 34px rgba(60,37,18,.08);
}
.apostle-dist-head{max-width:720px;margin:0 auto 22px;text-align:center;}
.apostle-dist-head h2{
  margin:8px 0 6px;color:var(--ink);font-family:var(--display);
  font-size:clamp(25px,3vw,34px);letter-spacing:.05em;
}
.apostle-dist-head p{margin:0;color:var(--muted);font-family:var(--head);font-size:18px;font-style:italic;}
.apostle-dist-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.apostle-dist-grid article{
  display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:18px;
  border:1px solid rgba(221,208,180,.92);background:var(--paper-card);
}
.apostle-dist-grid h3{
  margin:12px 0 7px;color:var(--gold-deep);font-family:var(--display);
  font-size:13px;letter-spacing:.12em;line-height:1.25;text-transform:uppercase;
}
.apostle-dist-grid p{margin:0;color:var(--ink);font-size:17px;line-height:1.4;}
.apostle-dist-grid a{
  margin-top:auto;padding-top:14px;color:var(--gold-deep);font-family:var(--display);
  font-size:10px;font-weight:600;letter-spacing:.14em;text-decoration:none;text-transform:uppercase;
}
.apostle-dist-grid a:hover,.apostle-dist-grid a:focus-visible{color:var(--espresso);}
.apostle-dist-note{
  max-width:900px;margin:20px auto 0;color:var(--muted);font-size:14px;font-style:italic;line-height:1.45;text-align:center;
}
.apostle-card{
  max-width:1180px;
  margin:0 auto 30px;
  border:1px solid var(--rule);
  background:linear-gradient(180deg,var(--paper-card),#f3ead8);
  box-shadow:0 20px 52px rgba(60,37,18,.12);
}
.apostle-card-head{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:18px;
  align-items:center;
  padding:28px 32px 22px;
  border-bottom:1px solid var(--rule);
  background:
    linear-gradient(90deg,rgba(201,168,90,.17),transparent 58%),
    rgba(255,255,255,.28);
}
.apostle-number{
  display:grid;
  place-items:center;
  width:56px;
  height:56px;
  border:1px solid rgba(154,122,46,.42);
  color:var(--gold-deep);
  font-family:var(--display);
  font-size:22px;
  line-height:1;
}
.apostle-card h2{
  margin:0 0 7px;
  color:var(--ink);
  font-family:var(--display);
  font-size:clamp(27px,3.4vw,40px);
  letter-spacing:.05em;
}
.apostle-card-head p{
  margin:0;
  color:var(--gold-deep);
  font-family:var(--head);
  font-size:19px;
  font-style:italic;
  line-height:1.35;
}
.apostle-card-body{
  display:grid;
  grid-template-columns:minmax(240px,300px) minmax(0,1fr);
  align-items:start;
}
.apostle-visuals{
  padding:20px;
  border-right:1px solid var(--rule);
  background:#14110c;
}
.apostle-portrait{
  overflow:hidden;
  aspect-ratio:853 / 1844;
  border:1px solid rgba(201,168,90,.44);
  background:#14110c;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);
}
.apostle-portrait img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
}
.apostle-symbol{
  width:104px;
  margin:12px auto 0;
  text-align:center;
}
.apostle-symbol img{
  display:block;
  width:64px;
  max-height:116px;
  object-fit:contain;
  margin:0 auto 6px;
  filter:drop-shadow(0 8px 16px rgba(0,0,0,.34));
}
.apostle-symbol figcaption{
  color:#d6c18d;
  font-family:var(--display);
  font-size:10px;
  letter-spacing:.16em;
  line-height:1.45;
  text-transform:uppercase;
}
.apostle-dossier{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  align-self:start;
  gap:1.75rem;
  padding:30px 34px 34px;
}
.apostle-vitals{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px 18px;
  margin:0;
  padding:0 0 24px;
  border-bottom:1px solid var(--rule);
}
.apostle-vitals div{min-width:0;}
.apostle-vitals dt,
.apostle-fact h3{
  color:var(--gold-deep);
  font-family:var(--display);
  font-size:11px;
  font-weight:600;
  letter-spacing:.18em;
  line-height:1.25;
  text-transform:uppercase;
}
.apostle-vitals dd{
  margin-top:4px;
  color:var(--ink);
  font-size:18px;
  line-height:1.3;
}
.apostle-fact{
  margin:0;
  padding:0;
}
.apostle-fact h3{
  margin:0 0 6px;
}
.apostle-fact p{
  margin:0;
  color:var(--ink);
  font-size:19px;
  line-height:1.34;
  text-align:left;
}
.apostle-quote{
  margin:0;
  padding:16px 0 16px 22px;
  border-left:2px solid var(--gold);
  color:var(--espresso);
  font-family:var(--head);
  font-size:23px;
  font-style:italic;
  line-height:1.32;
}
.apostle-quote cite{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-family:var(--display);
  font-size:10px;
  font-style:normal;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.apostle-coming{
  max-width:900px;
  margin:0 auto 38px;
  padding:30px 32px;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  text-align:center;
}
.apostle-coming h2{
  margin:0 0 8px;
  font-family:var(--display);
  font-size:24px;
  letter-spacing:.08em;
}
.apostle-coming p{
  max-width:560px;
  margin:0 auto 20px;
  color:var(--muted);
  font-family:var(--head);
  font-size:18px;
  font-style:italic;
}
.apostle-coming-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:8px;
}
.apostle-coming-grid span{
  padding:9px 10px;
  border:1px solid rgba(221,208,180,.92);
  background:rgba(251,248,239,.52);
  color:var(--gold-deep);
  font-family:var(--display);
  font-size:10px;
  letter-spacing:.12em;
  line-height:1.25;
  text-transform:uppercase;
}
.apostle-added-facts{
  max-width:1180px;
  margin:8px auto 30px;
  padding:30px 32px 34px;
  border:1px solid var(--rule);
  background:
    linear-gradient(180deg,rgba(255,255,255,.36),rgba(243,234,216,.88)),
    var(--paper-card);
  box-shadow:0 18px 44px rgba(60,37,18,.1);
}
.apostle-added-head{
  max-width:760px;
  margin:0 auto 24px;
  text-align:center;
}
.apostle-added-head h2{
  margin:13px 0 8px;
  color:var(--ink);
  font-family:var(--display);
  font-size:clamp(25px,3vw,34px);
  letter-spacing:.05em;
}
.apostle-added-head p{
  margin:0;
  color:var(--muted);
  font-family:var(--head);
  font-size:19px;
  font-style:italic;
  line-height:1.35;
}
.apostle-notes-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.apostle-note{
  min-width:0;
  padding:18px 18px 20px;
  border:1px solid rgba(221,208,180,.92);
  background:rgba(251,248,239,.62);
}
.apostle-note h3{
  margin:0 0 8px;
  color:var(--gold-deep);
  font-family:var(--display);
  font-size:11px;
  font-weight:600;
  letter-spacing:.18em;
  line-height:1.25;
  text-transform:uppercase;
}
.apostle-note p{
  margin:0;
  color:var(--ink);
  font-size:18px;
  line-height:1.38;
}
.page-apostles .colophon{
  margin-top:0;
}
.apostle-back{
  margin-top:24px;
  text-align:center;
}
@media(max-width:820px){
  .apostle-dist-grid{grid-template-columns:1fr 1fr;}
  .apostle-card-body{grid-template-columns:1fr;}
  .apostle-visuals{border-right:0;border-bottom:1px solid var(--rule);}
  .apostle-portrait{max-width:320px;margin:0 auto;}
  .apostle-vitals{grid-template-columns:1fr;}
  .apostle-notes-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:560px){
  .apostles-body{padding-top:28px;}
  .apostle-dist{padding:24px 18px 20px;}
  .apostle-dist-grid{grid-template-columns:1fr;}
  .apostle-card-head{grid-template-columns:1fr;padding:24px 22px;text-align:center;}
  .apostle-number{margin:0 auto;}
  .apostle-visuals,
  .apostle-dossier,
  .apostle-coming,
  .apostle-added-facts{padding:24px 22px;}
  .apostle-notes-grid{grid-template-columns:1fr;}
  .apostle-index{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;}
  .apostle-index a,
  .apostle-index span{white-space:nowrap;}
}

/* ───────────────── DEVOTIONS HUB ───────────────── */
.devotion-entry{padding:30px 0 36px;border-bottom:1px solid var(--rule);}
.devotion-entry .prayer-title a{color:var(--ink);transition:color .2s;}
.devotion-entry .prayer-title a:hover{color:var(--gold-deep);}

/* ───────────────── STATIONS OF THE CROSS (DARK THEME) ───────────────── */
.sc-page{
  --sc-ink:#1a120b;
  --sc-ink-2:#241811;
  --sc-gold:#c9a24b;
  --sc-gold-soft:#e3c987;
  --sc-parchment:#efe4cf;
  --sc-parchment-dim:#bda985;
  --sc-rule:rgba(201,162,75,.28);

  background:
    radial-gradient(120% 80% at 50% -10%, rgba(201,162,75,.10), transparent 60%),
    var(--sc-ink);
  color:var(--sc-parchment);
  font-family:var(--body);
  font-size:18px;
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
  padding:clamp(1.25rem,4vw,3rem) clamp(1rem,5vw,2rem) 4rem;
}
.sc-wrap{max-width:1200px;margin:0 auto;}

.sc-pagehead{
  background:linear-gradient(180deg, #1e150e, #1a120b) !important;
  border-bottom:1px solid rgba(201,162,75,.28);
}
.sc-pagehead .a-emblem{filter:drop-shadow(0 2px 10px rgba(201,162,75,.35)) brightness(1.1);}
.sc-pagehead .kicker{color:#c9a24b;}
.sc-pagehead h1{font-family:var(--display);color:#efe4cf;}
.sc-pagehead .sub{color:#bda985;}

.sc-intro p{margin:0 0 1rem;color:var(--sc-parchment);}
.sc-intro .lead{color:var(--sc-gold-soft);}

.sc-section{margin:.5rem 0 0;}
.sc-step{
  display:flex;align-items:baseline;gap:.6rem;
  font-family:var(--head);font-weight:600;font-size:1.5rem;
  color:var(--sc-gold-soft);margin:0 0 .15rem;letter-spacing:.01em;
}
.sc-step .num{
  font-family:var(--body);font-size:.7rem;font-weight:600;letter-spacing:.18em;
  color:var(--sc-ink);background:var(--sc-gold);border-radius:999px;
  padding:.2rem .55rem;transform:translateY(-.18em);white-space:nowrap;
}
.sc-rubric{color:var(--sc-parchment-dim);font-style:italic;margin:.1rem 0 .7rem;font-size:.98rem;}

.sc-prayer{
  border-left:2px solid var(--sc-rule);padding:.15rem 0 .15rem 1.1rem;margin:.6rem 0;
}

.sc-station{
  background:linear-gradient(180deg, rgba(201,162,75,.06), transparent);
  border:1px solid var(--sc-rule);border-radius:14px;
  padding:0;margin:1.8rem 0;overflow:hidden;
}
.sc-station-content{
  display:flex;flex-direction:row;align-items:stretch;gap:0;
}
.sc-station-text-col{
  flex:0 0 50%;padding:1.4rem 1.5rem 1.2rem;min-width:0;
}
.sc-station-img-col{
  flex:1;min-width:0;overflow:hidden;
  border-left:1px solid var(--sc-rule);
  background:rgba(0,0,0,.2);
}
.sc-station-img{
  width:100%;height:100%;object-fit:cover;object-position:center center;
  display:block;
}
.sc-station-label{
  font-family:var(--body);font-size:.7rem;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--sc-gold);margin:0 0 .2rem;
}
.sc-station-title{
  font-family:var(--head);font-size:1.35rem;font-weight:600;
  color:var(--sc-gold-soft);margin:0 0 .6rem;line-height:1.3;
}
.sc-versicle{
  font-style:italic;color:var(--sc-parchment);margin:.6rem 0;
  border-left:2px solid var(--sc-rule);padding:.15rem 0 .15rem 1.1rem;
}
.sc-consideration-ref{
  color:var(--sc-parchment-dim);font-style:italic;font-size:.92rem;margin:.6rem 0 .4rem;
}
.sc-consideration{
  color:var(--sc-parchment);margin:.4rem 0;
  border-left:2px solid var(--sc-rule);padding:.15rem 0 .15rem 1.1rem;
}
.sc-station-prayer{
  color:var(--sc-parchment);margin:.6rem 0;
  border-left:2px solid var(--sc-rule);padding:.15rem 0 .15rem 1.1rem;
}
.sc-commons{
  font-style:italic;color:var(--sc-parchment-dim);margin:.5rem 0 0;
  text-align:center;font-size:.98rem;
}
.sc-verse{
  font-family:var(--head);font-style:italic;text-align:center;
  color:var(--sc-gold-soft);margin:.6rem 0;line-height:1.7;font-size:1.05rem;
}
.sc-mercy{
  font-style:italic;color:var(--sc-parchment-dim);margin:.4rem 0 0;
  text-align:center;font-size:.96rem;
}

.sc-view-toggle{
  display:inline-flex;gap:0;border:1px solid var(--sc-rule);border-radius:4px;overflow:hidden;
}
.sc-view-btn{
  font-family:var(--display);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  padding:12px 24px;border:none;cursor:pointer;
  background:rgba(201,162,75,.08);color:var(--sc-parchment-dim);transition:background .2s,color .2s;
}
.sc-view-btn.active{background:var(--sc-gold);color:var(--sc-ink);}
.sc-view-btn:not(.active):hover{background:rgba(201,162,75,.18);color:var(--sc-parchment);}

.sc-counter{
  font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.2em;
  color:var(--sc-gold);text-align:center;margin-bottom:20px;
}
.sc-nav{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:30px 0 40px;margin-top:10px;border-top:1px solid var(--sc-rule);
}
.sc-nav-btn{
  font-family:var(--display);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  padding:12px 28px;border:1px solid var(--sc-rule);border-radius:4px;
  background:rgba(201,162,75,.08);color:var(--sc-gold-soft);cursor:pointer;
  transition:background .2s,color .2s,border-color .2s;
}
.sc-nav-btn:hover:not(:disabled){background:var(--sc-gold);color:var(--sc-ink);border-color:var(--sc-gold);}
.sc-nav-btn:disabled{opacity:.4;cursor:not-allowed;}

.sc-hr{border:0;height:1px;background:var(--sc-rule);margin:2.4rem 0;}
.sc-quote{
  font-family:var(--head);font-style:italic;font-size:1.45rem;line-height:1.4;
  text-align:center;color:var(--sc-parchment);margin:2.6rem auto 0;max-width:30rem;
}
.sc-quote .src{
  display:block;font-family:var(--body);font-style:normal;
  font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--sc-gold);margin-top:.8rem;
}
.sc-colophon{
  text-align:center;color:var(--sc-parchment-dim);font-size:.88rem;
  margin:2rem 0 0;font-style:italic;line-height:1.55;
}

.sc-reflection{
  background:linear-gradient(180deg, rgba(201,162,75,.08), rgba(201,162,75,.02));
  border:1px solid var(--sc-rule);border-radius:14px;
  margin:0 0 1.8rem;overflow:hidden;
}
.sc-reflection-toggle{
  display:flex;flex-direction:column;align-items:center;
  cursor:pointer;padding:1.2rem 1.5rem;list-style:none;
  user-select:none;
}
.sc-reflection-toggle::-webkit-details-marker{display:none;}
.sc-reflection-toggle::marker{display:none;content:"";}
.sc-reflection-kicker{
  font-family:var(--body);font-size:.7rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--sc-gold);margin-bottom:.35rem;
}
.sc-reflection-title{
  font-family:var(--head);font-size:1.35rem;font-weight:600;
  color:var(--sc-parchment);letter-spacing:.01em;
}
.sc-reflection-toggle::after{
  content:"\25BC";font-size:.55rem;color:var(--sc-parchment-dim);
  margin-top:.5rem;transition:transform .25s ease;
}
.sc-reflection[open] .sc-reflection-toggle::after{transform:rotate(180deg);}
.sc-reflection-body{
  padding:0 1.5rem 1.5rem;
  border-top:1px solid var(--sc-rule);
}
.sc-reflection-body p{
  margin:.9rem 0 0;color:var(--sc-parchment);
}
.sc-reflection-body p:first-child{margin-top:1.2rem;}
.sc-reflection-prayer{
  border-left:2px solid var(--sc-gold);
  padding:.5rem 0 .5rem 1.1rem;margin:1.2rem 0;
  font-style:italic;color:var(--sc-parchment);
}
.sc-reflection-note{
  font-size:.85rem;color:var(--sc-parchment-dim);
  margin-top:1.2rem;line-height:1.55;
}

@media(max-width:560px){
  .sc-view-btn{padding:10px 16px;font-size:10px;}
  .sc-nav-btn{padding:10px 18px;font-size:10px;}
  .sc-page{font-size:17px;}
  .sc-station-content{flex-direction:column;}
  .sc-station-img-col{width:100%;min-width:0;border-left:none;border-top:1px solid var(--sc-rule);max-height:400px;order:2;}
  .sc-station-text-col{order:1;flex:0 0 100%;}
}
@media(prefers-reduced-motion:no-preference){
  .sc-fade{opacity:0;transform:translateY(10px);animation:scIn .9s ease forwards;}
  @keyframes scIn{to{opacity:1;transform:none;}}
}
@media print{
  .sc-pagehead{background:#fff !important;border-bottom-color:#ccc !important;}
  .sc-pagehead h1{color:#000 !important;}
  .sc-page{background:#fff !important;color:#241a10 !important;padding:0 0.5in;}
  .sc-page .sc-prayer,.sc-page .sc-versicle,.sc-page .sc-consideration,.sc-page .sc-station-prayer{border-left-color:#ccc;}
  .sc-page .sc-step .num{background:#999;color:#fff;}
  .sc-page .sc-step{color:#333;}
  .sc-pagehead .kicker,.sc-pagehead .sub{color:#666;}
  .sc-page .sc-rubric{color:#666;}
  .sc-page .sc-station{border-color:#ccc;background:none;}
  .sc-reflection{border-color:#ccc;background:none;}
  .sc-reflection-body{border-top-color:#ccc;}
  .sc-reflection[open] .sc-reflection-body{display:block;}
  .sc-reflection-kicker{color:#666;}
  .sc-reflection-title{color:#333;}
  .sc-reflection-body p{color:#241a10;}
  .sc-reflection-prayer{border-left-color:#999;color:#241a10;}
  .sc-reflection-note{color:#666;}
}

/* load animation */
.rise{opacity:0;transform:translateY(16px);animation:rise .85s cubic-bezier(.2,.7,.2,1) forwards;}
.d1{animation-delay:.05s}.d2{animation-delay:.18s}.d3{animation-delay:.31s}.d4{animation-delay:.44s}.d5{animation-delay:.57s}
@keyframes rise{to{opacity:1;transform:none;}}
@media(prefers-reduced-motion:reduce){.rise,.masthead .emblem{animation:none;opacity:1;transform:none;}}

/* ───────────────── BACK TO TOP BUTTON ───────────────── */
.back-to-top{
  position:fixed;bottom:28px;right:28px;z-index:60;
  width:48px;height:48px;border-radius:50%;border:1px solid var(--rule);
  background:var(--paper-card);color:var(--gold-deep);
  font-size:20px;line-height:1;cursor:pointer;
  box-shadow:0 4px 16px rgba(0,0,0,.12);
  opacity:0;pointer-events:none;
  transition:opacity .3s,transform .3s,background .2s;
  transform:translateY(12px);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--display);
}
.back-to-top.visible{opacity:1;pointer-events:auto;transform:none;}
.back-to-top:hover{background:var(--gold);color:var(--paper);border-color:var(--gold);}

/* ───────────────── PRAYER SEARCH BOX ───────────────── */
.prayer-search{margin:0 0 28px;position:relative;}
.prayer-search input{
  width:100%;padding:14px 18px 14px 44px;
  border:1px solid var(--rule);border-radius:4px;
  background:var(--paper-card);
  font-family:var(--body);font-size:18px;color:var(--ink);
  transition:border-color .2s,box-shadow .2s;
}
.prayer-search input::placeholder{color:var(--muted);font-style:italic;font-family:var(--head);}
.prayer-search input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(154,122,46,.15);}
.prayer-search .search-icon{
  position:absolute;left:16px;top:50%;transform:translateY(-50%);
  color:var(--muted);font-size:16px;pointer-events:none;
}
.prayer-search .search-clear{
  position:absolute;right:14px;top:50%;transform:translateY(-50%);
  background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;
  display:none;padding:4px;
}
.prayer-search .search-clear.active{display:block;}
.toc-group.toc-hidden{display:none;}
.toc-no-results{text-align:center;font-family:var(--head);font-style:italic;color:var(--muted);font-size:18px;padding:20px 0;display:none;}

/* ───────────────── SCRIPTURAL ROSARY ───────────────── */
.rosary-tabs{display:inline-flex;gap:0;border:1px solid var(--rule);border-radius:4px;overflow:hidden;margin-bottom:20px;}
.rosary-tab{
  font-family:var(--display);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  padding:12px 28px;border:none;cursor:pointer;
  background:var(--paper-card);color:var(--muted);transition:background .2s,color .2s;
}
.rosary-tab.active{background:var(--gold-deep);color:var(--paper);}
.rosary-tab:not(.active):hover{background:var(--rule);color:var(--ink);}

.rosary-lang-row{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:4px;}
.rosary-lang-label{
  font-family:var(--display);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);transition:color .2s;cursor:default;
}
.rosary-lang-label.rosary-lang-active{color:var(--gold-deep);font-weight:600;}
.rosary-lang-toggle{
  position:relative;width:52px;height:28px;border-radius:14px;border:1px solid var(--rule);
  background:var(--paper-card);cursor:pointer;transition:background .25s,border-color .25s;
  padding:0;
}
.rosary-lang-toggle.active{background:var(--gold-deep);border-color:var(--gold-deep);}
.rosary-lang-thumb{
  position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;
  background:var(--gold-deep);transition:transform .25s,background .25s;
  box-shadow:0 1px 4px rgba(0,0,0,.15);
}
.rosary-lang-toggle.active .rosary-lang-thumb{transform:translateX(24px);background:var(--paper);}

.rosary-how-to{
  border:1px solid var(--rule);border-radius:4px;background:var(--paper-card);
  padding:0;margin-bottom:10px;
}
.rosary-how-to summary{
  font-family:var(--display);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold-deep);cursor:pointer;padding:16px 20px;list-style:none;
}
.rosary-how-to summary::-webkit-details-marker{display:none;}
.rosary-how-to summary::before{content:"+ ";font-weight:600;}
.rosary-how-to[open] summary::before{content:"− ";}
.rosary-how-to-body{padding:0 20px 20px;font-size:17px;line-height:1.7;color:var(--ink);}
.rosary-how-to-body p{margin-bottom:14px;}
.rosary-how-to-body ol,.rosary-how-to-body ul{margin:0 0 14px 24px;}
.rosary-how-to-body li{margin-bottom:6px;}

.rosary-fruit{text-align:center;font-family:var(--head);font-size:17px;color:var(--gold-deep);margin-bottom:24px;}

.rosary-prayer-block{margin-bottom:20px;}
.rosary-prayer-full{
  font-size:18px;line-height:1.7;color:var(--muted);
  background:var(--paper-card);border-left:3px solid var(--rule);
  padding:14px 18px;border-radius:0 4px 4px 0;
}

.rosary-verses{margin:24px 0;}
.rosary-bead{
  display:flex;gap:14px;align-items:flex-start;
  padding:14px 0;border-bottom:1px solid var(--rule);
}
.rosary-bead:first-child{border-top:1px solid var(--rule);}
.rosary-bead-num{
  flex-shrink:0;width:32px;height:32px;border-radius:50%;
  background:var(--gold-deep);color:var(--paper);
  font-family:var(--display);font-size:12px;font-weight:600;
  display:flex;align-items:center;justify-content:center;
  margin-top:2px;
}
.rosary-bead-content{flex:1;min-width:0;}
.rosary-scripture{
  font-family:var(--head);font-style:italic;font-size:19px;
  line-height:1.55;color:var(--ink);
}
.rosary-ref{
  font-family:var(--display);font-style:normal;font-size:11px;
  letter-spacing:.1em;color:var(--muted);white-space:nowrap;
}

.rosary-decade{scroll-margin-top:90px;}

/* ── ILLUSTRATED MYSTERIES — image-right sticky layout ──
   Used by the Joyful, Sorrowful, and Glorious sets on the Scriptural Rosary page. Each
   mystery is a two-column card: the meditation on the left, a large image
   on the right that stays stationary while the text is read, advancing to
   the next image only at the next mystery (like the Stations of the Cross). */
.sr-mystery{
  position:relative;
  width:min(1120px,94vw);
  margin:0 0 48px;
  margin-left:50%;
  transform:translateX(-50%);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.82fr);
  gap:clamp(1.6rem,3vw,3.2rem);
  align-items:start;
  /* Dark background matching the Stations of the Cross page. */
  background:
    radial-gradient(120% 80% at 50% -10%, rgba(201,162,75,.10), transparent 60%),
    #1a120b;
  border:1px solid rgba(201,162,75,.28);
  border-radius:14px;
  padding:clamp(1.4rem,3vw,2.6rem);
}
.sr-text{min-width:0;}
.sr-text .prayer-title{text-align:left;}
.sr-text .rosary-fruit{text-align:left;}

/* On the dark Stations-style background, lighten the inner text to the
   parchment palette so the meditations stay readable. */
.sr-mystery .station-number{color:#c9a24b;}
.sr-mystery .prayer-title{color:#efe4cf;}
.sr-mystery .rosary-fruit{color:#e3c987;}
.sr-mystery .prayer-note{color:#bda985;}
.sr-mystery .rosary-scripture{color:#efe4cf;}
.sr-mystery .rosary-ref{color:#bda985;}
.sr-mystery .rosary-prayer-full{
  color:#efe4cf;
  background:rgba(201,162,75,.06);
  border-left-color:rgba(201,162,75,.4);
}
.sr-mystery .rosary-bead{border-bottom-color:rgba(201,162,75,.2);}
.sr-mystery .rosary-bead:first-child{border-top-color:rgba(201,162,75,.2);}
.sr-mystery .rosary-bead-num{background:#c9a24b;color:#1a120b;}
.sr-figure{position:sticky;top:84px;margin:0;align-self:start;}
.sr-frame{
  position:relative;border-radius:12px;overflow:hidden;
  border:1px solid var(--rule);
  box-shadow:0 24px 56px -30px rgba(40,28,8,.55);
  background:var(--paper-card);
}
.sr-frame::after{
  content:"";position:absolute;inset:7px;
  border:1px solid rgba(125,98,36,.20);border-radius:7px;pointer-events:none;
}
.sr-frame img{display:block;width:100%;height:auto;}
.sr-cap{
  text-align:center;font-style:italic;color:#bda985;
  font-size:.92rem;margin:.85rem .3rem 0;line-height:1.5;
}
.sr-cap b{
  display:block;color:#e3c987;font-style:italic;font-weight:600;
  font-size:1.08rem;margin-bottom:.3rem;
}
.sr-cap cite{
  font-family:var(--display);font-style:normal;font-size:11px;
  letter-spacing:.1em;color:#bda985;
}
@media(max-width:880px){
  .sr-mystery{
    width:auto;margin-left:0;transform:none;
    grid-template-columns:1fr;
    padding:clamp(1.1rem,4vw,1.6rem);
  }
  .sr-figure{position:static;top:auto;order:-1;margin-bottom:1.3rem;}
}
@media print{
  .sr-mystery{
    width:auto;margin-left:0;transform:none;
    grid-template-columns:1fr;border-color:#ccc;
    background:none;
    page-break-inside:avoid;
  }
  .sr-mystery .station-number{color:#7d6224;}
  .sr-mystery .prayer-title,
  .sr-mystery .rosary-scripture,
  .sr-mystery .rosary-prayer-full{color:#241a10;}
  .sr-mystery .rosary-fruit,
  .sr-mystery .sr-cap b{color:#7d6224;}
  .sr-mystery .prayer-note,
  .sr-mystery .rosary-ref,
  .sr-mystery .sr-cap,
  .sr-mystery .sr-cap cite{color:#655740;}
  .sr-mystery .rosary-bead-num{background:#7d6224;color:#fff;}
  .sr-figure{position:static;top:auto;}
}

/* ── ROSARY FIELD ──
   The opening prayers, the Joyful/Sorrowful/Glorious mystery sets, and the
   closing prayers all sit on one continuous dark field — the same deep
   brown-black with a faint gold glow used by the Stations of the Cross — so
   the whole devotion reads like that page from top to bottom, instead of the
   prayers floating on light parchment above and below the dark mysteries. */
.sr-field{
  background:
    radial-gradient(120% 40% at 50% 0%, rgba(201,162,75,.10), transparent 60%),
    #1a120b;
  padding:clamp(2rem,5vw,3.5rem) 0 clamp(1.5rem,3vw,2.5rem);
}
.sr-field .prayer-section-heading{color:#e3c987;}
.sr-field .prayer-note{color:#bda985;}
.sr-field .prayer-text{color:#e7dcc6;}
.sr-field .prayer-verse{color:#efe4cf;}
.sr-field .prayer-card{border-bottom-color:rgba(201,162,75,.18);}
.sr-field .colophon{color:#bda985;}
.sr-field .orn .ln{background:rgba(201,162,75,.28);}
.sr-field .orn .dot{color:#c9a24b;}
/* On the dark field each mystery card matches the Stations' station cards:
   a faint gold wash and gold rule rather than a separate dark island. */
.sr-field .sr-mystery{
  background:linear-gradient(180deg, rgba(201,162,75,.06), transparent);
}
@media print{
  .sr-field{background:none;padding:0;}
  .sr-field .prayer-section-heading{color:#333;}
  .sr-field .prayer-note{color:#655740;}
  .sr-field .prayer-text{color:#241a10;}
  .sr-field .prayer-verse{color:#241a10;}
  .sr-field .colophon{color:#666;}
  .sr-field .sr-mystery{background:none;}
}

/* ── SCRIPTURAL ROSARY — dark masthead & controls ──
   The header, the mystery/language controls, and the How-to panel sit on the
   same dark field as the prayers below, so the page reads as one continuous
   dark column (like the Stations of the Cross and the Divine Mercy chaplet). */
.sr-pagehead{
  background:linear-gradient(180deg, #1e150e, #1a120b) !important;
  border-bottom:none;
}
.sr-pagehead .a-emblem{filter:drop-shadow(0 2px 10px rgba(201,162,75,.35)) brightness(1.1);}
.sr-pagehead .kicker{color:#c9a24b;}
.sr-pagehead h1{color:#efe4cf;}
.sr-pagehead .sub{color:#bda985;}

.sr-top{background:#1a120b;}
.sr-top .rosary-tabs{border-color:rgba(201,162,75,.35);}
.sr-top .rosary-tab{background:#221913;color:#bda985;}
.sr-top .rosary-tab.active{background:var(--gold-deep);color:#1a120b;}
.sr-top .rosary-tab:not(.active):hover{background:rgba(201,162,75,.18);color:#efe4cf;}
.sr-top .rosary-lang-label{color:#bda985;}
.sr-top .rosary-lang-label.rosary-lang-active{color:#e3c987;}
.sr-top .rosary-lang-toggle{background:#221913;border-color:rgba(201,162,75,.35);}
.sr-top .rosary-lang-toggle.active{background:var(--gold-deep);border-color:var(--gold-deep);}
.sr-top .rosary-lang-toggle .rosary-lang-thumb{background:#c9a24b;}
.sr-top .rosary-lang-toggle.active .rosary-lang-thumb{background:#1a120b;}
.sr-top .rosary-how-to{background:#221913;border-color:rgba(201,162,75,.28);}
.sr-top .rosary-how-to summary{color:#e3c987;}
.sr-top .rosary-how-to-body{color:#e7dcc6;}
.sr-top .rosary-how-to-body strong{color:#efe4cf;}
.sr-top .rosary-how-to-body em{color:#e3c987;}
@media print{
  .sr-top{background:none;}
  .sr-top .rosary-tab{background:#fff;color:#333;}
  .sr-top .rosary-how-to{background:#fff;}
  .sr-top .rosary-how-to-body{color:#241a10;}
}

/* ── CHAPLET OF ST. MICHAEL ── */
.chaplet-archangel-list{
  margin:0 0 8px 28px;font-family:var(--head);font-size:18px;
  line-height:1.8;color:var(--ink);
}

@media(max-width:560px){
  .rosary-tab{padding:10px 16px;font-size:10px;letter-spacing:.1em;}
  .rosary-scripture{font-size:17px;}
  .rosary-bead-num{width:28px;height:28px;font-size:11px;}
  .rosary-bead{gap:10px;}
  .rosary-prayer-full{padding:12px 14px;font-size:16px;}
}

/* ───────────────── SHARED VIEW TOGGLE (Bible, Catechism) ───────────────── */
.view-toggle{
  display:inline-flex;gap:0;border:1px solid var(--rule);border-radius:4px;overflow:hidden;
}
.view-btn{
  font-family:var(--display);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  padding:12px 24px;border:none;cursor:pointer;
  background:rgba(154,122,46,.08);color:var(--muted);transition:background .2s,color .2s;
}
.view-btn.active{background:var(--gold);color:var(--paper);}
.view-btn:not(.active):hover{background:rgba(154,122,46,.18);color:var(--ink);}
@media(max-width:560px){
  .view-btn{padding:10px 16px;font-size:10px;}
}

/* ───────────────── SHARED NAV BUTTONS (Bible chapter nav, pagination) ── */
.station-nav{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:24px 0;margin-top:8px;border-top:1px solid var(--rule);
}
.station-nav-btn{
  font-family:var(--display);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  padding:12px 28px;border:1px solid var(--rule);border-radius:4px;
  background:rgba(154,122,46,.08);color:var(--gold-deep);cursor:pointer;
  transition:background .2s,color .2s,border-color .2s;
}
.station-nav-btn:hover:not(:disabled){background:var(--gold);color:var(--paper);border-color:var(--gold);}
.station-nav-btn:disabled{opacity:.4;cursor:not-allowed;}
.station-counter{
  font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.2em;
  color:var(--gold-deep);text-align:center;
}
@media(max-width:560px){
  .station-nav-btn{padding:10px 18px;font-size:10px;}
}

/* ───────────────── BIBLE MODULE ───────────────── */

/* book grid */
.bible-books-grid{max-width:var(--wide);margin:0 auto;}
.bible-book-group{margin-bottom:36px;}
.bible-group-heading{
  font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.22em;
  color:var(--gold-deep);margin-bottom:12px;
  padding-bottom:8px;border-bottom:1px solid var(--rule);
}
.bible-book-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;}
.bible-book-btn{
  display:flex;flex-direction:column;gap:2px;text-align:left;
  padding:14px 16px;border:1px solid var(--rule);border-radius:4px;
  background:var(--paper-card);cursor:pointer;
  transition:border-color .2s,box-shadow .2s,background .2s;
  font-family:var(--body);
}
.bible-book-btn:hover{border-color:var(--gold);box-shadow:0 2px 12px rgba(154,122,46,.15);background:white;}
.bible-book-name{font-family:var(--head);font-size:19px;font-weight:600;color:var(--ink);line-height:1.2;}
.bible-book-common{font-family:var(--head);font-style:italic;font-size:14px;color:var(--muted);}
.bible-book-meta{font-family:var(--display);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:4px;display:flex;align-items:center;gap:8px;}
.bible-deutero-tag{
  display:inline-block;font-size:9px;font-weight:600;letter-spacing:.08em;
  color:var(--gold-deep);border:1px solid var(--gold-deep);border-radius:2px;
  padding:1px 5px;line-height:1.3;
}

/* breadcrumb */
.bible-breadcrumb{display:flex;align-items:center;gap:14px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--rule);}
.bible-back-btn{
  font-family:var(--display);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold-deep);background:none;border:1px solid var(--rule);border-radius:4px;
  padding:8px 16px;cursor:pointer;transition:background .2s,color .2s,border-color .2s;
}
.bible-back-btn:hover{background:var(--gold-deep);color:var(--paper);border-color:var(--gold-deep);}
.bible-current-book{font-family:var(--head);font-size:24px;font-weight:600;color:var(--ink);}
.bible-book-overview{
  max-width:900px;margin:0 0 28px;padding:20px 22px;
  background:rgba(154,122,46,.06);border:1px solid var(--rule);border-radius:6px;
}
.bible-book-overview-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;}
.bible-book-overview-meta span{
  font-family:var(--display);font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold-deep);border:1px solid rgba(154,122,46,.35);border-radius:999px;padding:4px 9px;
}
.bible-book-description{font-size:17px;line-height:1.55;color:var(--ink);margin:0;}
.bible-book-author{font-size:14px;color:var(--muted);margin:10px 0 0;}

/* chapter grid */
.bible-chapter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px;}
.bible-ch-btn{
  padding:14px 8px;text-align:center;border:1px solid var(--rule);border-radius:4px;
  background:var(--paper-card);cursor:pointer;font-family:var(--display);font-size:16px;
  font-weight:600;color:var(--ink);transition:background .2s,border-color .2s,color .2s;
  display:flex;flex-direction:column;align-items:center;gap:2px;
}
.bible-ch-btn:hover{border-color:var(--gold);background:white;}
.bible-ch-btn.has-data{border-color:var(--gold-deep);color:var(--gold-deep);}
.bible-ch-btn.has-data:hover{background:var(--gold-deep);color:var(--paper);}
.bible-ch-vc{font-size:9px;letter-spacing:.1em;color:var(--muted);font-weight:400;}
.bible-ch-btn.has-data:hover .bible-ch-vc{color:var(--paper);opacity:.8;}

/* verse display */
.bible-verses{max-width:900px;margin:0 auto;}
.bible-chapter-text{
  font-family:var(--body);font-size:18px;line-height:1.75;color:var(--ink);
  text-align:justify;hyphens:auto;
  background:#fff;padding:48px 44px;border-radius:4px;
  box-shadow:0 1px 6px rgba(0,0,0,.08),0 0 0 1px rgba(0,0,0,.04);
  column-count:2;column-gap:36px;column-rule:1px solid var(--rule);
}
.bible-verse-wrap{scroll-margin-top:90px;display:inline;}
.bible-verse-num{
  font-family:var(--display);font-size:11px;font-weight:700;color:var(--gold);
  vertical-align:super;margin-right:1px;
}

/* search box */
.bible-search-box{position:relative;display:flex;gap:0;margin-bottom:16px;}
.bible-search-icon{
  position:absolute;left:16px;top:50%;transform:translateY(-50%);
  color:var(--muted);font-size:18px;pointer-events:none;z-index:1;
}
.bible-search-input{
  flex:1;padding:16px 18px 16px 46px;
  border:1px solid var(--rule);border-radius:4px 0 0 4px;
  background:var(--paper-card);font-family:var(--body);font-size:19px;color:var(--ink);
  transition:border-color .2s,box-shadow .2s;
}
.bible-search-input::placeholder{color:var(--muted);font-style:italic;font-family:var(--head);}
.bible-search-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(154,122,46,.15);}
.bible-search-go{
  font-family:var(--display);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  padding:16px 24px;border:none;border-radius:0 4px 4px 0;cursor:pointer;
  color:var(--paper);background:var(--gold-deep);
  transition:background .2s;white-space:nowrap;
}
.bible-search-go:hover{background:var(--gold);}

/* filters */
.bible-filters-details{margin-bottom:24px;}
.bible-filters-details summary{
  font-family:var(--display);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold-deep);cursor:pointer;padding:10px 0;
}
.bible-filters{display:flex;gap:20px;flex-wrap:wrap;padding:16px 0;}
.bible-filter-group{display:flex;flex-direction:column;gap:4px;}
.bible-filter-label{font-family:var(--display);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}
.bible-filter-select{
  font-family:var(--body);font-size:16px;color:var(--ink);padding:8px 12px;
  border:1px solid var(--rule);border-radius:4px;background:var(--paper-card);
}
.bible-filter-check{font-family:var(--head);font-size:16px;color:var(--ink);display:flex;align-items:center;gap:8px;padding-top:20px;}

/* search results */
.bible-result-count{
  font-family:var(--display);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin-bottom:16px;
}
.bible-search-result{
  padding:18px 0;border-bottom:1px solid var(--rule);
}
.bible-search-result:first-child{border-top:1px solid var(--rule);}
.bible-result-ref{display:flex;align-items:baseline;gap:10px;margin-bottom:6px;flex-wrap:wrap;}
.bible-result-book{font-family:var(--head);font-size:18px;font-weight:600;color:var(--gold-deep);}
.bible-result-common{font-family:var(--head);font-style:italic;font-size:14px;color:var(--muted);}
.bible-result-group{font-family:var(--display);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-left:auto;}
.bible-result-text{font-family:var(--body);font-size:18px;line-height:1.65;color:var(--ink);}
.bible-result-text mark{background:rgba(201,168,90,.30);color:var(--ink);border-radius:2px;padding:0 2px;}

/* reference mode */
.bible-ref-hint{font-family:var(--head);font-style:italic;font-size:16px;color:var(--muted);margin-bottom:24px;}
.bible-ref-header{text-align:center;margin-bottom:24px;}
.bible-ref-title{font-family:var(--head);font-size:clamp(24px,3.4vw,34px);font-weight:600;color:var(--ink);}
.bible-ref-common{font-family:var(--head);font-style:italic;font-size:17px;color:var(--muted);margin-top:4px;}
.bible-ref-text{max-width:900px;margin:0 auto;}
.bible-ref-chapter-marker{display:block;margin:28px 0 12px;padding-bottom:7px;border-bottom:1px solid var(--rule);color:var(--gold-deep);font-family:var(--display);font-size:11px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;}
.bible-ref-chapter-marker:first-child{margin-top:0;}

/* empty / loading states */
.bible-empty-state{text-align:center;font-family:var(--head);font-style:italic;font-size:19px;color:var(--muted);padding:40px 0;}
.bible-empty-sub{text-align:center;font-family:var(--head);font-size:16px;color:var(--muted);margin-top:8px;}
.bible-loading{text-align:center;font-family:var(--head);font-style:italic;font-size:18px;color:var(--gold-deep);padding:40px 0;}
.bible-loading-msg{
  display:none;text-align:center;font-family:var(--head);font-style:italic;
  font-size:19px;color:var(--gold-deep);padding:60px 0;
}
html.js .bible-loading-msg{display:block;}
.bible-no-verses{padding:40px 20px;}

/* seed progress overlay */
.bible-seed-overlay{text-align:center;padding:60px 20px;max-width:400px;margin:0 auto;}
.bible-seed-icon{font-size:48px;line-height:1;margin-bottom:16px;color:var(--gold);}
.bible-seed-title{font-family:var(--head);font-size:22px;color:var(--ink);margin-bottom:8px;font-weight:600;}
.bible-seed-sub{font-family:var(--head);font-size:16px;color:var(--muted);font-style:italic;margin-bottom:20px;}
.bible-seed-bar-wrap{height:6px;background:var(--rule);border-radius:3px;overflow:hidden;}
.bible-seed-bar{height:100%;background:linear-gradient(90deg,var(--gold-deep),var(--champagne));border-radius:3px;transition:width .4s ease;}
.bible-seed-percent{font-family:var(--head);font-size:14px;color:var(--muted);margin-top:8px;}

/* bible info bar */
.bible-info-bar{margin-bottom:32px;display:flex;flex-direction:column;gap:0;}
.bible-info-panel{border-bottom:1px solid var(--rule);}
.bible-info-panel:first-child{border-top:1px solid var(--rule);}
.bible-info-toggle{font-family:var(--display);font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);cursor:pointer;padding:14px 0;list-style:none;}
.bible-info-toggle::-webkit-details-marker{display:none;}
.bible-info-toggle::before{content:'\25B8';display:inline-block;margin-right:8px;transition:transform .2s;}
[open]>.bible-info-toggle::before{transform:rotate(90deg);}
.bible-info-body{padding:0 0 20px;font-size:17px;line-height:1.7;color:var(--ink);}
.bible-info-body p{margin-bottom:12px;}
.bible-info-body p:last-child{margin-bottom:0;}
.bible-names-table-wrap{overflow-x:auto;margin:12px 0;}
.bible-names-table{width:100%;max-width:480px;border-collapse:collapse;font-size:16px;}
.bible-names-table th{font-family:var(--display);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);text-align:left;padding:8px 16px 8px 0;border-bottom:2px solid var(--rule);}
.bible-names-table td{padding:5px 16px 5px 0;border-bottom:1px solid var(--rule);color:var(--ink);}
.bible-search-tips{list-style:none;padding:0;margin:0;}
.bible-search-tips li{padding:6px 0;border-bottom:1px solid var(--rule);}
.bible-search-tips li:last-child{border-bottom:none;}

/* verse copy button */
.bible-verse-num{cursor:pointer;transition:color .15s;}
.bible-verse-num:hover{color:var(--gold);}
.bible-copy-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--espresso);color:var(--champagne);font-family:var(--display);font-size:13px;letter-spacing:.08em;padding:10px 20px;border-radius:6px;z-index:9999;opacity:0;transition:opacity .3s;pointer-events:none;}
.bible-copy-toast.show{opacity:1;}

/* pagination */
.bible-pagination{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:24px 0;margin-top:8px;border-top:1px solid var(--rule);}

@media(max-width:840px){
  .bible-chapter-text{column-count:1;padding:36px 28px;font-size:18px;}
}

@media(max-width:640px){
  .bible-book-list{grid-template-columns:1fr;}
  .bible-chapter-grid{grid-template-columns:repeat(auto-fill,minmax(56px,1fr));}
  .bible-chapter-text{font-size:17px;text-align:left;padding:28px 20px;column-count:1;}
  .bible-breadcrumb{flex-wrap:wrap;}
  .bible-current-book{font-size:20px;}
  .bible-search-input{font-size:17px;padding:14px 14px 14px 40px;}
  .bible-search-go{padding:14px 16px;font-size:11px;}
  .bible-filters{flex-direction:column;}
}

/* ───────────── EXAMINATION CHECKLIST ───────────── */
.exam-checklist li{padding-left:0;}
.exam-checklist li::before{display:none;}
.exam-checklist label{display:flex;align-items:flex-start;gap:12px;cursor:pointer;-webkit-user-select:none;user-select:none;}
.exam-checklist input[type="checkbox"]{flex-shrink:0;width:20px;height:20px;margin-top:3px;accent-color:var(--gold-deep);cursor:pointer;}
.exam-checklist li:has(input:checked){background:rgba(180,140,60,0.07);border-radius:4px;padding-left:4px;padding-right:4px;}
.exam-sub{font-family:var(--head);font-weight:600;font-size:18px;color:var(--ink);margin:24px 0 8px;letter-spacing:.02em;}
.exam-sub em{font-weight:400;color:var(--muted);font-size:16px;}
.exam-ref{font-family:var(--head);font-style:italic;font-size:15px;color:var(--muted);margin-top:16px;text-align:center;padding-top:12px;border-top:1px solid var(--rule);}
.exam-toolbar{text-align:center;margin:20px 0 10px;padding:20px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
.exam-toolbar button{font-family:var(--head);font-size:13px;letter-spacing:.1em;text-transform:uppercase;background:var(--gold-deep);color:#fff;border:none;padding:12px 24px;margin:6px 8px;cursor:pointer;border-radius:4px;transition:background .2s,color .2s;}
.exam-toolbar button:hover{background:var(--gold);}
.exam-toolbar .btn-outline{background:transparent;color:var(--gold-deep);border:1.5px solid var(--gold-deep);}
.exam-toolbar .btn-outline:hover{background:var(--gold-deep);color:#fff;}

@media screen{
  .exam-toc{position:relative;margin-top:34px;padding:64px 0 72px;border-top:1px solid rgba(154,122,46,.18);border-bottom:1px solid rgba(154,122,46,.22);background:
    radial-gradient(circle at 18% 16%,rgba(201,168,90,.12),transparent 27%),
    linear-gradient(110deg,#eee3cf 0%,#f7f1e5 46%,#efe4d1 100%);}
  .exam-toc::before{content:"";position:absolute;inset:14px;border:1px solid rgba(125,98,36,.11);pointer-events:none;}
  .exam-toc-layout{position:relative;display:grid;grid-template-columns:minmax(270px,.72fr) minmax(0,1.65fr);gap:34px;align-items:stretch;}
  .exam-toc-intro{position:relative;isolation:isolate;display:flex;min-height:100%;flex-direction:column;justify-content:center;overflow:hidden;padding:46px 40px;border:1px solid rgba(201,168,90,.28);background:
    radial-gradient(circle at 24% 20%,rgba(201,168,90,.18),transparent 30%),
    linear-gradient(145deg,#17100a,#281a10);box-shadow:0 24px 58px rgba(47,31,17,.18);color:var(--paper);}
  .exam-toc-intro::before{content:"";position:absolute;inset:12px;z-index:-1;border:1px solid rgba(201,168,90,.14);pointer-events:none;}
  .exam-toc-intro::after{content:"EXAMEN";position:absolute;right:-.04em;bottom:-.14em;z-index:-1;color:rgba(201,168,90,.045);font:600 76px/1 var(--display);letter-spacing:-.05em;pointer-events:none;}
  .exam-toc-intro .kicker{color:var(--champagne);}
  .exam-toc-intro h2{margin:16px 0 20px;color:#f7eddc;font:500 clamp(36px,3.6vw,54px)/.98 var(--head);letter-spacing:-.025em;}
  .exam-toc-intro p{max-width:30ch;margin:0;color:rgba(246,241,230,.72);font:500 18px/1.55 var(--head);}
  .exam-toc-meta{display:flex;gap:24px;margin-top:42px;padding-top:22px;border-top:1px solid rgba(201,168,90,.2);}
  .exam-toc-meta span{display:flex;flex-direction:column;gap:5px;color:rgba(246,241,230,.58);font:600 9px/1.2 var(--display);letter-spacing:.13em;text-transform:uppercase;}
  .exam-toc-meta b{color:var(--champagne);font:500 26px/1 var(--head);letter-spacing:0;}
  .exam-toc-content{min-width:0;}
  .exam-toc .toc-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;counter-reset:toc-group;}
  .exam-toc .toc-group{padding:22px 24px 20px;border-color:rgba(125,98,36,.22);border-radius:2px;background:rgba(251,248,239,.68);box-shadow:0 14px 34px -28px rgba(36,26,16,.7);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;}
  .exam-toc .toc-group:hover{border-color:rgba(125,98,36,.38);box-shadow:0 20px 38px -28px rgba(36,26,16,.72);transform:translateY(-2px);}
  .exam-toc .toc-group:nth-child(1),.exam-toc .toc-group:nth-child(2){grid-column:1/-1;}
  .exam-toc .toc-group:nth-child(1){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;}
  .exam-toc .toc-group:nth-child(1) .toc-heading{grid-column:1/-1;}
  .exam-toc .toc-heading{margin-bottom:13px;font-size:10px;letter-spacing:.18em;}
  .exam-toc .toc-heading::before{min-width:30px;height:30px;background:#f9f3e7;color:var(--gold-deep);}
  .exam-toc .toc-group a{display:grid;grid-template-columns:1fr 16px;gap:10px;align-items:center;padding:9px 2px;border-top-color:rgba(196,177,140,.58);font-size:16px;line-height:1.3;}
  .exam-toc .toc-group a::after{content:"›";color:rgba(154,122,46,.48);font:600 20px/1 var(--head);transition:color .2s ease,transform .2s ease;}
  .exam-toc .toc-group a:hover::after,.exam-toc .toc-group a:focus-visible::after{color:var(--gold-deep);transform:translateX(3px);}
  .exam-commandments{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;}
  .exam-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:16px 0 0;padding:18px 0 0;border-top:1px solid rgba(125,98,36,.2);border-bottom:0;}
  .exam-toolbar button{min-height:44px;margin:0;padding:12px 18px;border-radius:2px;font-family:var(--display);font-size:9px;letter-spacing:.12em;box-shadow:0 8px 18px rgba(87,61,20,.12);}
  .exam-toolbar .btn-outline{box-shadow:none;}
}

@media screen and (max-width:900px){
  .exam-toc{padding:44px 0 52px;}
  .exam-toc-layout{grid-template-columns:1fr;}
  .exam-toc-intro{min-height:auto;padding:38px;}
  .exam-toc-intro p{max-width:52ch;}
  .exam-toc-meta{margin-top:28px;}
}

@media screen and (max-width:620px){
  .exam-toc::before{inset:7px;}
  .exam-toc-layout{gap:18px;}
  .exam-toc-intro{padding:32px 26px;}
  .exam-toc-intro h2{font-size:38px;}
  .exam-toc .toc-list,.exam-commandments,.exam-toc .toc-group:nth-child(1){grid-template-columns:1fr;}
  .exam-toc .toc-group:nth-child(1) .toc-heading{grid-column:auto;}
  .exam-toc .toc-group{grid-column:auto!important;padding:19px 18px 17px;}
  .exam-toolbar{align-items:stretch;flex-direction:column;}
  .exam-toolbar button{width:100%;}
}
.capital-sins-table{width:100%;border-collapse:collapse;margin:20px 0;}
.capital-sins-table th{font-family:var(--display);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);text-align:left;padding:10px 12px;border-bottom:2px solid var(--rule);}
.capital-sins-table td{font-family:var(--body);font-size:17px;line-height:1.5;padding:12px;border-bottom:1px solid var(--rule);vertical-align:top;}
.capital-sins-table td:first-child{font-family:var(--head);font-weight:600;white-space:nowrap;}
.capital-sins-table td:nth-child(2){font-family:var(--head);color:var(--gold-deep);}
.capital-sins-table td:nth-child(3){font-style:italic;color:var(--muted);font-size:16px;}
.exam-steps{list-style:none;padding:0;counter-reset:step;}
.exam-steps li{position:relative;padding:12px 0 12px 40px;border-bottom:1px solid var(--rule);font-size:19px;line-height:1.6;counter-increment:step;}
.exam-steps li:last-child{border-bottom:none;}
.exam-steps li::before{content:counter(step) ".";position:absolute;left:0;top:12px;font-family:var(--head);font-weight:600;color:var(--gold-deep);font-size:18px;}
@media(max-width:640px){
  .capital-sins-table,.capital-sins-table thead,.capital-sins-table tbody,.capital-sins-table tr,.capital-sins-table th,.capital-sins-table td{display:block;}
  .capital-sins-table thead{display:none;}
  .capital-sins-table tr{margin-bottom:16px;border-bottom:2px solid var(--rule);padding-bottom:8px;}
  .capital-sins-table td{padding:4px 0;border:none;}
  .capital-sins-table td:first-child{font-size:19px;padding-top:8px;}
  .capital-sins-table td:nth-child(2)::before{content:"Remedy: ";font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
  .capital-sins-table td:nth-child(3)::before{content:"Reflect: ";font-style:normal;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
}

/* ───────────────── CATECHISM MODULE ───────────────── */

.cat-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;max-width:var(--wide);margin:0 auto;}
.cat-card{
  display:flex;flex-direction:column;text-align:left;
  padding:32px 28px;border:1px solid var(--rule);border-radius:4px;
  background:var(--paper-card);cursor:pointer;
  transition:border-color .2s,box-shadow .2s,background .2s;
  font-family:var(--body);
}
.cat-card:hover{border-color:var(--gold);box-shadow:0 4px 20px rgba(154,122,46,.15);background:white;}
.cat-card-abbr{
  font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold-deep);margin-bottom:8px;
}
.cat-card-title{font-family:var(--head);font-size:22px;font-weight:600;color:var(--ink);line-height:1.3;margin-bottom:10px;}
.cat-card-subtitle{font-family:var(--head);font-style:italic;font-size:15px;color:var(--gold);margin-bottom:6px;}
.cat-card-desc{font-family:var(--body);font-size:15px;line-height:1.6;color:var(--muted);margin-bottom:14px;flex:1;}
.cat-card-meta{display:flex;gap:12px;flex-wrap:wrap;}
.cat-card-year,.cat-card-count{
  font-family:var(--display);font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);
}

.cat-parts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;max-width:var(--wide);margin:0 auto;}
.cat-part-card{
  display:flex;flex-direction:column;text-align:left;
  padding:24px 22px;border:1px solid var(--rule);border-radius:4px;
  background:var(--paper-card);cursor:pointer;
  transition:border-color .2s,box-shadow .2s,background .2s;
}
.cat-part-card:hover{border-color:var(--gold);box-shadow:0 2px 14px rgba(154,122,46,.12);background:white;}
.cat-part-number{
  font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold-deep);margin-bottom:6px;
}
.cat-part-title{font-family:var(--head);font-size:20px;font-weight:600;color:var(--ink);line-height:1.3;margin-bottom:8px;}
.cat-part-desc{font-family:var(--body);font-size:15px;line-height:1.5;color:var(--muted);margin-bottom:10px;flex:1;}
.cat-part-meta{font-family:var(--display);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}

.cat-section-list{max-width:var(--wide);margin:0 auto;}
.cat-section-btn{
  display:flex;align-items:center;gap:16px;width:100%;text-align:left;
  padding:18px 20px;border:none;border-bottom:1px solid var(--rule);
  background:transparent;cursor:pointer;
  transition:background .2s;
}
.cat-section-btn:first-child{border-top:1px solid var(--rule);}
.cat-section-btn:hover{background:rgba(154,122,46,.06);}
.cat-section-num{
  font-family:var(--display);font-size:14px;font-weight:600;color:var(--gold-deep);
  min-width:28px;text-align:center;
}
.cat-section-info{display:flex;flex-direction:column;gap:2px;}
.cat-section-title{font-family:var(--head);font-size:18px;font-weight:600;color:var(--ink);line-height:1.3;}
.cat-section-meta{font-family:var(--display);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}

.cat-items{max-width:900px;margin:0 auto;}
.cat-item{
  padding:24px 32px;margin-bottom:0;
  background:#fff;border-left:3px solid var(--gold-deep);
  border-bottom:1px solid var(--rule);
}
.cat-item:first-child{border-radius:4px 4px 0 0;}
.cat-item:last-child{border-radius:0 0 4px 4px;border-bottom:none;}
.cat-item:only-child{border-radius:4px;}

.cat-question{display:flex;gap:10px;margin-bottom:12px;}
.cat-q-num{
  font-family:var(--display);font-size:12px;font-weight:700;letter-spacing:.08em;
  color:var(--gold-deep);min-width:40px;padding-top:3px;
}
.cat-q-text{font-family:var(--head);font-size:19px;font-weight:600;color:var(--ink);line-height:1.5;}

.cat-answer{display:flex;gap:10px;}
.cat-a-label{
  font-family:var(--display);font-size:12px;font-weight:700;letter-spacing:.08em;
  color:var(--muted);min-width:40px;padding-top:3px;
}
.cat-a-text{font-family:var(--body);font-size:18px;line-height:1.7;color:var(--ink);}

.cat-paragraph{display:flex;gap:12px;align-items:baseline;}
.cat-para-num{
  font-family:var(--display);font-size:13px;font-weight:700;letter-spacing:.04em;
  color:var(--gold-deep);min-width:44px;flex-shrink:0;
}
.cat-para-text{font-family:var(--body);font-size:18px;line-height:1.75;color:var(--ink);}

.cat-explanation{
  margin-top:10px;padding:12px 16px 12px 52px;
  font-family:var(--head);font-style:italic;font-size:16px;line-height:1.6;
  color:var(--muted);
}
.cat-scripture-ref{
  margin-top:6px;padding-left:52px;
  font-family:var(--head);font-style:italic;font-size:14px;color:var(--gold-deep);
}

.cat-ct-heading{display:flex;gap:10px;margin-bottom:10px;align-items:baseline;}
.cat-ct-num{
  font-family:var(--display);font-size:13px;font-weight:700;letter-spacing:.04em;
  color:var(--gold-deep);min-width:40px;flex-shrink:0;
}
.cat-ct-title{font-family:var(--head);font-size:17px;font-weight:600;color:var(--ink);line-height:1.5;}

.cat-subsection-header{
  font-family:var(--head);font-size:17px;font-weight:600;letter-spacing:.02em;
  color:var(--ink);margin:32px 0 14px;
  padding-bottom:10px;border-bottom:1px solid var(--rule);
  line-height:1.3;
}
.cat-inbrief-header{
  font-style:italic;color:var(--accent,#8b5e3c);border-bottom-color:var(--accent,#8b5e3c);
}
.cat-item.cat-inbrief{
  background:rgba(201,168,90,.06);border-left:3px solid var(--gold-deep);
  padding-left:20px;margin-left:-3px;
}
.cat-cross-refs{
  margin-top:6px;padding-left:42px;
  font-family:var(--head);font-style:italic;font-size:13px;color:var(--muted);
}

.cat-search-result{padding:20px 0;border-bottom:1px solid var(--rule);}
.cat-search-result:first-child{border-top:1px solid var(--rule);}
.cat-result-header{display:flex;align-items:baseline;gap:10px;margin-bottom:8px;flex-wrap:wrap;}
.cat-result-abbr{
  font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--paper);background:var(--gold-deep);
  padding:3px 8px;border-radius:2px;
}
.cat-result-section{font-family:var(--head);font-size:16px;font-weight:600;color:var(--ink);}
.cat-result-num{font-family:var(--display);font-size:11px;letter-spacing:.1em;color:var(--muted);}
.cat-result-question{font-family:var(--head);font-size:17px;font-weight:600;color:var(--ink);margin-bottom:6px;line-height:1.4;}
.cat-result-answer{font-family:var(--body);font-size:17px;line-height:1.6;color:var(--ink);}
.cat-result-answer mark,.cat-result-question mark{background:rgba(201,168,90,.30);color:var(--ink);border-radius:2px;padding:0 2px;}
.cat-result-view{margin-top:8px;}

@media(max-width:640px){
  .cat-cards{grid-template-columns:1fr;}
  .cat-parts-grid{grid-template-columns:1fr;}
  .cat-item{padding:18px 16px;}
  .cat-q-num,.cat-a-label{min-width:32px;font-size:11px;}
  .cat-q-text{font-size:17px;}
  .cat-a-text,.cat-para-text{font-size:16px;}
  .cat-ct-num{min-width:32px;font-size:11px;}
  .cat-ct-title{font-size:15px;}
  .cat-explanation{padding-left:42px;font-size:15px;}
  .cat-scripture-ref{padding-left:42px;}
  .cat-cross-refs{padding-left:42px;}
  .cat-item.cat-inbrief{padding-left:16px;}
  .cat-section-title{font-size:16px;}
}

/* Glossary card accent */
.cat-card-glossary .cat-card-abbr{color:var(--accent,#8b5e3c);}

/* ───────────────── GLOSSARY MODULE ───────────────── */

.glossary-search-box{
  max-width:600px;margin:0 auto 24px;
}
.glossary-search-input{
  width:100%;padding:14px 18px;border:1px solid var(--rule);border-radius:4px;
  font-family:var(--body);font-size:17px;color:var(--ink);background:var(--paper-card);
  transition:border-color .2s,box-shadow .2s;
}
.glossary-search-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(154,122,46,.15);}

.glossary-letters{
  display:flex;flex-wrap:wrap;gap:6px;justify-content:center;
  max-width:var(--wide);margin:0 auto 28px;
}
.glossary-letter-btn{
  display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:8px 12px;border:1px solid var(--rule);border-radius:4px;
  background:var(--paper-card);cursor:pointer;
  font-family:var(--display);font-size:15px;font-weight:600;color:var(--ink);
  transition:background .2s,border-color .2s,color .2s;min-width:38px;
}
.glossary-letter-btn:hover{border-color:var(--gold);background:rgba(154,122,46,.06);}
.glossary-letter-active{
  background:var(--gold-deep);color:var(--paper);border-color:var(--gold-deep);
}
.glossary-letter-active:hover{background:var(--gold);border-color:var(--gold);}
.glossary-letter-count{
  font-size:9px;letter-spacing:.06em;font-weight:400;opacity:.7;
}

.glossary-content{max-width:800px;margin:0 auto;}

.glossary-terms{display:flex;flex-direction:column;gap:0;}
.glossary-term-entry{
  padding:22px 28px;
  border-bottom:1px solid var(--rule);
}
.glossary-term-entry:first-child{border-top:1px solid var(--rule);}
.glossary-term-name{
  font-family:var(--head);font-size:20px;font-weight:600;color:var(--ink);
  margin-bottom:8px;line-height:1.3;
}
.glossary-term-def{
  font-family:var(--body);font-size:17px;line-height:1.7;color:var(--ink);
}
.glossary-see-also{
  margin-top:8px;font-family:var(--head);font-size:15px;color:var(--muted);
}
.glossary-see-also em{color:var(--gold-deep);}

@media(max-width:640px){
  .glossary-letter-btn{padding:6px 8px;font-size:13px;min-width:32px;}
  .glossary-term-entry{padding:16px 14px;}
  .glossary-term-name{font-size:18px;}
  .glossary-term-def{font-size:16px;}
}

/* ───────────────── BALTIMORE CATECHISM — ALL + FLASHCARDS ───────────────── */

.bc-summary{
  text-align:center;font-family:var(--display);font-size:13px;font-weight:600;
  letter-spacing:.2em;color:var(--gold-deep);
  margin-bottom:32px;
}
.bc-lesson-group{margin-bottom:40px;}
.bc-lesson-heading{
  font-family:var(--head);font-size:clamp(20px,3vw,26px);font-weight:600;
  color:var(--ink);margin-bottom:16px;padding-bottom:10px;
  border-bottom:2px solid var(--gold-deep);
}

/* Flashcard controls */
.fc-controls{margin-bottom:28px;}
.fc-controls-row{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;}
.fc-filter-group{display:flex;flex-direction:column;gap:4px;flex:1;min-width:200px;}
.fc-shuffle-btn{
  font-family:var(--display);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  padding:10px 20px;border:1px solid var(--rule);border-radius:4px;
  background:var(--paper-card);color:var(--gold-deep);cursor:pointer;
  transition:background .2s,color .2s,border-color .2s;white-space:nowrap;
}
.fc-shuffle-btn:hover{background:var(--gold-deep);color:var(--paper);border-color:var(--gold-deep);}

/* Flashcard area */
.fc-area{text-align:center;}

.fc-card-wrap{
  perspective:900px;
  max-width:720px;width:100%;margin:0 auto 16px;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.fc-card{
  position:relative;width:100%;min-height:420px;
  transform-style:preserve-3d;
  transition:transform .5s cubic-bezier(.4,.2,.2,1);
}
.fc-card.fc-flipped{transform:rotateY(180deg);}

.fc-face{
  position:absolute;inset:0;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
  border-radius:8px;padding:40px 32px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  box-shadow:0 4px 24px rgba(26,18,11,.12),0 0 0 1px rgba(0,0,0,.04);
}
.fc-front{
  background:linear-gradient(160deg,#fff,var(--paper-card));
  border:2px solid var(--gold-deep);
}
.fc-back{
  background:linear-gradient(160deg,var(--espresso),#2a1c11);
  border:2px solid var(--champagne);
  transform:rotateY(180deg);
  color:var(--paper);
}

.fc-label{
  font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.24em;
  text-transform:uppercase;margin-bottom:20px;
}
.fc-front .fc-label{color:var(--gold-deep);}
.fc-back .fc-label{color:var(--champagne);}

.fc-lesson-tag{
  font-family:var(--display);font-size:9px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin-bottom:16px;
}
.fc-text{
  font-family:var(--head);font-size:clamp(18px,2.6vw,24px);font-weight:600;
  line-height:1.4;max-width:620px;
}
.fc-front .fc-text{color:var(--ink);}
.fc-back .fc-text{color:var(--paper);}

.fc-explanation{
  margin-top:18px;font-family:var(--head);font-style:italic;
  font-size:15px;line-height:1.6;color:var(--muted-dark);max-width:580px;
}
.fc-scripture{
  margin-top:10px;font-family:var(--head);font-style:italic;
  font-size:14px;color:var(--champagne);
}
.fc-empty{
  font-family:var(--head);font-style:italic;font-size:20px;color:var(--muted);
}

.fc-hint{
  font-family:var(--head);font-style:italic;font-size:15px;
  color:var(--muted);margin-bottom:20px;
}

/* Flashcard nav */
.fc-nav{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:0 0 16px;max-width:720px;margin:0 auto;
}
.fc-counter{
  font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold);
}

/* Progress bar */
.fc-progress-wrap{
  height:4px;background:var(--rule);border-radius:2px;overflow:hidden;
  max-width:720px;margin:0 auto;
}
.fc-progress-bar{
  height:100%;background:linear-gradient(90deg,var(--gold-deep),var(--champagne));
  border-radius:2px;transition:width .35s ease;width:0;
}

@media(max-width:560px){
  .fc-card{min-height:360px;}
  .fc-face{padding:30px 20px;}
  .fc-text{font-size:18px;}
  .fc-controls-row{flex-direction:column;align-items:stretch;}
  .fc-shuffle-btn{width:100%;}
}

/* ───────────────── LINKS PAGE ───────────────── */
.links-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;}
.link-card{
  display:flex;align-items:center;gap:18px;
  padding:20px 22px;border:1px solid var(--rule);border-radius:4px;
  background:var(--paper-card);text-decoration:none;
  transition:border-color .2s,box-shadow .2s,background .2s;
}
.link-card:hover{border-color:var(--gold);box-shadow:0 4px 20px rgba(154,122,46,.15);background:white;}
.link-thumb{
  flex-shrink:0;width:48px;height:48px;border-radius:4px;overflow:hidden;
  border:1px solid var(--rule);background:white;
  display:flex;align-items:center;justify-content:center;
}
.link-thumb img{width:32px;height:32px;object-fit:contain;}
.link-info{min-width:0;}
.link-name{
  font-family:var(--head);font-size:19px;font-weight:600;color:var(--ink);
  line-height:1.3;margin-bottom:2px;
}
.link-card:hover .link-name{color:var(--gold-deep);}
.link-url{
  font-family:var(--display);font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);
}
@media(max-width:640px){.links-grid{grid-template-columns:1fr;}}

/* YouTube section */
.yt-heading{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 0 30px;}
.yt-heading h2{
  font-family:var(--display);font-size:1.35rem;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink);margin:0;
}
.yt-logo{width:42px;height:auto;}
.yt-thumb{border-radius:50%;border-color:transparent;}
.yt-thumb img{width:48px;height:48px;border-radius:50%;object-fit:cover;}

/* ───────────────── TOPIC CHIPS ───────────────── */
.topic-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:14px 0 4px;}
.topic-chip{
  display:inline-block;font-family:var(--display);font-size:10px;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold-deep);border:1px solid var(--rule);border-radius:20px;
  padding:5px 14px;text-decoration:none;
  transition:background .2s,color .2s,border-color .2s;
}
.topic-chip:hover{background:var(--gold-deep);color:var(--paper);border-color:var(--gold-deep);}
.entry .topic-chips{justify-content:flex-start;margin:0 0 5px;}

/* ───────────────── PRINT ───────────────── */
@media print{
  *{color:#000 !important;background:white !important;box-shadow:none !important;text-shadow:none !important;}
  body{font-size:12pt;line-height:1.5;}
  .nav,.back-to-top,.prayer-search,.search-icon,.search-clear,footer,.nav-search-btn,.exam-toolbar,.site-search-overlay{display:none !important;}
  .pagehead{padding:20pt 0 10pt;background:white !important;}
  .pagehead .a-emblem{display:none;}
  .pagehead h1{font-size:22pt;color:#000 !important;}
  .pagehead .sub{font-size:12pt;color:#333 !important;}
  .kicker{color:#333 !important;font-size:9pt;}
  .measure{max-width:100%;padding:0 0.5in;}
  .prayer-toc{page-break-after:avoid;}
  .prayer-toc .toc-list{columns:2;column-gap:24pt;}
  .prayer-toc .toc-group a{font-size:10pt;line-height:1.4;color:#000 !important;}
  .prayer-toc .toc-heading{font-size:9pt;color:#333 !important;}
  .orn .ln{background:#999 !important;}
  .orn .dot{color:#666 !important;}
  .prayer-section-heading{font-size:12pt;color:#333 !important;margin-top:24pt;}
  .prayer-card{page-break-inside:avoid;margin-bottom:18pt;padding-bottom:18pt;border-color:#ccc !important;}
  .prayer-title{font-size:14pt;}
  .prayer-text{font-size:11pt;line-height:1.5;text-align:left;}
  .prayer-note{font-size:10pt;color:#333 !important;}
  .colophon{font-size:9pt;color:#666 !important;}
  a{text-decoration:none !important;}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:8pt;color:#666;}
  .readmore{display:none !important;}
  .prayer-list{padding:0;}
  .prayer-list li{font-size:10.5pt;line-height:1.5;padding:4pt 0 4pt 16pt;border-color:#ccc !important;}
  .prayer-list li::before{color:#666 !important;font-size:7pt;top:5pt;}
  .prayer-section-heading{page-break-after:avoid;}
  .exam-checklist li{padding:3pt 0 3pt 0;font-size:10pt;line-height:1.4;}
  .exam-checklist label{gap:6pt;}
  .exam-checklist input[type="checkbox"]{-webkit-appearance:none;appearance:none;width:10pt;height:10pt;border:1.5pt solid #333;border-radius:0;background:white !important;margin-top:2pt;print-color-adjust:exact;-webkit-print-color-adjust:exact;}
  .exam-checklist input[type="checkbox"]:checked{background:#ddd !important;}
  .exam-checklist input[type="checkbox"]:checked::after{content:"\2713";display:block;text-align:center;font-size:8pt;line-height:10pt;font-weight:bold;color:#000 !important;}
  .exam-checklist li:has(input:checked){background:transparent !important;}
  .exam-sub{font-size:10pt;margin:10pt 0 4pt;page-break-after:avoid;}
  .exam-ref{font-size:8pt;margin-top:6pt;padding-top:6pt;}
  .capital-sins-table th{font-size:8pt;}
  .capital-sins-table td{font-size:9pt;padding:4pt 6pt;}
  .exam-steps li{font-size:10pt;padding:4pt 0 4pt 28pt;}
  .exam-steps li::before{font-size:10pt;top:4pt;}
  body.print-checked .exam-checklist li:has(input:not(:checked)){display:none !important;}
  body.print-checked .exam-sub,body.print-checked .exam-ref{display:block !important;}
  .links-grid{display:block;}
  .link-card{border-color:#ccc !important;margin-bottom:8pt;padding:10pt 12pt;}
  .link-card:hover{box-shadow:none !important;}
  .link-thumb{display:none !important;}
  .link-name{font-size:12pt;}
  .link-url{font-size:8pt;}
  .link-card[href]::after{display:none !important;}
  .yt-logo{display:none !important;}
  .yt-heading h2{font-size:14pt;}
  .hell-gallery-section{padding:0 0.5in;background:white !important;border:none !important;}
  .hell-gallery-header .prayer-section-heading{color:#333 !important;}
  .hell-gallery-wrap{display:block;}
  .hell-gallery-aside{display:none !important;}
  .heaven-gallery-section{padding:0 0.5in;background:white !important;border:none !important;}
  .heaven-gallery-header .prayer-section-heading{color:#333 !important;}
  .heaven-gallery-wrap{display:block;}
  .heaven-gallery-aside{display:none !important;}
  .choir-section{background:white !important;border:none !important;}
  .choir-section .prayer-section-heading{color:#333 !important;}
  .choir-section .prayer-text,.choir-section .prayer-note,
  .choir-section .choir-name,.choir-section .choir-desc{color:#241a10 !important;}
  .choir-section .choir-card{background:none !important;border-color:#ccc !important;box-shadow:none !important;}
  .dm-pagehead{background:#fff !important;border-bottom-color:#ccc !important;}
  .dm-pagehead h1{color:#000 !important;}
  .dm-controls{display:none;}
  .dm-page{background:#fff !important;color:#241a10 !important;padding:0 0.5in;}
  .dm-page .dm-figure{display:none !important;}
  .dm-page .dm-grid{display:block;}
  .dm-page .dm-prayer{border-left-color:#ccc;}
  .dm-page .dm-step .num{background:#999;color:#fff;}
  .dm-page .dm-step{color:#333;}
  .dm-pagehead .kicker,.dm-pagehead .sub{color:#666;}
  .dm-page .dm-rubric,.dm-page .dm-cap{color:#666;}
  .dm-page .dm-decade{border-color:#ccc;background:none;}
}

/* ─── Static fallback for Bible & Catechism (crawlability) ─── */
html.js .bible-static-books,
html.js .cat-card-static{display:none !important;}
.bible-static-books{display:flex;flex-direction:column;gap:18px;margin-bottom:28px;}
.bible-static-book{background:var(--espresso-2);border:1px solid var(--rule-dark);border-radius:10px;padding:14px 18px;}
.bible-static-book-head{font-family:var(--display);font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:var(--paper);margin-bottom:6px;}
.bible-static-book-head strong{color:var(--champagne);}
.bible-static-chapters{font-family:var(--body);font-size:.88rem;line-height:1.9;color:var(--muted-dark);}
.bible-static-chapters a{color:var(--champagne);text-decoration:none;margin-right:4px;}
.bible-static-chapters a:hover{color:var(--paper);text-decoration:underline;}
.cat-card-static{background:var(--espresso-2);border:1px solid var(--rule-dark);border-radius:12px;padding:24px;margin-bottom:16px;}
.cat-card-static .cat-card-abbr{font-family:var(--display);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--champagne);display:block;margin-bottom:4px;}
.cat-card-static .cat-card-title{font-family:var(--head);font-size:1.25rem;color:var(--paper);margin:0 0 4px;}
.cat-card-static .cat-card-subtitle{font-family:var(--head);font-style:italic;color:var(--champagne);font-size:.95rem;margin:0 0 8px;}
.cat-card-static .cat-card-desc{font-family:var(--body);font-size:.92rem;color:var(--muted-dark);line-height:1.55;margin:0 0 8px;}
.cat-card-static .cat-card-meta{font-family:var(--display);font-size:.7rem;letter-spacing:.08em;color:var(--muted);margin-bottom:6px;}
.cat-static-parts{font-family:var(--body);font-size:.85rem;color:var(--champagne);margin:6px 0 0;}
.cat-static-sample{margin-top:12px;padding-top:12px;border-top:1px solid var(--rule-dark);}
.cat-static-item{font-family:var(--body);font-size:.88rem;color:var(--muted-dark);line-height:1.55;margin:8px 0;}
.cat-static-item .cat-para-num{font-family:var(--display);font-size:.7rem;color:var(--champagne);margin-right:6px;}

/* ───────────────── CINEMATIC IMAGE SEQUENCE ───────────────── */
.cine-seq{
  position:relative;
  width:100%;
  aspect-ratio:4/3;
  overflow:hidden;
  background:#0a0604;
  border-radius:2px;
}
.cine-seq img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  will-change:opacity,transform;
  transition:opacity 1.8s ease-in-out;
}
.cine-seq img.cine-active{opacity:1;}

@media(prefers-reduced-motion:no-preference){
  .cine-seq img.cine-active{
    animation:cine-kb 8.8s ease-in-out forwards;
  }
  @keyframes cine-kb{
    from{transform:scale(1);}
    to{transform:scale(1.06);}
  }
}

.cine-credit{
  font-family:var(--display);
  font-size:10px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--muted);
  text-align:center;
  margin-top:12px;
  opacity:.7;
}

@media(prefers-reduced-motion:reduce){
  .cine-seq img{transition:none;animation:none;transform:none;}
  .cine-seq img:first-of-type{opacity:1;}
  .cine-advance-btn{
    position:absolute;inset:0;z-index:2;
    background:none;border:none;cursor:pointer;
    width:100%;height:100%;
  }
  .cine-advance-btn:focus-visible{outline:2px solid var(--gold);outline-offset:-4px;}
}

@media(prefers-reduced-motion:no-preference){
  .cine-advance-btn{display:none;}
}

/* ───────────────── HEAVEN + GALLERY SIDE-BY-SIDE ───────────────── */
.heaven-gallery-section{
  padding:60px 32px;
  background:
    radial-gradient(ellipse at 60% 30%, rgba(180,155,80,.10), transparent 60%),
    linear-gradient(180deg, #0f1b30 0%, #081422 50%, #0f1b30 100%);
  border-top:1px solid rgba(180,160,90,.22);
  border-bottom:1px solid rgba(180,160,90,.22);
}
.heaven-gallery-header{max-width:1440px;margin:0 auto 0;}
.heaven-gallery-header .prayer-section-heading{color:var(--champagne);}
.heaven-gallery-wrap{
  display:grid;
  grid-template-columns:1fr 680px;
  gap:48px;
  max-width:1440px;
  margin:0 auto;
  align-items:start;
}
.heaven-gallery-text{max-width:var(--measure);}
.heaven-gallery-text .prayer-card{margin-bottom:44px;padding-bottom:44px;border-bottom:1px solid rgba(180,160,90,.22);}
.heaven-gallery-text .prayer-text{color:var(--paper);opacity:.92;}
.heaven-gallery-text .prayer-text em{color:var(--muted-dark);}
.heaven-gallery-text .prayer-note{color:var(--champagne);}
.heaven-gallery-text .prayer-note strong{color:var(--champagne);}
.heaven-gallery-text .prayer-text a{color:var(--champagne);}
.heaven-gallery-aside{position:relative;}
.heaven-gallery-sticky{
  position:sticky;
  top:32px;
}
.heaven-gallery-section .cine-seq{background:#0a1220;}
.heaven-gallery-section .cine-credit{color:var(--muted-dark);opacity:.5;}
@media(max-width:1200px){
  .heaven-gallery-wrap{
    grid-template-columns:1fr 480px;
  }
}
@media(max-width:960px){
  .heaven-gallery-wrap{
    grid-template-columns:1fr;
    max-width:var(--measure);
    gap:32px;
  }
  .heaven-gallery-aside{order:-1;}
  .heaven-gallery-sticky{position:static;}
}
@media(max-width:560px){
  .heaven-gallery-section{padding:40px 20px;}
}

/* ───────────────── HELL + GALLERY SIDE-BY-SIDE ───────────────── */
.hell-gallery-section{
  padding:60px 32px;
  background:
    radial-gradient(ellipse at 30% 20%, rgba(80,20,10,.18), transparent 60%),
    linear-gradient(180deg, var(--espresso) 0%, #0e0906 50%, var(--espresso) 100%);
  border-top:1px solid var(--rule-dark);
  border-bottom:1px solid var(--rule-dark);
}
.hell-gallery-header{max-width:1440px;margin:0 auto 0;}
.hell-gallery-header .prayer-section-heading{color:var(--champagne);}
.hell-gallery-wrap{
  display:grid;
  grid-template-columns:1fr 680px;
  gap:48px;
  max-width:1440px;
  margin:0 auto;
  align-items:start;
}
.hell-gallery-text{max-width:var(--measure);}
.hell-gallery-text .prayer-card{margin-bottom:44px;padding-bottom:44px;border-bottom:1px solid var(--rule-dark);}
.hell-gallery-text .prayer-text{color:var(--paper);opacity:.92;}
.hell-gallery-text .prayer-text em{color:var(--muted-dark);}
.hell-gallery-text .prayer-note{color:var(--champagne);}
.hell-gallery-text .prayer-note strong{color:var(--champagne);}
.hell-gallery-text .prayer-text a{color:var(--champagne);}
.hell-gallery-aside{position:relative;}
.hell-gallery-sticky{
  position:sticky;
  top:32px;
}
.hell-gallery-section .cine-credit{color:var(--muted-dark);opacity:.5;}
@media(max-width:1200px){
  .hell-gallery-wrap{
    grid-template-columns:1fr 480px;
  }
}
@media(max-width:960px){
  .hell-gallery-wrap{
    grid-template-columns:1fr;
    max-width:var(--measure);
    gap:32px;
  }
  .hell-gallery-aside{order:-1;}
  .hell-gallery-sticky{position:static;}
}
@media(max-width:560px){
  .hell-gallery-section{padding:40px 20px;}
}

/* ───────────────── DIVINE MERCY PAGE (DARK THEME) ───────────────── */
.dm-page{
  --dm-ink:#1a120b;
  --dm-ink-2:#241811;
  --dm-gold:#c9a24b;
  --dm-gold-soft:#e3c987;
  --dm-parchment:#efe4cf;
  --dm-parchment-dim:#bda985;
  --dm-rule:rgba(201,162,75,.28);
  --dm-ray-red:#d24b4b;
  --dm-ray-blue:#dfeaf2;

  background:
    radial-gradient(120% 80% at 50% -10%, rgba(201,162,75,.10), transparent 60%),
    var(--dm-ink);
  color:var(--dm-parchment);
  font-family:var(--body);
  font-size:18px;
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
  padding:clamp(1.25rem,4vw,3rem) clamp(1rem,5vw,2rem) 4rem;
}
.dm-wrap{max-width:1180px;margin:0 auto;}

/* dark pagehead */
.dm-pagehead{
  background:linear-gradient(180deg, #1e150e, #1a120b) !important;
  border-bottom:1px solid rgba(201,162,75,.28);
}
.dm-pagehead .a-emblem{filter:drop-shadow(0 2px 10px rgba(201,162,75,.35)) brightness(1.1);}
.dm-pagehead .kicker{color:#c9a24b;}
.dm-pagehead h1{font-family:var(--display);color:#efe4cf;}
.dm-pagehead .sub{color:#bda985;}
.dm-controls{
  background:#1a120b;padding:24px 0 0;
}

/* language toggle (dark variant) */
.dm-lang-row .rosary-lang-label{color:#bda985;}
.dm-lang-row .rosary-lang-label.rosary-lang-active{color:#e3c987;}
.dm-lang-row .rosary-lang-toggle{
  background:#241811;border-color:rgba(201,162,75,.28);
}
.dm-lang-row .rosary-lang-toggle .rosary-lang-thumb{background:#c9a24b;}

/* two-column body */
.dm-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
  gap:clamp(1.5rem,4vw,3.5rem);
  align-items:start;
}

/* sticky image column */
.dm-figure{position:sticky;top:1.5rem;margin:0;}
.dm-frame{
  position:relative;border-radius:14px;overflow:hidden;
  border:1px solid var(--dm-rule);
  box-shadow:0 1px 0 rgba(227,201,135,.12) inset, 0 24px 60px -28px rgba(0,0,0,.85);
  background:
    radial-gradient(80% 60% at 50% 18%, rgba(223,234,242,.10), transparent 55%),
    radial-gradient(75% 70% at 50% 78%, rgba(210,75,75,.10), transparent 55%),
    var(--dm-ink-2);
}
.dm-frame::after{
  content:"";position:absolute;inset:8px;border:1px solid rgba(201,162,75,.22);
  border-radius:9px;pointer-events:none;
}
.dm-frame img{display:block;width:100%;height:100%;object-fit:contain;}
.dm-slideshow{position:relative;aspect-ratio:2/3;}
.dm-slide{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;transition:opacity 1.2s ease;}
.dm-slide:first-child{position:relative;width:100%;height:100%;}
.dm-slide-active{opacity:1;}
.dm-cap{
  text-align:center;font-style:italic;color:var(--dm-parchment-dim);
  font-size:.92rem;margin:.85rem .4rem 0;line-height:1.5;
}
.dm-cap b{color:var(--dm-gold-soft);font-style:normal;font-weight:600;font-size:1.09rem;}

/* prayer column */
.dm-intro p{margin:0 0 1rem;color:var(--dm-parchment);}
.dm-intro .lead{color:var(--dm-gold-soft);}

.dm-section{margin:.5rem 0 0;}
.dm-step{
  display:flex;align-items:baseline;gap:.6rem;
  font-family:var(--head);font-weight:600;font-size:1.5rem;
  color:var(--dm-gold-soft);margin:0 0 .15rem;letter-spacing:.01em;
}
.dm-step .num{
  font-family:var(--body);font-size:.7rem;font-weight:600;letter-spacing:.18em;
  color:var(--dm-ink);background:var(--dm-gold);border-radius:999px;
  padding:.2rem .55rem;transform:translateY(-.18em);white-space:nowrap;
}
.dm-rubric{color:var(--dm-parchment-dim);font-style:italic;margin:.1rem 0 .7rem;font-size:.98rem;}

.dm-prayer{
  border-left:2px solid var(--dm-rule);padding:.15rem 0 .15rem 1.1rem;margin:.6rem 0;
}
.dm-prayer .latin{display:block;color:var(--dm-parchment-dim);font-style:italic;font-size:.96rem;margin-top:.35rem;}
.dm-repeat{
  display:inline-block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--dm-gold);border:1px solid var(--dm-rule);border-radius:999px;
  padding:.18rem .6rem;margin:.2rem 0 .5rem;
}
.dm-decade{
  background:linear-gradient(180deg, rgba(201,162,75,.06), transparent);
  border:1px solid var(--dm-rule);border-radius:12px;padding:1rem 1.15rem;margin:.8rem 0;
}
.dm-decade h4{
  font-family:var(--head);font-size:1.15rem;color:var(--dm-gold-soft);
  margin:0 0 .5rem;font-weight:600;
}
.dm-hr{border:0;height:1px;background:var(--dm-rule);margin:2.4rem 0;}
.dm-quote{
  font-family:var(--head);font-style:italic;font-size:1.45rem;line-height:1.4;
  text-align:center;color:var(--dm-parchment);margin:2.6rem auto 0;max-width:30rem;
}
.dm-quote .src{display:block;font-family:var(--body);font-style:normal;
  font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dm-gold);margin-top:.8rem;}
.dm-colophon{
  text-align:center;color:var(--dm-parchment-dim);font-size:.88rem;
  margin:2rem 0 0;font-style:italic;line-height:1.55;
}

/* responsive */
@media(max-width:820px){
  .dm-grid{grid-template-columns:1fr;}
  .dm-figure{position:static;top:auto;max-width:440px;margin:0 auto 1rem;}
  .dm-page{font-size:17px;}
}
@media(prefers-reduced-motion:no-preference){
  .dm-fade{opacity:0;transform:translateY(10px);animation:dmIn .9s ease forwards;}
  @keyframes dmIn{to{opacity:1;transform:none;}}
}

/* ───────────────── SEVEN SORROWS PAGE (DARK THEME) ───────────────── */
.ss-page{
  --ss-ink:#1a120b;
  --ss-ink-2:#241811;
  --ss-gold:#c9a24b;
  --ss-gold-soft:#e3c987;
  --ss-parchment:#efe4cf;
  --ss-parchment-dim:#bda985;
  --ss-rule:rgba(201,162,75,.28);
  --ss-blue-muted:#8aa4c0;

  background:
    radial-gradient(120% 80% at 50% -10%, rgba(201,162,75,.10), transparent 60%),
    var(--ss-ink);
  color:var(--ss-parchment);
  font-family:var(--body);
  font-size:18px;
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
  padding:clamp(1.25rem,4vw,3rem) clamp(1rem,5vw,2rem) 4rem;
}
.ss-wrap{max-width:1180px;margin:0 auto;}

/* dark pagehead */
.ss-pagehead{
  background:linear-gradient(180deg, #1e150e, #1a120b) !important;
  border-bottom:1px solid rgba(201,162,75,.28);
}
.ss-pagehead .a-emblem{filter:drop-shadow(0 2px 10px rgba(201,162,75,.35)) brightness(1.1);}
.ss-pagehead .kicker{color:#c9a24b;}
.ss-pagehead h1{font-family:var(--display);color:#efe4cf;}
.ss-pagehead .sub{color:#bda985;}

/* how-to section on dark bg */
.ss-how-to{
  background:var(--ss-ink);padding:20px 0 0;
}
.ss-how-to .rosary-how-to{
  border-color:var(--ss-rule);
}
.ss-how-to .rosary-how-to summary{color:var(--ss-gold-soft);}
.ss-how-to .rosary-how-to-body{color:var(--ss-parchment);}
.ss-how-to .rosary-how-to-body strong{color:var(--ss-gold-soft);}

/* two-column body */
.ss-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
  gap:clamp(1.5rem,4vw,3.5rem);
  align-items:start;
}

/* sticky image column — right side */
.ss-figure{position:sticky;top:1.5rem;margin:0;order:2;}
.ss-prayers{order:1;}
.ss-frame{
  position:relative;border-radius:14px;overflow:hidden;
  border:1px solid var(--ss-rule);
  box-shadow:0 1px 0 rgba(227,201,135,.12) inset, 0 24px 60px -28px rgba(0,0,0,.85);
  background:
    radial-gradient(80% 60% at 50% 18%, rgba(201,162,75,.08), transparent 55%),
    var(--ss-ink-2);
}
.ss-frame::after{
  content:"";position:absolute;inset:8px;border:1px solid rgba(201,162,75,.22);
  border-radius:9px;pointer-events:none;
}
.ss-frame img{display:block;width:100%;height:auto;object-fit:contain;}
.ss-cap{
  text-align:center;font-style:italic;color:var(--ss-parchment-dim);
  font-size:.92rem;margin:.85rem .4rem 0;line-height:1.5;
}
.ss-cap b{color:var(--ss-gold-soft);font-style:normal;font-weight:600;font-size:1.09rem;}

/* prayer column */
.ss-intro p{margin:0 0 1rem;color:var(--ss-parchment);}
.ss-intro .lead{color:var(--ss-gold-soft);}

.ss-section{margin:.5rem 0 0;}
.ss-step{
  display:flex;align-items:baseline;gap:.6rem;
  font-family:var(--head);font-weight:600;font-size:1.5rem;
  color:var(--ss-gold-soft);margin:0 0 .15rem;letter-spacing:.01em;
}
.ss-step .num{
  font-family:var(--body);font-size:.7rem;font-weight:600;letter-spacing:.18em;
  color:var(--ss-ink);background:var(--ss-gold);border-radius:999px;
  padding:.2rem .55rem;transform:translateY(-.18em);white-space:nowrap;
}
.ss-rubric{color:var(--ss-parchment-dim);font-style:italic;margin:.1rem 0 .7rem;font-size:.98rem;}

.ss-prayer{
  border-left:2px solid var(--ss-rule);padding:.15rem 0 .15rem 1.1rem;margin:.6rem 0;
}

/* sorrow cards */
.ss-sorrow{
  background:linear-gradient(180deg, rgba(201,162,75,.06), transparent);
  border:1px solid var(--ss-rule);border-radius:14px;
  padding:0;margin:1.8rem 0;overflow:hidden;
}
.ss-sorrow-head{
  display:flex;flex-direction:column;gap:0;margin-bottom:0;
}
.ss-sorrow-img-link{
  display:block;width:100%;overflow:hidden;
  border-bottom:1px solid var(--ss-rule);
  background:rgba(0,0,0,.2);
}
.ss-sorrow-img{
  width:100%;object-fit:contain;
  display:block;
  cursor:pointer;transition:transform .4s ease, filter .4s ease;
}
.ss-sorrow-img:hover{
  transform:scale(1.03);
  filter:brightness(1.08);
}
.ss-sorrow-text{
  padding:1.2rem 1.3rem .2rem;
}
.ss-sorrow-label{
  font-family:var(--body);font-size:.7rem;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ss-gold);margin:0 0 .2rem;
}
.ss-sorrow-title{
  font-family:var(--head);font-size:1.35rem;font-weight:600;
  color:var(--ss-gold-soft);margin:0;line-height:1.3;
}
.ss-sorrow-body{
  padding:0 1.3rem 1.2rem;
}
.ss-scripture-ref{
  color:var(--ss-parchment-dim);font-style:italic;font-size:.92rem;margin:.6rem 0 .4rem;
}
.ss-scripture{
  font-style:italic;color:var(--ss-parchment);margin:.4rem 0;
  border-left:2px solid var(--ss-rule);padding:.15rem 0 .15rem 1.1rem;
}
.ss-meditation{
  color:var(--ss-parchment);margin:.6rem 0;
  border-left:2px solid var(--ss-rule);padding:.15rem 0 .15rem 1.1rem;
}
.ss-hail-mary{
  font-style:italic;color:var(--ss-parchment-dim);margin:.4rem 0 0;
  font-size:.96rem;
}
.ss-hr{border:0;height:1px;background:var(--ss-rule);margin:2.4rem 0;}
.ss-quote{
  font-family:var(--head);font-style:italic;font-size:1.45rem;line-height:1.4;
  text-align:center;color:var(--ss-parchment);margin:2.6rem auto 0;max-width:30rem;
}
.ss-quote .src{
  display:block;font-family:var(--body);font-style:normal;
  font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ss-gold);margin-top:.8rem;
}
.ss-colophon{
  text-align:center;color:var(--ss-parchment-dim);font-size:.88rem;
  margin:2rem 0 0;font-style:italic;line-height:1.55;
}

/* toc on dark */
.ss-toc{margin:0 0 1.5rem;}
.ss-toc-heading{
  font-family:var(--display);font-size:.72rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--ss-gold);margin:0 0 .6rem;
}
.ss-toc a{
  display:block;font-family:var(--body);font-size:1.15rem;
  color:var(--ss-parchment-dim);text-decoration:none;padding:.22rem 0;
  transition:color .2s;
}
.ss-toc a:hover{color:var(--ss-gold-soft);}

/* responsive */
@media(max-width:820px){
  .ss-grid{grid-template-columns:1fr;}
  .ss-figure{position:static;top:auto;max-width:360px;margin:0 auto 1rem;order:0;}
  .ss-prayers{order:0;}
  .ss-page{font-size:17px;}
  .ss-toc a{font-size:1rem;}
  .ss-sorrow-img{max-height:none;}
}
@media(prefers-reduced-motion:no-preference){
  .ss-fade{opacity:0;transform:translateY(10px);animation:ssIn .9s ease forwards;}
  @keyframes ssIn{to{opacity:1;transform:none;}}
}
@media print{
  .ss-pagehead{background:#fff !important;border-bottom-color:#ccc !important;}
  .ss-pagehead h1{color:#000 !important;}
  .ss-how-to{display:none;}
  .ss-page{background:#fff !important;color:#241a10 !important;padding:0 0.5in;}
  .ss-page .ss-figure{display:none !important;}
  .ss-page .ss-grid{display:block;}
  .ss-page .ss-prayer,.ss-page .ss-scripture,.ss-page .ss-meditation{border-left-color:#ccc;}
  .ss-page .ss-step .num{background:#999;color:#fff;}
  .ss-page .ss-step{color:#333;}
  .ss-pagehead .kicker,.ss-pagehead .sub{color:#666;}
  .ss-page .ss-rubric,.ss-page .ss-cap{color:#666;}
  .ss-page .ss-sorrow{border-color:#ccc;background:none;}
}

/* ───────────────── JOYFUL MYSTERIES PAGE (MARIAN LIGHT THEME) ───────────────── */
.jm-page{
  --jm-blue:#3a5f8a;
  --jm-blue-soft:#5d80aa;
  --jm-sky:#dbe6f0;
  --jm-sky-2:#eef4fa;
  --jm-gold:#9a7a2e;
  --jm-gold-deep:#7d6224;
  --jm-ink:#2c3a48;
  --jm-ink-dim:#5b6a79;
  --jm-card:#fbfcfe;
  --jm-rule:rgba(58,95,138,.24);

  background:
    radial-gradient(120% 80% at 50% -10%, rgba(255,255,255,.85), transparent 60%),
    linear-gradient(180deg, var(--jm-sky-2), var(--jm-sky));
  color:var(--jm-ink);
  font-family:var(--body);
  font-size:18px;
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
  padding:clamp(1.25rem,4vw,3rem) clamp(1rem,5vw,2rem) 4rem;
}
.jm-wrap{max-width:1180px;margin:0 auto;}

/* light pagehead */
.jm-pagehead{
  background:linear-gradient(180deg, #f3f7fb, #e3ecf4) !important;
  border-bottom:1px solid var(--jm-rule);
}
.jm-pagehead .a-emblem{filter:drop-shadow(0 2px 10px rgba(58,95,138,.28));}
.jm-pagehead .kicker{color:var(--jm-gold);}
.jm-pagehead h1{font-family:var(--display);color:#26405e;}
.jm-pagehead .sub{color:var(--jm-blue);}

/* two-column body */
.jm-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
  gap:clamp(1.5rem,4vw,3.5rem);
  align-items:start;
}

/* sticky image column — right side */
.jm-figure{position:sticky;top:1.5rem;margin:0;order:2;}
.jm-prayers{order:1;}
.jm-frame{
  position:relative;border-radius:14px;overflow:hidden;
  border:1px solid var(--jm-rule);
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset, 0 24px 60px -30px rgba(40,64,94,.45);
  background:
    radial-gradient(80% 60% at 50% 18%, rgba(255,255,255,.6), transparent 55%),
    var(--jm-card);
}
.jm-frame::after{
  content:"";position:absolute;inset:8px;border:1px solid rgba(58,95,138,.18);
  border-radius:9px;pointer-events:none;
}
.jm-frame img{display:block;width:100%;height:auto;object-fit:contain;}
.jm-cap{
  text-align:center;font-style:italic;color:var(--jm-ink-dim);
  font-size:.92rem;margin:.85rem .4rem 0;line-height:1.5;
}
.jm-cap b{color:var(--jm-blue);font-style:normal;font-weight:600;font-size:1.09rem;}

/* prayer column */
.jm-intro p{margin:0 0 1rem;color:var(--jm-ink);}
.jm-intro .lead{color:var(--jm-blue);font-weight:600;}

.jm-section{margin:.5rem 0 0;}
.jm-step{
  display:flex;align-items:baseline;gap:.6rem;
  font-family:var(--head);font-weight:600;font-size:1.5rem;
  color:var(--jm-blue);margin:0 0 .15rem;letter-spacing:.01em;
}
.jm-step .num{
  font-family:var(--body);font-size:.7rem;font-weight:600;letter-spacing:.18em;
  color:#fff;background:var(--jm-gold);border-radius:999px;
  padding:.2rem .55rem;transform:translateY(-.18em);white-space:nowrap;
}
.jm-rubric{color:var(--jm-ink-dim);font-style:italic;margin:.1rem 0 .7rem;font-size:.98rem;}

.jm-prayer{
  border-left:2px solid var(--jm-rule);padding:.15rem 0 .15rem 1.1rem;margin:.6rem 0;
}

/* mystery cards */
.jm-mystery{
  background:linear-gradient(180deg, rgba(255,255,255,.6), rgba(255,255,255,.25));
  border:1px solid var(--jm-rule);border-radius:14px;
  padding:0;margin:1.8rem 0;overflow:hidden;
  box-shadow:0 18px 44px -34px rgba(40,64,94,.5);
}
.jm-mystery-head{
  display:flex;flex-direction:column;gap:0;margin-bottom:0;
}
.jm-mystery-img-link{
  display:block;width:100%;overflow:hidden;
  border-bottom:1px solid var(--jm-rule);
  background:rgba(255,255,255,.4);
}
.jm-mystery-img{
  width:100%;object-fit:contain;
  display:block;
  cursor:pointer;transition:transform .4s ease, filter .4s ease;
}
.jm-mystery-img:hover{
  transform:scale(1.03);
  filter:brightness(1.05);
}
.jm-mystery-text{
  padding:1.2rem 1.3rem .2rem;
}
.jm-mystery-label{
  font-family:var(--body);font-size:.7rem;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--jm-gold);margin:0 0 .2rem;
}
.jm-mystery-title{
  font-family:var(--head);font-size:1.35rem;font-weight:600;
  color:var(--jm-blue);margin:0;line-height:1.3;
}
.jm-mystery-body{
  padding:0 1.3rem 1.2rem;
}
.jm-fruit{
  color:var(--jm-gold-deep);font-style:italic;font-size:.95rem;margin:.7rem 0 .2rem;
}
.jm-scripture-ref{
  color:var(--jm-ink-dim);font-style:italic;font-size:.92rem;margin:.6rem 0 .4rem;
}
.jm-scripture{
  font-style:italic;color:var(--jm-ink);margin:.4rem 0;
  border-left:2px solid var(--jm-rule);padding:.15rem 0 .15rem 1.1rem;
}
.jm-meditation{
  color:var(--jm-ink);margin:.6rem 0;
  border-left:2px solid var(--jm-rule);padding:.15rem 0 .15rem 1.1rem;
}
.jm-hail-mary{
  font-style:italic;color:var(--jm-ink-dim);margin:.4rem 0 0;
  font-size:.96rem;
}
.jm-hr{border:0;height:1px;background:var(--jm-rule);margin:2.4rem 0;}
.jm-quote{
  font-family:var(--head);font-style:italic;font-size:1.45rem;line-height:1.4;
  text-align:center;color:var(--jm-ink);margin:2.6rem auto 0;max-width:30rem;
}
.jm-quote .src{
  display:block;font-family:var(--body);font-style:normal;
  font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--jm-gold);margin-top:.8rem;
}
.jm-colophon{
  text-align:center;color:var(--jm-ink-dim);font-size:.88rem;
  margin:2rem 0 0;font-style:italic;line-height:1.55;
}

/* toc on light */
.jm-toc{margin:0 0 1.5rem;}
.jm-toc-heading{
  font-family:var(--display);font-size:.72rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--jm-gold);margin:0 0 .6rem;
}
.jm-toc a{
  display:block;font-family:var(--body);font-size:1rem;
  color:var(--jm-ink-dim);text-decoration:none;padding:.22rem 0;
  transition:color .2s;
}
.jm-toc a:hover{color:var(--jm-blue);}

/* responsive */
@media(max-width:820px){
  .jm-grid{grid-template-columns:1fr;}
  .jm-figure{position:static;top:auto;max-width:360px;margin:0 auto 1rem;order:0;}
  .jm-prayers{order:0;}
  .jm-page{font-size:17px;}
  .jm-mystery-img{max-height:none;}
}
@media(prefers-reduced-motion:no-preference){
  .jm-fade{opacity:0;transform:translateY(10px);animation:jmIn .9s ease forwards;}
  @keyframes jmIn{to{opacity:1;transform:none;}}
}
@media print{
  .jm-pagehead{background:#fff !important;border-bottom-color:#ccc !important;}
  .jm-pagehead h1{color:#000 !important;}
  .jm-page{background:#fff !important;color:#241a10 !important;padding:0 0.5in;}
  .jm-page .jm-figure{display:none !important;}
  .jm-page .jm-grid{display:block;}
  .jm-page .jm-prayer,.jm-page .jm-scripture,.jm-page .jm-meditation{border-left-color:#ccc;}
  .jm-page .jm-step .num{background:#999;color:#fff;}
  .jm-page .jm-step{color:#333;}
  .jm-pagehead .kicker,.jm-pagehead .sub{color:#666;}
  .jm-page .jm-rubric,.jm-page .jm-cap{color:#666;}
  .jm-page .jm-mystery{border-color:#ccc;background:none;}
}

/* ═══════════════════════════════════════════════════
   LITURGICAL CALENDAR
   ═══════════════════════════════════════════════════ */

/* ── Today Strip (Home Page) ─────────────────────── */
.litcal-today-sec{
  padding:40px 0 48px;
  border-bottom:1px solid var(--rule);
}
.litcal-strip{
  background:var(--espresso);
  border-radius:10px;
  padding:28px 32px 24px;
  color:var(--muted-dark);
}
.litcal-strip-head{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:16px;flex-wrap:wrap;gap:10px;
}
.litcal-strip-body{
  font-family:var(--head);
  font-size:clamp(20px,3vw,28px);
  font-weight:600;
  color:var(--paper);
  line-height:1.25;
  margin-bottom:10px;
}
.litcal-strip-celebration{vertical-align:middle;}
.litcal-strip-meta{
  font-family:var(--display);font-size:11px;letter-spacing:.18em;
  color:var(--champagne);opacity:.85;
  display:flex;flex-wrap:wrap;gap:4px 0;align-items:center;
  margin-bottom:10px;
}
.litcal-strip-sep{margin:0 8px;opacity:.5;}
.litcal-strip-comm{
  font-family:var(--body);font-size:15px;
  color:var(--muted-dark);opacity:.75;
  margin-bottom:10px;
}
.litcal-strip-reading{
  margin-top:8px;font-family:var(--body);font-size:14px;
}
.litcal-strip-reading a{
  color:var(--champagne);text-decoration:none;font-weight:500;
}
.litcal-strip-reading a:hover{
  color:var(--paper);text-decoration:underline;
}
.litcal-strip-link{
  margin-top:14px;
  color:var(--champagne) !important;
}
.litcal-strip-link:hover{color:var(--paper) !important;}

/* ── Toggle Switch ───────────────────────────────── */
.litcal-toggle{
  display:inline-flex;align-items:center;gap:10px;
  background:none;border:none;cursor:pointer;color:var(--muted-dark);
  font-family:var(--display);font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;padding:0;
}
.litcal-toggle:hover{color:var(--paper);}
.litcal-toggle-switch{
  display:inline-block;width:38px;height:20px;
  background:rgba(201,168,90,.2);
  border-radius:10px;position:relative;
  transition:background .25s;
}
.litcal-toggle-switch.on{background:var(--gold);}
.litcal-toggle-knob{
  position:absolute;top:2px;left:2px;
  width:16px;height:16px;border-radius:50%;
  background:var(--paper);
  transition:transform .25s;
  box-shadow:0 1px 3px rgba(0,0,0,.3);
}
.litcal-toggle-switch.on .litcal-toggle-knob{transform:translateX(18px);}

/* ── Calendar Hero ───────────────────────────────── */
.litcal-hero{
  background:var(--espresso);
  padding:60px 0 48px;
  text-align:center;
  color:var(--paper);
}
.litcal-hero h1{
  font-family:var(--head);
  font-size:clamp(28px,5vw,48px);
  color:var(--paper);
  margin-bottom:14px;
}
.litcal-hero .orn .ln{background:var(--rule-dark);}
.litcal-hero .orn .dot{color:var(--champagne);}
.litcal-hero .orn{margin:0 0 20px;}
.litcal-hero-sub{
  font-family:var(--body);font-size:17px;line-height:1.65;
  color:var(--muted-dark);max-width:580px;margin:0 auto;
}

/* ── Calendar Section ────────────────────────────── */
.litcal-sec{padding:40px 0 60px;}

/* Today at a Glance */
.litcal-glance{background:#fdfaf2;border:1px solid var(--rule);border-radius:10px;padding:32px 28px 28px;margin-bottom:36px;}
.litcal-glance-title{font-family:var(--head);font-size:clamp(20px,2.6vw,26px);color:var(--ink);margin-bottom:20px;text-align:center;}
.litcal-glance-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
@media(max-width:700px){.litcal-glance-grid{grid-template-columns:1fr;}}
.litcal-glance-main{}
.litcal-glance-celebration{font-family:var(--head);font-size:22px;color:var(--ink);margin-bottom:8px;font-weight:600;}
.litcal-glance-meta{font-family:var(--body);font-size:15px;color:var(--muted);margin-bottom:10px;}
.litcal-glance-meta .litcal-strip-sep{margin:0 6px;}
.litcal-glance-comm{font-size:15px;color:var(--muted);margin-top:6px;}
.litcal-glance-fast{margin-top:12px;padding:10px 14px;background:rgba(154,122,46,.08);border-left:3px solid var(--gold);border-radius:4px;font-size:15px;color:var(--ink);}
.litcal-glance-aside{display:flex;flex-direction:column;gap:16px;}
.litcal-glance-item{padding:0 0 12px;border-bottom:1px solid var(--rule);}
.litcal-glance-item:last-child{border-bottom:none;padding-bottom:0;}
.litcal-glance-label{display:block;font-family:var(--display);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:6px;}
.litcal-glance-value{display:block;font-family:var(--head);font-size:16px;color:var(--ink);font-weight:600;}
.litcal-glance-date{display:block;font-size:14px;color:var(--muted);margin-top:2px;}
.litcal-glance-feast{margin-bottom:8px;}
.litcal-glance-feast:last-child{margin-bottom:0;}

/* Calendar form note */
.litcal-form-note{font-family:var(--body);font-size:14px;color:var(--muted);margin-top:8px;line-height:1.5;}

.litcal-page-toggle{
  text-align:center;margin-bottom:24px;
}
.litcal-page-toggle .litcal-toggle{
  color:var(--muted);
}
.litcal-page-toggle .litcal-toggle:hover{color:var(--ink);}

/* ── Month Navigation ────────────────────────────── */
.litcal-nav{
  display:flex;align-items:center;justify-content:center;gap:24px;
  margin-bottom:24px;
}
.litcal-nav-title{
  font-family:var(--head);
  font-size:clamp(22px,3.5vw,32px);
  font-weight:600;
  min-width:240px;text-align:center;
}
.litcal-nav-btn{
  background:none;border:1px solid var(--rule);
  color:var(--gold-deep);font-size:18px;
  width:38px;height:38px;border-radius:50%;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .2s,color .2s;
  font-family:var(--body);
}
.litcal-nav-btn:hover{
  background:var(--espresso);color:var(--champagne);border-color:var(--espresso);
}

/* ── Calendar Grid ───────────────────────────────── */
.litcal-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:3px;
  margin-bottom:32px;
}
.litcal-hdr{
  font-family:var(--display);
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  text-align:center;padding:10px 4px;
  color:var(--muted);
  border-bottom:1px solid var(--rule);
}
.litcal-cell{
  background:var(--paper-card);
  border:1px solid var(--rule);
  border-radius:4px;
  min-height:90px;
  padding:6px 8px;
  cursor:pointer;
  position:relative;
  transition:box-shadow .2s,border-color .2s;
  overflow:hidden;
}
.litcal-cell::before{
  content:'';
  position:absolute;top:0;left:0;right:0;height:4px;
  background:var(--cell-color,#2e5a3a);
  border-radius:4px 4px 0 0;
}
.litcal-cell:hover{
  box-shadow:0 2px 12px rgba(154,122,46,.18);
  border-color:var(--gold);
}
.litcal-cell-empty{
  background:transparent;border:none;cursor:default;min-height:0;
}
.litcal-cell-empty::before{display:none;}
.litcal-cell-empty:hover{box-shadow:none;border-color:transparent;}
.litcal-day-num{
  font-family:var(--display);font-size:13px;font-weight:600;
  color:var(--ink);display:block;margin-bottom:2px;
}
.litcal-sunday .litcal-day-num{color:var(--gold-deep);}
.litcal-today-cell{
  border-color:var(--gold) !important;
  box-shadow:0 0 0 2px rgba(154,122,46,.25);
}
.litcal-today-cell .litcal-day-num{
  background:var(--gold);color:var(--paper);
  display:inline-block;padding:1px 6px;border-radius:3px;
}
.litcal-day-name{
  font-family:var(--body);font-size:12px;line-height:1.3;
  color:var(--muted);display:block;
}
.litcal-day-reading{
  display:block;font-family:var(--body);font-size:11px;
  line-height:1.2;margin-top:3px;
  color:var(--gold-deep);text-decoration:none;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.litcal-day-reading:hover{
  color:var(--gold);text-decoration:underline;
}

/* ── Day Detail Overlay ──────────────────────────── */
.litcal-detail{
  background:var(--paper-card);
  border:1px solid var(--rule);
  border-radius:8px;
  padding:28px 32px;
  margin:0 auto 32px;
  max-width:600px;
  position:relative;
  box-shadow:0 4px 24px rgba(26,18,11,.12);
}
.litcal-detail-close{
  position:absolute;top:12px;right:16px;
  background:none;border:none;font-size:24px;
  color:var(--muted);cursor:pointer;
  line-height:1;
}
.litcal-detail-close:hover{color:var(--ink);}
.litcal-detail-date{
  font-family:var(--display);font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold);
  margin-bottom:8px;
}
.litcal-detail-celebration{
  font-family:var(--head);
  font-size:clamp(20px,3vw,26px);
  font-weight:600;line-height:1.2;
  color:var(--ink);margin-bottom:14px;
}
.litcal-detail-meta{
  font-family:var(--body);font-size:16px;
  color:var(--muted);line-height:1.8;
  margin-bottom:12px;
}
.litcal-detail-comm{
  font-family:var(--body);font-size:15px;
  color:var(--muted);
  border-top:1px solid var(--rule);
  padding-top:12px;margin-top:8px;
}
.litcal-detail-comm ul{
  list-style:none;margin:6px 0 0;padding:0;
}
.litcal-detail-comm li{
  padding:3px 0;
}
.litcal-detail-comm li::before{
  content:'✦ ';color:var(--gold);font-size:10px;
}
.litcal-detail-readings{
  border-top:1px solid var(--rule);
  padding-top:14px;margin-top:12px;
  font-family:var(--body);font-size:16px;color:var(--ink);
}
.litcal-detail-reading-row{
  margin-top:6px;
}
.litcal-reading-label{
  font-weight:600;color:var(--muted);font-size:14px;
}
.litcal-reading-link{
  color:var(--gold-deep);text-decoration:none;
  font-weight:500;
}
.litcal-reading-link:hover{
  color:var(--gold);text-decoration:underline;
}
.litcal-detail-reading-cycle{
  font-size:13px;color:var(--muted);margin-top:6px;
  font-style:italic;
}
.litcal-glance-readings{
  margin-top:12px;padding:10px 14px;
  background:rgba(154,122,46,.06);
  border-left:3px solid var(--gold);
  border-radius:4px;font-size:15px;
}
.litcal-glance-readings-label{
  font-weight:600;color:var(--ink);display:block;margin-bottom:4px;
}
.litcal-glance-readings .litcal-reading-link{
  display:inline-block;margin-right:16px;font-size:14px;
}

/* ── Verification ────────────────────────────────── */
.litcal-check{
  max-width:600px;margin:0 auto 40px;
  padding:16px 20px;
  border:1px solid var(--rule);border-radius:6px;
  background:var(--paper-card);
}
.litcal-check summary{
  cursor:pointer;
}
.litcal-check ul{
  list-style:none;padding:12px 0 0;margin:0;
  font-family:var(--body);font-size:15px;
  color:var(--muted);
}
.litcal-check li{padding:4px 0;}
.litcal-check strong{color:var(--ink);}

/* ── Responsive ──────────────────────────────────── */
@media(max-width:760px){
  .litcal-cell{min-height:60px;padding:4px 4px;}
  .litcal-day-num{font-size:12px;}
  .litcal-day-name{font-size:10px;}
  .litcal-day-reading{font-size:9px;}
  .litcal-hdr{font-size:9px;letter-spacing:.12em;}
  .litcal-nav-title{min-width:auto;font-size:22px;}
  .litcal-detail{padding:20px 20px;margin:0 12px 24px;}
}
@media(max-width:480px){
  .litcal-cell{min-height:48px;padding:3px 2px;}
  .litcal-day-name{display:none;}
  .litcal-day-reading{display:none;}
  .litcal-grid{gap:2px;}
  .litcal-strip{padding:20px 20px 18px;}
  .litcal-strip-body{font-size:18px;}
}

/* ════════════════════════════════════════════════════════════════
   ANGELS PAGE
   Sacred-art imagery, the nine choirs as a three-tier hierarchy,
   the three Archangels as cards, and supporting figures.
   ════════════════════════════════════════════════════════════════ */

/* ── Inline source citation (CCC §, ST I q.) ── */
.ccc-ref{
  font-family:var(--display);font-size:.72em;letter-spacing:.06em;
  color:var(--gold-deep);white-space:nowrap;
}
.heaven-gallery-text .ccc-ref{color:var(--champagne);}
.heaven-gallery-text .prayer-text strong{color:var(--champagne);}
.heaven-gallery-text .prayer-card{border-bottom:none;}

/* ── Reusable footnote (numbering, choir placement, etc.) ── */
.prayer-footnote{
  font-family:var(--body);font-size:14px;line-height:1.6;color:var(--muted);
  font-style:italic;margin:20px 0 0;padding-top:12px;
  border-top:1px solid var(--rule);
}

/* ── Framed sacred figure (hero, guardian, fallen) ── */
.angel-fig{margin:0 0 8px;}
.angel-fig img{
  display:block;width:100%;height:auto;border-radius:5px;
  box-shadow:0 10px 34px rgba(26,18,11,.22);
}
.angel-fig figcaption{
  font-family:var(--display);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);text-align:center;
  margin-top:12px;
}
/* Hero image sits beneath the page-header title, filling the prose column. */
.angel-hero{margin:30px auto 12px;max-width:100%;}

/* A portrait image floated alongside body prose (guardian / fallen). */
.angel-aside{
  float:right;width:240px;margin:6px 0 18px 28px;
}
@media(max-width:640px){
  .angel-aside{float:none;width:100%;max-width:380px;margin:0 auto 24px;}
}

/* ── The Nine Choirs — three hierarchies, juxtaposed left to right ── */
.choir-hierarchy{
  margin:8px 0 8px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:30px;
  align-items:start;
}
.choir-tier{margin:0;}
.choir-tier-head{text-align:center;margin:0 0 22px;}
.choir-tier-label{
  font-family:var(--display);font-size:13px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);
}
.choir-tier-sub{
  font-family:var(--head);font-style:italic;font-size:20px;
  color:var(--muted);margin-top:4px;
}
/* Within each hierarchy the three choirs stack vertically. */
.choir-grid{
  display:grid;grid-template-columns:1fr;gap:24px;align-content:start;
}
.choir-card{
  background:var(--paper-card);border:1px solid var(--rule);
  border-radius:6px;overflow:hidden;
  box-shadow:0 6px 20px rgba(26,18,11,.10);
  display:flex;flex-direction:column;
}
.choir-card img{
  display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:top center;
}
.choir-card-body{padding:18px 20px 22px;text-align:center;display:flex;flex-direction:column;flex:1;}
.choir-rank{
  font-family:var(--display);font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-deep);
}
.choir-name{
  font-family:var(--head);font-size:25px;font-weight:600;color:var(--ink);
  margin:4px 0 2px;line-height:1.15;
}
.choir-gloss{
  font-family:var(--head);font-style:italic;font-size:16px;color:var(--muted);
  margin-bottom:10px;
}
.choir-desc{font-family:var(--body);font-size:16px;line-height:1.6;color:var(--ink);}
.choir-ref{
  font-family:var(--display);font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);margin-top:auto;padding-top:12px;
}

/* ── The Nine Choirs — dark "Stations of the Cross" backdrop ──
   The three hierarchy groups sit on the same warm-ink, soft-gold
   gradient used by the Stations of the Cross page. Card chrome and
   text are re-toned to read against the dark field, and each angel
   image fills its native 4:5 portrait frame. */
.choir-section{
  background:
    radial-gradient(120% 80% at 50% -10%, rgba(201,162,75,.10), transparent 60%),
    #1a120b;
  border-top:1px solid rgba(201,162,75,.28);
  border-bottom:1px solid rgba(201,162,75,.28);
}
.choir-section .prayer-section-heading{color:#e3c987;}
.choir-section .prayer-text{color:#e7dcc6;}
.choir-section .prayer-text em{color:#efe4cf;}
.choir-section .prayer-note{color:#bda985;}
.choir-section .choir-tier-label{color:#c9a24b;}
.choir-section .choir-tier-sub{color:#bda985;}

.choir-section .choir-card{
  background:linear-gradient(180deg, rgba(201,162,75,.06), transparent), #20160d;
  border:1px solid rgba(201,162,75,.28);
  box-shadow:0 6px 22px rgba(0,0,0,.38);
}
/* Frame hugs the artwork: native 4:5 portrait, filled edge to edge with no
   empty letterbox bars, and no distortion (the source images are 4:5). */
.choir-section .choir-card img{
  aspect-ratio:4/5;
  object-fit:cover;
  object-position:center;
  background:#160d06;
}
.choir-section .choir-rank{color:#c9a24b;}
.choir-section .choir-name{color:#efe4cf;}
.choir-section .choir-gloss{color:#bda985;}
.choir-section .choir-desc{color:#e7dcc6;}
.choir-section .choir-ref{color:#bda985;border-top:1px solid rgba(201,162,75,.18);margin-top:auto;}

/* ── The Three Archangels — cards ── */
.archangel-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:8px;
}
.archangel-card{
  background:var(--paper-card);border:1px solid var(--rule);border-radius:6px;
  overflow:hidden;box-shadow:0 6px 20px rgba(26,18,11,.10);
  display:flex;flex-direction:column;
}
.archangel-card img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:top center;}
.archangel-card-body{padding:22px 22px 26px;display:flex;flex-direction:column;flex:1;}
.archangel-name{
  font-family:var(--head);font-size:27px;font-weight:600;color:var(--ink);
  text-align:center;margin:0;line-height:1.1;
}
.archangel-meaning{
  font-family:var(--head);font-style:italic;font-size:17px;color:var(--gold-deep);
  text-align:center;margin:2px 0 16px;
}
.archangel-card-body p{font-family:var(--body);font-size:16px;line-height:1.65;color:var(--ink);margin:0 0 10px;}
.archangel-meta{
  margin-top:auto;padding-top:14px;border-top:1px solid var(--rule);
  font-family:var(--body);font-size:14.5px;line-height:1.6;color:var(--muted);
}
.archangel-meta strong{font-family:var(--display);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep);}

@media(max-width:860px){
  /* Hierarchies stack vertically; each one's choirs return to a row. */
  .choir-hierarchy{grid-template-columns:1fr;gap:36px;}
  .choir-grid{grid-template-columns:repeat(3,1fr);gap:20px;}
  .archangel-grid{grid-template-columns:repeat(2,1fr);gap:20px;}
}
@media(max-width:560px){
  .choir-grid,.archangel-grid{grid-template-columns:1fr;gap:22px;max-width:380px;margin-left:auto;margin-right:auto;}
}

/* ── Baltimore Catechism Q&A accordion (reuses .rosary-how-to) ── */
.bc-qa .rosary-how-to summary{font-size:15px;letter-spacing:.04em;text-transform:none;font-family:var(--head);font-weight:600;}
.bc-qa .rosary-how-to-body{font-family:var(--body);}
.bc-answer{margin:0;}

/* ── Scripture timeline ── */
.angel-timeline{list-style:none;margin:8px 0 0;padding:0;}
.angel-timeline li{
  position:relative;padding:0 0 22px 28px;border-left:2px solid var(--rule);margin-left:6px;
}
.angel-timeline li:last-child{border-left-color:transparent;padding-bottom:0;}
.angel-timeline li::before{
  content:"";position:absolute;left:-7px;top:4px;width:12px;height:12px;border-radius:50%;
  background:var(--gold-deep);box-shadow:0 0 0 4px var(--paper);
}
.angel-timeline-when{
  font-family:var(--display);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold-deep);display:block;margin-bottom:3px;
}
.angel-timeline-what{font-family:var(--body);font-size:17px;line-height:1.6;color:var(--ink);}
.angel-timeline-ref{font-family:var(--head);font-style:italic;color:var(--muted);}

/* ════════════════════════════════════════════════════════════════
   ANGELS PAGE — isolated overrides (scoped to .page-angels only)
   Everything below is confined to the Angels page (body.page-angels)
   so the Stations of the Cross page, the shared styles, and every
   other page are left untouched.
   ════════════════════════════════════════════════════════════════ */

/* ── CHANGE 2: dark palette, matching /devotions/stations-of-the-cross ── */
body.page-angels{
  background:
    radial-gradient(120% 80% at 50% -10%, rgba(201,162,75,.10), transparent 60%),
    #1a120b;
  color:#efe4cf;
}
.page-angels h1,.page-angels h2,.page-angels h3,.page-angels h4{color:#efe4cf;}
.page-angels a{color:#e3c987;}
.page-angels a:hover{color:#c9a24b;}

/* Page header */
.page-angels .pagehead{
  background:linear-gradient(180deg,#1e150e,#1a120b);
  border-bottom:1px solid rgba(201,162,75,.28);
}
.page-angels .pagehead .a-emblem{filter:drop-shadow(0 2px 10px rgba(201,162,75,.35)) brightness(1.1);}
.page-angels .pagehead h1{color:#efe4cf;}
.page-angels .pagehead .sub{color:#bda985;}
.page-angels .kicker{color:#c9a24b;}

/* Ornamental rules */
.page-angels .orn .ln{background:rgba(201,162,75,.28);}
.page-angels .orn .dot{color:#c9a24b;}

/* Table of contents */
.page-angels .prayer-toc .toc-heading{color:#c9a24b;}
.page-angels .prayer-toc .toc-group{
  background:linear-gradient(180deg,rgba(42,30,19,.74),rgba(30,21,14,.52));
  border-color:rgba(201,162,75,.24);
  box-shadow:none;
}
.page-angels .prayer-toc .toc-heading::before{
  background:rgba(201,162,75,.08);
  border-color:rgba(201,162,75,.34);
  color:#e3c987;
}
.page-angels .prayer-toc .toc-group a{color:#e7dcc6;}
.page-angels .prayer-toc .toc-group a{border-top-color:rgba(201,162,75,.18);}
.page-angels .prayer-toc .toc-group a:hover{color:#e3c987;}

/* Section headings, body cards and prose */
.page-angels .prayer-section-heading{color:#e3c987;}
.page-angels .prayer-card{border-bottom-color:rgba(201,162,75,.22);}
.page-angels .prayer-text{color:#e7dcc6;}
.page-angels .prayer-text em{color:#efe4cf;}
.page-angels .prayer-text strong{color:#efe4cf;}
.page-angels .prayer-text a{color:#e3c987;}
.page-angels .prayer-note{color:#bda985;}
.page-angels .prayer-note strong{color:#e3c987;}
.page-angels .prayer-title{color:#efe4cf;}
.page-angels .prayer-footnote{color:#bda985;border-top-color:rgba(201,162,75,.22);}
.page-angels .colophon{color:#bda985;}
.page-angels .colophon a{color:#e3c987;}
.page-angels .ccc-ref{color:#e3c987;}
.page-angels .readmore{color:#e3c987;}

/* The Angelic Doctor block — re-toned to the warm-ink Stations palette */
.page-angels .heaven-gallery-section{
  background:
    radial-gradient(120% 80% at 50% -10%, rgba(201,162,75,.10), transparent 60%),
    #1a120b;
  border-top:1px solid rgba(201,162,75,.28);
  border-bottom:1px solid rgba(201,162,75,.28);
}

/* Baltimore Catechism accordion */
.page-angels .rosary-how-to{
  background:linear-gradient(180deg, rgba(201,162,75,.06), transparent), #20160d;
  border:1px solid rgba(201,162,75,.28);
}
.page-angels .rosary-how-to summary{color:#c9a24b;}
.page-angels .rosary-how-to-body{color:#e7dcc6;}
.page-angels .bc-answer{color:#e7dcc6;}

/* Scripture timeline */
.page-angels .angel-timeline li{border-left-color:rgba(201,162,75,.28);}
.page-angels .angel-timeline li:last-child{border-left-color:transparent;}
.page-angels .angel-timeline li::before{background:#c9a24b;box-shadow:0 0 0 4px #1a120b;}
.page-angels .angel-timeline-when{color:#c9a24b;}
.page-angels .angel-timeline-what{color:#e7dcc6;}
.page-angels .angel-timeline-ref{color:#bda985;}

/* The Three Archangels — dark cards to match the choir cards */
.page-angels .archangel-card{
  background:linear-gradient(180deg, rgba(201,162,75,.06), transparent), #20160d;
  border:1px solid rgba(201,162,75,.28);
  box-shadow:0 6px 22px rgba(0,0,0,.38);
}
.page-angels .archangel-name{color:#efe4cf;}
.page-angels .archangel-meaning{color:#e3c987;}
.page-angels .archangel-card-body p{color:#e7dcc6;}
.page-angels .archangel-meta{color:#bda985;border-top-color:rgba(201,162,75,.22);}
.page-angels .archangel-meta strong{color:#c9a24b;}

/* Back-to-top control */
.page-angels .back-to-top{background:#20160d;color:#e3c987;border-color:rgba(201,162,75,.4);}
.page-angels .back-to-top:hover{background:#c9a24b;color:#1a120b;border-color:#c9a24b;}

/* ── Page header: the main angel image sits to the RIGHT of the intro
   text rather than full-bleed beneath it, and is reduced from the former
   oversized hero. The text column and image column collapse to a single
   centred stack on narrow screens. ── */
.page-angels .angel-pagehead{
  max-width:var(--wide);
  display:flex;
  align-items:center;
  gap:48px;
  text-align:left;
}
.page-angels .angel-pagehead-text{ flex:1 1 0; min-width:0; }
.page-angels .angel-pagehead .a-emblem{ margin-left:0; margin-right:auto; }
.page-angels .angel-hero{
  flex:0 0 42%;
  max-width:470px;
  margin:0;
}
.page-angels .angel-hero img{ width:100%; height:auto; }
@media(max-width:760px){
  .page-angels .angel-pagehead{ flex-direction:column; text-align:center; gap:24px; }
  .page-angels .angel-pagehead .a-emblem{ margin-left:auto; }
  .page-angels .angel-hero{ flex:none; width:100%; max-width:420px; margin:0 auto; }
}

/* ── CHANGE 1: the Nine Choirs — three equal side-by-side columns
   spanning the full content width, each column stacking its three
   cards vertically, collapsing to one column below 900px.
   Added last so these rules win. ── */
.page-angels .choir-hierarchy{ display:flex; flex-wrap:wrap; gap:32px; width:100%; max-width:1180px; margin:0 auto; padding:0 24px; align-items:flex-start; box-sizing:border-box; }
.page-angels .choir-tier{ flex:1 1 0; min-width:280px; }
.page-angels .choir-grid{ display:flex; flex-direction:column; gap:20px; }
.page-angels .choir-card{ width:100%; }
.page-angels .choir-card img{ display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; object-position:center top; }
@media (max-width:900px){ .page-angels .choir-tier{ flex:1 1 100%; } }

/* Equal-height choir cards: every card stretches to fill its tier column so
   the three cards in each hierarchy match, and (with the uniform 4:5 images
   above) all nine read as identically sized cards. */
.page-angels .choir-grid{ align-items:stretch; }
.page-angels .choir-card{ height:100%; }

/* ── The Three Archangels — same image size as the nine-choir cards ──
   The archangel grid now mirrors the .choir-hierarchy container geometry
   exactly (same max-width, padding, gap and three equal columns), and its
   wrapper is a passthrough so no outer .wrap caps it differently. Each
   archangel card therefore renders at the identical width — and so each
   archangel image at the identical size — to a nine-choir card image at
   every viewport width, instead of reading larger. ── */
.page-angels .archangel-wrap{ width:100%; }
.page-angels .archangel-grid{
  grid-template-columns:repeat(3,1fr);
  gap:32px;
  width:100%;
  max-width:1180px;
  margin:8px auto 0;
  padding:0 24px;
  box-sizing:border-box;
}
@media(max-width:900px){
  .page-angels .archangel-grid{ grid-template-columns:1fr; gap:22px; max-width:420px; }
}

/* ── CHANGE 2: enlarge the standalone Guardian Angel image ──
   The floated figure in the "Your Guardian Angel" section (the only
   .angel-aside on this page) renders at roughly twice its former 240px
   width, capped at the content column so it never overflows. Height stays
   auto (inherited from .angel-fig img) so it scales proportionally. This
   does NOT touch the small "Angels" choir image, which stays uniform. */
.page-angels .angel-aside{ width:480px; max-width:100%; }

/* ─────────────────────────────────────────────────────────
   BIBLE READING PLANS
   ───────────────────────────────────────────────────────── */
.plan-intro{
  max-width:640px;margin:0 auto 30px;text-align:center;
  font-family:var(--head);font-style:italic;font-size:19px;line-height:1.6;color:var(--muted);
}

/* Filter chips */
.plan-filter-bar{
  display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:34px;
}
.plan-filter-chip{
  font-family:var(--display);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  padding:9px 18px;border:1px solid var(--rule);border-radius:999px;background:transparent;
  color:var(--muted);cursor:pointer;transition:all .2s;
}
.plan-filter-chip:hover{border-color:var(--gold);color:var(--ink);}
.plan-filter-chip.active{background:var(--gold);border-color:var(--gold);color:var(--paper);}

/* Plan gallery cards */
.plan-card-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
}
@media(max-width:900px){.plan-card-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:620px){.plan-card-grid{grid-template-columns:1fr;}}

.plan-card{
  display:flex;flex-direction:column;text-align:left;
  border:1px solid var(--rule);border-radius:10px;padding:26px 24px 22px;
  background:linear-gradient(180deg,#fdfaf2 0%,#faf5e9 100%);
  cursor:pointer;transition:border-color .22s,box-shadow .22s,transform .22s;
  position:relative;overflow:hidden;
}
.plan-card::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--gold);opacity:0;transition:opacity .22s;
}
.plan-card:hover{
  border-color:var(--gold);box-shadow:0 8px 26px rgba(154,122,46,.16);transform:translateY(-3px);
}
.plan-card:hover::before{opacity:1;}
.plan-card-span{
  font-family:var(--display);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);
}
.plan-card-title{
  font-family:var(--head);font-size:25px;font-weight:600;color:var(--ink);margin:6px 0 10px;line-height:1.15;
}
.plan-card-blurb{
  font-family:var(--body);font-size:15.5px;line-height:1.6;color:var(--ink);margin-bottom:18px;flex:1;
}
.plan-card-stats{
  display:flex;flex-wrap:wrap;gap:8px 18px;padding-top:14px;border-top:1px solid var(--rule);
  font-family:var(--body);font-size:13.5px;color:var(--muted);
}
.plan-card-stat strong{color:var(--ink);font-weight:600;}
.plan-card-progress{margin-top:16px;}
.plan-card-bar{height:6px;border-radius:3px;background:rgba(154,122,46,.16);overflow:hidden;}
.plan-card-bar span{display:block;height:100%;background:var(--gold);border-radius:3px;transition:width .3s;}
.plan-card-progress-meta{
  display:flex;justify-content:space-between;margin-top:7px;
  font-family:var(--display);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep);
}
.plan-card-cta{
  margin-top:18px;font-family:var(--display);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold-deep);display:inline-flex;align-items:center;gap:7px;
}
.plan-card-cta .arr{transition:transform .25s;}
.plan-card:hover .plan-card-cta .arr{transform:translateX(5px);}

/* Plan detail */
.plan-back{
  font-family:var(--display);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep);
  background:none;border:none;cursor:pointer;padding:6px 0;margin-bottom:18px;
  display:inline-flex;align-items:center;gap:8px;transition:color .2s;
}
.plan-back:hover{color:var(--gold);}
.plan-back .arr{transition:transform .25s;}
.plan-back:hover .arr{transform:translateX(-5px);}

.plan-detail-head{text-align:center;margin-bottom:24px;}
.plan-detail-span{
  font-family:var(--display);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);
}
.plan-detail-title{
  font-family:var(--head);font-size:34px;font-weight:600;color:var(--ink);margin:6px 0 4px;line-height:1.1;
}
.plan-detail-sub{font-family:var(--body);font-size:15px;color:var(--muted);}

.plan-progress-wrap{max-width:560px;margin:0 auto 26px;}
.plan-progress-bar{height:9px;border-radius:5px;background:rgba(154,122,46,.16);overflow:hidden;}
.plan-progress-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--gold-deep),var(--gold));border-radius:5px;transition:width .35s;}
.plan-progress-meta{
  display:flex;justify-content:space-between;margin-top:9px;
  font-family:var(--display);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
}

/* Tracking controls */
.plan-track{
  max-width:620px;margin:0 auto 28px;padding:20px 22px;border:1px solid var(--rule);border-radius:10px;
  background:var(--paper-card);
}
.plan-track-prompt{font-family:var(--head);font-style:italic;font-size:17px;color:var(--muted);margin-bottom:14px;text-align:center;}
.plan-track-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center;}
.plan-date-input{
  font-family:var(--body);font-size:15px;color:var(--ink);padding:9px 12px;
  border:1px solid var(--rule);border-radius:7px;background:#fff;
}
.plan-track-active{text-align:center;}
.plan-track-line{font-family:var(--body);font-size:16px;color:var(--ink);margin-bottom:14px;}
.plan-track-line strong{color:var(--gold-deep);}
.plan-track-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
.plan-mini-btn{
  font-family:var(--display);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  padding:10px 18px;border:1px solid var(--gold);border-radius:7px;background:var(--gold);color:var(--paper);
  cursor:pointer;transition:all .2s;
}
.plan-mini-btn:hover{background:var(--gold-deep);border-color:var(--gold-deep);}
.plan-mini-btn-quiet{background:transparent;color:var(--gold-deep);}
.plan-mini-btn-quiet:hover{background:rgba(154,122,46,.12);color:var(--ink);}

/* Today's reading card */
.plan-day-card{
  max-width:720px;margin:0 auto 34px;padding:26px 26px 22px;border:1px solid var(--rule);border-radius:12px;
  background:linear-gradient(180deg,#fdfaf2 0%,#faf5e9 100%);box-shadow:0 4px 18px rgba(26,18,11,.06);
  transition:max-width .35s ease;
}
/* When a passage is open, widen the card so the text reads in a fuller, low-scroll measure */
.plan-day-card.is-reading{max-width:1040px;}
.plan-day-top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;border-bottom:1px solid var(--rule);padding-bottom:16px;margin-bottom:18px;}
.plan-day-label{display:flex;flex-direction:column;gap:3px;}
.plan-day-kicker{font-family:var(--display);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);}
.plan-day-of{color:var(--muted);}
.plan-day-date{font-family:var(--body);font-size:14px;color:var(--muted);}
.plan-day-today{
  display:inline-block;margin-left:6px;font-family:var(--display);font-size:9.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--paper);background:var(--gold);padding:2px 8px;border-radius:999px;vertical-align:middle;
}
.plan-day-refs{font-family:var(--head);font-size:24px;font-weight:600;color:var(--ink);text-align:right;line-height:1.25;}
@media(max-width:560px){.plan-day-refs{text-align:left;}}

.plan-day-actions{display:flex;gap:12px;flex-wrap:wrap;}
.plan-read-btn{
  flex:1;min-width:180px;font-family:var(--display);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  padding:14px 20px;border:1px solid var(--gold);border-radius:8px;background:var(--gold);color:var(--paper);
  cursor:pointer;transition:all .2s;
}
.plan-read-btn:hover{background:var(--gold-deep);border-color:var(--gold-deep);}
.plan-done-btn{
  flex:1;min-width:160px;font-family:var(--display);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  padding:14px 20px;border:1px solid var(--rule);border-radius:8px;background:transparent;color:var(--gold-deep);
  cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;gap:8px;
}
.plan-done-btn:hover{border-color:var(--gold);background:rgba(154,122,46,.1);color:var(--ink);}
.plan-done-btn.is-done{background:#3f5135;border-color:#3f5135;color:#f3efe2;}
.plan-done-btn.is-done:hover{background:#34452c;border-color:#34452c;}
.plan-check{font-size:14px;line-height:1;}

.plan-reading{margin-top:22px;padding-top:20px;border-top:1px solid var(--rule);}
.plan-reading-heading{
  font-family:var(--display);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);
  margin:22px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--rule);
}
.plan-reading-heading:first-child{margin-top:0;}

.plan-day-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px;}

/* Full schedule list */
.plan-schedule-head{
  max-width:720px;margin:0 auto 14px;display:flex;align-items:baseline;justify-content:space-between;gap:10px;
}
.plan-schedule-title{font-family:var(--head);font-size:22px;font-weight:600;color:var(--ink);}
.plan-schedule-hint{font-family:var(--body);font-size:13px;font-style:italic;color:var(--muted);}
.plan-schedule-list{
  max-width:720px;margin:0 auto;max-height:440px;overflow-y:auto;
  border:1px solid var(--rule);border-radius:10px;background:var(--paper-card);
}
.plan-row{
  display:flex;align-items:center;gap:14px;width:100%;text-align:left;
  padding:12px 18px;border:none;border-bottom:1px solid var(--rule);background:transparent;cursor:pointer;
  transition:background .15s;
}
.plan-row:last-child{border-bottom:none;}
.plan-row:hover{background:rgba(154,122,46,.08);}
.plan-row-num{
  flex:none;width:38px;font-family:var(--display);font-size:12px;letter-spacing:.06em;color:var(--muted);
}
.plan-row-ref{flex:1;font-family:var(--body);font-size:16px;color:var(--ink);line-height:1.4;}
.plan-row-mark{flex:none;width:22px;text-align:center;color:#3f5135;font-size:15px;}
.plan-row.is-viewed{background:rgba(154,122,46,.14);}
.plan-row.is-viewed .plan-row-num{color:var(--gold-deep);font-weight:600;}
.plan-row.is-done .plan-row-ref{color:var(--muted);}
.plan-row.is-today{box-shadow:inset 3px 0 0 var(--gold);}
.plan-row.is-today .plan-row-num{color:var(--gold-deep);}

@media(max-width:560px){
  .plan-detail-title{font-size:27px;}
  .plan-day-card{padding:20px 18px 18px;}
  .plan-day-refs{font-size:20px;}
}

/* ════════════════════════════════════════════════════════════════════
   SACRAMENTS PAGE — dark ground + image-right sticky cards
   (scoped to body.page-sacraments only)
   Each sacrament becomes two columns: the teaching on the left and its
   illustration on the right, which stays still (position:sticky) while the
   reader moves through that section, releasing as the next sacrament begins.
   Collapses to a single column, image first, on narrow screens.
   ════════════════════════════════════════════════════════════════════ */
body.page-sacraments{
  background:
    radial-gradient(120% 80% at 50% -10%, rgba(201,162,75,.10), transparent 60%),
    #1a120b;
  color:#efe4cf;
}
.page-sacraments h1,.page-sacraments h2,.page-sacraments h3,.page-sacraments h4{color:#efe4cf;}
.page-sacraments a{color:#e3c987;}
.page-sacraments a:hover{color:#c9a24b;}

/* Page header */
.page-sacraments .pagehead{
  background:linear-gradient(180deg,#1e150e,#1a120b);
  border-bottom:1px solid rgba(201,162,75,.28);
}
.page-sacraments .pagehead .a-emblem{filter:drop-shadow(0 2px 10px rgba(201,162,75,.35)) brightness(1.1);}
.page-sacraments .pagehead h1{color:#efe4cf;}
.page-sacraments .pagehead .sub{color:#bda985;}
.page-sacraments .kicker{color:#c9a24b;}

/* Ornamental rules */
.page-sacraments .orn .ln{background:rgba(201,162,75,.28);}
.page-sacraments .orn .dot{color:#c9a24b;}

/* Table of contents */
.page-sacraments .prayer-toc .toc-heading{color:#c9a24b;}
.page-sacraments .prayer-toc .toc-group{
  background:linear-gradient(180deg,rgba(42,30,19,.74),rgba(30,21,14,.52));
  border-color:rgba(201,162,75,.24);
  box-shadow:none;
}
.page-sacraments .prayer-toc .toc-heading::before{
  background:rgba(201,162,75,.08);
  border-color:rgba(201,162,75,.34);
  color:#e3c987;
}
.page-sacraments .prayer-toc .toc-group a{color:#e7dcc6;}
.page-sacraments .prayer-toc .toc-group a{border-top-color:rgba(201,162,75,.18);}
.page-sacraments .prayer-toc .toc-group a:hover{color:#e3c987;}

/* Section headings, cards and prose */
.page-sacraments .prayer-section-heading{color:#e3c987;}
.page-sacraments .prayer-card{border-bottom-color:rgba(201,162,75,.22);}
.page-sacraments .prayer-title{color:#efe4cf;}
.page-sacraments .prayer-text{color:#e7dcc6;}
.page-sacraments .prayer-text em{color:#efe4cf;}
.page-sacraments .prayer-text strong{color:#efe4cf;}
.page-sacraments .prayer-text a{color:#e3c987;}
.page-sacraments .prayer-note{color:#bda985;}
.page-sacraments .prayer-note strong{color:#e3c987;}
.page-sacraments .colophon{color:#bda985;}
.page-sacraments .colophon a{color:#e3c987;}
.page-sacraments .readmore{color:#e3c987;}
.page-sacraments .back-to-top{background:#20160d;color:#e3c987;border-color:rgba(201,162,75,.4);}
.page-sacraments .back-to-top:hover{background:#c9a24b;color:#1a120b;border-color:#c9a24b;}

/* Widen the body band so the two columns have room; keep the non-paired
   cards (intro/closing) and section headings to a comfortable reading width. */
.page-sacraments .prayers-body .measure{max-width:min(1080px,92vw);}
.page-sacraments .prayers-body .prayer-card:not(.sac-card),
.page-sacraments .prayers-body .colophon{max-width:720px;margin-left:auto;margin-right:auto;}

/* The image-right sticky card */
.page-sacraments .sac-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.62fr);
  gap:clamp(1.8rem,4vw,3.4rem);
  align-items:start;
}
.page-sacraments .sac-text{min-width:0;}
.page-sacraments .sac-card .prayer-title{text-align:left;}
.page-sacraments .sac-figure{position:sticky;top:96px;margin:0;align-self:start;}
.page-sacraments .sac-figure .station-image{
  display:block;width:100%;height:auto;border-radius:12px;
  border:1px solid rgba(201,162,75,.30);
  box-shadow:0 24px 56px -28px rgba(0,0,0,.7);
}
@media(max-width:880px){
  .page-sacraments .sac-card{display:block;}
  .page-sacraments .sac-card .prayer-title{text-align:center;}
  .page-sacraments .sac-figure{position:static;top:auto;margin:0 auto 1.8rem;max-width:460px;}
}
@media print{
  .page-sacraments .sac-card{display:block;}
  .page-sacraments .sac-figure{position:static;break-inside:avoid;margin:0 auto 1.2rem;max-width:420px;}
}
/* ───────────────── Last Things illuminated redesign ───────────────── */
.page-last-things{
  background-color:#f1e9d6;
  background-image:
    radial-gradient(900px 520px at 12% 0%, rgba(154,122,46,.12), transparent 62%),
    radial-gradient(900px 620px at 92% 28%, rgba(126,43,24,.08), transparent 62%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.036'/%3E%3C/svg%3E");
}
.last-things-hero{
  position:relative;
  overflow:hidden;
  padding:78px 0 48px;
  background:
    linear-gradient(180deg, rgba(26,18,11,.96), rgba(36,24,14,.92)),
    radial-gradient(680px 360px at 50% 0%, rgba(201,168,90,.18), transparent 70%);
  border-bottom:1px solid rgba(201,168,90,.36);
}
.last-things-hero::before{
  content:"";
  position:absolute;
  inset:18px;
  pointer-events:none;
  border:1px solid rgba(201,168,90,.22);
  box-shadow:inset 0 0 0 5px rgba(26,18,11,.38);
}
.last-things-hero .a-emblem{filter:drop-shadow(0 0 14px rgba(201,168,90,.36)) brightness(1.08);}
.last-things-hero .kicker{color:var(--champagne);}
.last-things-hero h1{color:#f5ecd6;font-size:clamp(42px,7vw,82px);letter-spacing:.075em;}
.last-things-hero .sub{color:#d5c39f;max-width:620px;margin:0 auto;}
.last-things-predella{
  position:relative;
  padding:58px 24px 68px !important;
  background:var(--espresso);
  border-top:1px solid rgba(201,168,90,.34);
  border-bottom:1px solid rgba(201,168,90,.34);
}
.last-things-predella::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(760px 320px at 50% -10%, rgba(201,168,90,.14), transparent 72%);
}
.last-things-predella-head{position:relative;z-index:1;text-align:center;margin:0 auto 34px;}
.last-things-predella-head h2{margin-top:8px;color:#efe4cf;font-size:clamp(26px,3.5vw,40px);letter-spacing:.06em;}
.last-things-niches{position:relative;z-index:1;max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;}
.last-things-niche{display:grid;justify-items:center;gap:8px;color:#e9ddc4;text-align:center;}
.last-things-niche:hover{color:var(--champagne);}
.last-things-frame{width:100%;aspect-ratio:3/4;overflow:hidden;border:1px solid rgba(201,168,90,.54);border-radius:999px 999px 8px 8px;background:#0f0a06;box-shadow:inset 0 0 0 5px var(--espresso), inset 0 0 0 6px rgba(201,168,90,.25), 0 20px 46px rgba(0,0,0,.36);}
.last-things-frame img{width:100%;height:100%;object-fit:cover;opacity:.88;transition:transform .55s ease, opacity .3s ease;}
.last-things-niche:hover img{transform:scale(1.045);opacity:1;}
.last-things-num{margin-top:10px;font-family:var(--head);font-size:30px;line-height:1;color:var(--champagne);letter-spacing:.12em;}
.last-things-niche strong{font-family:var(--head);font-size:26px;line-height:1.05;color:#f1e6cc;}
.last-things-niche em{color:#a8946f;font-size:16px;line-height:1.35;}
.last-things-subnav{position:relative;z-index:1;display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:28px;}
.last-things-subnav a{border:1px solid rgba(201,168,90,.32);border-radius:999px;color:#cdbd9c;font-family:var(--display);font-size:11px;letter-spacing:.16em;padding:8px 14px;text-transform:uppercase;}
.page-last-things .prayers-body > .measure:first-child{max-width:820px;}
.page-last-things .prayer-section-heading:not(.on-dark){margin-top:74px;font-size:18px;letter-spacing:.26em;}
.page-last-things .prayers-body > .measure:first-child .prayer-card{background:rgba(251,248,239,.72);border:1px solid rgba(154,122,46,.28);border-radius:6px;padding:38px;box-shadow:0 18px 45px rgba(26,18,11,.08);}
.page-last-things .prayers-body > .measure:first-child .prayer-card .prayer-text:first-child::first-letter{float:left;padding:9px 10px 0 0;font-family:var(--head);font-size:66px;line-height:.78;color:#8c2f1b;}
.last-things-altarpiece{margin:36px 0;padding:22px;background:var(--espresso);border:1px solid rgba(201,168,90,.5);border-radius:7px;box-shadow:inset 0 0 0 5px var(--espresso), inset 0 0 0 6px rgba(201,168,90,.24), 0 18px 42px rgba(26,18,11,.22);}
.last-things-altarpiece > figcaption{text-align:center;margin-bottom:16px;}
.last-things-altarpiece > figcaption span{color:var(--champagne);font-family:var(--display);font-size:11px;letter-spacing:.28em;text-transform:uppercase;}
.last-things-diptych{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.last-things-diptych > figcaption{grid-column:1/-1;}
.last-things-altarpiece img{width:100%;border:1px solid rgba(201,168,90,.38);border-radius:4px;}
.last-things-altarpiece p{margin:12px 0 0;color:#cdbd9c;font-size:17px;line-height:1.45;text-align:center;}
.last-things-subsection{margin-top:34px;padding-top:28px;border-top:1px solid rgba(154,122,46,.26);}
.last-things-subsection h4{margin:0 0 14px;font-family:var(--head);font-size:clamp(24px,3vw,32px);line-height:1.1;color:#5d261a;letter-spacing:.02em;}
.last-things-single img{
  display:block;
  max-height:760px;
  object-fit:contain;
  object-position:center top;
  background:#0f0a06;
}
@media(max-width:940px){.last-things-niches{grid-template-columns:repeat(2,minmax(0,1fr));max-width:680px;}}
@media(max-width:620px){
  .last-things-hero{padding:52px 0 34px;}
  .last-things-hero::before{inset:10px;}
  .last-things-niches{grid-template-columns:1fr;max-width:330px;}
  .last-things-diptych{grid-template-columns:1fr;}
  .page-last-things .prayers-body > .measure:first-child .prayer-card{padding:26px 22px;}
}

/* ───────────────── Purgatory illuminated redesign ───────────────── */
.page-purgatory{
  overflow-x:hidden;
  background-color:#100d0b;
  background-image:
    radial-gradient(900px 560px at 12% 4%, rgba(140,58,30,.18), transparent 64%),
    radial-gradient(900px 620px at 88% 22%, rgba(201,168,90,.13), transparent 68%),
    linear-gradient(180deg,#0f0c0a 0%,#24170f 34%,#efe6d3 34%,#f3ead7 100%);
}
.purgatory-hero{
  position:relative;
  min-height:calc(100svh - 92px);
  display:grid;
  place-items:end start;
  overflow:hidden;
  padding:clamp(90px,14vh,150px) 0 clamp(52px,9vh,96px);
  background:#0f0c0a;
  border-bottom:1px solid rgba(201,168,90,.36);
}
.purgatory-hero-art{
  position:absolute;
  inset:0;
  background:url("/images/purgatory/purgatory_05.png") center 35% / cover no-repeat;
  transform:scale(1.015);
}
.purgatory-hero-art::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(78% 74% at 66% 38%, rgba(16,12,10,.1), rgba(16,12,10,.48) 58%, rgba(16,12,10,.9) 100%),
    linear-gradient(180deg,rgba(16,12,10,.66) 0%,rgba(16,12,10,.1) 38%,rgba(16,12,10,.54) 72%,#100d0b 100%);
}
.purgatory-hero .measure{
  position:relative;
  z-index:1;
  max-width:min(1180px,94vw);
  margin:0 auto;
  text-align:left;
}
.purgatory-hero .a-emblem{filter:drop-shadow(0 0 18px rgba(201,168,90,.48)) brightness(1.06);}
.purgatory-hero .kicker{color:#e8d9a8;}
.purgatory-hero h1{
  max-width:920px;
  color:#fbf6e9;
  font-size:clamp(56px,11vw,132px);
  letter-spacing:.08em;
  text-shadow:0 3px 64px rgba(0,0,0,.88);
}
.purgatory-hero .sub{
  max-width:780px;
  margin:10px 0 0;
  color:#e8d9a8;
  font-size:clamp(24px,3vw,36px);
  font-style:italic;
  line-height:1.25;
  text-shadow:0 2px 36px rgba(0,0,0,.84);
}
.purgatory-thesis{
  max-width:700px;
  margin-top:24px;
  padding-left:22px;
  border-left:1px solid rgba(232,217,168,.62);
  color:#efe4cf;
  font-size:clamp(19px,1.5vw,23px);
  line-height:1.55;
  text-shadow:0 2px 28px rgba(0,0,0,.82);
}
.purgatory-toc{
  position:relative;
  padding:66px clamp(18px,4vw,56px) 74px !important;
  background:
    radial-gradient(760px 360px at 16% 0%, rgba(140,58,30,.28), transparent 72%),
    radial-gradient(760px 420px at 86% 20%, rgba(201,168,90,.18), transparent 72%),
    #130f0d;
  border-top:1px solid rgba(201,168,90,.34);
  border-bottom:1px solid rgba(201,168,90,.34);
}
.purgatory-toc-head{
  max-width:980px;
  margin:0 auto 34px;
  text-align:center;
}
.purgatory-toc-head h2{
  margin-top:8px;
  color:#f5ecd6;
  font-size:clamp(32px,4.8vw,56px);
  letter-spacing:.055em;
}
.purgatory-toc-head p{
  max-width:720px;
  margin:12px auto 0;
  color:#cdbd9c;
  font-size:20px;
  line-height:1.5;
}
.purgatory-toc-layout{
  display:grid;
  grid-template-columns:minmax(280px,410px) minmax(0,1fr);
  gap:clamp(28px,5vw,58px);
  align-items:start;
  max-width:1260px;
  margin:0 auto;
}
.purgatory-toc-figure{
  position:sticky;
  top:112px;
  margin:0;
  padding:16px;
  background:#1a120b;
  border:1px solid rgba(201,168,90,.48);
  border-radius:8px;
  box-shadow:inset 0 0 0 5px #1a120b, inset 0 0 0 6px rgba(201,168,90,.22), 0 24px 54px rgba(0,0,0,.38);
}
.purgatory-toc-figure img{
  display:block;
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
  border-radius:5px;
  border:1px solid rgba(201,168,90,.32);
}
.purgatory-toc-figure figcaption,
.purgatory-inline-plate figcaption{
  margin-top:13px;
  color:#cdbd9c;
  font-size:17px;
  line-height:1.42;
  text-align:center;
}
.purgatory-toc-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.purgatory-toc-list .toc-group{
  margin:0;
  min-width:0;
  background:linear-gradient(180deg,rgba(251,248,239,.08),rgba(251,248,239,.035));
  border:1px solid rgba(201,168,90,.22);
  border-radius:8px;
  padding:18px;
  box-shadow:none;
}
.purgatory-toc-list .toc-heading{color:#e8d9a8;}
.purgatory-toc-list .toc-group a{
  color:#eadfc9;
  border-top-color:rgba(201,168,90,.18);
}
.purgatory-toc-list .toc-group a:hover{color:#e8d9a8;}
.page-purgatory .prayers-body{
  position:relative;
  background:
    radial-gradient(900px 420px at 10% 0%, rgba(154,122,46,.1), transparent 72%),
    linear-gradient(180deg,#f0e6d2,#f6f1e6 26%,#f2ead9);
}
.page-purgatory .prayers-body > .measure{
  max-width:min(1180px,94vw);
}
.page-purgatory .prayer-section-heading{
  max-width:920px;
  margin:86px auto 0;
  color:#5d261a;
  font-size:clamp(23px,2.6vw,34px);
  letter-spacing:.12em;
}
.page-purgatory .prayers-body .orn{max-width:920px;margin-left:auto !important;margin-right:auto !important;}
.page-purgatory .prayer-card{
  max-width:920px;
  margin-left:auto;
  margin-right:auto;
  padding:34px 38px;
  background:rgba(251,248,239,.78);
  border:1px solid rgba(154,122,46,.25);
  border-radius:8px;
  box-shadow:0 18px 46px rgba(36,26,16,.08);
}
.page-purgatory .prayer-card + .prayer-card{margin-top:24px;}
.page-purgatory .prayer-title{font-size:clamp(27px,2.8vw,38px);}
.page-purgatory .prayer-text{font-size:21px;}
.page-purgatory .prayer-list{font-size:20px;}
.purgatory-inline-plate{
  max-width:920px;
  margin:0 auto 30px;
  padding:18px;
  background:#1a120b;
  border:1px solid rgba(201,168,90,.48);
  border-radius:8px;
  box-shadow:inset 0 0 0 5px #1a120b, inset 0 0 0 6px rgba(201,168,90,.22), 0 22px 50px rgba(36,26,16,.22);
}
.purgatory-inline-plate img{
  display:block;
  width:100%;
  max-height:760px;
  object-fit:cover;
  object-position:center 34%;
  border:1px solid rgba(201,168,90,.34);
  border-radius:5px;
}
.purgatory-wide-plate{
  max-width:1120px;
  margin-top:12px;
}
.purgatory-wide-plate img{aspect-ratio:16/8.5;}
.purgatory-split-plate{
  display:grid;
  grid-template-columns:minmax(0,.58fr) minmax(260px,.42fr);
  gap:22px;
  align-items:center;
  max-width:1040px;
}
.purgatory-split-plate img{aspect-ratio:4/3;}
.purgatory-split-plate figcaption{
  margin:0;
  text-align:left;
  font-size:22px;
  color:#eadfc9;
}
.page-purgatory .purgatory-devotion-heading{
  max-width:1000px;
  font-family:var(--head);
  letter-spacing:.055em;
  text-transform:none;
}
.purgatory-devotion-plate{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  max-width:1040px;
}
.purgatory-single-plate{
  display:block;
  max-width:920px;
}
.purgatory-devotion-plate img{
  aspect-ratio:4/3;
  max-height:none;
}
.purgatory-devotion-plate figcaption{
  grid-column:1 / -1;
}
.purgatory-mary-plate{
  max-width:840px;
}
.purgatory-mary-plate img{
  aspect-ratio:auto;
  height:auto;
  max-height:none;
  object-fit:contain;
  object-position:center center;
}
.purgatory-title-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:22px;
}
.purgatory-title-card{
  min-width:0;
  padding:20px;
  background:linear-gradient(180deg,rgba(154,122,46,.09),rgba(93,38,26,.055));
  border:1px solid rgba(154,122,46,.22);
  border-radius:8px;
}
.purgatory-title-card h3{
  margin:0 0 10px;
  color:#5d261a;
  font-family:var(--display);
  font-size:15px;
  font-weight:700;
  letter-spacing:.13em;
  line-height:1.35;
  text-transform:uppercase;
}
.purgatory-title-card h3 span{
  display:block;
  margin-top:4px;
  color:#7a5f24;
  font-family:var(--head);
  font-size:18px;
  font-style:italic;
  font-weight:600;
  letter-spacing:.03em;
  text-transform:none;
}
.purgatory-title-card p{
  margin:0;
  color:var(--ink);
  font-size:18px;
  line-height:1.58;
}
.purgatory-luke-quote{
  margin:24px auto;
  padding:24px clamp(22px,4vw,42px);
  background:linear-gradient(180deg,rgba(93,38,26,.08),rgba(154,122,46,.08));
  border-left:4px solid #8d3b26;
  border-radius:0 8px 8px 0;
  color:#3b2a18;
}
.purgatory-luke-quote p{
  margin:0;
  font-family:var(--head);
  font-size:clamp(24px,3.1vw,34px);
  font-style:italic;
  line-height:1.35;
}
.purgatory-luke-quote cite{
  display:block;
  margin-top:12px;
  color:#7a5f24;
  font-family:var(--display);
  font-size:13px;
  font-style:normal;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
}
@media(max-width:980px){
  .purgatory-toc-layout{grid-template-columns:1fr;}
  .purgatory-toc-figure{position:static;max-width:520px;margin:0 auto;}
  .purgatory-toc-list{grid-template-columns:1fr;}
  .purgatory-split-plate{display:block;}
  .purgatory-split-plate figcaption{margin-top:13px;text-align:center;font-size:18px;}
}
@media(max-width:660px){
  .purgatory-hero{min-height:640px;padding:76px 0 44px;}
  .purgatory-hero .measure{padding:0 22px;}
  .purgatory-hero h1{font-size:clamp(44px,17vw,70px);}
  .purgatory-thesis{padding-left:16px;}
  .purgatory-toc{padding-left:18px !important;padding-right:18px !important;}
  .page-purgatory .prayers-body > .measure{max-width:100%;padding:0 18px;}
  .page-purgatory .prayer-card{padding:26px 20px;}
  .page-purgatory .prayer-text{font-size:19px;}
  .purgatory-inline-plate{padding:12px;}
  .purgatory-wide-plate img{aspect-ratio:4/3;}
  .purgatory-devotion-plate{grid-template-columns:1fr;}
  .purgatory-devotion-plate figcaption{grid-column:auto;}
  .purgatory-title-grid{grid-template-columns:1fr;}
  .purgatory-title-card{padding:18px;}
}

/* ═══════════════════════════════════════════════
   SHOULDER WOUND OF CHRIST
   ═══════════════════════════════════════════════ */
.sw-page{
  --sw-crimson:#6d211b;
  --sw-gold:#b69148;
  --sw-ink:#30251d;
  background:
    radial-gradient(circle at 50% 0,rgba(182,145,72,.12),transparent 32rem),
    linear-gradient(180deg,#f2eadb 0,#fbf7ee 42rem,#f5eddf 100%);
  color:var(--sw-ink);
}
.sw-pagehead{
  position:relative;
  overflow:hidden;
  background:#100c09;
  border-bottom:1px solid rgba(182,145,72,.35);
}
.sw-pagehead::before{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(11,8,6,.97) 0%,rgba(11,8,6,.86) 43%,rgba(11,8,6,.42) 72%,rgba(11,8,6,.75) 100%),
    url('/images/devotions/shoulder-wound-of-christ.webp') 75% 44%/cover no-repeat;
  content:"";
}
.sw-pagehead .measure{position:relative;z-index:1;text-align:left;}
.sw-pagehead .a-emblem{margin-left:0;filter:drop-shadow(0 2px 10px rgba(182,145,72,.4)) brightness(1.08);}
.sw-pagehead .kicker{color:#d1ad64;}
.sw-pagehead h1{max-width:780px;color:#f4e7cf;text-wrap:balance;}
.sw-pagehead .sub{max-width:620px;color:#cdbb9b;text-wrap:balance;}
.sw-content{padding:70px 0 82px;}
.sw-shell{
  width:min(1280px,calc(100% - 64px));
  margin:0 auto;
}
.sw-intro-grid{
  display:grid;
  grid-template-columns:minmax(430px,.88fr) minmax(520px,1.12fr);
  gap:clamp(52px,6vw,88px);
  align-items:start;
}
.sw-eyebrow{
  margin:0 0 12px;
  color:#8c6a2e;
  font-family:var(--display);
  font-size:12px;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.sw-heading{
  margin:0 0 22px;
  color:#522017;
  font-family:var(--head);
  font-size:clamp(34px,5vw,52px);
  font-weight:600;
  line-height:1.02;
}
.sw-prose{max-width:570px;}
.sw-prose p{font-size:21px;line-height:1.68;}
.sw-tradition-note{
  margin:28px 0 0;
  padding:20px 24px;
  background:rgba(109,33,27,.055);
  border-left:3px solid var(--sw-crimson);
  color:#584238;
  font-size:17px !important;
  line-height:1.55 !important;
}
.sw-figure{margin:10px 0 0;position:relative;justify-self:stretch;}
.sw-figure::before{
  position:absolute;
  inset:-18px 18px 18px -18px;
  border:1px solid rgba(182,145,72,.52);
  content:"";
}
.sw-figure img{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:1.08/1;
  object-fit:cover;
  object-position:center;
  box-shadow:0 22px 46px rgba(39,23,14,.25);
}
.sw-figure figcaption{
  position:relative;
  margin-top:16px;
  color:#785d3d;
  font-family:var(--head);
  font-size:18px;
  font-style:italic;
  text-align:center;
}
.sw-transition{
  max-width:920px;
  margin:90px auto 42px;
  text-align:center;
}
.sw-transition p{font-size:21px;line-height:1.65;}
.sw-cross{display:block;margin-bottom:16px;color:var(--sw-crimson);font-size:25px;}
.sw-prayer-card{
  position:relative;
  max-width:1040px;
  margin:0 auto;
  padding:clamp(34px,6vw,64px);
  background:
    linear-gradient(rgba(255,252,244,.96),rgba(255,252,244,.96)),
    repeating-linear-gradient(0deg,transparent 0 28px,rgba(109,33,27,.04) 29px);
  border:1px solid rgba(109,33,27,.28);
  box-shadow:0 20px 55px rgba(75,47,25,.14);
}
.sw-prayer-card::before,.sw-prayer-card::after{
  position:absolute;
  width:42px;
  height:42px;
  border-color:var(--sw-gold);
  content:"";
}
.sw-prayer-card::before{top:12px;left:12px;border-top:1px solid;border-left:1px solid;}
.sw-prayer-card::after{right:12px;bottom:12px;border-right:1px solid;border-bottom:1px solid;}
.sw-prayer-title{
  margin:0 0 30px;
  color:#68251b;
  font-family:var(--display);
  font-size:clamp(20px,3vw,27px);
  letter-spacing:.08em;
  line-height:1.35;
  text-align:center;
  text-transform:uppercase;
}
.sw-prayer-text{
  margin:0;
  color:#34261d;
  font-family:var(--head);
  font-size:clamp(23px,3vw,30px);
  font-style:italic;
  line-height:1.55;
  text-align:center;
}
.sw-amen{display:block;margin-top:18px;color:#68251b;font-style:normal;font-weight:600;}
.sw-witness{
  max-width:1040px;
  margin:52px auto 0;
  padding:38px clamp(0px,3vw,44px) 0;
  border-top:1px solid rgba(109,33,27,.24);
}
.sw-witness h2{margin:0 0 16px;color:#522017;font-family:var(--head);font-size:32px;}
.sw-witness p{font-size:18px;line-height:1.7;}
.sw-colophon{margin:56px auto 0;color:#806947;font-size:14px;letter-spacing:.08em;text-align:center;text-transform:uppercase;}
@media(max-width:1020px){
  .sw-shell{width:min(760px,calc(100% - 56px));}
  .sw-intro-grid{grid-template-columns:1fr;gap:56px;}
  .sw-prose{max-width:none;}
  .sw-figure{width:100%;max-width:720px;margin:0 auto;}
  .sw-figure img{aspect-ratio:16/11;}
}
@media(max-width:760px){
  .sw-pagehead::before{background:linear-gradient(rgba(11,8,6,.72),rgba(11,8,6,.92)),url('/images/devotions/shoulder-wound-of-christ.webp') 45% 50%/cover no-repeat;}
  .sw-pagehead .measure{text-align:center;}
  .sw-pagehead .a-emblem{margin-left:auto;}
  .sw-shell{width:calc(100% - 36px);}
  .sw-intro-grid{gap:42px;}
  .sw-figure{width:calc(100% - 20px);margin:10px auto 0;}
  .sw-figure img{aspect-ratio:1/1;}
  .sw-content{padding:50px 0 64px;}
  .sw-transition{margin-top:62px;}
  .sw-prayer-card{padding:38px 24px;}
  .sw-witness{padding-left:6px;padding-right:6px;}
}
@media print{
  .sw-pagehead{background:#fff !important;}
  .sw-pagehead::before,.sw-figure{display:none;}
  .sw-pagehead h1{color:#000;}
  .sw-pagehead .kicker,.sw-pagehead .sub{color:#555;}
  .sw-intro-grid{display:block;}
  .sw-prayer-card{box-shadow:none;}
}
