/* Spiritual Perspectives: one listening room, with a searchable editorial index. */
.archive-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.archive-page { --archive-green:var(--ink,#173a2d); --archive-paper:var(--paper,#f3f0e7); }
.archive-page [hidden] { display:none !important; }
.archive-anchor { display:inline-flex; align-items:center; gap:24px; font-size:14px; font-weight:500; text-decoration:none; border-bottom:1px solid currentColor; padding:12px 0 9px; margin-top:14px; }
.archive-anchor span { font-size:20px; }
.archive-hero { min-height:560px; }
.archive-hero-content { padding-top:84px; padding-bottom:80px; }
.archive-hero-content h1 { font-size:clamp(64px,8.4vw,122px); line-height:.87; letter-spacing:-.045em; max-width:9em; margin:28px 0 30px; }
.archive-hero-content > p:not(.eyebrow) { font-family:var(--serif,Georgia,serif); font-size:clamp(23px,2.3vw,34px); margin:0; line-height:1.2; }
.archive-hero .archive-anchor { margin-top:24px; }
.archive-program-intro { display:flex; align-items:center; justify-content:space-between; gap:48px; padding:48px 0; }
.archive-program-intro p { font-size:17px; line-height:1.7; margin:0; max-width:710px; }
.archive-program-intro .archive-anchor { flex-shrink:0; margin:0; }
.archive-listening { background:var(--archive-green); color:var(--archive-paper); display:grid; grid-template-columns:1.1fr 1fr; gap:5vw; padding:44px clamp(24px,4vw,60px); scroll-margin-top:24px; }
.archive-selected-details,.archive-player-column { min-width:0; }
.archive-selected-details>.eyebrow { color:#dbe3d1; line-height:1.6; margin:0; }
.archive-listening h2 { font-family:var(--serif,Georgia,serif); font-size:clamp(34px,3.4vw,52px); line-height:1.08; font-weight:400; letter-spacing:-.025em; margin:18px 0; overflow-wrap:anywhere; }
.archive-selected-byline { font-size:14px; line-height:1.7; margin:0 0 26px; }
.archive-selected-about { border-top:1px solid #728b76; font-size:14px; line-height:1.7; }
.archive-selected-about summary,.episode-provenance summary { display:flex; align-items:center; justify-content:space-between; gap:20px; list-style:none; cursor:pointer; padding:15px 0; min-height:48px; font-size:14px; }
.archive-selected-about summary::-webkit-details-marker,.episode-provenance summary::-webkit-details-marker { display:none; }
.archive-selected-about summary span,.episode-provenance summary span { font-size:22px; line-height:1; }
.archive-selected-about[open] summary span,.episode-provenance[open] summary span { transform:rotate(45deg); }
.archive-selected-about p { margin:0 0 16px; }
.episode-date-note { padding-left:15px; border-left:2px solid #b7bf99; font-size:14px; line-height:1.65; }
.archive-share { display:flex; flex-wrap:wrap; align-items:center; gap:14px 24px; padding-top:12px; font-size:14px; }
.archive-share a { text-underline-offset:5px; }
.archive-share button { color:inherit; border:0; border-bottom:1px solid currentColor; background:transparent; font:inherit; min-height:44px; cursor:pointer; padding:6px 0; }
.archive-feature-link { display:inline-flex; gap:20px; text-decoration:none; border-bottom:1px solid #8caa92; font-size:14px; padding-bottom:7px; margin-top:28px; }
.archive-library { padding:90px 0 100px; scroll-margin-top:26px; }
.archive-library-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; padding-bottom:34px; }
.archive-library-heading h2 { font-family:var(--serif,Georgia,serif); font-size:clamp(48px,5.1vw,78px); font-weight:400; line-height:1; letter-spacing:-.04em; margin:20px 0 0; }
.archive-total { text-align:right; font-size:14px; line-height:1.6; margin:0; white-space:nowrap; }
.archive-total span { display:block; margin-top:5px; color:var(--muted); }
.archive-filters { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr); gap:28px; align-items:start; border-top:1px solid var(--line); padding-top:26px; }
.archive-filters label { display:block; font-size:14px; margin-bottom:12px; }
.archive-refine { min-width:0; }
.archive-refine summary { display:flex; justify-content:space-between; align-items:center; gap:14px; min-height:48px; margin-top:34px; border-bottom:1px solid var(--archive-green); font-size:14px; list-style:none; cursor:pointer; }
.archive-refine summary::-webkit-details-marker { display:none; }
.archive-refine summary span { font-size:24px; line-height:1; }
.archive-refine[open] summary span { transform:rotate(45deg); }
.archive-refine-controls { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px; padding-top:22px; }
.archive-search-field { position:relative; display:flex; align-items:center; border-bottom:1px solid var(--archive-green); height:48px; }
.archive-search-field svg { position:absolute; left:0; width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.4; pointer-events:none; }
.archive-search-field input { background:transparent; border:0; border-radius:0; width:100%; height:100%; padding:8px 36px 8px 34px; color:inherit; font:inherit; font-size:16px; min-width:0; }
.archive-search-field input::placeholder { color:var(--muted); opacity:1; }
.archive-search-field input::-webkit-search-cancel-button { display:none; }
.archive-search-field button { position:absolute; right:0; width:36px; height:44px; font-size:25px; background:transparent; border:0; color:inherit; cursor:pointer; }
.archive-select select { width:100%; height:48px; border:0; border-bottom:1px solid var(--archive-green); border-radius:0; background:transparent; padding:0 20px 0 0; color:inherit; font:inherit; font-size:14px; cursor:pointer; }
.archive-filters .archive-listen-filter { display:flex; grid-column:1/-1; align-items:center; gap:9px; margin:0; min-height:44px; line-height:1.4; cursor:pointer; }
.archive-listen-filter input { width:18px; height:18px; accent-color:var(--archive-green); margin:0; }
.archive-years { display:flex; flex-wrap:wrap; gap:5px 18px; padding:26px 0 22px; border-bottom:1px solid var(--line); }
.archive-years a { display:inline-flex; align-items:center; justify-content:center; min-width:36px; min-height:44px; font-size:14px; text-decoration:none; border-bottom:1px solid transparent; }
.archive-years a:hover,.archive-years a[aria-current] { border-color:currentColor; }
.archive-result-line { display:flex; justify-content:space-between; gap:16px; margin-top:20px; align-items:center; min-height:44px; font-size:14px; color:var(--muted); }
.archive-result-line p { margin:0; }
.archive-reset { padding:8px 0; border:0; background:transparent; color:var(--archive-green); font:inherit; cursor:pointer; text-decoration:underline; text-underline-offset:5px; min-height:44px; }
.archive-reset span { margin-left:10px; }
.archive-year-group { display:grid; grid-template-columns:100px 1fr; gap:38px; padding-top:30px; scroll-margin-top:26px; }
.archive-year-title { font-family:var(--serif,Georgia,serif); font-size:38px; font-weight:400; line-height:1; margin:24px 0 0; }
.episode-list { list-style:none; margin:0; padding:0; min-width:0; }
.episode-row { display:grid; grid-template-columns:100px 1fr auto; gap:6px 28px; padding:23px 0 25px; border-top:1px solid var(--line); position:relative; align-items:start; }
.episode-row[data-selected=true] { border-top-color:var(--archive-green); }
.episode-row[data-selected=true] .episode-action { font-weight:600; }
.episode-date { padding-top:5px; font-size:14px; line-height:1.5; }
.episode-date span { display:block; color:var(--muted); font-size:14px; margin-top:4px; }
.episode-heading { color:inherit; text-decoration:none; min-width:0; }
.episode-row-title { font-family:var(--serif,Georgia,serif); font-size:30px; font-weight:400; line-height:1.16; letter-spacing:-.016em; margin:0; max-width:750px; overflow-wrap:anywhere; }
.episode-heading:hover { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.episode-summary { min-width:0; }
.row-episode-about { margin-top:12px; font-size:14px; line-height:1.7; }
.row-episode-about>summary { display:inline-flex; align-items:center; gap:24px; cursor:pointer; list-style:none; min-height:44px; }
.row-episode-about>summary::-webkit-details-marker { display:none; }
.row-episode-about>summary>span { font-size:21px; }
.row-episode-about[open]>summary>span { transform:rotate(45deg); }
.row-episode-description { max-width:700px; margin-top:12px; }
.row-episode-description>p { margin:0 0 16px; }
.row-episode-description .episode-sponsors,.row-episode-description .episode-topic-labels { font-size:14px; }
.row-episode-description .episode-date-note { border-color:#96733a; }
.episode-media-fallback { display:flex; flex-wrap:wrap; align-items:center; gap:8px 24px; margin-top:4px; font-size:13px; }
.episode-media-fallback>a { display:inline-flex; align-items:center; gap:12px; min-height:44px; text-underline-offset:5px; }
.episode-summary>.recording-unavailable { margin-top:12px; }
.episode-guest { display:block; font-size:14px; color:var(--muted); margin-top:10px; line-height:1.5; }
.episode-action { display:flex; align-items:center; gap:14px; font-size:14px; text-decoration:none; white-space:nowrap; padding:8px 0; min-width:44px; min-height:44px; }
.episode-action span { font-size:23px; }
.episode-row .recording-unavailable { grid-column:2; margin:3px 0 0; }
.recording-unavailable { border-top:1px solid currentColor; padding:20px 0 0; font-size:14px; line-height:1.65; }
.recording-unavailable p { margin:8px 0 0; }
.recording-status { font-size:14px; }
.recording-unavailable--compact { padding:0; border:0; line-height:1.4; color:var(--muted); }
.archive-empty { padding:70px 20px; text-align:center; border-bottom:1px solid var(--line); }
.archive-empty h3 { font-family:var(--serif,Georgia,serif); font-size:42px; font-weight:400; line-height:1.1; margin:0 0 15px; }
.archive-empty p { font-size:15px; margin:0 auto 25px; max-width:450px; line-height:1.6; }
.archive-empty button { background:var(--archive-green); color:var(--archive-paper); border:1px solid var(--archive-green); padding:13px 22px; cursor:pointer; font:inherit; font-size:14px; min-height:44px; }
.archive-empty button span { margin-left:25px; }
.archive-noscript { font-size:14px; line-height:1.6; background:var(--wash); padding:16px 20px; }
.audio-player { margin-top:0; }
.audio-player audio { width:100%; max-width:100%; height:54px; margin-bottom:20px; }
.player-controls { border-top:1px solid currentColor; padding-top:25px; }
.player-primary { display:flex; align-items:center; gap:22px; }
.player-play { display:grid; place-items:center; flex-shrink:0; width:64px; height:64px; border-radius:50%; border:1px solid currentColor; color:inherit; background:transparent; cursor:pointer; transition:background .2s,color .2s; }
.player-play:hover { background:var(--archive-paper); color:var(--archive-green); }
.player-play svg { width:24px; height:24px; fill:currentColor; }
.player-timeline { flex:1; min-width:0; padding-top:5px; }
.player-seek { display:block; width:100%; min-height:44px; margin:0; padding:0; appearance:none; background:transparent; color:inherit; cursor:pointer; }
.player-seek::-webkit-slider-runnable-track { height:2px; background:currentColor; }
.player-seek::-webkit-slider-thumb { appearance:none; width:16px; height:16px; margin-top:-7px; background:currentColor; border:0; border-radius:50%; }
.player-seek::-moz-range-track { height:2px; background:currentColor; }
.player-seek::-moz-range-thumb { width:16px; height:16px; background:currentColor; border:0; border-radius:50%; }
.player-seek:disabled { cursor:default; opacity:.55; }
.player-times { display:flex; justify-content:space-between; font-size:14px; font-variant-numeric:tabular-nums; padding:0 2px; line-height:1.4; margin-top:3px; }
.player-secondary { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:16px; margin:18px 0 0 86px; }
.player-jumps { display:flex; gap:16px; }
.player-jumps button { background:transparent; color:inherit; border:0; cursor:pointer; min-width:46px; min-height:44px; padding:6px 0; font:inherit; font-size:14px; display:flex; align-items:center; gap:6px; }
.player-jumps button span { font-size:25px; line-height:1; }
.player-jumps button:disabled { opacity:.5; cursor:default; }
.player-speed { display:flex; align-items:center; gap:8px; font-size:14px; position:relative; }
.player-speed::after { content:''; position:absolute; right:7px; top:50%; width:7px; height:7px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:translateY(-75%) rotate(45deg); pointer-events:none; }
.player-speed select { appearance:none; font:inherit; font-size:14px; background:transparent; color:inherit; border:0; border-bottom:1px solid currentColor; padding:8px 22px 8px 3px; cursor:pointer; border-radius:0; height:44px; min-height:44px; min-width:64px; }
.player-speed option { background:var(--archive-paper); color:var(--archive-green); }
.player-help { font-size:13px; line-height:1.6; margin:15px 0 0; color:inherit; opacity:.85; }
.player-error { font-size:14px; line-height:1.5; margin-top:20px; padding:18px; border:1px solid currentColor; }
.player-error p { margin:0 0 12px; }
.player-error button { color:inherit; background:transparent; border:0; border-bottom:1px solid currentColor; font:inherit; padding:6px 0; cursor:pointer; min-height:44px; }
.player-error button span { margin-left:18px; }
.player-download { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; border-top:1px solid currentColor; margin-top:23px; padding-top:18px; min-height:44px; font-size:14px; text-decoration:none; color:inherit; }
.download-meta { font-size:14px; white-space:nowrap; }
.download-meta>span { font-size:21px; margin-left:10px; }
.episode-topics { display:flex; flex-wrap:wrap; list-style:none; gap:8px; margin:28px 0; padding:0; }
.episode-topics a { display:block; border:1px solid var(--line); padding:8px 12px; text-decoration:none; font-size:14px; }
.episode-provenance { font-size:14px; line-height:1.65; border-top:1px solid var(--line); margin-top:25px; }
.archive-listening .episode-provenance { border-color:#728b76; margin-top:0; }
.episode-provenance ul { padding-left:16px; margin:0 0 18px; }
.episode-provenance li { margin:8px 0; }
.episode-provenance a { text-underline-offset:4px; overflow-wrap:anywhere; }
.archive-page :is(a,button,input,select,summary,[data-audio-player]) { -webkit-tap-highlight-color:transparent; }
.archive-page :is(a,button,input,select,summary,[data-audio-player]):focus-visible { outline:2px solid currentColor; outline-offset:5px; }
.archive-page .player-play:focus-visible { outline-color:var(--archive-paper); }
@media(max-width:1100px) {
  .archive-listening { gap:40px; padding:36px; }
  .archive-program-intro { gap:30px; }
  .archive-program-intro p { max-width:65%; }
  .archive-year-group { grid-template-columns:80px 1fr; gap:24px; }
  .episode-row { grid-template-columns:80px 1fr auto; gap:6px 20px; }
  .episode-row-title { font-size:28px; }
}
@media(max-width:900px) {
  .archive-listening { grid-template-columns:1fr; gap:32px; }
  .archive-player-column { grid-row:2; }
  .archive-selected-details { max-width:100%; }
  .archive-listening h2 { max-width:700px; font-size:42px; }
  .archive-selected-about,.archive-listening .episode-provenance { max-width:700px; }
}
@media(max-width:760px) {
  .archive-hero { min-height:480px; }
  .archive-hero-content { padding-top:64px; padding-bottom:56px; }
  .archive-hero-content h1 { font-size:clamp(52px,12.8vw,86px); margin:24px 0; }
  .archive-hero-content>p:not(.eyebrow) { max-width:260px; }
  .archive-program-intro { display:block; padding:32px 0; }
  .archive-program-intro p { max-width:100%; font-size:16px; }
  .archive-program-intro .archive-anchor { margin-top:14px; }
  .archive-listening { padding:28px 24px; gap:28px; }
  .archive-listening h2 { font-size:clamp(32px,8.4vw,42px); margin:16px 0; }
  .archive-selected-byline { margin-bottom:20px; }
  .archive-share { gap:10px 18px; }
  .archive-library { padding:64px 0; }
  .archive-library-heading { align-items:start; padding-bottom:28px; }
  .archive-library-heading h2 { font-size:49px; max-width:250px; margin-top:18px; }
  .archive-total { padding-top:36px; white-space:normal; max-width:130px; }
  .archive-filters { grid-template-columns:minmax(0,1fr) 118px; gap:14px; padding-top:18px; }
  .archive-filters:has(.archive-refine[open]) { grid-template-columns:1fr; }
  .archive-refine[open] summary { margin-top:0; }
  .archive-refine-controls { gap:18px; padding-top:18px; }
  .archive-search-field input { padding-right:8px; }
  .archive-search-field:has(button:not([hidden])) input { padding-right:36px; }
  .archive-years { gap:3px 14px; padding:18px 0; }
  .archive-result-line { margin-top:16px; }
  .archive-year-group { display:block; padding-top:26px; }
  .archive-year-title { font-size:34px; margin:0 0 20px; }
  .episode-row { grid-template-columns:1fr auto; gap:10px 16px; padding:20px 0 23px; }
  .episode-date { grid-column:1/-1; display:flex; gap:13px; align-items:baseline; padding:0; }
  .episode-date span { margin-top:0; }
  .episode-row-title { font-size:28px; line-height:1.13; }
  .episode-action { font-size:0; width:44px; height:44px; padding:0; justify-content:center; }
  .episode-action span { font-size:26px; }
  .episode-guest { margin-top:8px; }
  .episode-row .recording-unavailable { grid-column:1; margin-top:0; }
  .player-primary { gap:17px; }
  .player-play { height:57px; width:57px; }
  .player-secondary { margin-left:74px; margin-top:12px; }
  .archive-empty { padding:56px 5px; }
  .archive-empty h3 { font-size:36px; }
}
@media(max-width:420px) {
  .archive-listening { padding:26px 20px; }
  .player-secondary { margin-left:0; }
  .archive-library-heading { display:block; }
  .archive-total { max-width:none; text-align:left; padding-top:18px; }
  .archive-total span { display:inline; margin-left:10px; }
}
@media(prefers-reduced-motion:reduce) { .player-play { transition:none; } }
