/* NOIR mobile-first supplemental stylesheet - Patch 022 */
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { min-width:0; overflow-x:clip; }
img,video,canvas,svg { max-width:100%; }
main,section,article,form,fieldset,.wrap,.shell,.page,.panel,.tile,.card,.item { min-width:0; }
input,select,textarea,button { font:inherit; max-width:100%; }
input[type="file"] { width:100%; font-size:14px; }
textarea { max-width:100%; }
:is(.page,.wrap,.shell,.detail) { overflow-wrap:anywhere; }
:where(a,button,input,select,textarea):focus-visible { outline:2px solid #ebc78c; outline-offset:3px; }
@media (hover:none) and (pointer:coarse) {
  :is(button,.btn,input[type="submit"],input[type="button"],select) { min-height:44px; }
  input[type="checkbox"],input[type="radio"] { width:20px; height:20px; accent-color:#dcbc85; }
  a { text-underline-offset:3px; }
}
@media (max-width:850px) {
  :is(.page,.wrap,.shell) { width:100%; max-width:100%; margin:0 auto; padding:24px 18px 55px; }
  .detail { padding:110px 18px 60px; }
  .top,.header { flex-wrap:wrap; gap:14px; }
  .top a,.header a { overflow-wrap:anywhere; }
  :is(.page,.wrap,.shell) h1 { font-size:clamp(34px,8vw,54px); line-height:1.08; letter-spacing:-.035em; }
  :is(.page,.wrap,.shell) h2 { font-size:clamp(21px,5.5vw,29px); }
  .layout { grid-template-columns:minmax(0,1fr) !important; }
  .cols { grid-template-columns:minmax(0,1fr) !important; }
  .filters { grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important; align-items:stretch !important; }
  .work-filter { grid-column:1/-1; }
  .filters > .btn, .filters > button { width:100%; min-height:46px; }
  .panel,.tile,.card { padding:20px !important; }
  .actions,.top,.header { align-items:flex-start; }
  .grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .item { flex-direction:column; align-items:stretch; }
  .item .actions { flex-wrap:wrap; }
  .calendar-pop { max-width:calc(100vw - 38px); }
  .date-picker { min-width:0; }
  .event-row { min-width:0; }
  .topbar nav.open { max-height:calc(100dvh - 70px); overflow-y:auto; }
}
@media (max-width:560px) {
  :is(.page,.wrap,.shell) { padding:18px 14px 45px; }
  .panel,.tile,.card,.filters { padding:16px !important; }
  .filters,.grid { grid-template-columns:minmax(0,1fr) !important; }
  .work-filter { grid-column:auto; }
  .work-list,.checks { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  .work-list label,.choice { font-size:13px; min-width:0; }
  .photos { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:10px; }
  .photos .photo { min-width:0; }
  .photos .photo img { width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; }
  .photos .photo button { white-space:normal; }
  .gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .actions { display:flex; flex-wrap:wrap; gap:9px; }
  .actions :is(a,button,input[type="submit"]) { min-height:44px; }
  .btn { min-width:0 !important; gap:10px !important; justify-content:center; text-align:center; }
  .page .top,.wrap .top,.shell .top { margin-bottom:12px; }
  .hero { min-height:0; height:auto; }
  .hero-content { padding:120px 18px 95px; }
  .hero h1 { font-size:clamp(39px,10vw,58px); }
  .hero-actions { display:grid; grid-template-columns:1fr; }
  .hero-actions .btn { width:100%; }
  .hero-bottom { display:none; }
  .feature-banner { margin:0 14px; padding:54px 20px; min-height:360px; }
  .feature-banner h2 { font-size:clamp(43px,12vw,65px); }
  .strip,.section,.join { padding:65px 17px; }
  .cards { grid-template-columns:1fr !important; }
  .card-image { height:auto; aspect-ratio:4/5; }
  .event-row { grid-template-columns:80px minmax(0,1fr) 20px; gap:10px; }
  .event-thumb { width:80px; height:80px; }
  .event-main h3 { font-size:18px; }
  .join h2 { font-size:clamp(56px,15vw,95px); }
  .detail-head { gap:25px; margin-bottom:40px; }
  .detail-head img { height:auto; max-height:480px; aspect-ratio:3/4; }
  .card-sub { gap:12px; }
  .page input:not([type=checkbox]):not([type=radio]),.wrap input:not([type=checkbox]):not([type=radio]),.shell input:not([type=checkbox]):not([type=radio]),.page select,.wrap select,.shell select { min-height:44px; }
}
@media (max-width:360px) { .work-list,.checks,.photos { grid-template-columns:1fr !important; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; } }
