/* v23 — composition based on the user reference, with real public data. */
:root{--content-width:1320px;--sm-ivory:#f7f4ee;--sm-warm-white:#faf8f3;--sm-old-gold:#967636}
body{background:var(--sm-ivory)}
.site-header{position:absolute;z-index:20;top:0;left:50%;transform:translateX(-50%);width:min(calc(100% - 112px),1248px);background:#faf8f3;border:0;min-height:88px}
.header-inner{width:calc(100% - 54px);min-height:88px;gap:22px}
.site-id{gap:18px;flex-shrink:0}
.site-id img{width:42px;height:55px;object-fit:contain}
.site-id strong{font-size:19px;text-transform:uppercase;letter-spacing:.075em;line-height:1.08;font-weight:400}
.site-id small{font-size:8px;letter-spacing:.38em;margin-top:7px;color:#846c49}
.site-nav{gap:28px;font-size:12px}
.site-nav a{padding:10px 0;white-space:nowrap}
.site-nav a[aria-current="page"]{border-bottom:1px solid var(--sm-old-gold)}
.site-nav .space-link,.gold-button{background:#947436;color:#fffaf0;border:0;padding:14px 26px;text-decoration:none;font-size:12px;line-height:1.4;letter-spacing:.02em}
.site-nav .space-link{margin-left:14px}
.site-nav .space-link:hover,.gold-button:hover{background:#785f2d}
.section-inner{width:min(calc(100% - 112px),var(--content-width))}
.reference-hero{height:456px;min-height:456px;position:relative;isolation:isolate;background:#d7ccba;border:0;overflow:hidden}
.hero-photo{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;object-position:65% 48%}
.reference-hero.has-photo:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(15,22,23,.69),rgba(15,22,23,.12) 65%,transparent)}
.reference-hero:not(.has-photo){background:#ded5c5}
.hero-inner{display:flex;align-items:center;height:100%;padding:122px 0 42px}
.hero-text{max-width:650px}
.hero-rule{display:block;width:60px;height:2px;background:#b19254;margin-bottom:17px;animation:hero-rise .8s ease-out both}
.hero h1{font-size:clamp(44px,4.5vw,66px);line-height:1.02;letter-spacing:-.026em;margin:0 0 13px;color:#681f29;animation:hero-rise .8s ease-out .12s both}
.hero-copy{font-size:23px;line-height:1.45;max-width:none;margin:0;color:#46515c;animation:hero-rise .8s ease-out .24s both}
@keyframes hero-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.has-photo h1,.has-photo .hero-copy{color:#fffaf3}

/* "Hoy en Santa Margarita" — tarjeta superpuesta a la foto del hero. */
.hero-today{position:absolute;left:0;right:0;bottom:0;z-index:3;padding-bottom:clamp(28px,5vw,48px);pointer-events:none;animation:hero-rise .8s ease-out .36s both}
.hero-today-row{display:flex;align-items:flex-end;justify-content:flex-end;gap:10px}
.hero-today-stack{width:min(380px,100%)}
.hero-today-card{display:block;width:100%;text-decoration:none;color:inherit;
  background:rgba(9,12,14,.72);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);
  border:1px solid rgba(250,248,243,.16);border-top:2px solid var(--sm-old-gold);
  box-shadow:0 18px 44px rgba(10,8,5,.28);
  padding:18px 22px;transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease}
.hero-today-card,.hero-today-nextday{pointer-events:auto}
.hero-today-card:hover,.hero-today-card:focus-visible{background:rgba(9,12,14,.84);border-color:rgba(250,248,243,.32);box-shadow:0 22px 50px rgba(10,8,5,.36)}
.hero-today-kicker{font-family:Inter,"Source Sans 3",sans-serif;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#e7d6ab;margin:0 0 12px}
.hero-today-kicker span{color:rgba(250,248,243,.62);text-transform:none;letter-spacing:normal}
.hero-today-list{list-style:none;margin:0;padding:0}
.hero-today-list li{display:flex;align-items:baseline;gap:12px;font-family:"Cormorant Garamond","EB Garamond",Georgia,serif;color:#fffaf3;padding:7px 0;border-top:1px solid rgba(250,248,243,.12)}
.hero-today-list li:first-child{border-top:0;padding-top:0}
.hero-today-list time{font-size:13px;letter-spacing:.02em;color:#cdbf9c;flex-shrink:0;width:38px}
.hero-today-list li span:last-child{font-size:16px;line-height:1.3}
.hero-today-list li.is-ongoing{flex-wrap:wrap}
.hero-today-live{display:flex;align-items:center;gap:6px;width:100%;margin:0 0 3px;font-family:Inter,"Source Sans 3",sans-serif;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:#f3d99b}
.hero-today-dot{width:6px;height:6px;border-radius:50%;background:#f3d99b;box-shadow:0 0 0 0 rgba(243,217,155,.6);animation:hero-today-pulse 1.8s ease-out infinite}
@keyframes hero-today-pulse{0%{box-shadow:0 0 0 0 rgba(243,217,155,.55)}75%{box-shadow:0 0 0 7px rgba(243,217,155,0)}100%{box-shadow:0 0 0 0 rgba(243,217,155,0)}}
@media(prefers-reduced-motion:reduce){.hero-today-dot{animation:none}}
.hero-today-empty{margin:0;font-family:"Cormorant Garamond","EB Garamond",Georgia,serif;font-size:16px;color:#fffaf3}
.hero-today-cta{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-family:Inter,"Source Sans 3",sans-serif;font-size:11px;font-weight:600;letter-spacing:.04em;color:#14100c;background:var(--sm-old-gold);padding:9px 16px;border-radius:2px;transition:background-color .2s ease,transform .2s ease}
.hero-today-card:hover .hero-today-cta,.hero-today-card:focus-visible .hero-today-cta{background:#f3d99b;transform:translateX(2px)}
.hero-today-nextday{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:10px;padding:11px 16px;cursor:pointer;
  font-family:Inter,"Source Sans 3",sans-serif;font-size:11.5px;font-weight:600;letter-spacing:.04em;color:#fffaf3;
  background:rgba(9,12,14,.55);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);
  border:1px solid rgba(250,248,243,.26);border-radius:2px;transition:background-color .2s ease,border-color .2s ease,color .2s ease}
.hero-today-nextday:hover,.hero-today-nextday:focus-visible{background:rgba(9,12,14,.75);border-color:var(--sm-old-gold);color:#f3d99b}
.hero-today-nextday.is-tomorrow{border-color:rgba(250,248,243,.26)}
@media(max-width:699px){
 .hero-today{padding-bottom:26px}
 .hero-today-card{width:100%;padding:14px 16px}
 .hero-today-list li span:last-child{font-size:14.5px}
}

.core{padding:20px 0 26px}
.core-grid{grid-template-columns:minmax(0,1.44fr) minmax(0,1fr) minmax(0,.80fr);border:0}
.core-panel{padding:10px 24px 0}
.core-panel:first-child{padding-left:0;padding-right:26px}
.core-panel:last-child{padding-right:0;padding-left:24px}
.core-panel+.core-panel{border-left:1px solid #dbd3c8}
.agenda-heading{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:21px}
.agenda-heading h2{font-size:23px;line-height:1.2;text-transform:uppercase;margin:0;white-space:nowrap}
.date{font-size:12px;line-height:1.4;white-space:nowrap;margin:0;color:#46515c}
.core-panel .calendar-key{font-size:11px;margin:0 0 16px;line-height:1.5}
.core-panel>p:not(.calendar-key){font-family:var(--serif);font-size:15px;line-height:1.5;color:#696f75}
.timeline{padding-top:4px}
.timeline li{position:relative;grid-template-columns:100px 1fr;padding:0 0 23px;gap:30px;border:0;min-height:64px}
.timeline li:first-child{padding-top:0}
.timeline li:before{content:"";position:absolute;left:114px;top:11px;bottom:-11px;width:1px;background:#ccc7bf}
.timeline li:last-child:before{bottom:25px}
.timeline li:after{content:"";position:absolute;left:110px;top:6px;width:9px;height:9px;background:#a58442;border-radius:50%}
.timeline time{font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.timeline strong{font-family:var(--serif);font-size:18px;line-height:1.3;font-weight:400}
.timeline small{font-family:var(--serif);font-size:13px;line-height:1.4;margin-top:3px}

.agenda-heading .date a{margin-left:4px}
.availability-status{margin-top:8px;padding-top:14px;border-color:#dbd3c8}
.availability-status .eyebrow{font-size:9px;letter-spacing:.12em}
.availability-status strong{font-size:17px}
.availability-status small{font-size:11px}
.calendar-nav{margin:0 0 14px;gap:10px}
.calendar-nav strong{font-size:22px;text-transform:uppercase}
.calendar-nav a{font-size:28px;color:var(--sm-old-gold);padding:0 5px;line-height:1}
.calendar-grid{gap:0;border:0;background:transparent}
.calendar-grid>*{background:transparent;min-height:36px;padding:7px 0;text-align:center}
.calendar-grid .dow{padding:5px 0 11px;border-bottom:1px solid #ded7cd;font-size:10px}
.calendar-grid a.day{font-family:var(--serif);font-size:14px;line-height:22px;min-height:38px;display:flex;align-items:center;justify-content:center;width:34px;height:34px;justify-self:center;padding:0;margin:3px 0}
.calendar-grid .day.has-event:after{width:5px;height:5px;border-radius:50%;left:50%;right:auto;bottom:0;transform:translateX(-50%);background:#a7833f}
.calendar-grid .day.today{box-shadow:none;font-weight:700}
.calendar-grid a.day[aria-current="date"]{background:#681f29;color:#fff;border-radius:50%;outline:0}
.calendar-grid .day[aria-current="date"].has-event:after{background:#d2b37a}
.calendar-grid .day.other{color:#aaa59c}
.calendar-grid a.day:focus-visible{outline:2px solid #967636;outline-offset:2px}
.core-panel .calendar-grid+.calendar-key{margin:19px 0 0;padding-top:14px;border-top:1px solid #dbd3c8}
.request-photo{width:100%;aspect-ratio:1.59;background:#dfd6c6;margin-bottom:13px;overflow:hidden}
.request-photo img{width:100%;height:100%;object-fit:cover;display:block}
.core-panel h2#request-title{font-size:30px;line-height:1.1;margin:0 0 12px}
.request-copy{font-size:16px;line-height:1.35;color:#70737a;margin-bottom:16px}
.text-link.gold-button{margin-top:0;display:inline-flex;gap:20px;padding:14px 22px;min-height:44px;align-items:center}
.editorial-index{padding:17px 0;border-top:1px solid #ded7cc;border-bottom:1px solid #ded7cc;background:transparent}
.index-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:0;border:0}
.index-item{display:grid;grid-template-columns:1fr auto;gap:7px 12px;padding:0 25px;border:0;align-content:start}
.index-item:first-child{padding-left:0}
.index-item:last-child{padding-right:0}
.index-item+.index-item{border-left:1px solid #d9d2c6}
.index-item .num{grid-column:1/-1;font-family:var(--serif);font-size:24px;line-height:1.1;letter-spacing:0;font-weight:400}
.index-item strong{font-size:23px;line-height:1.1}
.index-arrow{font-family:var(--serif);font-size:23px;color:#5c6877}
.index-photo{grid-column:1/-1;display:block;height:65px;background:#ddd3c0;margin-top:2px;overflow:hidden}
.index-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}
.index-item:hover .index-photo img{transform:scale(1.035)}
.footer-v18{padding:24px 24px 20px;background:#f7f4ee;border:0}
.install-app{background:#f7f4ee;padding-bottom:18px}
[hidden]{display:none!important}
@media(max-width:1250px){
 .site-header{width:calc(100% - 64px)}
 .header-inner{width:calc(100% - 40px)}
 .site-nav{gap:17px;font-size:11px}
 .site-nav .space-link{padding:12px 15px;margin-left:0}
 .site-id{gap:12px}.site-id strong{font-size:17px}
 .section-inner{width:calc(100% - 64px)}
 .agenda-heading{display:block}.agenda-heading .date{margin-top:8px}
 .core-panel{padding-left:20px;padding-right:20px}
 .core-panel:first-child{padding-right:20px}.core-panel:last-child{padding-left:20px}
 .agenda-heading h2{font-size:21px}
 .calendar-nav strong{font-size:19px}
 .index-item{padding-left:20px;padding-right:20px}
}
@media(max-width:999px){
 .site-header{width:calc(100% - 40px);min-height:80px}
 .header-inner{min-height:80px}
 .nav-toggle{display:block;padding:12px}
 .site-nav{position:absolute;top:80px;left:0;right:0;display:none;align-items:stretch;gap:0;padding:16px 24px;background:#faf8f3;font-size:14px}
 .site-nav.open{display:flex}
 .site-nav a{padding:12px 0}
 .site-nav .space-link{margin-top:10px;text-align:center;padding:14px}
 .hero-inner{padding-top:125px}
 .hero h1{font-size:56px}
 .section-inner{width:calc(100% - 48px)}
 .core-grid{grid-template-columns:1.15fr 1fr}
 .core-panel:first-child{padding-right:24px}
 .core-panel:nth-child(2){border-top:0;padding:10px 0 0 24px}
 .core-panel:last-child{grid-column:1/-1;border-left:0;border-top:1px solid #d9d2c6;margin-top:24px;padding:24px 0 0;display:grid;grid-template-columns:1fr 1.35fr;column-gap:26px;align-content:start}
 .request-photo{grid-row:1/4;margin:0}
 .core-panel h2#request-title{margin-top:0}
 .core-panel:last-child .gold-button{justify-self:start}
 .index-item{padding-left:13px;padding-right:13px}
 .index-item strong{font-size:19px}
}
@media(max-width:699px){
 .site-header{width:calc(100% - 24px);min-height:76px}
 .header-inner{width:calc(100% - 28px);min-height:76px;gap:10px}
 .site-id img{width:30px;height:44px}
 .site-id strong{font-size:14px}
 .site-id small{font-size:6px;letter-spacing:.28em}
 .site-nav{top:76px}
 .nav-toggle{font-size:12px;padding:10px 0 10px 8px}
 .reference-hero{height:410px;min-height:410px}
 .hero-inner{padding:110px 0 38px;align-items:center}
 .hero h1{font-size:clamp(39px,10.5vw,56px);line-height:1.05;letter-spacing:-.03em}
 .hero-copy{font-size:18px;max-width:24rem}
 .has-photo .hero-copy{display:none}
 .reference-hero.has-photo:after{background:rgba(15,22,23,.53)}
 .section-inner{width:calc(100% - 40px)}
 .core{padding:25px 0}
 .core-grid{grid-template-columns:1fr}
 .core-panel:first-child{padding:0 0 22px}
 .agenda-heading{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
 .agenda-heading h2{font-size:21px;white-space:normal}
 .agenda-heading .date{font-size:11px;margin:0}
 .core-panel:nth-child(2){padding:24px 0 0;border-left:0;border-top:1px solid #d9d2c6}
 .calendar-nav strong{font-size:23px}
 .calendar-grid a.day{width:36px;height:36px;min-height:36px;margin:5px 0;font-size:16px}
 .core-panel:last-child{display:block;margin-top:22px}
 .request-photo{max-height:220px;margin-bottom:18px}
 .request-copy{font-size:18px}
 .core-panel h2#request-title{font-size:32px}
 .index-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 0}
 .index-item,.index-item:first-child,.index-item:last-child{padding:0 15px}
 .index-item:nth-child(odd){padding-left:0;border-left:0}
 .index-item:nth-child(even){padding-right:0;border-left:1px solid #d9d2c6}
 .index-item strong{font-size:23px}
 .index-item .num{font-size:22px}
 .index-photo{height:85px}
 .editorial-index{padding:24px 0}
 .footer-v18{padding:25px 20px 20px}
 .footer-v18 .contact-line a{overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){.index-photo img{transition:none}}
.index-photo img{object-position:center 50%}
.photo-parroquia img{object-position:15% 25%;transform:scale(1.45)}
.photo-horarios img{object-position:75% 80%;transform:scale(1.8)}
.photo-grupos img{object-position:45% 70%;transform:scale(1.5)}
.photo-noticias img{object-position:85% 30%;transform:scale(1.5)}
.photo-contacto img{object-position:10% 80%;transform:scale(1.8)}
.hero-photo{object-position:65% 34%}
@media(max-width:699px){.hero-photo{object-position:50% 34%;transform:scale(1.3) translateY(10%);transform-origin:50% 50%}}

/* v23.1 — full-width header at every breakpoint. */
.site-header{left:0;right:0;width:100%;transform:none}
.header-inner{width:min(calc(100% - 112px),1248px)}
@media(max-width:1250px){.header-inner{width:calc(100% - 64px)}}
@media(max-width:999px){.header-inner{width:calc(100% - 48px)}}
@media(max-width:699px){.header-inner{width:calc(100% - 40px)}}

/* v23.2 — first screen dedicated to the photograph and headline. */
.reference-hero{height:100svh;min-height:100svh}
.hero-inner{padding-top:clamp(120px,18svh,190px);padding-bottom:clamp(60px,10svh,110px)}
@media(max-width:699px){.reference-hero{height:100svh;min-height:100svh}.hero-inner{padding-top:110px;padding-bottom:54px;align-items:flex-start}}

/* v23.3 — transparent over the photograph, ivory after the cover. */
.site-header{position:fixed;transition:background-color .25s ease,border-color .25s ease;color:var(--sm-granate)}
.site-header.over-cover{background:transparent;border-bottom:1px solid transparent;color:#fffaf3}
.site-header.over-cover .site-id small{color:#e2d2b2}
.site-header.over-cover .nav-toggle{color:#fffaf3}
.site-header.over-cover .site-nav a[aria-current="page"]{border-color:#d0af70}
.site-header.over-cover .site-nav .space-link{background:rgba(148,116,54,.92);color:#fffaf0}
.site-header:not(.over-cover){background:#faf8f3;border-bottom:1px solid #ded7cc}
#calendar,#horarios,#vida,#la-parroquia,#grupos,#noticias,#contacto{scroll-margin-top:105px}
@media(max-width:999px){
 .site-header.over-cover .site-nav{color:var(--sm-granate);background:#faf8f3}
 .site-header.over-cover .site-nav a[aria-current="page"]{border-color:var(--sm-old-gold)}
}
@media(prefers-reduced-motion:reduce){.site-header{transition:none}}

.chaplain-section{padding:clamp(48px,7vw,100px) 0;background:#f6f3ed;scroll-margin-top:130px;border-top:1px solid #ddd4c7}
.chaplain-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:36px 70px;align-items:start}
.chaplain-kicker{font:12px/1.6 sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#947534}
.chaplain-intro h2{font-size:clamp(32px,4vw,52px);margin:12px 0}
.chaplain-intro h3{font-size:clamp(24px,2.8vw,34px);font-weight:400;margin:0 0 16px}
.chaplain-intro p{line-height:1.8}.chaplain-destination{color:#947534}
.chaplain-crest{margin:0;text-align:center;max-width:340px;justify-self:center}
.chaplain-crest img{display:block;width:100%;height:auto;object-fit:contain}
.chaplain-crest figcaption{margin-top:18px;color:#947534;font-style:italic}
@media(max-width:760px){.chaplain-layout{grid-template-columns:1fr;gap:32px}.chaplain-crest{max-width:230px}.chaplain-section{scroll-margin-top:100px}}
.chaplain-page{padding-top:130px}.chaplain-page .chaplain-intro h1{font-size:clamp(36px,5vw,60px);margin:12px 0}.chaplain-page .chaplain-intro h2{font-size:clamp(24px,2.8vw,34px);font-weight:400;margin:0 0 16px}.chaplain-teaser .chaplain-crest{max-width:230px}
@media(max-width:760px){.chaplain-page{padding-top:105px}.chaplain-teaser .chaplain-crest{max-width:170px}}
