/* Shared phone layout. Content can wrap; only the explicitly enlarged map pans. */
html{width:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:90px}
body{width:100%;max-width:100%;min-width:0}
img{max-width:100%}
.wrap,.topinner,.heroInner,.secHead,.schedule,.timelines,.step,.step>div,.storyGuides,.storyGuideGrid,.storyGuideLink,.storyGuideLink>span,.poseGuideLink>span,.relatedPageCard>div,.tools,.searchWrap,.place,.placeBody,.detail>div,.blogHeading,.blogHeading>div,.blogGroup,.brandCopy{min-width:0}
.topinner .mark .brandCopy{min-width:0}
.topinner .mark .brandSubject{white-space:normal;overflow-wrap:anywhere}
.guide-hub a{min-height:44px}
.tour-bottom-nav{display:none}
.mapMobileTools{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:#f5f8ef;border-bottom:1px solid #dce5d6}
.mapMobileTools>span{font-size:12px;color:#617457;line-height:1.6;min-width:0}
.mapMobileTools button{flex-shrink:0;min-height:44px;padding:10px 13px;border:1px solid #c8d7bf;border-radius:9px;background:white;color:#36553e;font-size:12px;font-weight:700}
.tour-map-dialog{padding:0;border:0;border-radius:12px;width:calc(100vw - 32px);max-width:1100px;max-height:calc(100dvh - 32px);background:#f6f3ec;color:#263d35;overflow:hidden}
.tour-map-dialog::backdrop{background:#14291ed4}
.tour-map-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;border-bottom:1px solid #d9e0d0}
.tour-map-heading h2{font-size:16px;margin:0;font-weight:700;line-height:1.6;min-width:0}
.tour-map-heading>button{width:44px;height:44px;flex-shrink:0;border:0;background:transparent;font-size:30px;color:inherit}
.tour-map-dialog>p{font-size:12px;color:#6e7d60;padding:0 16px;line-height:1.7;margin:10px 0}
.tour-map-canvas{max-height:calc(100dvh - 195px);min-height:160px;overflow:auto;overscroll-behavior:contain;background:#e9efdf;touch-action:pan-x pan-y}
.tour-map-canvas img{display:block;width:1000px;min-width:600px;max-width:none;height:auto}
.tour-map-zoom{display:flex;justify-content:center;gap:14px;padding:12px;border-top:1px solid #d8e1cd}
.tour-map-zoom button{min-height:44px;min-width:105px;background:#fffdf7;border:1px solid #c5d4b8;border-radius:8px;padding:10px 16px;color:inherit;font-size:13px}
body:has(.tour-map-dialog[open]){overflow:hidden}
@media(max-width:900px){
 html{scroll-padding-top:88px}
 body{padding-bottom:calc(80px + env(safe-area-inset-bottom,0px));font-size:14px;line-height:1.75;overflow-wrap:anywhere}
 .wrap{width:100%;max-width:100%;padding-left:16px;padding-right:16px}
 header.top{position:sticky;top:0;max-width:100%;backdrop-filter:blur(12px)}
 header.top .topinner,.kyotoGuide header.top .topinner{display:grid;grid-template-columns:minmax(0,1fr) 62px;gap:10px;width:100%;min-height:68px;height:auto;padding:10px 16px}
 header.top .topinner .mark{min-width:0;width:auto;gap:9px;flex-shrink:1;letter-spacing:0}
 header.top .topinner .mark i{flex:0 0 32px;width:32px;height:32px;border-radius:9px;font-size:24px}
 header.top .topinner .mark .brandCopy{min-width:0;line-height:1.45;gap:2px}
 header.top .topinner .mark .brandName{font-size:13px;font-weight:800;white-space:normal;overflow-wrap:anywhere}
 header.top .topinner .mark .brandSubject,.kyotoGuide header.top .topinner .mark .brandSubject{font-size:11px;max-width:none;line-height:1.5;white-space:normal;word-break:normal;overflow-wrap:anywhere}
 header.top .toplinks{display:none}
 header.top .share{padding:9px 5px;width:62px;min-height:44px;font-size:11px;border-radius:9px;white-space:normal;line-height:1.5}
 .guide-hub{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-width:100%;margin:12px 0;padding:0 16px;overflow:visible}
 .guide-hub a{min-width:0;min-height:47px;width:100%;padding:8px 5px;border-radius:10px;white-space:normal;text-align:center;line-height:1.5;font-size:12px;word-break:keep-all;overflow-wrap:anywhere}
 .heroInner,.kyotoGuide .heroInner{display:block;padding:29px 16px 35px;min-height:0}
 .hero .overline{font-size:10px;line-height:1.8;letter-spacing:.1em;margin-bottom:12px}
 .hero h1,.kyotoGuide .hero h1,.osakaStandalone .hero h1{font-size:clamp(25px,6.7vw,36px);line-height:1.4;letter-spacing:-.04em;margin-bottom:15px;word-break:keep-all;overflow-wrap:anywhere}
 .kyotoGuide .hero h1 .guideTitleLine{max-width:100%;overflow-wrap:anywhere;word-break:keep-all}
 .kyotoGuide .hero h1 em.guideTitleLine{font-size:1em;letter-spacing:inherit}
 .hero p{max-width:none;margin:0 0 18px;font-size:13px;line-height:1.85}
 .heroArt,.hero:after{display:none}
 .heroTags{max-width:100%;gap:6px}
 .heroTags span{font-size:11px;padding:6px 10px;max-width:100%;line-height:1.7}
 .notice{margin-top:12px;padding:14px;border-radius:12px;gap:10px;box-shadow:none}
 .notice>div:last-child{min-width:0}.notice b{font-size:12px}.notice p{font-size:12px;line-height:1.8}
 .section,.storyGuides{padding-top:32px}
 .secHead{display:block;margin:8px 0 17px}
 .secHead h2,.storyGuides .secHead h2{font-size:23px;line-height:1.5;margin:5px 0 8px;letter-spacing:-.04em;word-break:keep-all;overflow-wrap:anywhere}
 .secHead p,.storyGuides .secHead p{font-size:12px;line-height:1.8}
 .eyebrow{font-size:9px;line-height:1.8;letter-spacing:.1em}
 .secHead .count{display:none}
 .storyGuideGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .storyGuideLink{padding:13px 12px;min-height:77px;gap:6px}
 .storyGuideLink small{font-size:8px;line-height:1.5;letter-spacing:.04em;margin-bottom:6px;overflow-wrap:anywhere}
 .storyGuideLink strong{font-size:13px;line-height:1.65;word-break:keep-all;overflow-wrap:anywhere}
 .storyGuideLink>span:last-child{flex:0 0 18px;font-size:18px}
 .poseGuideLink{padding:17px 15px;gap:12px;min-height:80px}
 .poseGuideLink strong{font-size:15px;line-height:1.65}.poseGuideLink small{font-size:11px;line-height:1.75}
 .poseGuideLink>span:last-child{flex:0 0 20px}
 .schedule{padding:5px 16px 15px;border-radius:13px}
 .timelines{padding-left:16px}
 .timelines:before{left:2px;top:22px;bottom:22px}
 .step{display:grid;grid-template-columns:minmax(0,1fr);gap:7px;padding:17px 0}
 .step:before{left:-18px;top:25px;width:9px;height:9px}
 .stepTime{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;line-height:1.7}
 .stepTime small{display:inline-block;font-size:11px;line-height:1.6;background:#f0f4e9;border:1px solid #e0e8d8;color:#78856e;padding:2px 7px;border-radius:5px}
 .stepTitle{font-size:16px;line-height:1.6;overflow-wrap:anywhere;word-break:keep-all}
 .stepDesc{font-size:13px;line-height:1.8;word-break:keep-all;overflow-wrap:anywhere}
 .scheduleFoot{padding:13px;font-size:11px;line-height:1.9;border-radius:8px}
 .mapSection{padding-top:32px}.mapWrap{border-radius:12px;max-width:100%}
 #mapguide .mapTourBrand{font-size:12px;max-width:100%;line-height:1.7;padding:5px 9px}
 #mapguide .mapTourTitle{font-size:25px;line-height:1.5}
 .mapFixedDisplay{display:flex;flex-direction:column;min-width:0;max-width:100%}
 .mapImageFrame{width:100%;max-width:100%;aspect-ratio:1496/1024;flex:none}
 .mapImageFrame img{display:block;width:100%;height:100%;object-fit:contain}
 .mapMobileTools{padding:8px 10px;gap:8px}.mapMobileTools>span{font-size:10px}.mapMobileTools button{font-size:11px;padding:10px}
 .mapPoiPanel{position:relative;inset:auto;width:100%;min-width:0;max-width:100%;height:auto;min-height:0;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;background:#fff}
 .mapPoiHeader{padding:13px 12px 10px;gap:8px}.mapPoiHeader>div{min-width:0}.mapPoiHeader strong{font-size:16px}.mapPoiEyebrow{font-size:9px;line-height:1.7}
 .mapPoiCollapse{min-height:44px;min-width:58px;border-radius:8px;font-size:11px;padding:9px}
 .mapPoiFilters{flex-wrap:wrap;overflow:visible;gap:6px;padding:10px 11px}
 .mapPoiFilter{min-height:44px;font-size:12px;padding:9px 11px;border-radius:9px}
 .mapPoiScrollable{max-height:310px;flex:none;min-height:0;padding:6px 8px;overflow-y:auto}
 .mapPoiRow{min-width:0;gap:5px;padding:3px;align-items:center}.mapPoiFocus{min-height:56px;padding:9px 6px;overflow-wrap:anywhere}.mapPoiFocus strong{font-size:13px;line-height:1.6}.mapPoiFocus small{font-size:11px;line-height:1.6}
 .mapPoiGo{min-height:44px;min-width:55px;font-size:11px;padding:9px 7px}
 .mapPoiSelection{padding:12px;font-size:11px;line-height:1.8;overflow-wrap:anywhere}
 .mapPanelReopen{position:relative;inset:auto;min-height:44px;margin:10px 12px;align-self:stretch;text-align:center;font-size:12px}
 .mapCaptionNew{padding:13px!important}.mapCaptionNew p{font-size:11px;line-height:1.8}.mapLegend{gap:6px}.legendPill{font-size:10px;padding:6px 8px;line-height:1.7}
 .tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:17px}
 .searchWrap{grid-column:1/-1;min-width:0}.searchWrap input{min-width:0;height:48px;font-size:16px;padding-left:37px}
 .filter{min-width:0;width:100%;height:46px;padding:8px;font-size:13px}
 input:not([type=checkbox]),select,textarea{max-width:100%;font-size:16px}
 .grid,.blogGrid,#osaka .blogGrid{grid-template-columns:minmax(0,1fr);gap:16px}
 .placeTop{height:76px;padding:15px 16px}.placeBody{padding:17px}.placeBody h3{font-size:19px;line-height:1.5}.japanese{font-size:12px;line-height:1.6}.desc{min-height:0;font-size:13px;line-height:1.85}
 .detail{grid-template-columns:52px minmax(0,1fr);gap:8px;font-size:12px;line-height:1.8}.detail>div{overflow-wrap:anywhere}
 .placeFooter{gap:8px}.placeFooter .button{min-height:46px;padding:12px 8px;font-size:12px}
 .break{font-size:12px;line-height:1.85;padding:15px;border-radius:11px}
 .blogHeading{gap:11px;padding:16px!important}#osaka .blogHeading{grid-template-columns:88px minmax(0,1fr);gap:12px;min-height:0}#osaka .osakaThumb{width:88px;height:94px}.blogHeading .ideogram{flex:0 0 43px;width:43px;height:43px;font-size:23px;border-radius:10px}.blogHeading h3,#osaka .blogHeading h3{font-size:17px;line-height:1.5;overflow-wrap:anywhere}.blogHeading p{font-size:12px;line-height:1.8}
 .blogGroup ul{columns:1}.blogGroup li{font-size:12px;line-height:1.8}.blogOpen{min-height:46px;font-size:12px}
 .relatedPageCard{padding:17px;gap:12px}.relatedPageCard h2{font-size:17px}.relatedPageCard p{font-size:12px;line-height:1.85}
 .osaka{margin-top:32px;padding-top:32px;padding-bottom:35px}.foot{display:block}.foot>div{min-width:0;overflow-wrap:anywhere}footer{padding-bottom:30px}
 .mobileNav{display:none!important}
 .tour-bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:40;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border-top:1px solid #dce3d5;background:#fffdf7f7;backdrop-filter:blur(14px);padding:5px 6px calc(7px + env(safe-area-inset-bottom,0px));box-shadow:0 -4px 18px #304e3e08}
 .tour-bottom-nav a{min-width:0;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-decoration:none;color:#62765a;font-size:11px;line-height:1.4;border-radius:9px;padding:5px 2px}
 .tour-bottom-nav a[aria-current=page]{background:#e9efdf;color:#294b33;font-weight:700}
 .tour-bottom-nav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
 .timer-floating{bottom:calc(82px + env(safe-area-inset-bottom,0px));right:12px;font-size:11px;max-width:calc(100vw - 24px);padding:11px 15px}
 .site-header{height:auto;min-height:68px;padding:11px 16px;gap:10px;max-width:100%}.site-header .brand{gap:8px;min-width:0}.site-header .moon-mark{font-size:35px;flex-shrink:0}.site-header .brand>span:last-child{min-width:0}.site-header .brand strong{font-size:12px;letter-spacing:1px}.site-header .brand small{font-size:10px;line-height:1.6}.site-header .pose-shortcut{min-height:44px;flex-shrink:0;padding:10px;font-size:11px}
 .city-nav .nav-inner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 16px}.city-nav .nav-inner button{min-width:0;min-height:56px;flex-direction:column;justify-content:center;gap:5px;font-size:12px}.city-nav .nav-inner button small{font-size:7px;letter-spacing:.7px}
 #main{padding:24px 16px 0;max-width:100%;min-width:0}.hero-copy{min-width:0}.hero-copy h1{font-size:32px;line-height:1.5;letter-spacing:-1px}.hero-copy p{font-size:12px!important}.hero-location{flex-wrap:wrap;gap:8px;line-height:1.7}.hero-location .region-label{font-size:10px}
 #main .hero{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;padding-bottom:24px}.hero-photo{height:235px;min-height:0;min-width:0}.hero-photo figure{height:100%}.hero-photo img{max-width:100%}
 .section-header{align-items:flex-start;gap:10px}.section-header h2{font-size:19px;line-height:1.6;min-width:0}.section-header>p{font-size:10px;max-width:105px}.collections{grid-template-columns:minmax(0,1fr)}.collection-title h3{font-size:20px;line-height:1.6}.collection-visual{height:250px}
 .story-dialog{width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border-radius:0}.viewer-top{padding:0 14px;height:auto;min-height:54px}.viewer-top>span{font-size:11px;line-height:1.7;min-width:0}.viewer-top .icon-button{flex-shrink:0}.story-layout{display:block;overflow:auto;min-width:0}.story-visual{height:42dvh;min-height:220px;max-width:100%;padding:14px}.photo-expand{min-width:0}.story-copy{padding:24px 20px}.story-copy h2{font-size:25px;line-height:1.65;overflow-wrap:anywhere}.story-prompt{font-size:12px}.question-index summary{min-height:44px;padding:12px 0}.question-index button{min-height:46px;font-size:12px;line-height:1.7}.viewer-bottom{grid-template-columns:76px minmax(0,1fr) 76px;gap:14px;padding:11px 15px}.viewer-bottom button{min-height:44px;font-size:12px}
 .image-dialog{max-width:100%;padding:56px 10px 24px}.image-dialog img{width:100%;height:auto;max-height:none;object-fit:contain}.image-dialog .icon-button{width:44px;height:44px}
 .pose-poster-intro h1{font-size:29px;line-height:1.5}.pose-poster-intro>p:last-child{font-size:12px}.pose-poster{max-width:100%;margin-top:20px}.pose-poster-actions{gap:12px;flex-wrap:wrap}.pose-poster-actions .dark-button,.pose-save{min-height:44px;display:flex;align-items:center;font-size:12px}.pose-poster-note{font-size:11px;line-height:1.8}
 .timer-main{padding:24px 16px 30px;max-width:100%;min-width:0}.timer-main h1{font-size:29px;line-height:1.5}.timer-description{font-size:12px}.timer-display{font-size:clamp(48px,15vw,76px);letter-spacing:-1.8px;line-height:1.25}.timer-target{font-size:11px;line-height:1.8}.timer-state-row h2{font-size:12px}.timer-state-row>span{font-size:10px}.clock-card{padding:20px 15px}.timer-settings{padding:20px 15px}.timer-mode button{min-height:46px;font-size:12px}#timer-form label{font-size:12px}#timer-form input:not([type=checkbox]){font-size:16px;height:48px;min-width:0;width:100%;padding:10px}.meeting-fields{grid-template-columns:minmax(0,1fr);gap:16px}.quick-minutes button{min-height:44px;font-size:12px}.clock-actions button{min-height:44px;font-size:12px}.start-timer{min-height:48px;font-size:14px}.sound-note,.storage-note,.timer-smallprint{font-size:11px;line-height:1.85}
 .tour-map-dialog{width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border-radius:0}.tour-map-canvas{max-height:calc(100dvh - 190px);height:calc(100dvh - 190px)}
}
@media(max-width:360px){
 .guide-hub a{font-size:11px;padding-left:4px;padding-right:4px}.storyGuideLink{padding:12px 10px}.storyGuideLink strong{font-size:12px}.hero h1,.kyotoGuide .hero h1{font-size:25px}.hero-copy h1{font-size:29px}.hero-photo{height:213px}.story-copy h2{font-size:23px}.timer-state-row{align-items:flex-start;gap:8px}.timer-state-row>span{font-size:9px}.timer-display{font-size:47px}.site-header .brand small{font-size:9px}.site-header .pose-shortcut{font-size:10px;padding:9px}
}
@media(min-width:901px){.tour-bottom-nav{display:none}.guide-hub{flex-wrap:wrap}.tour-map-dialog{height:auto}}
@media print{.tour-bottom-nav,.mapMobileTools,.tour-map-dialog,.guide-hub{display:none!important}body{padding-bottom:0}}
