:root{
  --public-ink:#1b1b1b;
  --public-muted:#5f625f;
  --public-line:#d8d9d5;
  --public-soft:#f4f5f2;
  --public-paper:#ffffff;
  --public-gold:#b98000;
  --public-focus:#125ba7;
}

html,body{overflow-x:hidden}
body{background:var(--public-paper);color:var(--public-ink)}
main{min-width:0}
[hidden]{display:none!important}
section{content-visibility:visible!important;contain-intrinsic-size:auto!important}
h1,h2,h3,h4,p,a,button,label,input,textarea,select,summary{letter-spacing:0!important}
h1,h2,h3,h4,p,li,dd,a,button,label{overflow-wrap:anywhere}
img,iframe,audio,input,textarea,select{max-width:100%}

.section{width:100%;max-width:1240px;padding:82px 28px}
.section-soft{
  max-width:none;
  background:var(--public-soft);
  border-top:1px solid #e7e8e4;
  border-bottom:1px solid #e7e8e4;
}
.section-heading{
  grid-template-columns:minmax(120px,160px) minmax(0,1fr);
  gap:18px;
  align-items:end;
}
.section-heading h1,.section-heading h2{
  font-size:clamp(2.35rem,4.4vw,4rem)!important;
  line-height:1.02!important;
  letter-spacing:0!important;
  text-wrap:balance;
}
.section-heading p{margin:14px 0 0;line-height:1.7}
.section-heading span{color:var(--public-gold)!important;letter-spacing:.12em!important}

.btn{
  min-height:46px;
  border-radius:4px!important;
  padding:12px 19px;
  letter-spacing:0!important;
  transition:background-color .18s ease,color .18s ease,border-color .18s ease!important;
}
.btn.secondary{background:var(--public-paper)}
.btn:disabled{cursor:wait;opacity:.66}
.btn:hover:not(:disabled){background:#9f7300!important;color:#fff!important}
.btn.secondary:hover:not(:disabled){border-color:#8f928c!important;background:#f3f4f1!important;color:var(--public-ink)!important}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{
  outline:3px solid var(--public-focus)!important;
  outline-offset:3px;
}
.btn:focus-visible,.copy-btn:focus-visible{outline:3px solid var(--public-focus)!important;outline-offset:3px}
#mainMenu a[aria-current="page"]{color:var(--public-gold)!important;border-bottom:2px solid var(--public-gold)}

.gallery-tools,.sermon-tools{
  border:1px solid #c9cbc6!important;
  background:var(--public-paper);
  border-radius:4px;
  overflow:hidden;
}
.gallery-tools input,.gallery-tools select,.sermon-tools input,.sermon-tools select{
  min-height:50px;
  color:var(--public-ink);
  background:var(--public-paper)!important;
}
.gallery-tools input::placeholder,.sermon-tools input::placeholder,.prayer-card input::placeholder,.prayer-card textarea::placeholder{color:#777b76;opacity:1}
.gallery-tools input:focus,.gallery-tools select:focus,.sermon-tools input:focus,.sermon-tools select:focus{
  position:relative;
  z-index:1;
  outline:3px solid rgba(18,91,167,.2)!important;
  outline-offset:-3px!important;
}

.prayer-card{
  width:min(980px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(240px,.78fr) minmax(0,1.22fr);
  gap:0!important;
  padding:0!important;
  overflow:hidden;
  border:1px solid #cfd1cc!important;
  border-radius:4px!important;
  background:var(--public-paper)!important;
  box-shadow:0 16px 38px rgba(22,25,21,.08)!important;
}
.prayer-card>.prayer-intro{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(30px,5vw,52px)!important;
  background:#20221f;
  color:#fff;
}
.prayer-intro h3{margin:0 0 14px;font-size:clamp(1.65rem,3vw,2.35rem);line-height:1.1}
.prayer-intro p{margin:0;color:#d9dbd6;line-height:1.7}
.prayer-private{margin-top:24px!important;padding-top:20px;border-top:1px solid #474a45;font-size:.86rem}
.prayer-card form{
  display:grid;
  gap:18px!important;
  padding:clamp(28px,5vw,48px)!important;
  border-left:1px solid #e2e3df;
  background:var(--public-paper);
}
.form-field{display:grid;gap:8px;min-width:0}
.form-field-header{display:flex;align-items:baseline;justify-content:space-between;gap:14px}
.form-field label,.form-field-header label{font-weight:750;color:#272a26}
.field-optional,.field-counter{font-size:.78rem;font-weight:500;color:#71756f}
.prayer-card input,.prayer-card textarea{
  width:100%;
  margin:0!important;
  border:1px solid #bfc2bc!important;
  border-radius:4px!important;
  background:#f8f9f6!important;
  color:var(--public-ink);
  padding:13px 14px!important;
  line-height:1.45;
}
.prayer-card input{min-height:50px}
.prayer-card textarea{min-height:154px;resize:vertical}
.prayer-card input:focus,.prayer-card textarea:focus{
  background:#fff!important;
  border-color:var(--public-focus)!important;
  outline:3px solid rgba(18,91,167,.16)!important;
  outline-offset:0!important;
}
.prayer-card [aria-invalid="true"]{border-color:#b42318!important;outline:3px solid rgba(180,35,24,.13)!important}
.prayer-form-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.prayer-form-actions .btn{min-width:180px}
.form-msg{margin:0;font-size:.9rem;font-weight:700!important;line-height:1.5;color:var(--public-muted)!important}
.form-msg:empty{display:none}
.form-msg.is-success{color:#176b3a!important}
.form-msg.is-error{color:#a12a21!important}
.form-msg.is-busy{color:#725400!important}

.empty-state{
  grid-column:1/-1;
  display:grid;
  gap:6px;
  width:100%;
  padding:22px 0;
  border-top:1px solid var(--public-line);
  border-bottom:1px solid var(--public-line);
  color:var(--public-muted);
}
.empty-state strong{color:var(--public-ink);font-size:1rem}
.empty-state span{line-height:1.55}
.content-note{margin:10px 0!important;color:var(--public-muted)!important;font-size:.86rem!important;font-style:italic}

.donation-box,.location-card{
  border:1px solid #cfd1cc!important;
  border-radius:4px!important;
  background:var(--public-paper)!important;
  box-shadow:0 12px 32px rgba(22,25,21,.06)!important;
}
.donation-box{padding:clamp(24px,4vw,38px)!important}
.donation-methods{gap:0!important;border-top:1px solid var(--public-line)}
.donation-methods>div{
  min-width:0;
  padding:18px 18px 18px 0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
}
.donation-methods span{overflow-wrap:anywhere}
.copy-btn{min-height:40px;border-radius:4px!important}
.copy-btn,.sermon-actions>a:not(.btn),.sermon-actions>button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:9px 13px;
  border:1px solid #aeb1ab;
  border-radius:4px!important;
  background:var(--public-paper);
  color:var(--public-ink);
  font:inherit;
  font-size:.86rem;
  font-weight:700;
  text-decoration:none;
  cursor:pointer;
}
.copy-btn:hover,.sermon-actions>a:not(.btn):hover,.sermon-actions>button:hover{border-color:#72766f;background:#f2f3f0}
.location-card{overflow:hidden}
.location-card>div{align-self:center}
.location-card iframe{display:block;min-height:380px;background:#e9ebe7}
.location-details p{display:grid;grid-template-columns:minmax(92px,auto) minmax(0,1fr);gap:12px;margin:0;padding:12px 0;border-bottom:1px solid #e4e5e1}
.location-details p:first-of-type{border-top:1px solid #e4e5e1}
.location-details p[hidden]{display:none!important}
.location-details a:not(.btn){color:#174f89;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;overflow-wrap:anywhere}
.location-details .btn{margin-top:22px}

.sermon-card,.event-card,.album-card,.team-card,.social-card{min-width:0}
.sermon-content,.event-card-body,.card-body{min-width:0}
.audio-box audio{display:block;min-width:0}
.site-footer{margin-top:0!important}

.preview-banner{
  position:relative;
  z-index:10000;
  width:100%;
  padding:11px 18px;
  border-bottom:1px solid #8c6b15;
  background:#fff4cf;
  color:#4f3a00;
  font-size:.86rem;
  font-weight:750;
  text-align:center;
}

.legal-page{max-width:960px;padding-top:72px!important}
.legal-page .section-heading{margin-bottom:34px}
.legal-card{
  width:100%!important;
  margin:0!important;
  padding:34px 0 0!important;
  border:0!important;
  border-top:1px solid var(--public-line)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:var(--public-ink)!important;
}
.legal-card h2{margin:32px 0 9px;font-size:1.25rem;line-height:1.25}
.legal-card p,.legal-card li{max-width:76ch;color:var(--public-muted)!important;line-height:1.75}
.legal-card a{color:#174f89;text-underline-offset:3px}

.cookie-banner{
  max-width:540px!important;
  padding:20px!important;
  border:1px solid #c9cbc6!important;
  border-radius:4px!important;
  background:var(--public-paper)!important;
  box-shadow:0 16px 42px rgba(22,25,21,.18)!important;
}
.cookie-content strong{margin-bottom:7px;color:var(--public-ink)!important;font-size:1.05rem}
.cookie-content p{margin-bottom:16px;color:var(--public-muted)!important;line-height:1.55}
.cookie-actions{gap:10px 14px!important}
.cookie-btn{
  min-height:44px;
  padding:10px 17px!important;
  border-radius:4px!important;
  background:var(--public-gold)!important;
  color:#151515!important;
}
.cookie-btn:hover{background:#d09a13!important}
.cookie-link{display:inline-flex;min-height:44px;align-items:center;color:#174f89!important;text-underline-offset:3px}

@media(max-width:820px){
  .section{padding:62px 18px}
  .section-heading{grid-template-columns:1fr;gap:7px}
  .section-heading p{grid-column:1}
  .section-heading h1,.section-heading h2{font-size:clamp(2.25rem,10vw,3.3rem)!important}
  .prayer-card{grid-template-columns:1fr}
  .prayer-card form{border-left:0;border-top:1px solid #e2e3df}
  .location-card{grid-template-columns:1fr}
  .location-card iframe{min-height:320px}
  .location-details p{grid-template-columns:1fr;gap:4px}
}

@media(max-width:520px){
  .section{padding:52px 16px}
  .section-heading h1,.section-heading h2{font-size:2.45rem!important}
  .prayer-card>.prayer-intro,.prayer-card form{padding:26px 20px!important}
  .prayer-form-actions{display:grid;grid-template-columns:1fr}
  .prayer-form-actions .btn{width:100%}
  .gallery-tools,.sermon-tools{border-radius:0}
  .donation-methods{grid-template-columns:1fr!important}
  .legal-page{padding-top:52px!important}
  .legal-page .section-heading{margin-bottom:26px}
  .legal-card{padding-top:26px!important}
  .cookie-banner{padding:17px!important}
  .cookie-actions{display:grid!important;grid-template-columns:1fr}
  .cookie-btn,.cookie-link{width:100%;justify-content:center;text-align:center}
}

@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
}

/* Menu publico responsive */
.site-header{
  overflow:visible!important;
  box-shadow:0 8px 24px rgba(25,20,10,.06);
}

.header-inner{
  position:relative!important;
  overflow:visible!important;
}

.menu-toggle{
  position:relative!important;
  z-index:1701!important;
  flex:0 0 auto;
}

@media(min-width:821px){
  #mainMenu{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:1 1 auto!important;
    gap:8px!important;
    position:static!important;
    width:auto!important;
    max-height:none!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    pointer-events:auto!important;
  }

  #mainMenu a{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:38px!important;
    padding:8px 14px!important;
    border:0!important;
    border-radius:999px!important;
    color:#27231d!important;
    background:transparent!important;
    font-size:.84rem!important;
    font-weight:750!important;
    text-decoration:none!important;
    transition:background-color .16s ease,color .16s ease!important;
  }

  #mainMenu a:hover,
  #mainMenu a:focus{
    background:#fff1cc!important;
    color:#171717!important;
  }
}

@media(max-width:820px){
  body.menu-open{overflow:hidden}

  .menu-toggle{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:46px!important;
    height:46px!important;
    border:1px solid var(--public-line)!important;
    border-radius:8px!important;
    background:#fff!important;
    color:#171717!important;
    box-shadow:0 10px 24px rgba(25,20,10,.10)!important;
    cursor:pointer!important;
    font-size:0!important;
  }

  .menu-toggle::before,
  .menu-toggle::after{
    content:''!important;
    position:absolute!important;
    width:20px!important;
    height:2px!important;
    border-radius:99px!important;
    background:#171717!important;
    transition:transform .18s ease,box-shadow .18s ease!important;
  }

  .menu-toggle::before{
    transform:translateY(-5px)!important;
    box-shadow:0 5px 0 #171717!important;
  }

  .menu-toggle::after{transform:translateY(5px)!important}
  .menu-toggle.active::before{transform:rotate(45deg)!important;box-shadow:none!important}
  .menu-toggle.active::after{transform:rotate(-45deg)!important}

  #mainMenu{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    position:absolute!important;
    top:calc(100% + 12px)!important;
    right:clamp(12px,3vw,28px)!important;
    left:auto!important;
    width:min(360px,calc(100vw - 32px))!important;
    max-height:min(520px,calc(100svh - 106px))!important;
    overflow-y:auto!important;
    z-index:1700!important;
    align-items:stretch!important;
    justify-items:stretch!important;
    justify-content:center!important;
    align-content:start!important;
    gap:3px!important;
    padding:10px!important;
    border:1px solid var(--public-line)!important;
    border-radius:10px!important;
    background:rgba(255,255,255,.98)!important;
    box-shadow:0 18px 46px rgba(25,20,10,.16)!important;
    opacity:0!important;
    visibility:hidden!important;
    transform:translateY(-8px) scale(.985)!important;
    transform-origin:top right!important;
    pointer-events:none!important;
    transition:opacity .18s ease,transform .18s ease,visibility .18s ease!important;
    backdrop-filter:blur(14px)!important;
    text-align:center!important;
  }

  #mainMenu.open{
    opacity:1!important;
    visibility:visible!important;
    transform:translateY(0) scale(1)!important;
    pointer-events:auto!important;
  }

  body .site-header #mainMenu > a{
    box-sizing:border-box!important;
    display:grid!important;
    place-items:center!important;
    place-content:center!important;
    align-items:center!important;
    justify-items:center!important;
    justify-content:center!important;
    grid-column:1 / -1!important;
    justify-self:stretch!important;
    width:100%!important;
    max-width:none!important;
    min-height:46px!important;
    margin:0!important;
    padding:12px 16px!important;
    border:0!important;
    border-radius:8px!important;
    background:transparent!important;
    color:#20221f!important;
    font-size:.96rem!important;
    font-weight:750!important;
    line-height:1.2!important;
    text-align:center!important;
    text-decoration:none!important;
    white-space:normal!important;
  }

  body .site-header #mainMenu > a:hover,
  body .site-header #mainMenu > a:focus,
  body .site-header #mainMenu > a[aria-current="page"]{
    background:#f6f0df!important;
    color:#171717!important;
    border-bottom:0!important;
  }

  body .site-header #mainMenu > a::after{content:none!important}
}

@media(max-width:520px){
  #mainMenu{
    right:12px!important;
    width:min(300px,calc(100vw - 24px))!important;
  }
}

@media(max-width:820px){
  .sermon-grid,
  .events-grid{
    gap:28px!important;
  }

  .sermon-card,
  .sermons-page .sermon-card,
  .sermons-page .sermon-card:first-child,
  .event-card.modern-event-card,
  .modern-event-card{
    grid-template-columns:1fr!important;
    align-items:stretch!important;
  }

  .sermon-card,
  .sermons-page .sermon-card,
  .sermons-page .sermon-card:first-child{
    gap:0!important;
    padding:0 0 26px!important;
  }

  .sermon-thumb-wrap,
  .sermons-page .sermon-card:first-child .sermon-thumb-wrap{
    width:100%!important;
    height:clamp(190px,56vw,330px)!important;
    min-height:0!important;
    overflow:hidden!important;
    background:#f7f0e2!important;
  }

  .sermon-thumb,
  .sermons-page .sermon-card:first-child .sermon-thumb{
    display:block!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    object-fit:contain!important;
    object-position:center!important;
  }

  .sermon-content,
  .sermons-page .sermon-card:first-child .sermon-content{
    display:block!important;
    padding:18px 0 0!important;
  }

  .sermons-page .sermon-card:first-child .sermon-content h3{
    font-size:clamp(2.1rem,10vw,3.35rem)!important;
  }

  .audio-box,
  .sermon-actions{
    width:100%!important;
    margin-top:14px!important;
  }

  .event-card.modern-event-card,
  .modern-event-card{
    gap:0!important;
    padding:0 0 26px!important;
  }

  .event-poster-button{
    width:100%!important;
    height:clamp(260px,70vw,460px)!important;
    min-height:0!important;
    background:#17130d!important;
  }

  .event-poster-button img,
  .event-card img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
    object-position:center!important;
  }

  .event-card-content,
  .event-card-body{
    padding:18px 0 0!important;
  }
}

/* Cartel de eventos legible sin necesidad de abrir el visor */
@media(min-width:821px){
  .events-grid .event-card.modern-event-card{
    grid-template-columns:minmax(270px,320px) minmax(0,1fr)!important;
    min-height:390px!important;
  }
  .events-grid .event-poster-button{
    width:100%!important;
    min-height:390px!important;
    background:#17130d!important;
  }
  .events-grid .event-poster-button img{
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
    object-position:center!important;
  }
  .events-grid .event-card-content{
    display:flex!important;
    flex-direction:column;
    justify-content:center;
    padding:34px 42px!important;
  }
}

/* Predicaciones - tarjeta opción 3 */
.sermon-card.sermon-card-modern,
.sermons-page .sermon-card.sermon-card-modern,
#sermons .sermon-card.sermon-card-modern{
  display:grid!important;
  grid-template-columns:minmax(210px,240px) minmax(360px,1fr) minmax(390px,.9fr)!important;
  gap:34px!important;
  align-items:stretch!important;
  padding:34px 0!important;
  border:0!important;
  border-top:1px solid var(--public-line)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  transform:none!important;
}

.sermon-card.sermon-card-modern:last-child,
.sermons-page .sermon-card.sermon-card-modern:last-child,
#sermons .sermon-card.sermon-card-modern:last-child{
  border-bottom:1px solid var(--public-line)!important;
}

.sermon-card-modern .sermon-thumb-wrap,
.sermons-page .sermon-card-modern .sermon-thumb-wrap,
.sermons-page .sermon-card-modern:first-child .sermon-thumb-wrap{
  width:100%!important;
  height:auto!important;
  aspect-ratio:1 / 1!important;
  min-height:0!important;
  overflow:hidden!important;
  border-radius:4px!important;
  background:#15120d!important;
}

.sermon-card-modern .sermon-thumb,
.sermons-page .sermon-card-modern .sermon-thumb,
.sermons-page .sermon-card-modern:first-child .sermon-thumb{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  object-fit:contain!important;
  object-position:center!important;
  filter:saturate(.86)!important;
}

.sermon-card-modern .sermon-content,
.sermons-page .sermon-card-modern .sermon-content,
.sermons-page .sermon-card-modern:first-child .sermon-content{
  display:block!important;
  min-width:0!important;
  padding:0!important;
  align-self:center!important;
}

.sermon-card-modern .sermon-badge{
  display:block!important;
  width:max-content!important;
  margin:0 0 10px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--public-gold)!important;
  font-size:.7rem!important;
  font-weight:900!important;
  letter-spacing:.15em!important;
  line-height:1.2!important;
  text-transform:uppercase!important;
}

.sermon-card-modern h3,
.sermons-page .sermon-card-modern:first-child .sermon-content h3{
  margin:0 0 13px!important;
  color:var(--public-ink)!important;
  font-size:clamp(1.55rem,2.4vw,2.35rem)!important;
  font-weight:850!important;
  line-height:1.08!important;
  letter-spacing:-.035em!important;
}

.sermon-card-modern .meta{
  margin:0 0 18px!important;
  color:#64675f!important;
  font-size:1rem!important;
  line-height:1.45!important;
}

.sermon-card-modern .sermon-description{
  max-width:62ch!important;
  margin:0!important;
  color:#444941!important;
  font-size:1rem!important;
  line-height:1.72!important;
}

.sermon-card-modern .sermon-description::first-letter{
  text-transform:uppercase;
}

.sermon-player{
  display:grid!important;
  grid-template-columns:1fr!important;
  grid-template-rows:auto 1fr!important;
  min-width:0!important;
  min-height:220px!important;
  gap:22px!important;
  align-content:stretch!important;
  align-self:stretch!important;
  justify-items:stretch!important;
}

.sermon-card-modern > .audio-box{
  grid-column:3!important;
  grid-row:1!important;
  align-self:start!important;
  width:100%!important;
  min-width:0!important;
}

.sermon-card-modern > .sermon-actions{
  grid-column:3!important;
  grid-row:1!important;
  align-self:end!important;
}

.sermon-card-modern .audio-box{
  grid-column:auto!important;
  grid-row:auto!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}

.sermon-card-modern .audio-box strong{display:none!important}
.sermon-card-modern .audio-box audio{
  display:block!important;
  width:100%!important;
  min-width:360px!important;
  height:42px!important;
  margin:0!important;
}

.sermon-card-modern .content-note{
  align-self:center!important;
  margin:0!important;
}

.sermon-card-modern .sermon-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:flex-end!important;
  align-self:end!important;
  gap:14px!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
}

.sermon-card-modern .sermon-action-button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  min-width:154px!important;
  min-height:54px!important;
  padding:12px 20px!important;
  border:1px solid #c8cbc4!important;
  border-radius:4px!important;
  background:var(--public-paper)!important;
  color:var(--public-ink)!important;
  font:inherit!important;
  font-size:1rem!important;
  font-weight:800!important;
  line-height:1!important;
  text-decoration:none!important;
  cursor:pointer!important;
  box-shadow:none!important;
  transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease!important;
}

.sermon-card-modern .sermon-action-button:hover,
.sermon-card-modern .sermon-action-button:focus-visible{
  border-color:var(--public-gold)!important;
  background:#fff8e8!important;
  color:#171717!important;
  transform:translateY(-1px)!important;
}

.sermon-action-icon{
  color:var(--public-gold)!important;
  font-family:'Material Symbols Rounded'!important;
  font-size:1.7rem!important;
  font-weight:400!important;
  line-height:1!important;
  font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;
}

.sermon-action-label{white-space:nowrap}

@media(max-width:980px){
  .sermon-card.sermon-card-modern,
  .sermons-page .sermon-card.sermon-card-modern,
  #sermons .sermon-card.sermon-card-modern{
    grid-template-columns:minmax(170px,220px) minmax(0,1fr)!important;
    gap:24px!important;
  }

  .sermon-player{
    grid-column:1 / -1!important;
    min-height:0!important;
    gap:16px!important;
  }

  .sermon-card-modern > .audio-box,
  .sermon-card-modern > .sermon-actions{
    grid-column:1 / -1!important;
    grid-row:auto!important;
  }

  .sermon-card-modern .audio-box audio{
    min-width:0!important;
  }

  .sermon-card-modern .sermon-actions{
    justify-content:flex-start!important;
  }
}

@media(max-width:620px){
  .sermon-card.sermon-card-modern,
  .sermons-page .sermon-card.sermon-card-modern,
  #sermons .sermon-card.sermon-card-modern{
    grid-template-columns:1fr!important;
    gap:18px!important;
    padding:28px 0!important;
  }

  .sermon-card-modern .sermon-thumb-wrap,
  .sermons-page .sermon-card-modern .sermon-thumb-wrap,
  .sermons-page .sermon-card-modern:first-child .sermon-thumb-wrap{
    height:clamp(220px,72vw,360px)!important;
    aspect-ratio:auto!important;
  }

  .sermon-card-modern h3,
  .sermons-page .sermon-card-modern:first-child .sermon-content h3{
    font-size:clamp(2rem,10vw,3rem)!important;
  }

  .sermon-card-modern .sermon-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
  }

  .sermon-card-modern .sermon-action-button{
    min-width:0!important;
    width:100%!important;
    min-height:50px!important;
    padding:11px 12px!important;
    font-size:.95rem!important;
  }
}

@media(max-width:380px){
  .sermon-card-modern .sermon-actions{
    grid-template-columns:1fr!important;
  }
}

/* Hotfix: evita que el reproductor se monte sobre los botones */
@media(min-width:981px){
  .sermon-card.sermon-card-modern,
  .sermons-page .sermon-card.sermon-card-modern,
  #sermons .sermon-card.sermon-card-modern{
    grid-template-columns:240px minmax(360px,1fr) minmax(420px,440px)!important;
    align-items:stretch!important;
  }

  .sermon-card-modern .sermon-player{
    display:flex!important;
    flex-direction:column!important;
    justify-content:space-between!important;
    align-self:stretch!important;
    min-width:0!important;
    min-height:240px!important;
    gap:28px!important;
    padding-top:10px!important;
  }

  .sermon-card-modern .audio-box,
  .sermon-card-modern > .audio-box{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    align-self:stretch!important;
    margin:0!important;
    overflow:hidden!important;
  }

  .sermon-card-modern .audio-box audio,
  .sermon-card-modern > .audio-box audio{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:42px!important;
  }

  .sermon-card-modern .sermon-actions,
  .sermon-card-modern > .sermon-actions{
    display:flex!important;
    flex-wrap:nowrap!important;
    justify-content:flex-end!important;
    align-items:center!important;
    align-self:flex-end!important;
    width:100%!important;
    margin-top:auto!important;
    padding:0!important;
    gap:14px!important;
  }

  .sermon-card-modern .sermon-action-button{
    flex:0 0 auto!important;
    min-width:154px!important;
  }
}

/* Móvil/tablet: acciones compactas solo con iconos */
@media(max-width:980px){
  .sermon-card-modern .sermon-player{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:12px!important;
    width:100%!important;
    min-height:0!important;
    padding-top:0!important;
  }

  .sermon-card-modern .audio-box{
    grid-column:1!important;
    grid-row:1!important;
    min-width:0!important;
    width:100%!important;
    overflow:hidden!important;
  }

  .sermon-card-modern .audio-box audio{
    width:100%!important;
    min-width:0!important;
    height:42px!important;
  }

  .sermon-card-modern .sermon-actions{
    grid-column:2!important;
    grid-row:1!important;
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:flex-end!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
    gap:8px!important;
  }

  .sermon-card-modern .sermon-action-button{
    flex:0 0 48px!important;
    width:48px!important;
    min-width:48px!important;
    height:48px!important;
    min-height:48px!important;
    padding:0!important;
    border-radius:4px!important;
  }

  .sermon-card-modern .sermon-action-label{
    display:none!important;
  }

  .sermon-card-modern .sermon-action-icon{
    font-size:1.55rem!important;
  }
}

@media(max-width:380px){
  .sermon-card-modern .sermon-player{
    grid-template-columns:1fr auto!important;
    gap:8px!important;
  }

  .sermon-card-modern .sermon-action-button{
    flex-basis:44px!important;
    width:44px!important;
    min-width:44px!important;
    height:44px!important;
    min-height:44px!important;
  }
}
