/* Confession Finder — shared stylesheet */
:root{
  --ink:#241C15;
  --ink-soft:#5B5041;
  --paper:#FAF5EA;
  --raised:#FFFFFF;
  --burgundy:#7A2331;
  --burgundy-dark:#5E1A24;
  --gold:#A8813C;
  --gold-soft:#F3E7CC;
  --line:#E3D9C4;
  --focus:#2D5C8A;
  --serif:'Source Serif 4', Georgia, 'Times New Roman', serif;
  --sans:'Public Sans', -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 var(--sans);-webkit-font-smoothing:antialiased}
a{color:var(--focus)}
a:hover{color:var(--burgundy)}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:2px}
h1,h2{font-family:var(--serif);font-weight:600;line-height:1.15;margin:0}
.wrap{max-width:960px;margin:0 auto;padding:0 20px}

/* header */
header.site{background:var(--burgundy);border-bottom:4px solid var(--gold);padding:18px 0}
header.site .wrap{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 22px}
.brand{font-family:var(--serif);font-size:22px;font-weight:700;color:#fff;text-decoration:none}
.brand:hover{color:#F3E2BE}
.crumbs{font-size:14px;color:#E8C98F}
.crumbs a{color:#F5EDE0;text-decoration:none}
.crumbs a:hover{text-decoration:underline;color:#fff}
.crumbs .sep{margin:0 8px;opacity:.6}

main.wrap{padding-top:40px;padding-bottom:56px}

/* intros */
.home-head h1{font-size:clamp(32px,5vw,48px);max-width:16ch;color:var(--burgundy-dark)}
.county-head h1,.parish-page h1{font-size:clamp(28px,4.2vw,40px);color:var(--burgundy-dark)}
.lede{font-size:18px;color:var(--ink-soft);max-width:60ch;margin:14px 0 0}

/* home: county list */
.counties{list-style:none;margin:36px 0 0;padding:0;border-top:1px solid var(--line);max-width:640px}
.counties li{border-bottom:1px solid var(--line)}
.counties a,.counties .soon{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:20px 4px;text-decoration:none}
.counties .cname{font-family:var(--serif);font-size:24px;font-weight:600;color:var(--ink)}
.counties a:hover .cname{color:var(--burgundy)}
.counties .cmeta{font-size:15px;color:var(--ink-soft)}
.counties .soon .cname{color:#9A8E7C}

/* filters */
.filters{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:flex-end;margin:28px 0 8px;padding:18px 20px;background:var(--raised);border:1px solid var(--line);border-radius:6px}
.search{display:flex;flex-direction:column;gap:6px;flex:1 1 260px;font-size:14px;font-weight:600;color:var(--ink-soft)}
.search input{font:16px var(--sans);padding:11px 12px;border:1px solid #CFC2A6;border-radius:4px;background:#fff;color:var(--ink);width:100%}
.days{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.days legend{font-size:14px;font-weight:600;color:var(--ink-soft);padding:0;margin-bottom:6px;width:100%}
.days label{position:relative;cursor:pointer}
.days input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.days label{display:inline-block;padding:9px 14px;border:1px solid #CFC2A6;border-radius:999px;font-size:15px;background:#fff;user-select:none}
.days label:has(input:checked){background:var(--burgundy);border-color:var(--burgundy);color:#fff}
.days label:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}

.count{font-size:14px;color:var(--ink-soft);margin:16px 0 0}
.empty{font-size:17px;padding:24px 0}

/* parish list: two columns, who | when */
.parishes{list-style:none;margin:8px 0 0;padding:0;border-top:2px solid var(--ink)}
.parish{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:10px 36px;padding:24px 0;border-bottom:1px solid var(--line)}
.parish[hidden]{display:none}
.town{margin:0;font-size:14px;font-weight:600;color:var(--gold)}
.parish h2{font-size:21px;margin:2px 0 8px}
.parish h2 a{color:var(--ink);text-decoration:none}
.parish h2 a:hover{color:var(--burgundy);text-decoration:underline}
.addr,.phone{margin:0;font-size:15px}
.addr a,.phone a{color:var(--ink-soft);text-decoration:none}
.addr a:hover,.phone a:hover{color:var(--focus);text-decoration:underline}

.conf-label{margin:0 0 2px;font-size:13px;font-weight:700;color:var(--burgundy);letter-spacing:.02em}
.conf-times{margin:0;font-family:var(--serif);font-size:21px;font-weight:500;line-height:1.3;color:var(--ink)}
.conf-unknown{font-family:var(--sans);font-size:16px;color:var(--ink-soft);font-style:italic}

.mass{margin-top:12px;font-size:15px}
.mass summary{cursor:pointer;color:var(--focus);font-weight:600;width:max-content}
.mass ul{margin:8px 0 0;padding-left:18px;color:var(--ink-soft)}
.mass li{margin:2px 0}

/* parish page */
.parish-page{max-width:680px}
.parish-page .town{font-size:15px}
.parish-page h1{margin-top:4px}
.conf-hero{margin:28px 0 8px;padding:22px 24px;background:var(--gold-soft);border-left:5px solid var(--burgundy);border-radius:0 6px 6px 0}
.conf-hero .conf-times{font-size:clamp(22px,3.4vw,28px)}
.detail{margin-top:30px}
.detail h2{font-size:20px;color:var(--burgundy-dark);margin-bottom:8px}
.detail p,.detail ul{margin:0;font-size:16px}
.detail ul{padding-left:20px}
.detail li{margin:3px 0}
.detail ul.contact{list-style:none;padding:0}
.note{margin:26px 0 0;padding:12px 16px;border:1px solid var(--line);border-radius:6px;background:var(--raised);font-size:15px;color:var(--ink-soft)}
.verified{margin:28px 0 0;font-size:14px;color:var(--ink-soft)}
.report{margin:12px 0 0;font-size:15px}

/* footer */
footer.site{border-top:1px solid var(--line);padding:26px 0 40px;font-size:14px;color:var(--ink-soft)}
footer.site p{margin:0 0 8px;max-width:70ch}

@media (max-width:680px){
  main.wrap{padding-top:28px}
  .parish{grid-template-columns:1fr;gap:12px}
  .filters{padding:16px}
  .counties .cname{font-size:21px}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
