@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
/* Allow long parish names, addresses, and schedules to wrap at any size. */
.field,.directory,.map-panel,.schedule{min-width:0}
.church,.map-heading,.map-note{overflow-wrap:anywhere}
.map-toggle{display:none}
:root{font-family:'DM Sans',Arial,sans-serif;color:#242138;background:#f7f8fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}header{height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,24px);border-bottom:1px solid #e0e1e8;background:white}.brand{color:#302748;text-decoration:none;display:flex;gap:14px;align-items:center;font-size:20px}.brand strong{font-weight:700}.brand-icon{display:grid;place-items:center;width:42px;height:46px;background:#392951;color:#fff;font-size:30px;border-radius:18px 18px 4px 4px}.header-note,.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700;color:#786444}main{max-width:1440px;margin:auto;padding:42px max(5vw,24px) 0}.intro{position:relative;padding-bottom:24px}.intro h1{font-family:'Libre Caslon Display',Georgia,serif;font-size:54px;line-height:1.03;letter-spacing:-1px;font-weight:400;margin:16px 0}.intro h1 br{display:none}.intro em{font-style:normal;color:#795c99}.intro p{color:#666575;margin:16px 0;font-size:17px}.search-panel{display:flex;align-items:flex-end;gap:16px;background:#fff;border:1px solid #e1dfe8;border-radius:12px;padding:22px;box-shadow:0 8px 30px #31233e06}.field{display:flex;flex-direction:column;gap:8px;flex:1}.name-field{flex:1.8}label{font-size:14px;font-weight:600}input{width:100%;border:1px solid #d7d5df;border-radius:6px;height:48px;font:inherit;padding:0 14px;color:#242138;background:#fcfcfe}button{font:inherit;cursor:pointer;border:0}button.primary{height:48px;background:#453058;color:white;border-radius:6px;padding:0 23px;white-space:nowrap;font-weight:600}.primary span{margin-left:20px}.reset{background:transparent;height:48px;color:#665574;text-decoration:underline;font-size:14px}#zip-error:empty{display:none}#zip-error{color:#a12c39;font-size:14px}.workspace{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,1fr);gap:30px;padding-top:32px;align-items:start}.results-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px;gap:12px}.results-heading h2{margin:0;font-size:19px}.results-heading>span{font-size:13px;color:#72717d}.church{padding:24px;border:1px solid #e1dfe8;border-radius:10px;background:white;margin-bottom:16px}.church.selected{border-color:#8a719f;box-shadow:inset 3px 0 #795c99}.area{font-size:12px;font-weight:700;color:#796344;letter-spacing:.8px;text-transform:uppercase}.church h3{font-family:'Libre Caslon Display',Georgia,serif;font-size:29px;font-weight:400;line-height:1.12;margin:10px 0}.address{font-size:14px;color:#686577;line-height:1.6;margin:0 0 19px}.schedule-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px solid #efedf3;padding-top:17px}.schedule h4{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#655375;margin:0 0 8px}.schedule p{font-size:14px;line-height:1.7;white-space:pre-line;margin:0}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:20px}.map-button{background:#efeaf4;border-radius:5px;color:#49315e;padding:10px 14px;font-size:14px;font-weight:600}.actions a,.sources a{color:#5f4279;font-size:14px;text-underline-offset:3px}.details{margin-top:18px;border-top:1px solid #efedf3;padding-top:15px}.details summary{font-size:14px;font-weight:600;color:#5f4279;cursor:pointer}.details-body{padding-top:18px;display:grid;gap:18px}.notes{font-size:14px;line-height:1.6;color:#666175;white-space:pre-line;margin:0}.sources{display:flex;flex-wrap:wrap;gap:12px}.checked{font-size:12px;color:#767181}.map-panel{position:sticky;top:24px;border:1px solid #e1dfe8;border-radius:10px;overflow:hidden;background:white}.map-heading{padding:24px}.map-heading h2{font-family:'Libre Caslon Display',Georgia,serif;font-size:30px;line-height:1.15;font-weight:400;margin:10px 0}.map-heading p{font-size:14px;color:#6b6576;margin:0;line-height:1.5}iframe{display:block;width:100%;height:420px;border:0;background:#eae9e9}#map-link{display:flex;justify-content:space-between;padding:18px 24px;color:#56396d;font-size:14px;font-weight:600;text-decoration:none;border-bottom:1px solid #eeecf2}.map-note{padding:23px 24px;background:#f9f8fb;font-size:14px}.map-note strong{font-weight:600}.map-note p{margin:7px 0 0;line-height:1.6;color:#716a7b}footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e0dce6;margin-top:40px;padding:28px 0;font-size:13px;color:#77707f;gap:20px}footer>span{font-weight:600;color:#534260}footer p{line-height:1.7;text-align:right}.empty{padding:35px 25px;background:white;border:1px solid #e1dfe8;border-radius:10px}.empty p{color:#6b6576;line-height:1.7}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #ae8aca;outline-offset:4px}button:hover{filter:brightness(.95)}@media(min-width:1600px){main{padding-left:40px;padding-right:40px}}@media(max-width:950px){.intro h1{font-size:46px}.intro h1 br{display:block}.search-panel{flex-wrap:wrap}.workspace{gap:20px;grid-template-columns:minmax(0,1fr) minmax(280px,.85fr)}.schedule-grid{grid-template-columns:1fr}iframe{height:360px}}@media(max-width:700px){header{height:76px;padding:0 20px}.header-note{display:none}main{padding:30px 18px 0}.intro h1{font-size:46px}.search-panel{padding:18px;gap:14px}.field,.name-field{flex:1 1 100%}.primary{flex:1}.workspace{display:flex;flex-direction:column}.directory{width:100%}.map-panel{width:100%;position:static;order:-1}.map-heading{padding:18px}.map-heading h2{font-size:25px}.map-heading .eyebrow{display:none}iframe{height:260px}.map-note{display:none}.church{padding:21px}.schedule-grid{grid-template-columns:1fr 1fr;gap:16px}.results-heading>span{display:none}footer{align-items:flex-start;flex-direction:column;gap:4px}footer p{text-align:left}}@media(max-width:380px){.schedule-grid{grid-template-columns:1fr}.intro h1{font-size:39px}}

/* Phone and tablet layout: keep the search and schedules within easy reach. */
@media(max-width:950px){
 .search-panel .field{flex-basis:calc(50% - 16px)}
 .workspace{grid-template-columns:minmax(0,1fr)}
 .map-panel{position:static;grid-row:1}
 .map-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:48px;padding:14px 18px;background:#fff;color:#49315e;text-align:left;font-weight:600}
 .map-toggle::after{content:'+';font-size:24px;line-height:1}
 .map-toggle[aria-expanded="true"]::after{content:'−'}
 .map-content{display:none}
 .map-panel.expanded .map-content{display:block}
 .map-panel{scroll-margin-top:16px}
 .schedule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .actions a,.sources a{display:inline-flex;align-items:center;min-height:44px}
 .map-button,.reset{min-height:44px}
 .details summary{min-height:44px;padding:12px 0;line-height:1.5}
 .details{padding-top:4px}
 .actions{column-gap:20px;row-gap:4px}
}
@media(max-width:700px){
 header{height:auto;min-height:68px;padding:12px 18px}
 .brand{font-size:18px;gap:10px}
 .brand-icon{flex-shrink:0;width:36px;height:40px}
 main{padding:22px 16px 0}
 .eyebrow{font-size:12px;letter-spacing:1.2px;line-height:1.6}
 .intro{padding-bottom:12px}
 .intro h1{font-size:clamp(32px,8.5vw,44px);line-height:1.08;margin:12px 0}
 .intro p{font-size:16px;line-height:1.5;margin:12px 0}
 .search-panel{padding:16px;gap:14px}
 .search-panel .field{flex:1 1 100%}
 input{font-size:16px;min-width:0}
 button.primary{padding:0 16px}
 .reset{min-width:48px}
 .workspace{padding-top:20px;gap:20px}
 .church{padding:18px}
 .church h3{font-size:28px;line-height:1.2}
 .schedule-grid{grid-template-columns:minmax(0,1fr);gap:18px}
 .schedule h4{font-size:14px;letter-spacing:.6px}
 .schedule p,.notes{font-size:16px;line-height:1.65}
 .address{font-size:15px}
 .map-note{display:block;padding:18px}
 iframe{height:280px}
 footer{margin-top:24px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
