/* V23 — experiencia móvil accesible. No altera datos ni permisos. */
html,body{max-width:100%;overflow-x:clip}html{scroll-padding-top:18px}
#portal,#portal *{min-width:0}#portal{scroll-margin-top:12px}
#portal .portal-wrap{max-width:1160px}
#portal .portal-toolbar{position:relative}
#portal .portal-toolbar button{transition:background-color .15s,border-color .15s}
#portal button:focus-visible,#portal a:focus-visible,.nav button:focus-visible,.nav a:focus-visible{outline:3px solid #c69a57;outline-offset:3px}
#portal details summary{cursor:pointer;line-height:1.5}
#portal .song-lyrics{white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal}
#portal iframe,#portal embed,#portal object{max-width:100%}
@media(max-width:700px){
  body{font-size:16px}
  .nav-inner{gap:12px}.navlinks{max-height:calc(100dvh - 75px);overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(22px,env(safe-area-inset-bottom))}
  .navlinks a{display:block;width:100%;padding:11px 6px;min-height:44px}
  .hero{min-height:0;height:auto;min-height: min(780px,100svh)}
  .hero-content{padding:120px 6vw 160px}.hero h1{font-size:clamp(2.15rem,8.5vw,3.5rem);line-height:1.1}
  .hero-carousel-controls{bottom:58px}.hero .scroll{bottom:14px;font-size:.57rem}
  .wrap{width:92%}.section{padding:55px 0}.section h2{font-size:clamp(1.95rem,8vw,2.8rem)}
  .split .photo{min-height:260px}.copy{padding:44px 6%}
  .event-grid{gap:20px}.event img{max-width:min(100%,360px)}
  #portal .portal-wrap{width:100%;padding:22px 14px 72px}
  #portal .portal-wrap>.portal-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px}
  #portal .portal-wrap>.portal-actions>div{width:100%}
  #portal #logoutBtn{margin-left:0!important;align-self:flex-start;min-height:44px}
  #portal .portal-title{font-size:clamp(1.65rem,7vw,2.2rem);line-height:1.2}
  #portal .portal-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;overflow:visible;padding:0;margin:18px 0 20px}
  #portal .portal-toolbar button{width:100%;white-space:normal;min-height:54px;padding:10px 9px;font-size:.88rem;line-height:1.3;text-align:center;border-radius:12px}
  #portal .portal-toolbar button.selected{box-shadow:inset 0 0 0 1px currentColor}
  #portal .portal-grid{grid-template-columns:minmax(0,1fr);gap:14px}
  #portal .portal-card{padding:18px 15px;margin:12px 0;border-radius:14px}
  #portal .portal-card h3{font-size:1.22rem;line-height:1.3}
  #portal .portal-card ol{padding-left:20px}
  #portal .portal-card li{padding:5px 0}
  #portal .portal-actions{gap:9px}
  #portal .portal-actions .btn{min-height:46px;white-space:normal;overflow-wrap:anywhere;text-align:center}
  #portal .portal-card .portal-actions{display:flex;flex-wrap:wrap}
  #portal .portal-card .portal-actions>button{flex:1 1 150px}
  #portal .portal-row{align-items:flex-start;gap:10px}
  #portal .portal-row>*{max-width:100%}
  #portal .song-reader-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:center}
  #portal .song-reader-controls span{grid-column:1/-1}
  #portal .song-reader-controls strong{font-size:.82rem;text-align:center}
  #portal .song-reader-controls button{min-width:0;min-height:46px}
  #portal .song-lyrics{line-height:1.85;max-width:100%}
  #portal input,#portal select,#portal textarea,.modal input,.modal select,.modal textarea{font-size:16px!important;max-width:100%;min-height:46px}
  #portal input[type=file]{height:auto;min-height:50px;white-space:normal}
  #portal .portal-song-dialog{width:calc(100vw - 20px);max-width:calc(100vw - 20px);max-height:calc(100dvh - 30px);padding:18px 14px}
  .modal,.inline-dialog{width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px)!important;max-height:calc(100dvh - 30px);overflow-y:auto;padding:22px 17px}
  .modal h2{font-size:1.7rem!important}
  .modal .btn{min-height:46px;white-space:normal}
  #portal table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  #portal .corista-welcome{padding:20px 16px!important}
  #portal .corista-welcome .portal-actions{display:grid;grid-template-columns:1fr}
  #portal .corista-welcome .portal-actions button{width:100%}
  .album-grid,.galeria-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .album-caption strong{font-size:1rem}
  .album-lightbox{max-width:100vw;max-height:100dvh}
  .album-lightbox img{max-width:90vw;max-height:65dvh}
  .web-edit-bar{max-width:calc(100vw - 20px);flex-wrap:wrap}
}
@media(max-width:390px){
  #portal .portal-toolbar{grid-template-columns:1fr 1fr}
  #portal .portal-toolbar button{font-size:.81rem;padding:9px 5px}
  .album-grid,.galeria-grid{grid-template-columns:1fr}
  .hero-carousel-controls{gap:5px}.hero-pause{font-size:.65rem}
}
@media(prefers-reduced-motion:reduce){.hero-slide{transition:none!important;transform:none!important}}
