/* 2026-09-06: 台詞と案内ウィンドウの文字・余白・コントラスト */
#speech{width:min(820px,calc(100% - 48px));padding:24px 30px 23px 16px;gap:16px;max-height:calc(100dvh - 110px);overflow:auto}
.speech-portrait{width:140px;height:140px}
.speaker{font-size:17px;color:#786034}
#speech-text{font-size:24px;line-height:1.8;min-height:3.6em;margin:8px 0 12px}
#speech-next{font-size:19px;min-height:48px;padding:10px 0 0 20px}
#toast{font-size:19px;line-height:1.75;padding:17px 25px;max-width:min(780px,calc(100vw - 44px));white-space:normal}
.load-bubble{font-size:25px}.load-bubble span{font-size:16px;color:#62715e}

dialog{padding:42px;max-height:calc(100dvh - 48px);overflow:auto}
dialog h2{font-size:36px;line-height:1.4;padding-right:25px}
dialog .eyebrow{font-size:15px;letter-spacing:.12em;color:#596c58}
.close{width:52px;height:52px;font-size:30px;right:14px;top:14px}
.dialog-lead{font-size:19px;line-height:1.75;color:#586c59;margin-bottom:25px}
#guide-dialog{width:1280px}.guide-layout{grid-template-columns:minmax(280px,.8fr) minmax(0,1.35fr);gap:32px}
.course-browser{min-width:0}.map-panel p{font-size:15px;color:#586c59}
.filters{gap:5px}.filters button{font-size:16px;padding:10px 16px;min-height:46px}.filters small{font-size:13px}
.search input{font-size:18px;padding:16px 12px}.search svg{width:22px;height:22px}
#course-list{max-height:410px}.course-row{grid-template-columns:42px minmax(0,1fr) auto;gap:14px;padding:17px 0}
.row-number{font-size:16px;width:40px;height:42px}.course-row h3{font-size:19px;line-height:1.55;overflow-wrap:anywhere}
.course-row p{font-size:16px;color:#61705e;margin-top:5px}.row-actions{gap:7px}.row-actions button{font-size:16px;min-height:46px;padding:10px 15px}
.guide-links{gap:24px;row-gap:15px}.guide-links a{font-size:16px;line-height:1.7}.guide-links a:focus-visible{outline-offset:2px}
#no-results{font-size:18px;line-height:1.7}
#course-dialog{width:1240px}#course-dialog[open]{grid-template-columns:minmax(0,1.04fr) minmax(0,1fr)}
.course-art{padding:65px 32px 35px}.image-note{font-size:14px;line-height:1.6;letter-spacing:0;color:#5b6d59;text-align:center}
.course-details{padding:58px 40px 36px;min-width:0}.course-details .eyebrow{font-size:16px;line-height:1.7}
.course-details h2{font-size:34px;line-height:1.45;padding-right:0;margin-bottom:20px}
#course-teacher{font-size:18px;color:#5e6e59;line-height:1.7;margin-bottom:20px}
#course-description{font-size:22px;line-height:1.85;margin-bottom:28px}
.primary{font-size:20px;padding:18px 22px;gap:16px;min-height:58px}.back-button{font-size:18px;min-height:48px;line-height:1.6}
.course-details small{font-size:14px;line-height:1.8;color:#61715e}
#help-dialog{width:820px}.help-welcome p{font-size:20px;line-height:1.8}.help-welcome .mascot-photo{width:150px;height:150px}
dl>div{grid-template-columns:105px minmax(0,1fr);padding:18px 0;gap:20px}dt{font-size:20px;line-height:1.7}dd{font-size:19px;line-height:1.8;color:#526854}
#near{font-size:18px;min-height:48px}#route-note{font-size:16px;line-height:1.6}#cancel-route{font-size:15px;min-height:44px}
.building-label{font-size:16px;padding:9px 14px}.building-label .num{font-size:13px}

@media(max-width:1050px){
 .guide-layout{grid-template-columns:1fr}.map-panel{display:none}
 #course-dialog[open]{grid-template-columns:minmax(0,.85fr) minmax(0,1fr)}
 .course-art{padding-left:24px;padding-right:24px}.course-details{padding-left:26px;padding-right:26px}
}
@media(max-width:700px){
 #speech{bottom:max(74px,calc(env(safe-area-inset-bottom) + 55px));width:calc(100% - 24px);padding:16px 20px 15px;display:grid;grid-template-columns:64px minmax(0,1fr);gap:2px 12px;max-height:calc(100dvh - 160px)}
 .speech-body{display:contents}.speech-portrait{width:64px;height:64px;margin:0;grid-column:1;grid-row:1}
 .speaker{font-size:16px;grid-column:2;grid-row:1;align-self:center}
 #speech-text{font-size:20px;line-height:1.75;grid-column:1 / -1;grid-row:2;min-height:3.5em;margin:6px 0 12px}
 #speech-next{font-size:17px;min-height:48px;grid-column:1 / -1;grid-row:3;justify-self:end;float:none;padding:6px 0 0 16px}
 #toast{font-size:17px;line-height:1.7;padding:15px 19px;bottom:128px;max-width:calc(100vw - 28px)}
 .load-bubble{font-size:22px;padding:19px 23px}.load-bubble span{font-size:15px;letter-spacing:0}
 dialog{padding:28px 20px;max-width:calc(100vw - 20px);max-height:calc(100dvh - 24px)}
 dialog h2{font-size:28px;line-height:1.5;margin-right:16px;padding-right:18px}
 dialog .eyebrow{font-size:13px;letter-spacing:.08em;margin-right:36px}
 .dialog-lead{font-size:17px;line-height:1.7;margin-bottom:18px}.close{width:48px;height:48px;font-size:28px;right:10px;top:10px}
 .filters{gap:4px}.filters button{font-size:15px;min-height:44px;padding:8px 12px}.filters small{font-size:12px}
 .search input{font-size:17px;padding:15px 10px}#course-list{max-height:45dvh;padding-right:5px}
 .course-row{grid-template-columns:36px minmax(0,1fr);gap:10px 12px;padding:17px 0}
 .row-number{width:34px;height:38px;font-size:15px;align-self:start}.course-row h3{font-size:18px;line-height:1.5}.course-row p{font-size:15px;line-height:1.7}
 .row-actions{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:8px}.row-actions button{font-size:16px;padding:10px 8px;min-height:46px}
 .guide-links{gap:13px 19px;margin-top:18px;padding-top:18px}.guide-links a{font-size:15px}.guide-links a:last-child{margin-right:0}
 #no-results{font-size:16px}
 #course-dialog{max-width:calc(100vw - 20px)}#course-dialog[open]{display:block}
 .course-art{padding:62px 20px 20px}.image-note{font-size:13px;margin-top:13px}
 .course-details{padding:24px 22px 28px}.course-details .eyebrow{font-size:14px;margin-right:0;line-height:1.7}
 .course-details h2{font-size:28px;line-height:1.5;margin-right:0;padding-right:0;margin-bottom:18px}
 #course-teacher{font-size:16px;line-height:1.75;margin-bottom:16px}#course-description{font-size:19px;line-height:1.85;margin-bottom:24px}
 .primary{font-size:18px;line-height:1.6;padding:16px 17px;min-height:58px;gap:10px}.back-button{font-size:16px;line-height:1.75;min-height:48px}
 .course-details small{font-size:14px;line-height:1.7;margin-top:12px}
 .help-welcome{gap:10px;align-items:center}.help-welcome .mascot-photo{width:88px;height:88px}.help-welcome p{font-size:17px;line-height:1.75}
 dl>div{grid-template-columns:1fr;gap:5px;padding:17px 0}dt{font-size:19px}dd{font-size:17px;line-height:1.85}
 #near{font-size:17px;min-height:48px;max-width:calc(100vw - 115px);white-space:normal}#route-note{font-size:15px;max-width:calc(100vw - 32px)}#cancel-route{font-size:14px;min-height:44px}
 .building-label{font-size:14px;padding:8px 10px}.building-label .num{font-size:12px}
}
@media(max-height:550px) and (max-width:950px){#speech{bottom:16px;max-height:calc(100dvh - 96px)}.speech-portrait{display:none}#speech-text{font-size:19px;min-height:0}.speaker{grid-column:1 / -1}}
