/* LWVlife Current News + Community Alerts + audio newsreader (2026-10-19). Large controls, high contrast, wraps at 150%/200% text. */
.cn{display:block}
.cn-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:52px;padding:8px 14px;border-radius:14px;border:2px solid #c9d6e8;background:#fff;color:#14254a;font:inherit;font-weight:800;font-size:1rem;text-decoration:none;cursor:pointer;line-height:1.2;text-align:center;white-space:normal}
.cn-btn.pri{background:#1b3a6b;border-color:#1b3a6b;color:#fff}
.cn-btn.red{border-color:#b71c1c;color:#b71c1c}
.cn-btn:focus-visible,.cn-chip:focus-visible,.cn-cats button:focus-visible{outline:4px solid #f2b705;outline-offset:2px}
.cn-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 12px}
.cn-status p{margin:6px 0}
.cn-upd{color:#33415c;font-size:.98rem}
.cn-warn{background:#fff3cd;border-left:6px solid #f2b705;padding:10px 12px;border-radius:10px;color:#3d3000;font-weight:700}
.cn-note{color:#46546b;padding:8px 2px}
.cn-spin{display:inline-block;animation:cnspin 1s linear infinite}
@keyframes cnspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.cn-spin{animation:none}}
.cn-cats{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:thin}
.cn-cats button{flex:0 0 auto;min-height:48px;padding:6px 14px;border-radius:24px;border:2px solid #c9d6e8;background:#fff;color:#14254a;font:inherit;font-weight:800;font-size:1rem;cursor:pointer}
.cn-cats button[aria-selected="true"]{background:#1b3a6b;border-color:#1b3a6b;color:#fff}
.cn-list{display:grid;gap:12px}
.cn-card{position:relative;background:#fff;border:1px solid #d9e1ec;border-radius:16px;padding:14px 14px 12px;box-shadow:0 1px 3px rgba(20,37,74,.06)}
.cn-card.is-new{border-left:6px solid #2e7d32}
.cn-card.reading{outline:4px solid #f2b705}
.cn-card h4{margin:0 0 6px;font-size:1.12rem;line-height:1.35;color:#14254a;overflow-wrap:anywhere}
.cn-card p{margin:0 0 8px;line-height:1.5;color:#1f2a3d;overflow-wrap:anywhere}
.cn-new{display:inline-block;background:#2e7d32;color:#fff;font-weight:900;font-size:.85rem;padding:2px 10px;border-radius:10px;margin-bottom:6px;letter-spacing:.03em}
.cn-meta{font-size:.92rem;color:#46546b !important;line-height:1.45}
.cn-ai{display:inline-block;margin-top:2px;font-size:.85rem;color:#5b3a00;background:#fff4dc;border-radius:8px;padding:1px 8px}
.cn-acts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}
.cn-more{margin:16px 2px 4px;font-size:1.05rem;color:#14254a}
.cn-audio{background:#eef4fb;border:1px solid #c9d6e8;border-radius:16px;padding:12px;margin:0 0 12px}
.cn-audio h3{margin:0 0 4px;font-size:1.1rem}
.cn-play{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}
.cn-play .cn-btn.pri{grid-column:1/-1}
.cn-opts{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0}
.cn-opts>span{font-weight:800;margin-right:4px}
.cn-chip{min-height:44px;padding:4px 12px;border-radius:22px;border:2px solid #c9d6e8;background:#fff;color:#14254a;font:inherit;font-weight:700;font-size:.95rem;cursor:pointer}
.cn-chip[aria-pressed="true"]{background:#1b3a6b;border-color:#1b3a6b;color:#fff}
.cn-ctl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.cn-now{margin-top:8px;background:#fff;border-radius:12px;padding:10px;border:2px solid #f2b705}
.cn-now p{margin:4px 0 0;line-height:1.5}
.cn-al-box{background:#fff;border:2px solid #d9e1ec;border-radius:16px;padding:12px;margin:0 0 12px}
.cn-al-box h3{margin:0 0 8px;font-size:1.12rem}
.cn-ok{color:#1b5e20;font-weight:700;margin:4px 0 8px}
.cn-alert{border-radius:12px;padding:10px 12px;margin:0 0 10px;border-left:8px solid #9aa8bd;background:#f5f7fa}
.cn-alert.lv-critical{border-left-color:#b71c1c;background:#fdecea}
.cn-alert.lv-important{border-left-color:#e65100;background:#fff3e0}
.cn-alert.off{opacity:.75;filter:grayscale(.6)}
.cn-alert h4{margin:2px 0 6px;font-size:1.08rem;line-height:1.35;overflow-wrap:anywhere}
.cn-al-lv{margin:0;font-weight:900;letter-spacing:.04em;font-size:.9rem}
.lv-critical .cn-al-lv{color:#b71c1c}.lv-important .cn-al-lv{color:#bf360c}
.cn-alert details,.cn-emg{margin:6px 0}
.cn-alert summary,.cn-emg summary,.cn-src summary{cursor:pointer;font-weight:800;min-height:44px;display:flex;align-items:center}
.cn-911{display:flex;align-items:center;justify-content:center;min-height:52px;margin:8px 0;border-radius:14px;background:#b71c1c;color:#fff;font-weight:900;text-decoration:none;text-align:center;padding:6px 10px}
.cn-row{display:flex;align-items:center;gap:10px;min-height:60px;padding:8px 10px;margin:6px 0;border:1px solid #d9e1ec;border-radius:12px;background:#fff;color:#14254a;text-decoration:none}
.cn-row>span:first-child{font-size:1.5rem}
.cn-row>span:nth-child(2){flex:1 1 auto;min-width:0}
.cn-row small{display:block;color:#46546b;font-size:.88rem;line-height:1.4;margin-top:2px}
.cn-src{margin:16px 0 8px;background:#f5f7fa;border-radius:12px;padding:6px 12px}
.cn-src ul{padding-left:1.1em;margin:6px 0}.cn-src li{margin:4px 0;font-size:.95rem}
.cn-wxh{margin:18px 2px 6px;font-size:1.08rem}
#s-news .wx-card #wx-alerts{display:none} /* weather warnings are shown once, in Community Alerts */
.cn-home-alert{display:flex;align-items:center;gap:10px;width:calc(100% - 24px);margin:10px 12px 0;min-height:64px;padding:10px 14px;border-radius:16px;border:0;color:#fff;font:inherit;text-align:left;cursor:pointer;background:#e65100}
.cn-home-alert.lv-critical{background:#b71c1c}
.cn-home-alert>span:first-child{font-size:1.6rem}
.cn-home-alert b{display:block;font-size:1.02rem;line-height:1.3}
.cn-home-alert small{display:block;opacity:.95;font-size:.9rem}
.cn-intbox .cn-chk{display:flex;align-items:center;gap:12px;min-height:52px;border-bottom:1px solid #e3e9f2;font-weight:700}
.cn-intbox input[type=checkbox]{width:28px;height:28px;flex:0 0 auto}
.cn-introw{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
.cn-intbox .sf-b.red{margin-top:8px}
.sf-entb{margin:4px 0 12px;background:#eef4fb}
.sf-gh{margin:14px 2px 6px;font-size:1.05rem;color:#14254a}
.sf-rb{display:flex;gap:6px;align-items:center;flex:0 0 auto}
.sf-other summary{cursor:pointer;font-weight:800;min-height:48px;display:flex;align-items:center}
@media (max-width:380px){.cn-acts,.cn-play,.cn-ctl,.cn-toolbar{grid-template-columns:1fr}.cn-play .cn-btn.pri{grid-column:auto}}
html[style*="font-size: 2"] .cn-acts,html[style*="font-size: 3"] .cn-acts{grid-template-columns:1fr}
@media (prefers-color-scheme:dark){.cn-card,.cn-al-box,.cn-row,.cn-now{color-scheme:light}}
.cn-btn.wide{width:100%}
.cn-more-audio summary{cursor:pointer;font-weight:800;min-height:48px;display:flex;align-items:center;color:#1b3a6b}
.cn-acts.one{grid-template-columns:1fr}
/* Websites & Resources (Daily Living) */
.webres .webres-art{display:block;line-height:0;border-radius:12px;overflow:hidden;margin:0 0 10px}
.webres .webres-art img{display:block;width:100%;height:auto}
.webres button.row-link{width:100%;text-align:left;font:inherit;background:#fff;cursor:pointer}
.webres-ind{font-size:.92rem;color:#46546b;margin:10px 2px 0}
/* ===== 2026-10-19 P0 accessibility fixes (staging) =====
   Emergency/Security/Resident Services numbers were clipped on 320-px phones and at 150-200% text.
   When space is short, the three phone buttons become full-width rows (label left, number right) - nothing is cut or covered. */
@media (max-width:359px){
  #s-home .hero-phones{flex-direction:column;gap:6px}
  #s-home .hero-phones a{flex:none!important;width:100%;flex-direction:row;justify-content:space-between;gap:8px;padding:8px 12px;min-height:48px}
  #s-home .hero-phones a.emg{order:-1}
  #s-home .hero-phones a span{white-space:normal;text-align:left}
  #s-home .hero-phones a b{white-space:nowrap;font-size:1rem!important;letter-spacing:0}
  .hdr-right{gap:4px}.hdr-right .chip{padding:0 9px}.hdr-right .globe{display:none}
}
html.bigfs #s-home .hero-phones{flex-direction:column;gap:6px;flex-wrap:nowrap}
html.bigfs #s-home .hero-phones a{flex:none!important;width:100%;flex-direction:row;flex-wrap:wrap;justify-content:space-between;gap:2px 10px;padding:8px 12px;min-height:52px}
html.bigfs #s-home .hero-phones a.emg{order:-1}
html.bigfs #s-home .hero-phones a span{white-space:normal;text-align:left}
html.bigfs #s-home .hero-phones a b{white-space:nowrap;font-size:1rem!important;letter-spacing:0}
/* labels on the three Home phone buttons wrap instead of being cut ("Village Security", "Resident Services") */
#s-home .hero-phones a span{white-space:normal!important;text-align:center;line-height:1.15;overflow-wrap:anywhere}
/* Short landscape screens (phones turned sideways): the fixed bottom bar and sticky header left too little room, so tall
   cards slid under the bottom bar at 150-200% text. Header scrolls away; the bottom bar becomes one compact row. */
@media (orientation:landscape) and (max-height:500px){
  .hdr{position:static}
  .bnav{height:calc(54px + env(safe-area-inset-bottom))}
  .bnav button,.bigfs .bnav button{flex-direction:row;gap:6px;font-size:15px;min-height:48px;line-height:1.1}
  .bnav button .ic,.bigfs .bnav button .ic{font-size:20px}
  main,body.a5-padfab main{padding-bottom:70px}
}
/* 360-419 px phones at normal text: the three numbers did not fit side by side (text ran past the button edges).
   911 becomes one full-width red button on top; Village Security and Resident Services sit side by side below it. */
@media (min-width:360px) and (max-width:419px){
  html:not(.bigfs) #s-home .hero-phones{flex-wrap:wrap;gap:6px}
  html:not(.bigfs) #s-home .hero-phones a{flex:1 1 40%!important}
  html:not(.bigfs) #s-home .hero-phones a.emg{flex:1 1 100%!important;order:-1;flex-direction:row;gap:10px}
}
/* keyboard / screen-reader focus scrolling keeps the focused control above the fixed bottom bar */
html{scroll-padding-bottom:96px}
@media (orientation:landscape) and (max-height:500px){html{scroll-padding-bottom:62px}}
/* date/weather card: a long message ("Weather is not available right now.") wrapped instead of running off the card */

#s-home .today-wx small.muted:only-of-type{display:inline-block;white-space:normal;max-width:11em;text-align:right;line-height:1.3}
