/* v19.4 design system: warm ivory, forest green, large readable controls. */
:root{--ink:#183f36;--deep:#185b49;--deep2:#123e33;--grey:#50675e;--line:#dbe4dc;--bg:#f6f7f2;--shadow:0 4px 18px #173d3205;--shadow-hover:0 12px 28px #173d3212}
body{background:var(--bg);font-size:18px;line-height:1.6;word-break:keep-all;overflow-wrap:anywhere}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,input,select{min-height:48px}button{touch-action:manipulation}button:disabled{cursor:default;opacity:.55}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b35c13;outline-offset:4px}
[hidden]{display:none!important}.skip-link{position:fixed;top:8px;left:8px;transform:translateY(-160%);z-index:200;background:white;padding:12px 20px}.skip-link:focus{transform:none}
.top{padding:20px max(24px,calc((100vw - 1280px)/2));background:#fff;box-shadow:none;gap:24px;min-height:100px}
.brand-banner{height:auto;width:460px;max-width:100%;max-height:90px}.topright{gap:14px}.clock strong{font-size:24px;line-height:1.3}.clock span{font-size:14px;color:var(--grey)}
.v18-font-button,.quiet{font-size:16px;white-space:nowrap;box-shadow:none;border-radius:12px;padding:10px 16px}
.main{width:min(1328px,100%);padding:32px 24px 64px}.eyebrow{font-size:15px;letter-spacing:.06em;color:#557367;font-weight:700}
.intro{align-items:center;margin:18px 0 28px}.intro h1{font-size:clamp(36px,3.8vw,54px);font-weight:800;letter-spacing:-2px;line-height:1.3}.intro h1 em{color:#397b60}.intro p{font-size:19px;line-height:1.65;margin-top:14px;font-weight:500}.intro-art{display:none}
#home.active{display:grid;grid-template-columns:minmax(0,1fr) 380px;column-gap:48px}
#home>.eyebrow{grid-column:1}#home>.intro{grid-column:1;grid-row:2}#home>.v18-today{grid-column:2;grid-row:1 / span 2;align-self:center;margin:0}
#home>.important-strip,#home>.menu-heading,#home>.cards,#home>.share-strip,#home>.bottom{grid-column:1 / -1}
.v18-today{border-radius:24px;background:#e8f0e9;border:1px solid #dae6dc;padding:24px}.v18-today h2{font-size:21px;margin-bottom:4px}.v18-status{font-size:15px;color:#476452}.v18-stats{gap:8px;margin-top:18px}.v18-stat{border-radius:14px;padding:14px 4px;background:#fff9}.v18-stat b{font-size:30px;line-height:1.2;margin-bottom:6px}.v18-stat span{font-size:15px}.v18-disclaimer{font-size:14px;color:#53675c}
.important-strip{background:#fff;border:1px solid var(--line);border-left:4px solid #b28b4b;box-shadow:none;border-radius:12px;padding:16px 22px;gap:24px;margin-bottom:20px}.important-strip .label{font-size:18px}.important-copy strong{font-size:20px;font-weight:700}.important-copy span{font-size:16px;color:var(--grey)}
.v19-search{padding:0;margin:0 0 30px;background:none;border:0}.v19-search label{display:block;font-size:19px;font-weight:700;margin-bottom:9px}.search-field{display:flex;align-items:center;gap:14px;border:1.5px solid #8aa996;background:white;border-radius:16px;padding:0 18px}.search-field>span{font-size:36px;line-height:1;color:#3e725b}.v19-search input{border:0;padding:17px 0;background:none;border-radius:0;font-size:20px;min-width:0;outline-offset:2px}.v19-search-results:empty{display:none}.v19-result{min-height:64px;padding:14px 18px;font-size:20px}.v19-result small{display:block;font-size:16px;color:#50665a;margin-top:3px}
.menu-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px}.menu-heading h2{font-size:23px;margin:0}.menu-heading span{font-size:16px;color:var(--grey)}
.cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.tile{min-height:200px;padding:24px;border-radius:20px;background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow);display:block}.tile::after{display:none}.tile .symbol{width:48px;height:48px;border-radius:14px;margin-bottom:18px;background:#edf3ed;color:var(--deep);box-shadow:none}.tile h2{font-size:26px;font-weight:800;letter-spacing:-1px;line-height:1.35}.tile .subtitle{font-size:16px;color:var(--grey);font-weight:500;line-height:1.6}.tile .arrow{position:absolute;right:20px;top:24px;width:30px;height:30px;min-height:0;background:none;color:#698275;font-size:23px}.tile:hover{transform:translateY(-3px);border-color:#91b29c}
.tile.schedule{background:#185b49;color:white;border-color:#185b49}.tile.schedule .symbol{background:#ffffff1c;color:white}.tile.schedule .subtitle{color:#e0eee5}.tile.schedule .arrow{color:#e0eee5}.tile.food{background:#edf2e5;color:#254d37}.tile.food .symbol{background:#fff9;color:#315f43}.tile.food .subtitle{color:#49624d}.tile.food .arrow{color:#49624d}
.tile.calendar,.tile.safety,.tile.welcome,.tile.sns{background:#fff;color:var(--ink)}.tile.calendar .arrow{background:none;color:#698275}.tile:nth-child(n+9){min-height:152px}.tile:nth-child(n+9) .symbol{display:none}
.share-strip{border:0;background:#eaf0e9;border-radius:16px;margin-top:28px;padding:20px}.share-strip>span{font-size:17px}.bottom{font-size:15px;line-height:1.7;color:#566c60}.foot{font-size:14px;color:#566c60}.view-heading{font-size:40px;line-height:1.35;letter-spacing:-1.5px}.view-sub{font-size:19px;line-height:1.7;color:var(--grey)}.back{padding:10px 16px;margin-bottom:22px;border:1px solid #d6e1d8;border-radius:12px;background:white;font-size:18px}
.finder,.schedule-shell,.cal-wrap,.fg-map-panel,.fg-side,.nm-start,.sns-hero,.v18-safety-hero{border-radius:20px;box-shadow:none}.finder,.fg-lead,.sns-hero,.v18-safety-hero{background:#edf3ec;border:1px solid var(--line)}.finder-desc,.fg-desc,.fg-classes p,.class-meta,.meta,.desc,.sns-card p,.sns-date,.hint,.site-note,.nm-disclaimer,.fg-bottom{color:#50675b}.class-meta,.meta,.hint,.sns-date{font-size:16px}.class-time{font-size:17px}.class-title{font-size:20px}.day-tab{min-width:70px}.pill{font-size:15px}.notice h3{line-height:1.45}.sns-card p{font-size:17px}.sns-filter-btn{font-size:17px}
.fg-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start}.fg-map-panel{padding:18px}.fg-map-panel img{max-height:600px}.fg-map-panel p,.fg-side label{font-size:16px}.fg-lead{padding:20px 24px;border-radius:18px}.fg-lead h2{font-size:24px}.fg-lead p{font-size:17px;color:#50675b}.fg-side{position:sticky;top:20px;padding:20px}.fg-side h3{font-size:23px;margin-bottom:12px}.fg-chips{gap:8px}.fg-chips button{font-size:17px;min-height:48px;flex:1 1 42%;padding:10px 8px;background:white}.fg-chips button[aria-pressed=true]{background:var(--deep);color:white}.fg-reset{float:right;border:0;color:var(--deep);font-size:15px;background:none;padding:4px}.fg-classes strong,.fg-classes p,.fg-tag{font-size:16px}.fg-room h3{font-size:25px}.fg-photo{height:200px;padding:0;border-radius:12px}.fg-photo-empty{height:200px}.fg-rooms{gap:20px}.fg-desc{font-size:18px}.fg-nav button{min-width:110px;font-size:20px}.fg-caution{font-size:15px;color:#665530}
.v194-nav{display:none}.modal{padding:28px;max-height:92dvh}.modal-head{background:white}.admin-tab{font-size:16px}.field label{font-size:17px}.v19-check-output{overflow-wrap:anywhere}.v194-network{background:#fff3da;color:#674a19;padding:12px 24px;text-align:center;font-size:17px}.toast{max-width:calc(100% - 32px);width:max-content;text-align:center;font-size:18px}
body.v18-font-large .cards .tile h2{font-size:30px!important}body.v18-font-xl .cards .tile h2{font-size:34px!important}body.v18-font-large .view :is(.class-title,.class-time,.fg-chips button,.finder-result-info,.v19-result,.cal-event strong){font-size:22px}body.v18-font-xl .view :is(.class-title,.class-time,.fg-chips button,.finder-result-info,.v19-result,.cal-event strong){font-size:25px}
@media(max-width:1100px){.cards{grid-template-columns:repeat(3,minmax(0,1fr))}.top{flex-wrap:wrap}.brand-btn{flex:1 1 400px}.topright{flex:1;justify-content:flex-end}#home.active{column-gap:24px;grid-template-columns:minmax(0,1fr) 330px}.intro h1{font-size:40px}.fg-layout{grid-template-columns:1fr}.fg-side{position:static}.fg-chips button{flex:0 1 auto;padding:10px 16px}}
@media(max-width:760px){.top{padding:16px 20px;gap:12px}.brand-btn{flex:initial;width:100%}.brand-banner{width:430px;max-height:75px}.topright{width:100%;justify-content:space-between}.clock{text-align:left}.clock strong{display:none}.clock span{font-size:14px}.quiet{display:none!important}.main{padding:24px 18px 110px}.v18-font-button{font-size:16px;padding:8px 12px}#home.active{display:block}.intro{margin:12px 0 22px}.intro h1{font-size:38px;letter-spacing:-1.5px}.intro p{font-size:18px}.eyebrow{font-size:14px}.v18-today{margin:0 0 20px!important;padding:18px}.v18-today h2{font-size:20px}.v18-stats{margin-top:12px}.v18-stat b{font-size:26px}.v18-stat span{font-size:15px}.v18-today .v18-disclaimer{font-size:14px}.important-strip{padding:15px 17px;display:block;margin-top:18px}.important-strip .label{font-size:16px;margin-bottom:6px}.important-copy strong{font-size:19px}.important-copy span{font-size:16px}.v19-search{margin:22px 0 26px}.v19-search input{font-size:18px}.menu-heading span{display:none}.menu-heading h2{font-size:22px}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tile,.tile:nth-child(n+9){padding:18px 15px;min-height:193px;border-radius:17px}.tile h2{font-size:23px;letter-spacing:-.8px;line-height:1.4}.tile .subtitle{font-size:16px}.tile .symbol{width:42px;height:42px;margin-bottom:15px}.tile .arrow{right:12px;top:18px;width:26px;font-size:20px}.tile:nth-child(n+9) .symbol{display:grid}.share-strip{padding:16px}.share-strip>span{font-size:16px}.share-strip button{font-size:16px}.view-heading{font-size:32px}.view-sub{font-size:18px}.finder-desc{font-size:17px}.finder-chip{font-size:17px;min-height:48px}.finder-clear{font-size:16px}.finder-input{font-size:20px}.finder-result-info{font-size:18px}.day-tabs button{font-size:17px;min-width:0}.schedule-head p{font-size:16px}.class-title{font-size:20px}.class-meta{font-size:16px}.class-time{font-size:17px}.fg-nav{gap:8px;margin:18px 0}.fg-nav button{min-width:0;font-size:19px;flex:1}.fg-lead h2{font-size:23px}.fg-side{order:-1}.fg-chips button{font-size:17px}.fg-map-panel p{font-size:16px}.fg-rooms{grid-template-columns:1fr}.fg-room h3{font-size:26px}.fg-photo{height:220px}.fg-modal{padding:8px}.fg-modal-top strong{font-size:20px}.cal-wrap{padding:12px}.cal-week,.cal-days{gap:4px}.cal-day{min-height:64px;min-width:0;padding:4px 1px}.cal-num{font-size:18px}.cal-more{font-size:12px}.cal-legend{font-size:15px}.cal-nav{font-size:16px;padding:10px}.cal-tools h2{font-size:23px}.v194-nav{position:fixed;bottom:0;left:0;right:0;z-index:15;display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-top:1px solid #d2dfd4;padding:8px 12px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -3px 20px #173d3208;gap:8px}.v194-nav button{background:white;border:0;border-radius:12px;color:#456153;font-weight:700;font-size:17px;padding:10px 4px}.v194-nav button[aria-current=page]{background:#e7f0e8;color:#164f3c}.foot{padding-bottom:95px}.toast{bottom:90px}.modal{padding:18px 15px 28px;max-height:100dvh}.admin-tab{font-size:16px}.bottom{font-size:15px}.sns-card p{font-size:17px}.site-toolbar a{font-size:16px}.nm-card small{font-size:16px}.v18-metric small{font-size:16px}.sns-channel small{font-size:16px}
body.v18-font-large .cards,body.v18-font-xl .cards{grid-template-columns:1fr}body.v18-font-large .tile,body.v18-font-xl .tile{min-height:170px}
}
@media(max-width:370px){.main{padding-left:14px;padding-right:14px}.tile{padding:16px 12px}.tile h2{font-size:21px}.tile .subtitle{font-size:16px}.clock span{font-size:13px}.v18-font-button{font-size:15px}.cal-wrap{padding:8px}.cal-week,.cal-days{gap:2px}.cal-nav{padding:8px}.cal-tools{gap:4px}.cal-tools h2{font-size:20px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.tile.welcome .symbol{background:#edf3ed;color:var(--deep)}.tile.welcome .arrow{background:none;color:#698275}
@media(min-width:1101px){.tile:nth-child(n+9){grid-column:span 2;min-height:126px}.tile:nth-child(n+9) h2{font-size:24px}}
@media(max-width:760px){#home.active{display:flex;flex-direction:column}#home>.eyebrow{order:0}#home>.intro{order:1}#home>.important-strip{order:2}#home>.menu-heading{order:3}#home>.cards{order:4}#home>.v18-today{order:5;margin:24px 0 0!important}#home>.share-strip{order:6}#home>.bottom{order:7}.intro p br{display:none}.intro p{margin-top:10px}.intro{margin-bottom:10px}.important-strip{margin-top:10px}.v19-search{margin:8px 0 22px}.intro h1{font-size:34px}}
