/* Finition visuelle du parcours public, sans modifier la logique ni les données. */
body.public-app #program .days-fixed{
  align-items:stretch;
}

body.public-app #program .day-screen-body > .card{
  box-shadow:none;
}

@media(max-width:850px){
  :root{--public-content-visual-size:64px}

  body.public-app .container{
    padding-left:10px!important;
    padding-right:10px!important;
  }

  body.public-app .celebration-page-head{
    padding:8px 10px!important;
    border-radius:12px!important;
  }
  body.public-app .celebration-page-head h1{
    font-size:1rem!important;
  }
  body.public-app .celebration-page-head .date-range{
    font-size:.68rem!important;
  }
  body.public-app .celebration-inner-nav{
    margin-top:8px!important;
    gap:6px!important;
    width:min(100%,330px)!important;
  }
  body.public-app .celebration-inner-nav .nav-btn{
    min-height:38px!important;
    padding:7px 12px!important;
    font-size:.74rem!important;
    font-weight:700!important;
  }

  body.public-app #program .days-fixed{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:5px!important;
  }
  body.public-app #program .days-fixed .day{
    min-height:48px!important;
    padding:6px 4px!important;
    border-radius:14px!important;
    font-size:.7rem!important;
    line-height:1.15!important;
    font-weight:700!important;
  }
  body.public-app #program .day .sub{
    margin-top:3px!important;
    font-size:.58rem!important;
    line-height:1.15!important;
    font-weight:600!important;
  }

  body.public-app #program .day-screen-body > .card{
    margin:7px 0 9px!important;
    padding:14px 14px 13px!important;
    border-radius:14px!important;
    border-left-width:4px!important;
  }
  body.public-app #program .day-screen-body > .card h3{
    margin:0 0 4px!important;
    font-size:1.05rem!important;
    line-height:1.2!important;
  }
  body.public-app #program .day-screen-body > .card .meta{
    font-size:.82rem!important;
  }
  body.public-app #program .day-screen-body > .card p{
    margin:10px 0!important;
    font-size:.91rem!important;
    line-height:1.4!important;
  }

  body.public-app #program .event{
    grid-template-columns:48px minmax(0,1fr)!important;
    border-radius:13px!important;
  }
  /* Un rendez-vous sans horaire ne réserve pas une colonne vide à gauche. */
  body.public-app #program .event:has(> .time:empty){
    grid-template-columns:minmax(0,1fr)!important;
  }
  body.public-app #program .event:has(> .time:empty) > .time{
    display:none!important;
  }
  body.public-app #program .event > *,
  body.public-app #program .public-event-contents,
  body.public-app #program .public-content,
  body.public-app #program .public-content-body,
  body.public-app #library .simple-library-card,
  body.public-app #library .simple-library-body,
  body.public-app #library .resources{
    min-width:0!important;
    max-width:100%;
  }
  body.public-app #program .public-content{
    gap:10px!important;
  }
  body.public-app #program .public-content-title,
  body.public-app #program .public-content-title-static,
  body.public-app #program .resource-link,
  body.public-app #library .resource-link,
  body.public-app #library .simple-library-body h3{
    max-width:100%;
    white-space:normal!important;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  body.public-app #program .public-content-title,
  body.public-app #program .public-content-title-static{
    font-size:.88rem!important;
    line-height:1.3!important;
  }
  body.public-app #program .public-content-body .muted{
    font-size:.8rem!important;
    line-height:1.35!important;
  }
  body.public-app #program audio,
  body.public-app #library audio{
    display:block;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  body.public-app #program .resources > *,
  body.public-app #library .resources > *{
    min-width:0;
    max-width:100%;
  }

  body.public-app #program .agenda{
    margin-top:7px!important;
    gap:7px!important;
  }
  body.public-app #program .notice{
    padding:11px 12px!important;
    font-size:.88rem!important;
    line-height:1.35!important;
  }

  body.public-app .footer{
    padding-top:14px!important;
  }
}

@media(max-width:380px){
  body.public-app #program .days-fixed{
    gap:4px!important;
  }
  body.public-app #program .days-fixed .day{
    font-size:.66rem!important;
    padding-left:2px!important;
    padding-right:2px!important;
  }
}


/* Séparation visuelle douce des rendez-vous et commandes publiques. */
body.public-app #program .event{
  border:1.5px solid #cbd1d8!important;
  box-shadow:0 2px 7px rgba(23,32,51,.08)!important;
}
body.public-app #program .day,
body.public-app .celebration-inner-nav .nav-btn,
body.public-app #program .resource-link,
body.public-app #library .resource-link{
  border-color:#cbd1d8!important;
  box-shadow:0 1px 3px rgba(23,32,51,.06);
}
