/* Sanctis — editorial design system. Shared by both languages and all views. */
:root {
  --bg: #f6f3eb;
  --surface: #fffdf8;
  --ink: #243e35;
  --green: #203e33;
  --muted: #606e62;
  --line: #dddccf;
  --soft: #e9eee4;
  --gold: #947338;
  --cream: #f0e9da;
  --card-shadow: 0 8px 30px #263a2c08;
}
body { background: radial-gradient(ellipse at 90% 0%, #e8ddbd50, transparent 40%), var(--bg); color: var(--ink); }
::selection { background: #d8c798; color: #17382c; }
.site-header { height: 92px; border-top: 3px solid #a58a52; background: #fffdf8f5; box-shadow: 0 3px 20px #223c2e04; }
.header-inner { max-width: 1320px; padding-inline: 48px; gap: 28px; }
.brand { gap: 11px; }
.brand-word { font-size: 35px; letter-spacing: -.7px; }
.brand-tagline { color: #716d50; font-size: 8px; letter-spacing: 1.65px; }
.desktop-nav { gap: 26px; }
.nav-button { position: relative; font-size: 13px; color: #59675c; padding-block: 32px; border-bottom: 0; }
.nav-button::after { content: ''; position: absolute; bottom: 17px; left: 0; width: 0; height: 2px; background: #a58a52; transition: width .2s ease; }
.nav-button.active::after, .nav-button:hover::after { width: 100%; }
.language-switch { background: #eceee5; padding: 4px; }
.language-switch button { min-width: 32px; min-height: 32px; font-size: 11px; }
.avatar { width: 38px; height: 38px; background: #e9eee4; border-color: #d6ddce; }
.collection-nav { max-width: 1224px; margin: 0 auto; padding: 13px 0; gap: 8px; background: transparent; border-bottom: 1px solid #dcdccd; scrollbar-width: thin; }
.collection-nav button { min-height: 38px; padding: 8px 12px; border-radius: 8px; color: #59695d; font-size: 12px; transition: background .2s, color .2s; }
.collection-nav button:hover { background: #e8eade; }
.collection-nav .active { background: var(--green); color: #fff9ea; font-weight: 500; }
.collection-nav .icon { width: 16px; height: 16px; }
.main { max-width: 1320px; padding: 46px 48px 32px; }
.main > .page-top { border-bottom: 0; padding-bottom: 12px; margin-bottom: 34px; }
.page-top h1 { font-size: clamp(42px, 4.8vw, 66px); letter-spacing: -.035em; line-height: 1.05; margin-bottom: 14px; }
.eyebrow { color: #7c683c; font-size: 10px; letter-spacing: .17em; line-height: 1.6; }
.page-subtitle { font-size: 15px; color: #606f62; line-height: 1.8; max-width: 700px; }
.date-controls { background: #fffdf8; border: 1px solid var(--line); border-radius: 12px; padding: 5px; box-shadow: 0 3px 14px #263a2c04; }
.date-button { font-size: 11px; letter-spacing: .04em; text-transform: none; }
.date-controls .icon-button { width: 36px; height: 36px; }
.section-heading { margin: 38px 0 22px; }
.section-heading h2 { font-size: 35px; line-height: 1.15; }
.section-heading p { font-size: 14px; line-height: 1.7; }
.section-label h2 { font-size: 15px; }
.section-label span { font-size: 11px; color: #637061; }
.btn { min-height: 44px; padding: 12px 19px; border-radius: 10px; font-size: 12px; font-weight: 500; letter-spacing: .01em; }
.btn-secondary { background: #fffdf8; border-color: #d5dacd; }
.btn-secondary:hover { border-color: #a5b69d; background: #eaf0e4; }
.btn-ghost { padding-inline: 0; color: #3e5d45; }
.btn-small { min-height: 36px; padding: 8px 13px; font-size: 11px; }
.icon-button { min-width: 40px; min-height: 40px; }
.today-journey { gap: 48px; }
.journey-number { font-size: 10px; letter-spacing: .16em; color: #7e693e; margin: 0 0 18px; }
.journey-number::after { background: linear-gradient(90deg, #bbaa7c70, transparent); }
.today-journey .hero { min-height: 480px; padding: 72px 64px; border-radius: 28px; box-shadow: 0 18px 44px #203e3318; }
.hero::before { content: ''; position: absolute; inset: 16px; border: 1px solid #fff6d52b; border-radius: 15px; pointer-events: none; z-index: -1; }
.hero::after { background: linear-gradient(90deg, #102b25df, #15392b8a 65%, #17352d35); }
.today-journey .hero-quote { max-width: 900px; font-size: clamp(36px, 4.7vw, 65px); line-height: 1.14; font-weight: 600; letter-spacing: -.02em; margin: 35px 0 30px; text-wrap: pretty; }
.hero-top { top: 34px; left: 42px; right: 42px; color: #f1e6cb; font-size: 10px; letter-spacing: .15em; }
.hero-bottom { bottom: 34px; left: 42px; right: 42px; font-size: 10px; color: #f1e6cbe0; gap: 16px; }
.hero-bottom .image-credit { font-size: 10px; }
.verse-ref { font-size: 13px; line-height: 1.8; letter-spacing: .04em; color: #f2e9d6; }
.hero-line { width: 52px; background: #d7bd82; margin-bottom: 17px; }
.hero-actions { margin: 18px 0 0; }
.hero-actions .icon-button { min-width: 44px; min-height: 44px; border-radius: 10px; }
.home-saint-section .section-heading { margin-top: 0; }
.home-saint-section .saint-card { grid-template-columns: minmax(260px, 34%) 1fr; border-radius: 24px; border: 1px solid #d8d1bc; background: #fffdf7; box-shadow: var(--card-shadow); }
.home-saint-section .saint-body { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 42px 48px; background: radial-gradient(ellipse at 100% 0, #eadfbe40, transparent 65%); }
.home-saint-section .saint-body h3 { font-size: clamp(34px, 4vw, 51px); line-height: 1.08; margin-bottom: 14px; max-width: 540px; }
.home-saint-section .saint-body > p { font-size: 15px; line-height: 1.9; color: #536450; max-width: 540px; }
.home-saint-section .saint-body .eyebrow { font-size: 10px; color: #7c683c; letter-spacing: .12em; }
.home-saint-section .saint-body .saint-title { font-size: 13px; color: #677461; margin-bottom: 17px; }
.home-saint-section .saint-body .btn { margin-top: 10px; font-size: 13px; min-height: 42px; border-bottom: 1px solid #b1bba2; border-radius: 0; }
.home-saint-section .saint-day-empty { grid-template-columns: 1fr; }
.saint-calendar-control, .saint-date-control { font-size: 12px; }
.saint-card { border-radius: 18px; box-shadow: var(--card-shadow); }
.saint-body { padding: 24px; }
.saint-body h3 { font-size: 29px; }
.saint-body p { font-size: 13px; color: #5c6c56; }
.saint-body .saint-title { font-size: 12px; }
.saint-body .eyebrow { font-size: 10px; }
.saint-body .btn { font-size: 12px; min-height: 40px; }
.saints-grid, .quote-grid { gap: 24px; }
.saint-image-credit, .saints-grid .saint-image-credit { font-size: 10px; padding: 8px 12px; color: #55624e; }
.saint-day-intro h2 { font-size: clamp(35px, 4vw, 49px); }
.saint-day-intro > p:not(.eyebrow) { font-size: 15px; color: #5d6e55; }
.saints-upcoming-rail { grid-auto-columns: 240px; gap: 20px; padding-bottom: 24px; }
.saint-upcoming-card.is-sanctis-art { border-radius: 16px; border-color: #d5d4c4; box-shadow: var(--card-shadow); }
.saint-upcoming-card > .saint-upcoming-caption { padding: 20px; }
.saint-upcoming-card small { font-size: 12px; color: #796339; }
.today-rosary { padding: 36px; gap: 26px; border: 1px solid #dcd3bc; border-radius: 22px; background: #eee8d8; }
.today-rosary .small-orbit { width: 64px; height: 64px; background: #fffaf0; border: 1px solid #d7cba9; color: #93743d; }
.today-rosary .small-orbit .icon { width: 30px; height: 30px; }
.today-rosary h2 { font-size: 34px; }
.today-rosary p:not(.eyebrow) { font-size: 14px; color: #686c53; }
.daily-readings-section { padding: 32px; border-radius: 22px; background: #fffdf8; border-color: var(--line); }
.reading-card { border-radius: 14px; padding: 26px; background: #f8f7ef; }
.reading-card h3 { font-size: 28px; }
.reading-card p, .reading-card .reading-action { font-size: 13px; color: #596d51; }
.reading-card small { font-size: 11px; }
.mission-strip { margin: 44px 0 24px; border-block: 1px solid #d5d6c7; padding: 26px 4px; border-radius: 0; background: transparent; }
.mission-strip h2 { font-size: 26px; }
.mission-strip p { font-size: 13px; color: #5f6d59; }
.reflection-panel { padding: 30px; border-radius: 18px; background: #fffdf8; gap: 22px; }
.reflection-panel h2 { font: 600 29px/1.2 var(--display); }
.reflection-panel p { font-size: 15px; color: #586852; }
.reflection-panel .eyebrow { font-size: 10px; color: #7d6639; }
.reflection-panel .btn { font-size: 12px; min-height: 40px; }
.progress-panel { padding: 28px; border: 1px solid #d7dfcc; border-radius: 18px; background: #e9efdf; margin-top: 24px; }
.progress-panel h3 { max-width: none; font-size: 30px; }
.progress-panel .eyebrow, .progress-caption { font-size: 11px; color: #5e7052; }
.step-button { min-height: 40px; font-size: 13px; color: #506b43; }
.step-number { width: 28px; height: 28px; font-size: 11px; }
.feature-doors { gap: 18px; }
.feature-doors > button, .faith-card, .resource-card, .formation-card, .reading-card, .parish-card { border-color: var(--line); box-shadow: var(--card-shadow); }
.feature-doors > button { padding: 28px; border-radius: 16px; background: #fffdf8; }
.feature-doors h3, .faith-card h3, .resource-body h3 { font-size: 29px; line-height: 1.15; }
.feature-doors p, .faith-card p, .resource-body p { font-size: 13px; color: #5d6d54; line-height: 1.8; }
.resource-art { height: 158px; }
.resource-body { padding: 24px; }
.resource-body .eyebrow { font-size: 10px; }
.resource-card, .faith-card { border-radius: 16px; background: #fffdf8; }
.faith-card-action { font-size: 12px; }
.theology-portal { border-radius: 24px; border-color: #d5cdb7; box-shadow: var(--card-shadow); }
.theology-portal:first-child { background: radial-gradient(ellipse at top right, #506b424a, transparent 65%), #203e33; }
.theology-portal:nth-child(4) { border-radius: 24px; }
.portal-icon { background: #b69a6020; }
.lector-hero, .catechism-library, .psalm-playlist { border-radius: 22px; background: radial-gradient(ellipse at 90% 0%, #76895a40, transparent 65%), #203e33; }
.lector-hero { padding: 40px; }
.lector-hero p, .catechism-grid p { font-size: 14px; color: #d9e0cd; }
.study-search-panel, .saints-toolbar { background: #eeecdf; border-color: #dad8c8; border-radius: 16px; }
.formation-dashboard { background: #fffdf8; border-color: #d3ddc8; box-shadow: var(--card-shadow); }
.formation-daily-items > div { color: #5f7054; }
.formation-header-badge { background: #f4ecd5; border-color: #d7c69b; }
.formation-total { background: #f1f4e8; border-radius: 18px; }
.scripture-edition { background: #ecefe3; border-color: #d8ddcc; }
.scripture-paper { border-color: #ddd7c6; border-radius: 20px; box-shadow: 0 16px 48px #243e350a; }
.scripture-paper > header h2 { font-family: var(--display); font-size: 38px; }
.scripture-navigation { background: #eeede2; padding: 24px 18px; border: 1px solid #dedccf; border-radius: 16px; }
.scripture-seal { background: #f1ead6; color: #7a6234; }
.scripture-mode .btn[aria-pressed='true'] { box-shadow: inset 0 0 0 1px #a58a52; }
.ministry-invitation { border-radius: 22px; background: #e8ecdf; padding: 38px; }
.ministry-invitation p { color: #596d52; font-size: 14px; }
.prayer-banner { background: #203e33; color: #fff8e8; border-radius: 22px; padding: 38px; margin-top: 36px; }
.prayer-banner .eyebrow { color: #d4bf85; font-size: 10px; }
.prayer-banner h3 { font-size: 36px; }
.prayer-banner p { color: #d1dbca; font-size: 14px; }
.prayer-banner .btn { background: #ebdec0; color: #233e32; font-size: 12px; }
.site-footer { max-width: 1224px; padding: 32px 0 90px; margin: 24px auto 0; background: transparent; border-color: #d4d4c4; color: #64705b; font-size: 11px; }
.footer-quote { font-size: 25px; color: #38513a; margin-bottom: 7px; }
.footer-about { font-size: 11px; min-height: 40px; }
.demo-chip { font-size: 9px; color: #706a50; border-color: #c9c5b1; }
.modal { background: #fffdf7; border-radius: 22px; box-shadow: 0 28px 100px #102b2540; }
.saint-reading .saint-reading-subtitle, .saint-reading .saint-local-note { font-size: 13px; color: #627057; }
.saint-sources p, .saint-sources ul { font-size: 12px; color: #637058; }
.saint-scripture cite { font-size: 12px; color: #657259; }
.modal .saint-biography { font-size: 16px; line-height: 1.95; }
.mobile-nav { background: #fffdf8f5; box-shadow: 0 -4px 24px #203e3308; }
.mobile-nav button { border-radius: 12px; }
.mobile-nav button.active { background: #e9eedf; color: #203e33; }
@media (hover: hover) {
  .feature-doors > button, .faith-card, .reading-card { transition: border-color .2s, box-shadow .2s, transform .2s; }
  .feature-doors > button:hover, .faith-card:hover, .reading-card:hover { border-color: #b2bda2; box-shadow: 0 12px 28px #263a2c0c; transform: translateY(-3px); }
}
@media (max-width: 1200px) {
  .header-inner { gap: 18px; padding-inline: 28px; }
  .desktop-nav { gap: 17px; }
  .header-actions { gap: 7px; }
  .main { padding-inline: 28px; }
  .collection-nav, .site-footer { margin-inline: 28px; }
}
@media (max-width: 1000px) {
  .desktop-nav { display: none; }
  .header-actions { margin-left: auto; }
  .mobile-nav { display: flex; justify-content: space-around; align-items: center; position: fixed; bottom: 0; left: 0; right: 0; z-index: 50; min-height: calc(72px + env(safe-area-inset-bottom)); padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); border-top: 1px solid #d9dece; backdrop-filter: blur(14px); }
  .mobile-nav button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-width: 52px; min-height: 48px; padding: 7px 10px; color: #5d6d54; font-size: 10px; }
  .mobile-nav .icon { width: 21px; height: 21px; }
  .site-footer { padding-bottom: 170px; }
  .page-top { flex-wrap: wrap; align-items: flex-start; }
  .home-saint-section .saint-body { padding: 30px; }
}
@media (max-width: 760px) {
  .site-header { height: 80px; }
  .header-inner { padding-inline: 20px; gap: 10px; }
  .brand-word, .site-header .brand-word { font-size: 30px; }
  .brand-tagline, .site-header .brand-tagline { font-size: 7px; letter-spacing: 1px; }
  .main { padding: 30px 20px; }
  .collection-nav { margin-inline: 20px; padding-block: 10px; gap: 4px; }
  .collection-nav button { padding-inline: 10px; }
  .main > .page-top { margin-bottom: 26px; gap: 20px; }
  .page-top h1 { font-size: 45px; }
  .page-subtitle { font-size: 14px; }
  .today-journey { gap: 34px; }
  .today-journey .hero { padding: 66px 30px 70px; min-height: 410px; border-radius: 20px; }
  .today-journey .hero-quote { font-size: clamp(34px, 6.6vw, 48px); margin: 18px 0 26px; }
  .hero-top { top: 28px; left: 29px; right: 29px; font-size: 9px; }
  .hero-bottom { bottom: 27px; left: 29px; right: 29px; font-size: 9px; flex-wrap: wrap; gap: 4px 16px; }
  .hero::before { inset: 12px; border-radius: 11px; }
  .verse-ref { font-size: 12px; }
  .section-heading h2 { font-size: 32px; }
  .home-saint-section .saint-card { grid-template-columns: minmax(0, 1fr); border-radius: 20px; }
  .home-saint-section .saint-body { padding: 28px; }
  .home-saint-section .saint-body h3 { font-size: 38px; }
  .home-saint-section .saint-body > p { font-size: 14px; }
  .home-saint-section .saint-figure.is-sanctis-art { width: 100%; height: auto; }
  .home-saint-section .saint-figure.is-sanctis-art .saint-art { width: 100%; height: auto; aspect-ratio: 1092 / 1440; }
  .today-rosary { padding: 26px; flex-wrap: wrap; gap: 18px; }
  .today-rosary > div { flex: 1; min-width: 180px; }
  .today-rosary .btn { margin-left: 0; }
  .today-rosary h2 { font-size: 30px; }
  .daily-readings-section, .reflection-panel { padding: 24px; }
  .saints-upcoming-rail { grid-auto-columns: 210px; gap: 15px; }
  .theology-portals { grid-template-columns: 1fr; }
  .theology-portal:first-child, .theology-portal:nth-child(4) { grid-column: auto; }
  .theology-portal { min-height: 240px; padding: 28px; }
  .theology-portal h2 { font-size: 34px; }
  .scripture-navigation { padding: 18px; }
  .scripture-paper > header h2 { font-size: 31px; }
  .lector-hero, .ministry-invitation, .prayer-banner { padding: 27px; }
  .prayer-banner { align-items: flex-start; flex-direction: column; gap: 20px; }
  .prayer-banner h3 { font-size: 32px; }
  .site-footer { margin-inline: 20px; padding-top: 28px; }
  .footer-meta { margin-top: 18px; }
  .saints-grid, .quote-grid { gap: 18px; }
}
@media (max-width: 640px) {
  .page-top { display: flex; }
  .inspiration-grid { grid-template-columns: 1fr; gap: 14px; }
  .resource-card { display: grid; grid-template-columns: 108px minmax(0, 1fr); }
  .resource-art { height: 100%; min-height: 138px; }
  .resource-body { padding: 22px; }
  .resource-body h3 { font-size: 27px; }
  .resource-body .eyebrow { font-size: 10px; }
  .resource-body p { font-size: 12px; }
  .steps { grid-template-columns: 1fr; gap: 6px; }
  .footer-meta { justify-content: flex-start; gap: 12px; }
  .saints-grid { grid-template-columns: 1fr; }
  .saints-grid .saint-body { padding: 25px; }
  .saints-grid .saint-body h3 { font-size: 31px; }
  .saints-grid .saint-body p { display: block; font-size: 13px; }
  .saints-grid .saint-body .eyebrow { font-size: 10px; }
  .saints-grid .saint-body .saint-title { font-size: 12px; min-height: 0; }
  .saints-grid .saint-body .btn { font-size: 12px; min-height: 42px; }
}
@media (max-width: 420px) {
  .header-inner { padding-inline: 14px; }
  .brand { gap: 6px; }
  .brand-tagline, .site-header .brand-tagline { font-size: 6px; letter-spacing: .8px; }
  .language-switch { padding: 2px; }
  .language-switch button { padding-inline: 6px; min-width: 28px; }
  .site-header .brand-mark, .site-header .brand-mark svg { width: 27px; }
  .formation-header-badge { padding: 6px; gap: 3px; }
  .main { padding-inline: 16px; }
  .collection-nav { margin-inline: 16px; }
  .page-top h1 { font-size: 40px; }
  .date-controls { gap: 2px; max-width: 100%; flex-wrap: wrap; }
  .date-button { padding-inline: 4px; font-size: 10px; }
  .hero-actions { gap: 8px; flex-wrap: wrap; }
  .hero-actions .btn { padding-inline: 12px; }
  .hero-actions .button-group { gap: 6px; }
  .today-journey .hero { padding-inline: 25px; }
  .hero-top, .hero-bottom { left: 25px; right: 25px; }
  .today-rosary { padding: 22px; }
  .today-rosary .small-orbit { width: 46px; height: 46px; }
  .reflection-panel { gap: 12px; padding: 22px; }
  .reflection-panel .small-orbit { width: 30px; height: 30px; }
  .feature-doors > button { padding: 22px 18px; }
  .feature-doors h3 { font-size: 26px; }
}
@media (prefers-reduced-motion: reduce) {
  .nav-button::after, .collection-nav button { transition: none; }
  .feature-doors > button:hover, .faith-card:hover, .reading-card:hover { transform: none; }
}

/* A study desk: original words, then context, syntax and Catholic reading. */
.study-catalogue { margin: 24px 0; border: 1px solid #d8d5c3; border-radius: 18px; background: #fffdf7; overflow: hidden; }
.study-catalogue > summary { padding: 22px 26px; cursor: pointer; font: 600 27px/1.3 var(--display); }
.study-catalogue > summary > span { display: inline-block; margin-left: 14px; font: 12px/1.6 var(--font); color: #677459; }
.study-catalogue-body { padding: 0 26px 26px; }
.study-catalogue-body > p { font-size: 13px; color: #607052; }
.study-library-controls { display: grid; grid-template-columns: 2fr 1fr; gap: 16px; margin: 20px 0; }
.study-library-controls label { font-size: 12px; color: #53654a; }
.study-library-controls input, .study-library-controls select { display: block; width: 100%; min-width: 0; margin-top: 8px; padding: 13px; border: 1px solid #cfd6c2; border-radius: 9px; color: #263e30; background: #fffef9; font: inherit; }
.study-library-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; max-height: 400px; overflow: auto; padding: 5px; scrollbar-color: #b8a578 #eee9db; }
.study-catalogue-card { display: flex; flex-direction: column; gap: 7px; text-align: left; padding: 20px; border: 1px solid #d9decc; border-radius: 12px; background: #f6f7ef; }
.study-catalogue-card[hidden] { display: none; }
.study-catalogue-card:hover { background: #ebf0df; border-color: #a6b695; }
.study-catalogue-card small { font-size: 10px; letter-spacing: .08em; color: #806c3f; }
.study-catalogue-card strong { font: 600 25px/1.2 var(--display); }
.study-catalogue-card span { font-size: 13px; color: #5c7050; }
.study-word-toolbar { display: flex; justify-content: flex-end; margin-top: 20px; }
.interlinear-passage { scroll-margin-top: 120px; }
.word-cell details { width: 100%; text-align: left; }
.word-cell details summary { min-height: 35px; padding-top: 8px; font-size: 12px; }
.word-cell details p { font-size: 13px; line-height: 1.8; color: #4a6240; }
.word-cell small { max-width: 190px; font-size: 11px; line-height: 1.7; color: #667957; }
.passage-study { margin: 32px 0; border: 1px solid #d7d7c2; border-radius: 18px; overflow: hidden; background: #fffdf7; }
.passage-study > header { padding: 28px 30px; background: #e9eedf; border-bottom: 1px solid #d4dcc5; }
.passage-study h3 { font: 600 36px/1.14 var(--display); margin: 8px 0 0; }
.passage-study .eyebrow { font-size: 10px; }
.passage-study-sections { padding: 8px 30px; }
.passage-study-sections > section { display: grid; grid-template-columns: 36px 1fr; gap: 16px; padding: 24px 0; }
.passage-study-sections > section + section { border-top: 1px solid #e0dfd1; }
.study-section-number { padding-top: 3px; font: 600 23px/1 var(--display); color: #9e8145; }
.passage-study h4 { margin: 0 0 12px; font-size: 15px; font-weight: 600; }
.passage-study-sections p { margin: 0; max-width: 860px; font-size: 15px; line-height: 1.95; color: #4c6245; }
.study-reflection { margin: 8px 30px 28px; padding: 24px; border-left: 3px solid #ac9155; background: #f1ecdd; border-radius: 0 12px 12px 0; }
.study-reflection > p:last-child { font: 600 25px/1.5 var(--display); margin: 8px 0 0; color: #35503a; }
.study-catechism { padding: 25px 30px; background: #f3f5eb; border-top: 1px solid #dbe1ce; }
.study-catechism p { font-size: 12px; color: #617353; }
.study-catechism > div { display: flex; flex-wrap: wrap; gap: 10px; }
.study-catechism a { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 14px; border: 1px solid #c4cdb4; border-radius: 8px; color: #36572e; background: #fffdf8; font-size: 12px; }
.study-attribution { padding-top: 20px; border-top: 1px solid #dedfcf; font-size: 12px; line-height: 1.8; }
.study-attribution p { font-size: 12px; }
.study-editor { margin: 24px 0; padding: 22px; border: 1px solid #d8ddcb; border-radius: 12px; background: #f2f5eb; }
.greek-corpus-intro { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 30px; margin: 20px 0 30px; padding: 34px; background: #203e33; color: #fff8e8; border-radius: 22px; }
.greek-corpus-intro h2 { font: 600 38px/1.12 var(--display); margin: 10px 0 17px; }
.greek-corpus-intro p { font-size: 14px; line-height: 1.9; color: #dce3cf; }
.greek-corpus-intro .eyebrow { color: #d8c28c; }
.greek-corpus-intro .btn { background: #eee1bd; color: #213d31; }
.greek-corpus-intro .greek-coverage-note { font-size: 12px; border-top: 1px solid #ffffff26; padding-top: 16px; color: #c7d2bc; }
.greek-reader-heading h2 { font: 600 46px/1.1 var(--display); margin: 12px 0 18px; }
.greek-reader-heading > p:last-child { color: #5b6e50; font-size: 14px; max-width: 800px; }
.greek-reader-controls { display: grid; grid-template-columns: 2fr 1fr; gap: 18px; padding: 24px; margin: 26px 0; border: 1px solid #d9dccb; border-radius: 15px; background: #eeefe3; }
.greek-reader-controls label { font-size: 12px; }
.greek-reader-controls select { display: block; width: 100%; min-width: 0; padding: 12px; margin-top: 9px; border: 1px solid #cad2bc; border-radius: 8px; font: inherit; color: #263f31; background: #fffdf7; }
.greek-chapter-paper { padding: 36px; background: #fffdf8; border: 1px solid #dcd7c6; border-radius: 20px; box-shadow: 0 14px 40px #243e3508; }
.greek-chapter-paper > header { text-align: center; padding: 12px 0 30px; border-bottom: 1px solid #dedbca; }
.greek-chapter-paper > header h3 { font: 600 38px/1.2 var(--display); margin: 12px 0; }
.greek-chapter-paper > header p { font-size: 13px; color: #6b765e; }
.greek-chapter-paper > header .greek-review-status { padding: 12px 18px; border: 1px solid #d6ccb1; border-radius: 8px; background: #f3edde; font-size: 12px; color: #71613b; }
.greek-complete-verse { padding: 28px 0; border-bottom: 1px solid #e3dfd2; scroll-margin-top: 120px; }
.greek-verse-text { display: grid; grid-template-columns: 25px minmax(0,1fr); gap: 14px; }
.greek-verse-number { padding-top: 9px; font-size: 12px; color: #9a8050; }
.greek-verse-text p { font: 22px/1.9 Georgia,serif; color: #253f32; margin: 0; overflow-wrap: anywhere; }
.greek-parallel-text { margin: 20px 0 16px 39px; padding-left: 18px; border-left: 2px solid #d6c7a1; }
.greek-parallel-text small { font-size: 9px; letter-spacing: .1em; color: #8c774a; }
.greek-parallel-text p { font: 16px/1.9 Georgia,serif; color: #5a6950; margin: 7px 0 0; }
.greek-verse-words { margin: 18px 0 0 39px; }
.greek-verse-words > summary { font-size: 12px; color: #45613d; min-height: 36px; cursor: pointer; padding-block: 8px; }
.greek-verse-words .interlinear-grid { margin-block: 12px; }
.greek-verse-note { padding: 18px 20px; margin: 20px 0 0 39px; background: #edf1e4; border-radius: 10px; color: #536b44; font-size: 13px; line-height: 1.9; }
.greek-source-details { margin-top: 28px; padding: 22px; background: #f0f1e7; border: 1px solid #d9decb; border-radius: 12px; font-size: 13px; line-height: 1.9; }
.greek-source-details > summary { cursor: pointer; color: #355333; font-weight: 600; }
.greek-source-details h3 { font: 600 27px/1.3 var(--display); }
.greek-source-details a { text-decoration: underline; text-underline-offset: 4px; }
.greek-source-details > p, .greek-source-details li { overflow-wrap: anywhere; }
@media (max-width:760px) {
 .greek-corpus-intro { grid-template-columns: 1fr; padding: 26px; gap: 12px; }
 .greek-corpus-intro h2 { font-size: 32px; }
 .greek-corpus-intro > .btn { justify-self: start; }
 .greek-reader-heading h2 { font-size: 36px; }
 .greek-reader-controls { grid-template-columns: 1fr; padding: 20px; }
 .greek-chapter-paper { padding: 22px 18px; }
 .greek-chapter-paper > header h3 { font-size: 31px; }
 .greek-verse-text { grid-template-columns: 20px minmax(0,1fr); gap: 8px; }
 .greek-verse-text p { font-size: 20px; }
 .greek-parallel-text, .greek-verse-words, .greek-verse-note { margin-left: 0; }
 .greek-source-details { padding: 18px; }
}
@media (max-width: 640px) {
  .study-library-controls, .study-library-cards { grid-template-columns: 1fr; }
  .study-catalogue > summary { padding: 20px; font-size: 25px; }
  .study-catalogue > summary > span { display: block; margin: 8px 0 0; }
  .study-catalogue-body { padding: 0 18px 20px; }
  .passage-study > header, .study-catechism { padding: 24px 20px; }
  .passage-study h3 { font-size: 31px; }
  .passage-study-sections { padding-inline: 20px; }
  .passage-study-sections > section { grid-template-columns: 26px 1fr; gap: 10px; }
  .passage-study-sections p { font-size: 14px; }
  .study-reflection { margin: 8px 20px 24px; padding: 20px; }
  .word-cell { max-width: 100%; flex: 1 1 150px; }
  .study-word-toolbar .btn { width: 100%; white-space: normal; }
}
/* Author research and formation library */
.author-notes .study-search-panel{align-items:end}.author-note-results{display:grid;gap:1rem;margin:1.5rem 0}.author-note-results article,.formation-article-grid>article{padding:clamp(1.25rem,3vw,2.4rem);border:1px solid var(--border,#dedbd1);border-radius:20px;background:var(--surface,#fffdf7)}.author-note-reading{max-width:78ch;margin:2rem auto;font-size:1.05rem;line-height:1.85;overflow-wrap:anywhere}.author-note-reading p{white-space:pre-wrap;margin:1rem 0}.author-notes code{overflow-wrap:anywhere}.author-notes select{width:100%;max-width:100%;text-overflow:ellipsis}.author-note-results p{overflow-wrap:anywhere;white-space:pre-wrap}.formation-article-grid{display:grid;gap:1.4rem;margin:2rem 0}.formation-article-grid>article h3{font:500 clamp(1.55rem,3vw,2.15rem)/1.2 Georgia,serif;max-width:28ch}.formation-article-grid>article p{max-width:76ch;line-height:1.8}.formation-article-grid summary{cursor:pointer;font-weight:600;padding:.8rem 0;color:var(--accent,#385347)}.formation-article-grid details[open]{animation:formation-reveal .25s ease-out}@keyframes formation-reveal{from{opacity:.65;transform:translateY(4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.formation-article-grid details[open]{animation:none}}
.article-note-provenance{border-top:1px solid var(--border,#dedbd1);margin-top:1.8rem;padding-top:1.3rem;font-size:.92rem;line-height:1.7}.article-note-provenance h4{font-family:inherit;font-size:.9rem;letter-spacing:.02em;margin:1.2rem 0 .4rem}.article-note-provenance ul{padding-left:1.3rem}.article-note-provenance li{margin:.5rem 0}.article-editorial-notes{margin:.8rem 0}.formation-article-grid>article>details>p{font-size:1.04rem}
.project-gap-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1rem;margin:1.6rem 0}.project-gap-metrics article{padding:1.25rem;border:1px solid var(--border,#dedbd1);border-radius:16px}.project-gap-metrics h3{font:inherit;font-weight:600;font-size:.9rem}.project-gap-metrics strong{display:block;font:500 2rem Georgia,serif;margin:.6rem 0}.project-gap-metrics p{font-size:.9rem;line-height:1.6}.project-gap-priorities li{padding:.6rem 0}.project-provider-status p{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.project-gap-dates{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:1rem;margin:1rem 0 2rem}.project-gap-dates article{padding:1rem;background:var(--surface,#fffdf7);border:1px solid var(--border,#dedbd1);border-radius:12px}.project-gap-dates a{display:block;margin:.6rem 0;overflow-wrap:anywhere}.saint-library-suggestion{margin-top:1.5rem}.saint-library-suggestion>.eyebrow{padding:.75rem 0}
.icon-rosary{overflow:visible;stroke-linecap:round;stroke-linejoin:round}.rosary-hero .icon-rosary{width:64px;height:80px}.nav-item .icon-rosary,.collection-nav .icon-rosary{height:28px;min-width:20px}

/* Long-form theology: short measures, visible pauses and restrained emphasis. */
.article-reading-body{max-width:68ch;margin:1.5rem auto 2.5rem;overflow-wrap:anywhere}
.formation-article-grid .article-reading-body p{font-size:clamp(1.02rem,1.8vw,1.12rem);line-height:1.95;margin:0 0 1.35em}
.article-reading-body .article-section-title{font-family:Georgia,serif;font-weight:500;font-size:clamp(1.3rem,2.6vw,1.65rem);line-height:1.4;color:var(--accent,#385347);margin:2.6rem 0 1.15rem;padding-top:1rem;border-top:1px solid var(--border,#dedbd1);text-wrap:balance}
.article-reading-body strong{font-weight:700;color:var(--text,#253a30)}
.article-key{text-decoration:underline;text-decoration-color:var(--accent,#385347);text-decoration-thickness:.09em;text-underline-offset:.22em;font-weight:600}
@media(max-width:600px){.article-reading-body{margin-top:1rem}.article-reading-body .article-section-title{margin-top:2rem}.formation-article-grid .article-reading-body p{line-height:1.9}}

/* Read-along and passage tools. */
.speech-word{border-radius:.23em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.speech-word.is-speaking,.speech-current-word{color:#142a22!important;background:#f3d989!important;outline:2px solid #c69a3d;outline-offset:2px;box-shadow:0 2px 9px #b28b3b33;border-radius:.23em;text-decoration:underline;text-underline-offset:.2em}
.speech-follow-panel{flex-basis:100%;width:100%;padding:.65rem .2rem 0;border-top:1px solid var(--border,#ddd);overflow-wrap:anywhere}
.speech-follow-panel small{font-size:.72rem;opacity:.8}.speech-follow-panel p{margin:.3rem 0 0;font-size:1rem;line-height:1.8;max-height:5.4em;overflow:auto}
.speech-player{flex-wrap:wrap}.scripture-reference-tools{border:1px solid var(--border,#dedbd1);background:var(--surface,#fffdf7);padding:1.15rem;border-radius:16px;margin-bottom:1.5rem}
.scripture-reference-tools h3{font:500 1.18rem/1.4 Georgia,serif;margin:.2rem 0 .85rem}.scripture-reference-tools h3:not(:first-child){margin-top:1.6rem}
.scripture-reference-tools p{font-size:.9rem;line-height:1.6}.scripture-reference-tools .button-group{display:flex;gap:.5rem;flex-wrap:wrap}
.scripture-reference-tools input{min-width:0;width:100%}.scripture-range-banner{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.8rem 1rem;border-radius:12px;background:#eadba44d;margin:1rem 0;flex-wrap:wrap}
@media(prefers-reduced-motion:reduce){.speech-word,.speech-current-word{transition:none}}

.has-player{padding-bottom:250px}.has-player #toast{bottom:270px}.speech-player{max-height:calc(100dvh - 140px);overflow:auto}

.modal .article-reading-body p{line-height:1.9;margin:0 0 1.3em;font-size:1.04rem}.modal .article-reading-body{margin:1.4rem 0 2rem}.modal .article-section-title{margin-top:2rem}

.passage-study .article-reading-body{margin:.5rem 0 1rem;max-width:65ch}.passage-study .article-reading-body p{margin:0 0 1.1rem;line-height:1.85}.study-further-reading{padding:1.4rem;margin:1.8rem 0;border:1px solid var(--border,#dedbd1);border-radius:16px;background:var(--surface,#fffdf7)}.study-further-reading p{line-height:1.8;max-width:64ch}

/* Daily Word photography and its dedicated administrator collection. */
.today-journey .hero::after{background:linear-gradient(90deg,#102b25df,#15392ba8 65%,#17352d87)}
.word-image-credit{display:flex;justify-content:flex-end;margin:.5rem .15rem 0;font-size:.72rem;color:var(--muted,#6d796d)}.word-image-credit a{color:inherit;text-decoration:none}.word-image-credit a:hover{text-decoration:underline}
.word-photo-upload{padding:1.4rem;margin:1.5rem 0;border:1px dashed var(--accent,#385347);border-radius:16px;background:var(--surface,#fffdf7)}.word-photo-upload p{margin:.7rem 0;line-height:1.7}
.word-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.2rem;margin:1rem 0 2rem}.word-photo-tile{border:1px solid var(--border,#dedbd1);padding:.8rem;border-radius:16px;background:var(--surface,#fffdf7);min-width:0}.word-photo-tile h4{font-size:1rem;margin:.9rem 0 .4rem}.word-photo-tile p{font-size:.8rem;line-height:1.6}.word-photo-tile.is-disabled .word-photo-preview{opacity:.45}
.word-photo-preview{position:relative;aspect-ratio:1;overflow:hidden;border-radius:10px;background:#233e36}.word-photo-preview img{width:100%;height:100%;object-fit:cover}.word-photo-preview:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#102b25bf,transparent 80%)}.word-photo-preview>span{position:absolute;z-index:1;left:18px;bottom:18px;font:600 1.6rem Georgia,serif;color:#fff8e6}.word-photo-preview small{display:block;font:500 .7rem/1.7 var(--body,Arial);letter-spacing:.08em;margin-top:.4rem}.word-photo-crop{margin-top:1rem;display:grid;gap:.8rem}.word-photo-crop label{display:grid;gap:.35rem;font-size:.85rem}.word-photo-crop input{width:100%}
@media(max-width:520px){.word-photo-grid{grid-template-columns:1fr 1fr;gap:.7rem}.word-photo-tile{padding:.55rem}.word-photo-tile .button-group{display:grid}.word-photo-tile .btn{padding:.6rem;font-size:.75rem}.word-photo-preview>span{font-size:1.2rem;left:10px;bottom:10px}}

/* Quiet preparation tools, using the established Sanctis paper and gold palette. */
.reading-practice{margin:28px 0;padding:clamp(20px,4vw,36px);border:1px solid var(--line,#dedfd5);border-radius:22px;background:var(--paper,#fffdf7)}
.reading-practice header{max-width:760px}.reading-practice header p:not(.eyebrow){line-height:1.7;color:var(--muted,#647168)}
.reading-audio-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:22px 0}.reading-audio-options article{padding:20px;border:1px solid var(--line,#dedfd5);border-radius:14px}.reading-audio-options small{color:var(--muted,#647168)}.reading-audio-options h3{font-size:1.1rem;line-height:1.5;margin:7px 0 15px}
.reading-practice-tools{margin-top:22px}.reading-practice-tools form{display:flex;flex-wrap:wrap;gap:14px;align-items:end}.reading-practice-tools label{display:grid;gap:9px;flex:1;min-width:200px}.reading-practice-tools input,.reading-practice-tools select,.reading-practice-tools textarea{width:100%;padding:13px 15px;border:1px solid var(--line,#dedfd5);border-radius:10px;background:#fff;font:inherit}.reading-practice-tools details{margin-top:24px;padding-top:20px;border-top:1px solid var(--line,#dedfd5)}.reading-practice-tools summary{cursor:pointer;font-weight:600;margin-bottom:16px}.reading-practice-tools textarea{resize:vertical;min-height:145px}.reading-practice-tools #reading-voice-paste label{flex-basis:100%}.reading-practice-text{margin-top:24px;padding:24px;background:#f3f5ee;border-radius:14px;line-height:1.85}.reading-practice-text .btn{margin-top:20px}
.psalm-example{margin:24px 0;padding:22px;border:1px solid var(--line,#dedfd5);border-radius:16px;background:rgba(255,255,255,.5)}.psalm-example p{line-height:1.7}.catechism-chapter .catechism-context{display:block;grid-column:1/-1;color:var(--muted,#647168);font-size:.83rem;line-height:1.7;margin-top:8px;font-weight:400}
@media(max-width:620px){.reading-audio-options{grid-template-columns:1fr}.reading-practice-tools form>.btn{width:100%}.reading-practice{border-radius:16px}.reading-practice-text{padding:18px}}

#reading-voice-psalm{margin-top:16px}

.guest-saints-library{margin-top:28px;padding-top:24px;border-top:1px solid var(--line,#dedfd5)}.guest-saints-library.is-compact>.section-heading h2{font-size:1.55rem}.guest-saints-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.guest-saint-locked{padding:0;overflow:hidden;text-align:left;border:1px solid var(--line,#dedfd5);border-radius:16px;background:#fffdf7;color:inherit;cursor:pointer;transition:transform .2s,border-color .2s}.guest-saint-locked:hover{transform:translateY(-3px);border-color:#a78b56}.guest-saint-locked:focus-visible{outline:3px solid #a78b56;outline-offset:4px}.guest-saint-picture{display:block;position:relative;aspect-ratio:4/3;overflow:hidden;background:#e6e9df}.guest-saint-picture>img{width:100%;height:100%;object-fit:cover;object-position:50% 27%}.guest-saint-monogram{display:grid;place-items:center;height:100%;font-family:Georgia,serif;font-size:3rem;color:#315543}.guest-lock{position:absolute;bottom:10px;left:10px;right:10px;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 10px;border:1px solid rgba(255,255,255,.4);border-radius:30px;background:rgba(25,51,41,.94);color:#fff;font-size:.76rem}.guest-saint-description{display:grid;gap:8px;padding:17px}.guest-saint-description strong{font-family:Georgia,serif;font-size:1.1rem;line-height:1.4}.guest-saint-description small,.guest-saint-description>span{font-size:.76rem;color:#657468}.guest-invitation{display:flex;gap:18px;margin:22px 0 0;padding:24px;border:1px solid #d7d8c5;border-radius:17px;background:linear-gradient(125deg,#edf1e6,#faf7ed)}.guest-invitation-symbol{font-size:2rem;color:#8c7447}.guest-invitation h3{margin:3px 0 10px;font-family:Georgia,serif;font-size:1.5rem;line-height:1.3}.guest-invitation p:not(.eyebrow){max-width:660px;font-size:.92rem;line-height:1.75;color:#4f6254}.guest-invitation small{display:block;margin-top:12px;color:#66725c;font-size:.76rem}.registration-free-note{padding:14px 18px;background:#edf2e8;border-radius:12px;color:#34543c;line-height:1.7}.saint-reading .guest-invitation{margin-top:0}.is-compact .guest-invitation{padding:20px}.is-compact .guest-saint-picture{aspect-ratio:4/3}
@media(max-width:620px){.guest-saints-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.is-compact .guest-saint-locked:last-child{display:none}.guest-invitation{padding:20px;gap:12px}.guest-invitation-symbol{font-size:1.4rem}.guest-invitation .button-group{align-items:stretch}.guest-invitation .button-group>.btn{width:100%}.guest-saint-description{padding:13px}.guest-saint-description strong{font-size:1rem}.guest-lock{left:7px;right:7px;font-size:.68rem}.guest-lock svg{width:15px;height:15px}}

.parish-logo{display:grid;place-items:center;width:80px;height:80px;margin-bottom:16px;padding:6px;border:1px solid #dee4d9;border-radius:18px;background:#fff}.parish-logo img{width:100%;height:100%;object-fit:contain}.parish-art-editor{margin:24px 0;padding:22px;border:1px solid #dce2d4;border-radius:16px;background:#f5f7f0}.parish-art-editor>p{line-height:1.7}.parish-art-candidate{margin:20px 0}.parish-art-candidate img{display:block;width:170px;height:170px;padding:12px;object-fit:contain;border-radius:18px;border:1px solid #d4ddcb;background:white}.parish-art-candidate figcaption{margin-top:10px;font-size:.8rem}.parish-art-approved{color:#315c37;font-weight:600}.parish-art-editor .button-group{flex-wrap:wrap}
