/* PEL 1.20 · Public portal */
.portal20-hero{display:grid;gap:1.5rem}.portal20-search{background:#fff;border:1px solid #cfdde1;border-radius:22px;padding:1rem;box-shadow:0 14px 34px rgba(10,49,75,.08)}.portal20-search-primary,.portal20-filter-grid{display:grid;grid-template-columns:2fr repeat(3,minmax(150px,1fr));gap:.75rem;align-items:end}.portal20-search label,.nearby-search label{display:grid;gap:.35rem}.portal20-search label>span,.nearby-search label>span{color:#173b55;font-size:.78rem;font-weight:800}.portal20-search input,.portal20-search select{width:100%;min-height:46px;border:1px solid #b8cbd2;border-radius:10px;background:#fff;padding:.7rem;color:#102f4d}.portal20-search button{min-height:46px}.portal20-more{margin-top:.75rem;border-top:1px solid #dbe6e9;padding-top:.75rem}.portal20-more summary{cursor:pointer;color:#176f70;font-weight:800}.portal20-more summary span{font-weight:500;color:#607884}.portal20-filter-grid{margin-top:.85rem}.portal20-check{display:flex!important;align-items:center;gap:.55rem;min-height:46px}.portal20-check input{width:18px;min-height:auto}.nearby-search{display:flex;gap:.75rem;align-items:end;flex-wrap:wrap;margin-top:.9rem;padding:.8rem;border-radius:12px;background:#f3f8f8}.nearby-button{background:#e4f3f1!important;color:#126e70!important}.nearby-status{font-size:.78rem;color:#55717e;align-self:center}.portal20-search-actions{text-align:right}.clear-search{color:#176f70;font-weight:800}.parish-card-top{display:flex;justify-content:space-between;gap:.5rem;align-items:center}.verified-label{display:inline-flex!important;align-items:center;gap:.35rem;width:max-content;border-radius:999px;padding:.35rem .65rem;font-size:.74rem;font-weight:900;text-decoration:none}.verified-true{background:#dcf3ec;color:#096653}.is-published{background:#eef3f4;color:#4e6873}.parish-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:1rem 0}.parish-meta div{min-width:0}.parish-meta dt{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#6d8189}.parish-meta dd{margin:.2rem 0 0;font-weight:700}.mass-public-section{scroll-margin-top:90px}.mass-public-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:1rem}.mass-day-card{border:1px solid #cfdde1;border-radius:16px;background:#fff;overflow:hidden}.mass-day-card h3{margin:0;padding:.8rem 1rem;background:#123a58;color:#fff}.mass-time{display:grid;grid-template-columns:76px 1fr;gap:.7rem;padding:.85rem 1rem;border-top:1px solid #e4ecee}.mass-time time{color:#ac791e;font-weight:900}.mass-time span,.mass-time small{display:block}.mass-time small{color:#5f7782;margin-top:.15rem}.accessibility-note{margin:1rem;padding:1rem;border-radius:12px;background:#eef8f6;border-left:4px solid #288482}.accessibility-note p{margin:.3rem 0 0}.verification-public{max-width:860px;margin:clamp(1rem,4vw,4rem) auto;padding:0 1rem}.verification-seal,.verification-explainer{background:#fff;border:1px solid #cfdee2;border-radius:24px;padding:clamp(1.25rem,4vw,2.4rem)}.verification-seal{display:flex;gap:1rem;align-items:center;margin-top:1rem}.verification-seal>span{display:grid;place-items:center;width:68px;height:68px;border-radius:50%;background:#dff3ed;color:#08705d;font-size:2rem;font-weight:900}.verification-seal h1{margin:.2rem 0}.verification-explainer{margin-top:1rem}.verification-explainer dl{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.verification-explainer dt{font-size:.75rem;text-transform:uppercase;color:#617985}.verification-explainer dd{margin:.25rem 0;font-weight:800}.verification-explainer aside{background:#f3f7f8;border-radius:12px;padding:1rem}.public-pagination{display:flex;justify-content:center;align-items:center;gap:.5rem;flex-wrap:wrap;margin:1.5rem 0}.public-pagination a{padding:.6rem .8rem;border:1px solid #bfd1d6;border-radius:9px;text-decoration:none}.public-pagination [aria-current="page"]{background:#176f70;color:#fff}.pagination-summary{flex-basis:100%;text-align:center;color:#617985}
@media(max-width:900px){.portal20-search-primary,.portal20-filter-grid{grid-template-columns:1fr 1fr}.portal20-search-primary button{grid-column:1/-1}.parish-meta{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.portal20-search{padding:.8rem;border-radius:16px}.portal20-search-primary,.portal20-filter-grid{grid-template-columns:1fr}.nearby-search{align-items:stretch}.nearby-search>*{width:100%}.parish-card-top{align-items:flex-start;flex-wrap:wrap}.parish-meta{grid-template-columns:1fr}.mass-public-grid{grid-template-columns:1fr}.verification-seal{align-items:flex-start}.verification-seal>span{width:48px;height:48px;flex:0 0 48px}.verification-explainer dl{grid-template-columns:1fr}}

/* Legibilidad de tarjetas y pie público */
.parish-card-content .updated-date{display:block;align-self:stretch;padding-top:.65rem;margin-top:.75rem;border-top:1px solid #e1eaec;line-height:1.45}.parish-card-content h3{line-height:1.25;overflow-wrap:anywhere}.parish-summary{line-height:1.5}.public-footer .footer-note{max-width:none;white-space:nowrap}.public-footer .footer-bottom{min-width:0}.public-footer .footer-bottom small{overflow-wrap:normal}
@media(max-width:820px){.public-footer .footer-note{width:100%;text-align:left}}
@media(max-width:520px){.public-footer .footer-note{font-size:clamp(.62rem,2.65vw,.72rem)!important;letter-spacing:-.01em}.parish-card-content .updated-date{margin-top:.85rem}}

/* PEL 1.20.1 · Directory and location refinement */
.portal20-hero{grid-template-columns:minmax(300px,.82fr) minmax(540px,1.18fr);align-items:center}.portal20-search{padding:22px;border-color:rgb(255 255 255 / 55%);box-shadow:0 18px 42px rgb(5 36 60 / 22%)}.portal20-search-primary{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.portal20-search-primary .search-name{grid-column:1}.portal20-search-primary button{align-self:end;color:#fff;font-weight:850;background:#2f7a78;border:1px solid #2f7a78;border-radius:10px;cursor:pointer}.portal20-search-primary button:hover{background:#286967}.portal20-search select:disabled{color:#81949c;background:#f0f4f5;cursor:not-allowed}.portal20-more{margin-top:16px;padding-top:14px}.portal20-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.nearby-search{display:grid;grid-template-columns:auto 110px minmax(170px,1fr);gap:12px;align-items:end;padding:14px}.nearby-button{border:1px solid #a9ceca!important;border-radius:10px}.nearby-status{line-height:1.45}.public-location-section{box-shadow:0 10px 30px rgb(22 50 79 / 6%)}.location-card{border-color:#c6d8dc;box-shadow:inset 0 0 0 1px rgb(255 255 255 / 50%)}
@media(max-width:1000px){.portal20-hero{grid-template-columns:1fr}.portal20-search{max-width:none}.portal20-search-primary{grid-template-columns:repeat(3,minmax(0,1fr))}.portal20-search-primary .search-name{grid-column:span 2}.portal20-search-primary button{grid-column:auto}.portal20-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.portal20-search-primary,.portal20-filter-grid{grid-template-columns:1fr 1fr}.portal20-search-primary .search-name{grid-column:1/-1}.portal20-search-primary button{grid-column:1/-1}.nearby-search{grid-template-columns:1fr 110px}.nearby-status{grid-column:1/-1}}
@media(max-width:520px){.portal20-search{padding:16px}.portal20-search-primary,.portal20-filter-grid,.nearby-search{grid-template-columns:1fr}.portal20-search-primary .search-name,.portal20-search-primary button,.nearby-status{grid-column:1}.portal20-search input,.portal20-search select{font-size:16px}.nearby-search label,.nearby-button{width:100%}}

/* Professional imagery when a parish has not uploaded a photograph */
.parish-image-placeholder{position:relative;isolation:isolate;background:#dce8e8}.parish-image-placeholder img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 48%;transition:transform .28s ease}.parish-image-placeholder:hover img{transform:scale(1.025)}.parish-image-placeholder::before{position:absolute;z-index:1;inset:0;content:"";background:linear-gradient(180deg,transparent 42%,rgb(10 37 59 / 32%))}.parish-image-placeholder span{position:absolute;z-index:2;right:13px;bottom:13px;width:52px;height:52px;padding:9px;font-size:0;background:rgb(255 255 255 / 92%) url("../brand/logo-icono.svg") center/30px auto no-repeat;border:1px solid rgb(255 255 255 / 70%);border-radius:14px;box-shadow:0 8px 22px rgb(7 31 49 / 24%)}.parish-image-placeholder::after{position:absolute;z-index:2;bottom:16px;left:15px;padding:5px 8px;content:"Imagen referencial";color:#fff;font-size:.62rem;font-weight:850;letter-spacing:.04em;background:rgb(13 47 72 / 72%);border-radius:7px;backdrop-filter:blur(4px)}
.profile-hero:not(.has-profile-image){position:relative;isolation:isolate;overflow:hidden;background-image:linear-gradient(90deg,rgb(13 47 72 / 96%) 0%,rgb(13 47 72 / 88%) 48%,rgb(13 47 72 / 18%) 100%),url("../brand/parish-placeholder-v1.webp");background-position:center;background-size:cover}.profile-hero:not(.has-profile-image)::before{position:absolute;z-index:-1;inset:0;content:"";background:linear-gradient(0deg,rgb(7 31 49 / 24%),transparent 52%)}.profile-hero:not(.has-profile-image)::after{position:absolute;right:18px;bottom:16px;padding:6px 9px;content:"Imagen referencial";color:#fff;font-size:.66rem;font-weight:850;background:rgb(13 47 72 / 74%);border:1px solid rgb(255 255 255 / 28%);border-radius:8px}.profile-hero:not(.has-profile-image) .profile-hero-content{position:relative;max-width:64%}
@media(max-width:760px){.profile-hero:not(.has-profile-image){background-image:linear-gradient(90deg,rgb(13 47 72 / 94%),rgb(13 47 72 / 74%)),url("../brand/parish-placeholder-v1.jpg");background-position:58% center}.profile-hero:not(.has-profile-image) .profile-hero-content{max-width:none}.profile-hero:not(.has-profile-image)::after{right:12px;bottom:10px}}
.profile-hero:not(.has-profile-image){background-image:linear-gradient(90deg,rgb(13 47 72 / 96%) 0%,rgb(13 47 72 / 88%) 48%,rgb(13 47 72 / 18%) 100%),url("../brand/parish-placeholder-v1.jpg")}
.profile-fact-link{display:block;color:inherit;text-decoration:none;overflow-wrap:anywhere}.profile-fact-link:hover,.profile-fact-link:focus-visible{color:#fff;text-decoration:underline;text-underline-offset:3px}.parish-image-placeholder{display:block}.parish-image-placeholder img{position:relative;z-index:0}.site-public-placeholder{position:relative;display:block;width:140px;height:140px;min-height:140px;overflow:hidden;color:#fff;font-size:.72rem;font-weight:850;background:linear-gradient(135deg,#e2f0ef,#f6f2e8)}.site-public-placeholder img{display:block;width:100%;height:100%;object-fit:cover}.site-public-placeholder::after{position:absolute;inset:0;content:"";background:linear-gradient(180deg,transparent 30%,rgb(10 37 59 / 68%))}.site-public-placeholder span{position:absolute;z-index:1;right:8px;bottom:8px;left:8px;padding:5px 6px;text-align:center;color:#fff!important;font-size:.67rem!important;background:rgb(13 47 72 / 78%);border-radius:6px}
@media(max-width:560px){.site-public-cards article>.site-public-placeholder{width:100%;height:auto;min-height:0;aspect-ratio:16/9}.profile-facts .profile-fact-link{font-size:1rem;line-height:1.35}}
.contact-list a{padding:11px 13px;border:1px solid #d6e3e5;border-radius:10px;background:#f8fbfb;transition:background .2s ease,border-color .2s ease}.contact-list a:hover,.contact-list a:focus-visible{border-color:#9bc8c3;background:#e9f4f3}.contact-list a strong{color:var(--navy);text-decoration:none}

/* PEL 2.1.6 · Perfil público: jerarquía, controles y lectura responsive */
.profile-context-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}.profile-context-nav .back-directory{margin:0}.profile-context-nav .verified-label{min-height:38px;padding:8px 12px;justify-content:center}.profile-hero-content>.profile-title h1{margin-top:0}.profile-hero-content>.profile-title p{margin-bottom:0;color:rgb(255 255 255 / 88%);line-height:1.55}.profile-facts div{display:grid;align-content:start;gap:5px;min-width:0}.profile-facts b{font-size:.78rem;letter-spacing:.02em}.profile-facts span,.profile-facts a{line-height:1.45;overflow-wrap:anywhere}.profile-actions a{justify-content:center;min-width:110px;border:1px solid transparent}.profile-actions a:not(.hero-action){border-color:rgb(255 255 255 / 70%)}.mass-section-heading{display:block;padding-bottom:14px;margin-bottom:0}.mass-section-heading>div{display:grid;gap:4px}.mass-section-heading h2{line-height:1.2}.mass-section-heading p{max-width:680px;margin-top:4px;line-height:1.5}.mass-public-grid{margin-top:0}.mass-time strong{color:var(--navy);line-height:1.35}.mass-time small{line-height:1.4}.contact-list strong{overflow-wrap:anywhere}.site-public-actions a,.location-actions a,.location-actions button{min-height:42px;display:inline-flex;align-items:center;justify-content:center}
@media(max-width:820px){.profile-context-nav{margin-bottom:14px}.profile-facts{grid-template-columns:1fr 1fr}.profile-facts div:last-child{grid-column:1/-1}.mass-section-heading p{max-width:none}}
@media(max-width:620px){.profile-context-nav{display:grid;grid-template-columns:1fr;align-items:stretch}.profile-context-nav .back-directory,.profile-context-nav .verified-label{width:100%;max-width:none}.profile-context-nav .verified-label{justify-self:stretch}.profile-facts{grid-template-columns:1fr}.profile-facts div:last-child{grid-column:auto}.profile-actions a{width:100%}.mass-section-heading{padding-bottom:12px}.mass-time{grid-template-columns:72px minmax(0,1fr)}.contact-list a{padding:13px}}
@media(max-width:380px){.profile-hero-content{padding-inline:17px}.mass-time{grid-template-columns:1fr;gap:4px}.mass-time time{font-size:1rem}.profile-context-nav .back-directory,.profile-context-nav .verified-label{font-size:.78rem}}

/* PEL 2.1.8 · Servicios informativos, gratuitos y sin reserva */
.service-card.is-informational{border-top:4px solid var(--gold)}.service-card.is-informational .service-details{margin-top:auto}.service-information-note{display:flex;align-items:center;min-height:42px;padding:10px 12px;margin-top:4px;color:#47636f;font-size:.8rem;font-weight:750;background:#f3f7f8;border:1px solid #d8e4e6;border-radius:10px}.service-card.is-informational .service-details span:last-child b{color:#176f70}.service-card.is-informational .requirement-preview{margin-top:2px}
@media(max-width:520px){.service-information-note{min-height:44px}.service-card .service-details{display:grid;grid-template-columns:1fr}.service-card .service-details span{min-width:0}}

/* PEL 2.1.9 · Horarios públicos legibles y compactos */
.mass-public-grid{align-items:start}.mass-day-card{align-self:start}.mass-time{grid-template-columns:minmax(106px,max-content) minmax(0,1fr);align-items:start;gap:14px}.mass-time time{display:inline-flex;align-items:baseline;gap:5px;min-width:max-content;white-space:nowrap;line-height:1.2;font-variant-numeric:tabular-nums}.mass-time time .mass-time-clock,.mass-time time .mass-time-period{display:inline}.mass-time-clock{font-size:1.02rem}.mass-time-period{font-size:.76rem;letter-spacing:.01em}.mass-time-description{min-width:0}.mass-time-description strong,.mass-time-description small{overflow-wrap:anywhere}
@media(max-width:620px){.mass-time{grid-template-columns:minmax(100px,max-content) minmax(0,1fr);gap:12px}}
@media(max-width:380px){.mass-time{grid-template-columns:minmax(96px,max-content) minmax(0,1fr);gap:10px;padding-inline:13px}.mass-time time{font-size:inherit}.mass-time-clock{font-size:1rem}.mass-time-period{font-size:.74rem}}

/* PEL 2.1.13 · Nota común de una programación agrupada */
.mass-public-note{display:grid;gap:4px;margin:0;padding:13px 16px;color:#516b76;background:#fff8e7;border-top:1px solid #eadbb7;border-left:4px solid var(--gold)}.mass-public-note strong{color:#795818;font-size:.73rem;letter-spacing:.04em;text-transform:uppercase}.mass-public-note span{line-height:1.45;overflow-wrap:anywhere}
@media(max-width:620px){.mass-public-note{padding:13px 14px}}
