
:root{--cw:clamp(440px,42vw,620px);--navy:#10305c;--navy-mid:#1b4c8a;--orange:#f2870d;--orange-soft:#fff3e4;--ink:#1b1d21;--sub:#5b6472;--rule:#dde3ec;--dock:268px;--sea1:#12386b;--sea2:#071a36}
body.dtcap{--dock:292px}
body.dock-closed{--dock:50px}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:var(--sea2);color:var(--ink);font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;font-size:14px;line-height:1.6;-webkit-text-size-adjust:100%}
button{font:inherit;color:inherit;cursor:pointer}
#app{position:fixed;inset:0;background:radial-gradient(120% 90% at 30% 20%,var(--sea1),var(--sea2))}
#map{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:grab;display:block}
#map.drag{cursor:grabbing}
.town{stroke:rgba(255,255,255,.4);stroke-width:1;vector-effect:non-scaling-stroke;transition:fill .25s;cursor:pointer}
.town:hover{stroke:#fff;stroke-width:2}
.town.sel{stroke:var(--orange);stroke-width:3.5}
.tl{text-anchor:middle;font-weight:700;fill:#fff;paint-order:stroke;stroke:#071a36;stroke-linejoin:round;pointer-events:none;font-family:inherit}
.pin{cursor:pointer}
/* 上部 */
.top{position:absolute;z-index:5;top:16px;left:16px;right:16px;display:flex;align-items:center;gap:12px;pointer-events:none}
.top>*{pointer-events:auto}
.brand{flex:none;display:flex;align-items:center;gap:12px;background:#fff;border-radius:999px;padding:8px 18px 8px 16px;box-shadow:0 4px 18px rgba(0,0,0,.28)}
.brand img{height:30px;width:auto;display:block}
.brand{cursor:pointer}
.brand>span{display:flex;flex-direction:column;color:var(--navy);border-left:1px solid var(--rule);padding-left:12px;white-space:nowrap;line-height:1.3}
.brand>span b{font-size:14px}
.brand>span small{font-size:11px;color:var(--sub);font-weight:400}
.ttl{display:none}
.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:4px 2px;min-width:0}
.chips::-webkit-scrollbar{display:none}
.chips button{flex:none;display:inline-flex;align-items:center;line-height:1;border:0;background:rgba(255,255,255,.96);color:var(--navy);border-radius:999px;padding:11px 16px 12px;font-weight:700;font-size:13px;box-shadow:0 3px 12px rgba(0,0,0,.25);white-space:nowrap}
.chips button small{font-weight:400;color:var(--sub);margin-left:6px;font-size:12px}
.chips button.on{background:var(--orange);color:#fff}
.chips button.on small{color:#fff}
.legend{position:absolute;z-index:4;left:16px;top:74px;background:rgba(7,26,54,.72);backdrop-filter:blur(6px);color:#fff;border-radius:10px;padding:8px 14px;font-size:12px;white-space:nowrap;max-width:calc(100% - 32px)}
.legend .sw{display:inline-block;width:12px;height:12px;border-radius:2px;vertical-align:-2px;margin:0 3px 0 8px}
.legend .sw:first-of-type{margin-left:6px}
.zoom{position:absolute;z-index:4;right:16px;top:74px;display:flex;flex-direction:column;gap:8px;transition:right .25s}
.zoom button{width:42px;height:42px;border:0;border-radius:10px;background:#fff;color:var(--navy);font-size:22px;font-weight:700;box-shadow:0 3px 12px rgba(0,0,0,.28);line-height:1}
.zoom button.home{font-size:12px}
.tip{position:fixed;z-index:9;pointer-events:none;background:#fff;color:var(--navy);font-weight:700;font-size:13px;padding:5px 10px;border-radius:6px;box-shadow:0 3px 12px rgba(0,0,0,.3);display:none;white-space:nowrap}
.tip small{font-weight:400;color:var(--sub);margin-left:6px}
/* 詳細カード */
#card{position:absolute;z-index:6;right:16px;top:74px;bottom:calc(var(--dock) + 28px);width:var(--cw);background:#fff;border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.4);overflow:hidden;display:flex;flex-direction:column;transform:translateX(calc(100% + 32px));transition:transform .3s cubic-bezier(.2,.8,.2,1)}
body.open #card{transform:none}
body.open .zoom{right:calc(var(--cw) + 32px)}
.grab{display:none}
.mh{display:none}
.zoom .hi{display:none}
.cscroll{overflow-y:auto;flex:1;overscroll-behavior:contain}
.close{position:absolute;z-index:3;top:10px;right:10px;width:34px;height:34px;border:0;border-radius:50%;background:rgba(7,26,54,.7);color:#fff;font-size:18px;line-height:1}
.car{position:relative}
.slides{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.slides::-webkit-scrollbar{display:none}
.slide{flex:0 0 100%;min-width:0;scroll-snap-align:start;position:relative;overflow:hidden}
.mos{position:absolute;width:768px;height:768px;display:grid;grid-template-columns:repeat(3,256px)}
.mos img{width:256px;height:256px;display:block}
.slide img{width:100%;height:210px;object-fit:cover;display:block;background:#c5cfdd}
.cred{padding:6px 30px 0;color:var(--sub);font-size:10.5px;line-height:1.5;min-height:3.4em}
.cred a{color:var(--navy-mid);white-space:nowrap}
.dots{top:10px;bottom:auto}
.pn{min-height:20px;margin:8px 30px 0;font-size:11px;color:#8a4a00}
.lk{list-style:none;margin:0;padding:0}
.lk li{padding:6px 0;border-bottom:1px solid var(--rule);font-size:13px}
.lk li:last-child{border-bottom:0}
.lk small{display:block;color:var(--sub);font-size:11px}
.rc .pho img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ni{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:#e6e9ee;font-style:normal;font-size:10px;letter-spacing:.08em;color:#8a93a1}
.ni b{font-size:13px;letter-spacing:0;color:#5b6472;font-weight:700}
.ni2{flex-direction:column;gap:4px;background:#e6e9ee!important;color:#8a93a1!important;font-size:11px;letter-spacing:.1em}
.ni2 b{font-size:15px;letter-spacing:0;color:#5b6472}
.slide.ph{height:210px;display:flex;align-items:center;justify-content:center;background:#d3d9e2;color:#6b7686;font-size:13px;text-align:center;padding:24px}
.cap{position:absolute;left:10px;bottom:8px;background:rgba(7,26,54,.72);color:#fff;font-size:11px;padding:2px 8px;border-radius:4px;pointer-events:none}
.dots{position:absolute;left:0;right:0;bottom:10px;display:flex;justify-content:center;gap:6px;pointer-events:none}
.dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.55)}
.dots i.on{background:#fff}
.croma{font-size:12px;color:var(--sub);margin:0 0 10px}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tags span{background:var(--orange-soft);color:#8a4a00;border:1px solid #f6c889;border-radius:4px;padding:2px 8px;font-size:12px}
.btn{display:block;text-align:center;background:var(--orange);color:#fff;text-decoration:none;font-weight:700;padding:12px 16px;border-radius:8px;margin-top:20px}
.btn.off{background:#e4e8ee;color:var(--sub)}
.lnk{display:block;margin-top:10px;font-size:13px;color:var(--navy-mid)}
/* ドック */
#dock{position:absolute;z-index:5;left:16px;right:16px;bottom:16px;height:var(--dock);background:#fff;border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.35);display:flex;flex-direction:column;overflow:hidden;transition:height .25s}
.dh{flex:none;display:flex;align-items:center;gap:12px;padding:8px 12px 6px 14px;min-height:50px}
.sortbar,.lsel{display:flex;align-items:center;gap:12px;min-width:0}
.stl{font-size:16px;color:var(--navy);white-space:nowrap}
.ssel{display:flex;align-items:center;gap:8px;min-width:0}
.ssel span{font-size:12px;color:var(--sub);white-space:nowrap}
.ssel select{min-width:0;max-width:100%;border:1.5px solid var(--navy);border-radius:10px;background:#fff;color:var(--navy);font:inherit;font-size:14px;font-weight:700;padding:9px 12px;min-height:40px;cursor:pointer}
.fold.ab{margin-left:auto}
.fold+.fold{margin-left:0}
.fold{flex:none;margin-left:auto;border:1px solid var(--rule);background:#fff;border-radius:999px;padding:5px 14px;font-size:12px;font-weight:700;color:var(--navy)}
.tcap{padding:0 16px 6px;font-size:12px;line-height:1.5;color:var(--sub)}
.tcap:empty{display:none}
.railwrap{position:relative;flex:1;min-height:0}
.rail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;padding:2px 14px 14px;height:100%;scrollbar-width:thin}
.rc{flex:none;width:max-content;min-width:208px;max-width:360px;border:0;background:none;padding:0;text-align:left;scroll-snap-align:start;display:flex;flex-direction:column;border-radius:10px}
.rc .pho{position:relative;overflow:hidden;flex:0 0 104px;width:100%;height:104px;border-radius:10px;background-color:#c5cfdd;margin-bottom:6px;outline:3px solid transparent;outline-offset:-3px;transition:outline-color .15s}
.rc.on .pho{outline-color:var(--orange)}
.rc b{font-size:14px;color:var(--navy)}
.rc span{font-size:12px;color:var(--sub);line-height:1.5}
.rc>b,.rc>.rk,.rc>.rr{display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc>.rk{font-weight:700;font-size:13px;color:var(--navy)}
.rc>.rn{line-height:1.5}
.ar{position:absolute;top:36px;width:34px;height:34px;border:0;border-radius:50%;background:#fff;color:var(--navy);font-size:18px;box-shadow:0 2px 10px rgba(0,0,0,.3);z-index:2}
.ar.l{left:6px}.ar.r{right:6px}
body.dock-closed .railwrap{display:none}
#mbar,#hb,#mbd,.msheet,#hm{display:none}
@media (max-width:1000px){
  :root{--dock:0px}
  #dock,.legend,#plegend,.chips,.topc,.lang,.tip,#zin,#zout,.brand>span{display:none!important}
  .top{top:calc(8px + env(safe-area-inset-top));left:12px;right:12px;justify-content:space-between;gap:8px}
  .brand{padding:0 16px;height:44px}
  .brand img{height:22px}
  .ttl{display:block;position:absolute;z-index:4;left:16px;right:70px;top:calc(60px + env(safe-area-inset-top));color:#fff;text-shadow:0 1px 4px rgba(7,26,54,.9);pointer-events:none}
  .ttl b{display:block;font-size:16px;line-height:1.4}
  .ttl small{display:block;font-size:12px;line-height:1.5;color:rgba(255,255,255,.88)}
  body.open .ttl,body.panel .ttl,body.poi .ttl{display:none}
  #hb{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:var(--navy);box-shadow:0 3px 12px rgba(0,0,0,.28);cursor:pointer}
  #hb svg{width:22px;height:22px}
  .zoom{position:fixed;top:auto;right:12px;bottom:calc(88px + env(safe-area-inset-bottom));z-index:5}
  .zoom button{width:44px;height:44px;border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center}
  .zoom button svg{width:22px;height:22px}
  .zoom .ht{display:none}
  .zoom .hi{display:block}
  body.open .zoom,body.open #mbar,body.panel .zoom,body.panel #mbar,body.poi .zoom,body.poi #mbar{display:none}
  #mbar{display:flex;position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:6;gap:10px}
  #mbar button{flex:1;min-height:56px;border:0;border-radius:14px;background:#fff;color:var(--navy);box-shadow:0 4px 16px rgba(0,0,0,.35);font:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 8px;cursor:pointer}
  #mbar button small{font-size:12px;color:var(--sub);line-height:1.2}
  #mbar button b{font-size:15px;line-height:1.3;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:clip}
  #mbar button.f b{color:var(--orange)}
  #mbd{display:block;position:fixed;inset:0;z-index:11;background:rgba(7,26,54,.5);opacity:0;pointer-events:none;transition:opacity .25s}
  #mbd.on{opacity:1;pointer-events:auto}
  .msheet{display:flex;flex-direction:column;position:fixed;left:0;right:0;bottom:0;z-index:12;background:#fff;border-radius:18px 18px 0 0;max-height:80dvh;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -8px 32px rgba(0,0,0,.4);visibility:hidden;transform:translateY(105%);transition:transform .28s cubic-bezier(.2,.8,.2,1),visibility 0s .28s}
  .msheet.on{visibility:visible;transform:none;transition:transform .28s cubic-bezier(.2,.8,.2,1)}
  .msh{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 6px 18px;flex:none;min-height:52px}
  .msh b{font-size:18px;color:var(--navy)}
  .mclose{width:44px;height:44px;border:0;border-radius:50%;background:#eef1f5;color:var(--navy);font-size:22px;cursor:pointer}
  .mbody{overflow-y:auto;overscroll-behavior:contain;padding:0 12px 16px;flex:1}
  .mrow{display:flex;align-items:center;width:100%;min-height:52px;padding:0 12px;border:0;border-bottom:1px solid var(--rule);background:none;font:inherit;font-size:16px;color:var(--ink);text-align:left;cursor:pointer}
  .mrow span{flex:1}
  .mrow em{font-style:normal;font-size:13px;color:var(--sub);margin-left:10px}
  .mrow i{font-style:normal;width:24px;text-align:right;color:var(--orange);font-weight:700}
  .mrow.on{font-weight:700;color:var(--navy)}
  .msw{display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:0 12px;border-bottom:1px solid var(--rule);font-size:16px;cursor:pointer}
  .msw input{position:absolute;opacity:0;pointer-events:none}
  .msw .sw{width:50px;height:30px;border-radius:15px;background:#c5cfdd;position:relative;transition:background .2s;flex:none}
  .msw .sw::after{content:"";position:absolute;left:3px;top:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .2s}
  .msw input:checked+.sw{background:var(--navy)}
  .msw input:checked+.sw::after{transform:translateX(20px)}
  .mgh{margin:14px 12px 2px;font-size:12px;font-weight:700;color:var(--sub)}
  .lrow{display:flex;align-items:center;gap:14px;width:100%;min-height:80px;padding:8px 4px;border:0;border-bottom:1px solid var(--rule);background:none;font:inherit;text-align:left;cursor:pointer}
  .lrow .lp{flex:0 0 64px;width:64px;min-width:64px;height:64px;min-height:64px;border-radius:10px;overflow:hidden;background:#dfe4ec}
  .lrow .lp img{width:100%;height:100%;object-fit:cover;display:block}
  .lrow .lt{display:flex;flex-direction:column;gap:2px;min-width:0}
  .lrow b{font-size:17px;color:var(--navy);line-height:1.4}
  .lrow small{font-size:14px;color:var(--sub);line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .lrow small.rk{font-weight:700;color:var(--navy)}
  .lrow .lt{flex:1}
  .lsel{margin:0 18px 6px;justify-content:space-between}
  .lsel .stl{display:none}
  .lsel .ssel{flex:1}
  .lsel .ssel select{flex:1;font-size:15px;min-height:44px}
  #hm{display:flex;flex-direction:column;position:fixed;inset:0;z-index:15;background:#fff;visibility:hidden;transform:translateY(6%);opacity:0;transition:opacity .2s,transform .2s,visibility 0s .2s}
  #hm.on{visibility:visible;transform:none;opacity:1;transition:opacity .2s,transform .2s}
  #hm .msh{padding-top:calc(6px + env(safe-area-inset-top))}
  #hm .mbody{padding:0 18px calc(24px + env(safe-area-inset-bottom))}
  #hm .hs{margin-top:22px}
  #hm .hs h4{margin:0 0 8px;font-size:12px;color:var(--sub);font-weight:700}
  #hm .cta{display:block;width:100%;min-height:52px;border:0;border-radius:10px;background:var(--orange);color:#fff;font:inherit;font-size:16px;font-weight:700;cursor:pointer}
  #hm .lg{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:14px;align-items:center}
  #hm .lg span{display:inline-flex;align-items:center;gap:6px}
  #hm .lg .sq{width:14px;height:14px;border-radius:3px;display:inline-block}
  #hm .lg svg{width:30px;height:10px}
  #hm .lg i{display:inline-block;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #10305c}
  #hm .lg i.t{background:#10305c}
  #hm .src{font-size:12px;color:var(--sub);line-height:1.7;margin:0}
  #card{left:0;right:0;top:auto;bottom:0;width:auto;height:52dvh;border-radius:18px 18px 0 0;transform:translateY(105%);z-index:7;transition:height .28s cubic-bezier(.2,.8,.2,1),transform .3s cubic-bezier(.2,.8,.2,1)}
  #card.drag{transition:none}
  #card[data-st=peek]{height:calc(100px + env(safe-area-inset-bottom))}
  #card[data-st=half]{height:52dvh}
  #card[data-st=full]{height:92dvh}
  body.open #card{transform:none}
  .grab{display:block;flex:none;width:100%;border:0;background:#fff;padding:10px 0 4px;height:30px;touch-action:none;cursor:grab}
  .grab i{display:block;width:44px;height:5px;border-radius:3px;background:#c3cad6;margin:0 auto}
  .mh{display:flex;align-items:baseline;gap:10px;padding:0 64px 10px 18px;touch-action:none;flex:none}
  .mh b{font-size:20px;color:var(--navy);line-height:1.4}
  .mh span{font-size:13px;color:var(--sub)}
  .cscroll{padding-bottom:env(safe-area-inset-bottom)}
  .slide img,.slide.ph{height:180px}
  .cred{padding:6px 18px 0;font-size:12px}
  .close{top:2px;right:4px;width:44px;height:44px;font-size:22px}
  .cbody{padding:16px 18px 32px;font-size:16px}
  .cname{font-size:24px}
  .prose,.qt,.dl,details,.cnote,.note{font-size:16px}
  .qt{font-size:15px}
  .src,.sk,.kind,.pn,.ch small,.slogan small,.croma{font-size:12px}
  .pn{margin:6px 18px 0}
}

/* 目印・観光地 */
#ov{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:2}
#ov .poi{pointer-events:all;cursor:pointer;transition:opacity .25s}
#ov .poi .bg{fill:#fff;stroke:#10305c;stroke-width:1.5}
#ov .poi.t .bg{fill:#10305c;stroke:#fff}
#ov .poi .gl{fill:none;stroke:#10305c;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#ov .poi.t .gl{stroke:#fff}
#ov .poi.hanga .bg{fill:#fff}
#ov .poi .hg{pointer-events:none;clip-path:circle(50%)}
#ov .poi .pi{transition:transform .18s ease}
#ov.mv .poi .pi{transition:none}
#gL.trn .tl{transition:transform .18s ease}
#ov .poi .ring{fill:none;stroke:#fff;stroke-width:3;opacity:0}
#ov .poi:hover .ring,#ov .poi.on .ring{opacity:1}
#ov .poi:hover .bg,#ov .poi.on .bg{stroke-width:2.5}
#ov .poi .pl{font-size:12px;font-weight:700;fill:#fff;paint-order:stroke;stroke:#071a36;stroke-width:3.5px;stroke-linejoin:round;opacity:0;pointer-events:none;font-family:inherit}
#ov .poi.lb .pl,#ov .poi:hover .pl,#ov .poi.on .pl{opacity:1}
#ov .anc{stroke:#fff;stroke-width:1;stroke-dasharray:2 2;opacity:.8}
#ov .ad{fill:#fff}
#lsw{display:none}
.il{font-size:12px;color:var(--sub);margin:0 0 8px;display:flex;gap:6px;align-items:center}
.il a{color:var(--navy);text-decoration:none}
.il b{color:var(--navy);text-decoration:none}
@media (max-width:1000px){
  #lsw{display:flex;height:44px;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 3px 12px rgba(0,0,0,.28);margin-left:auto;pointer-events:auto;line-height:1}
  #lsw a,#lsw b{display:flex;align-items:center;justify-content:center;min-width:44px;padding:0 13px;font-size:13px;font-weight:700;color:var(--navy);text-decoration:none;white-space:nowrap}
  #lsw b{background:var(--navy);color:#fff}
  #hm .lang{display:flex!important}
}
@media (max-width:380px){ #lsw a,#lsw b{padding:0 10px;min-width:40px} .brand{padding:0 12px} }
.lang{flex:none;display:flex;gap:6px;align-items:center;color:rgba(255,255,255,.9);font-size:12px;white-space:nowrap;margin-left:auto}
.lang a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.6);padding-bottom:1px}
.lang b{font-weight:700;color:#fff}
.lang+.topc{margin-left:6px}
.lg2{display:none}
@media (min-width:1001px) and (max-width:1399px){.top .lang{display:none}.lg2{display:inline}.lg2 b{color:#fff}.topc{margin-left:auto}}
#hlang{margin-left:0;color:var(--ink)}
#hlang a{color:var(--navy-mid);border-bottom-color:var(--navy-mid)}
#hlang b{color:var(--navy)}
.topc{display:inline-flex;align-items:center;line-height:1;flex:none;margin-left:auto;border:1.5px solid rgba(255,255,255,.75);background:rgba(7,26,54,.55);color:#fff;border-radius:999px;padding:8px 16px 9px;font-size:13px;font-weight:700;cursor:pointer}
.topc span{line-height:1.3}
#pcard{position:fixed;z-index:8;width:340px;background:#fff;border-radius:12px;box-shadow:0 10px 32px rgba(0,0,0,.4);padding:0;overflow:hidden;display:none}
#pcard .pt{padding:14px 16px 16px}
#pcard .pph{position:relative;background:#f4f6f9}
#pcard .ps{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
#pcard .ps::-webkit-scrollbar{display:none}
#pcard .psl{flex:0 0 100%;min-width:0;scroll-snap-align:start}
#pcard .pimg{position:relative;width:100%;height:200px;background:#dfe4ec;overflow:hidden}
#pcard .pimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
#pcard .pcr{padding:6px 12px 2px;font-size:10.5px;line-height:1.55;color:var(--sub);min-height:3.6em}
#pcard .pcr a{color:var(--navy-mid)}
#pcard .pyn{padding:0 12px;font-size:10.5px;color:#8a4a00;line-height:1.55}
#pcard .par,.car .par{position:absolute;z-index:2;width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:var(--navy);font-size:17px;box-shadow:0 1px 6px rgba(0,0,0,.3)}
#pcard .par{top:calc(var(--h,150px)/2 - 22px)}
.car .par{top:calc(210px/2 - 22px)}
#pcard .par.l,.car .par.l{left:6px}#pcard .par.r,.car .par.r{right:6px}
#pcard .pd{position:absolute;left:0;right:0;top:8px;display:flex;justify-content:center;gap:5px;pointer-events:none}
#pcard .pd i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.6)}
#pcard .pd i.on{background:#fff}
#pcard.hasph .x{background:rgba(7,26,54,.7);color:#fff;border-radius:50%;z-index:2}
#pcard .k{display:inline-block;font-size:11px;color:var(--sub);border:1px solid var(--rule);border-radius:4px;padding:0 6px;margin-bottom:4px}
#pcard b{display:block;font-size:16px;color:var(--navy);line-height:1.4}
#pcard p{margin:6px 0 0;font-size:13px}
#pcard .plk{display:block;margin-top:10px;padding:0;border:0;background:none;font:inherit;font-size:12.5px;color:var(--navy-mid);text-decoration:underline;cursor:pointer}
#pcard .w{margin-top:6px;font-size:12px;color:var(--sub)}
#pcard .x{position:absolute;top:6px;right:6px;width:30px;height:30px;border:0;background:none;font-size:18px;color:var(--sub)}
#plegend{position:absolute;z-index:3;left:16px;bottom:calc(var(--dock) + 28px);background:rgba(7,26,54,.72);color:#dbe6f4;border-radius:8px;padding:5px 10px;font-size:11px;display:flex;gap:10px;align-items:center;transition:opacity .2s}
#plegend i{display:inline-block;width:14px;height:14px;border-radius:50%;background:#fff;border:1.5px solid #10305c;box-shadow:0 0 0 1px #fff}
#plegend i.t{background:#10305c;border-color:#fff}
@media (max-width:1000px){
  #pcard{left:12px!important;right:12px;top:auto!important;bottom:calc(12px + env(safe-area-inset-bottom));width:auto;max-height:70dvh;overflow-y:auto;font-size:16px}
  #pcard p{font-size:16px}
  #pcard .pimg{height:190px}
  #pcard .x{width:44px;height:44px;font-size:22px}
  #pcard .plk{min-height:44px;font-size:15px;padding:12px 0}
  .car .par{top:calc(180px/2 - 22px)}
  #pcard .pcr,#pcard .pyn,#pcard .w,#pcard .k{font-size:12px}
}

/* 道路・新幹線 */
#roads path{fill:none;vector-effect:non-scaling-stroke;pointer-events:none;stroke-linecap:round;stroke-linejoin:round}
#roads .cs{stroke:#071a36;opacity:.55}
#roads .ex{stroke:#f6efc6}
#roads .sh1{stroke:#fff}
#roads .sh2{stroke:#10305c;stroke-dasharray:6 6;stroke-linecap:butt}
#roads{transition:opacity .25s}
#roads .lx{pointer-events:none}
#roads .lx .sh{fill:#fff;stroke:#10305c;stroke-width:1.6}
#roads .lx .ic{fill:#f6efc6;stroke:#071a36;stroke-width:1.2}
#roads .lx text{font-size:10.5px;font-weight:700;fill:#fff;paint-order:stroke;stroke:#071a36;stroke-width:3px;stroke-linejoin:round;opacity:0;pointer-events:none;font-family:inherit}
#roads .lx.lb text{opacity:1}
#plegend{flex-direction:column;align-items:flex-start;gap:5px}
#plegend .r{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
#plegend svg{width:26px;height:8px;vertical-align:middle;margin-right:4px;overflow:visible}
#plegend .o{display:block;color:#9fb2cf;font-size:10px}
#plegend .o a{color:#a9cdfc;text-decoration:underline}
#plegend .ck{cursor:pointer;user-select:none}
#plegend .ck input{position:absolute;opacity:0;pointer-events:none}
#plegend .bx{flex:none;width:16px;height:16px;border:1.5px solid #dbe6f4;border-radius:3px;background:transparent;position:relative}
#plegend .bx.none{border-color:transparent}
#plegend .ck input:checked+.bx{background:#fff;border-color:#fff}
#plegend .ck input:checked+.bx::after{content:"";position:absolute;left:4px;top:0px;width:4px;height:9px;border:solid #10305c;border-width:0 2px 2px 0;transform:rotate(45deg)}
#plegend .ck input:focus-visible+.bx{outline:2px solid #f2870d;outline-offset:2px}
#plegend .ln{display:inline-flex;align-items:center;gap:6px}
#plegend .sm{flex:none;width:28px;height:18px;display:inline-flex;align-items:center;justify-content:center}
#plegend .sm svg{width:28px;height:8px;margin:0;overflow:visible}
#plegend .sm svg.hg2{width:18px;height:18px;border-radius:50%;border:1.5px solid #fff;box-sizing:border-box;overflow:hidden;background:#fff}
#plegend{width:max-content;max-width:calc(100% - 32px)}
#plegend .o{width:0;min-width:100%;padding-top:2px;border-top:1px solid rgba(255,255,255,.18);line-height:1.5}
#plegend .r{gap:12px}

/* 町の詳細カードの文章 */
.cbody{padding:22px 30px 34px;font-size:14.5px;line-height:1.85;color:var(--ink)}
.cbody a{color:var(--navy-mid)}
.cbody .btn{color:#fff}
.cbody .btn.alt{background:#fff;color:var(--navy);border:1.5px solid var(--navy)}
button.btn{width:100%;border:0;font:inherit;font-weight:700;cursor:pointer}
.cnote{margin:10px 0 0;font-size:12px;color:var(--sub);line-height:1.7}
.asof{margin:16px 0 0;padding:16px 0 calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--rule);font-size:12px;line-height:1.7;color:var(--sub)}
@media (max-width:1000px){.asof{font-size:13px}}
.kp{word-break:keep-all;overflow-wrap:anywhere}
.prose,.qt,.ph,.dl dd,.cnote,.note,.mh span,.src{text-wrap:pretty}
.nm,.slogan,.cname,.ch,.mx,.bal,#intro h2{text-wrap:balance}
.ph{word-break:normal;overflow-wrap:anywhere}
@supports (word-break:auto-phrase){.ph{word-break:auto-phrase}}
.cname{font-size:30px;font-weight:700;color:var(--navy);margin:0;line-height:1.35}
.slogan{margin:16px 0 0;font-size:16px;font-weight:700;line-height:1.7}
.slogan small{display:block;font-weight:400;color:var(--sub);font-size:11px;line-height:1.6;margin-top:2px}
/* 数字で見る（統計）。紺と薄い灰だけ。影・色付き背景なし */
.sg{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:14px}
.stile{border:1px solid var(--rule);border-radius:8px;padding:12px 14px;min-width:0}
.stile h4 .yr{display:block}
.nwv{white-space:nowrap}
.stile h4{margin:0;font-size:12px;font-weight:400;color:var(--sub);line-height:1.5;text-wrap:balance}
.sval{display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap;margin-top:6px}
.sval b{font-size:26px;line-height:1.4;color:var(--navy);font-weight:700;white-space:nowrap}
.sval b[data-u]::after{content:attr(data-u);font-size:13px;color:var(--sub);margin-left:2px;font-weight:400}
.sdel{margin-top:4px;font-size:13px;line-height:1.6;color:var(--sub)}
.sdel.up{color:var(--navy-mid);font-weight:700}
.sdel.dn{font-weight:700}
.spk{display:block;flex:none}
.spk .hit{fill:transparent;cursor:pointer}
.mtr{position:relative;height:14px;margin-top:8px}
.mtr .mt{position:absolute;left:0;right:0;top:2px;height:10px;border-radius:5px;background:#e6eaf1;overflow:hidden}
.mtr .mf{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:var(--navy-mid)}
.mtr .ma{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--navy)}
.mal{position:relative;height:22px;font-size:11px;color:var(--sub)}
.mal span{position:absolute;top:3px;line-height:16px;transform:translateX(-50%);white-space:nowrap}
.ichart{margin-top:24px}
.ichart h4{margin:0 0 8px;font-size:14px;font-weight:700;color:var(--navy);line-height:1.6}
.ir{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;align-items:center;padding:5px 0;cursor:default}
.ir .in{grid-column:1/-1;font-size:13px;line-height:1.5;color:var(--ink)}
.ir .ib{display:block;height:12px}
.ir .ib i{display:block;height:12px;min-width:2px;border-radius:4px;background:var(--navy-mid)}
.ir .iv{font-size:13px;font-weight:700;color:var(--navy);min-width:60px;text-align:right}
.skey{margin:6px 0 0;font-size:12px;line-height:1.7;color:var(--sub)}
.sline{margin:20px 0 0;font-size:14px;line-height:1.8;color:var(--ink)}
.sline+.sline{margin-top:6px}
.srk{color:var(--sub);font-size:13px;margin-left:8px;white-space:nowrap}
.ssrc{margin:14px 0 0;font-size:12px;line-height:1.7;color:var(--sub)}
.stg{display:block;margin:6px 0 0;padding:10px 0;border:0;background:none;color:var(--navy-mid);font-size:13px;text-decoration:underline;cursor:pointer}
.stt{width:100%;border-collapse:collapse;margin-top:4px;font-size:13px}
.stt th,.stt td{padding:6px 4px;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;line-height:1.6}
.stt th{font-weight:700;color:var(--navy);padding-top:14px}
.stt td:last-child{text-align:right;white-space:nowrap}
#stip{position:fixed;z-index:60;display:none;max-width:240px;padding:6px 10px;border-radius:6px;background:var(--navy);color:#fff;font-size:12px;line-height:1.5;pointer-events:none}
@media (max-width:520px){.sg{grid-template-columns:minmax(0,1fr)}}
.sec{margin-top:36px}
.ch{font-size:16px;font-weight:700;color:var(--navy);margin:0 0 6px;padding:0 0 8px;border-bottom:2px solid var(--navy);line-height:1.5}
.ch small{font-size:12px;font-weight:400;color:var(--sub);margin-left:8px}
.blk{padding:16px 0;border-bottom:1px solid var(--rule)}
.blk:last-child{border-bottom:0}
.nm{display:block;font-size:15px;font-weight:700;line-height:1.65}
.sk{display:block;font-size:11px;color:var(--sub);line-height:1.5;margin-bottom:2px}
.kind{display:inline-block;margin-top:4px;font-size:11px;color:var(--sub);border:1px solid var(--rule);border-radius:4px;padding:0 8px;line-height:1.7}
.prose{margin:8px 0 0;font-size:14px;line-height:1.85}
.qt{margin:8px 0 0;padding:2px 0 2px 14px;border-left:3px solid #c9d5e8;font-size:14px;line-height:1.9;color:#333}
.src{margin:6px 0 0 17px;font-size:12px;color:var(--sub);line-height:1.6}
.mx{margin-top:10px;font-size:14px;font-weight:700;color:var(--navy);line-height:1.7;word-break:keep-all;overflow-wrap:anywhere}
.nw{white-space:nowrap}
.dl{display:grid;grid-template-columns:4.5em 1fr;gap:6px 14px;margin:10px 0 0;font-size:14px;line-height:1.8}
.dl dt{color:var(--sub)}
.dl dd{margin:0}
.note{color:var(--sub);font-size:12px;margin:10px 0 0}
details{margin-top:10px;font-size:13.5px}
details summary{cursor:pointer;color:var(--navy-mid);line-height:1.7}
details>p,details>div{margin:8px 0 0;padding:10px 14px;background:#f4f6f9;border-radius:8px;color:#333;font-size:13px;line-height:1.85}
.tags{margin-top:14px}
.tags span .nbn,.tags span span{background:none;border:0;padding:0;border-radius:0}

/* 相談フォーム（画面案：送信しない） */
#fm{position:fixed;inset:0;z-index:20;background:rgba(7,26,54,.62);display:none;align-items:center;justify-content:center}
#fm.on{display:flex}
#fm .fmb{position:relative;background:#fff;width:min(580px,calc(100vw - 32px));max-height:92dvh;overflow-y:auto;border-radius:16px;padding:28px 32px 30px;box-shadow:0 16px 48px rgba(0,0,0,.45);line-height:1.7}
#fm h2{margin:0;font-size:20px;color:var(--navy);line-height:1.5}
#fm .fl{margin:6px 0 18px;font-size:13px;color:var(--sub)}
#fm .fx{position:absolute;top:12px;right:12px;width:36px;height:36px;border:0;border-radius:50%;background:#eef1f5;color:var(--navy);font-size:20px;cursor:pointer}
#fm label.f,#fm .fg{display:block;margin-top:14px;font-size:13px;font-weight:700;color:var(--navy)}
#fm label.f span.o{font-weight:400;color:var(--sub);margin-left:6px;font-size:12px}
#fm input[type=text],#fm input[type=email],#fm input[type=number],#fm select,#fm textarea{display:block;width:100%;margin-top:5px;padding:10px 12px;border:1px solid #c5cfdd;border-radius:8px;font:inherit;font-size:16px;font-weight:400;color:var(--ink);background:#fff}
#fm textarea{min-height:96px;resize:vertical}
#fm input:focus,#fm select:focus,#fm textarea:focus{outline:2px solid var(--navy-mid);outline-offset:0}
#fm .g2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
#fm .chk{display:flex;align-items:flex-start;gap:10px;margin-top:8px;padding:9px 12px;border:1px solid var(--rule);border-radius:8px;font-size:14px;font-weight:400;color:var(--ink);cursor:pointer}
#fm .chk input{margin-top:5px;width:16px;height:16px;flex:none}
#fm details{margin-top:16px}
#fm details summary{font-size:13px;font-weight:700;color:var(--navy-mid)}
#fm .row{display:flex;gap:8px}
#fm .row input{flex:1}#fm .row select{flex:0 0 5.5em}
#fm .sub{display:block;width:100%;margin-top:22px;padding:14px;border:0;border-radius:10px;background:var(--orange);color:#fff;font:inherit;font-size:16px;font-weight:700;cursor:pointer}
#fm .pv{margin:18px 0 0;font-size:12px;color:var(--sub);line-height:1.7}
#fm .pv a{color:var(--navy-mid);white-space:nowrap}
#fm .pv [lang=zh-Hant]{font-family:"PingFang TC","Noto Sans TC","Microsoft JhengHei",sans-serif}
#fm .fnote{margin:10px 0 0;font-size:12px;color:var(--sub)}
#fm .fsoon{display:none;margin:18px 0 0;padding:14px;border:1px dashed #8d99ab;border-radius:10px;background:#f6f8fc;color:var(--navy);font-weight:700;text-align:center}
#fm.nofm .fsoon{display:block}
#fm.nofm #ff{display:none}
#fm .res{margin:12px 0 0;padding:12px 14px;background:var(--orange-soft);border-radius:8px;font-size:14px;color:#8a4a00;display:none}
@media (max-width:1000px){
  #fm .fmb{width:100%;height:100dvh;max-height:none;border-radius:0;padding:22px 16px 34px}
  #fm .g2{grid-template-columns:1fr}
  #fm h2{font-size:18px;padding-right:40px}
}

.nb{fill:#1b3358;stroke:rgba(255,255,255,.16);stroke-width:1;vector-effect:non-scaling-stroke}
.nl{fill:#7d92b3;font-weight:700;paint-order:stroke;stroke:#0d2547;stroke-linejoin:round;font-family:inherit;pointer-events:none}

/* 補足ページ（この地図について・写真のクレジット一覧） */
#pgb{position:fixed;inset:0;z-index:16;background:rgba(7,26,54,.55);display:none}
#pgb.on{display:block}
#pg{position:fixed;z-index:17;left:50%;top:50%;transform:translate(-50%,-50%);width:min(720px,calc(100vw - 32px));max-height:84dvh;background:#fff;border-radius:16px;box-shadow:0 16px 48px rgba(0,0,0,.45);display:none;flex-direction:column}
#pg.on{display:flex}
.pgh{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 8px 24px;border-bottom:1px solid var(--rule);flex:none}
.pgh b{font-size:18px;color:var(--navy)}
.pgx{width:44px;height:44px;border:0;border-radius:50%;background:#eef1f5;color:var(--navy);font-size:22px;cursor:pointer}
.pgc{overflow-y:auto;padding:14px 24px 26px;font-size:14px;line-height:1.85}
.pgc h4{margin:20px 0 4px;font-size:14px;color:var(--navy)}
.pgc p{margin:0 0 8px}
.pgc ul{margin:0 0 8px;padding-left:1.2em}
.pgc li{margin:2px 0;font-size:12.5px;line-height:1.7}
.pgc a{color:var(--navy-mid)}
@media (max-width:1000px){#pg{left:0;top:0;transform:none;width:100%;height:100dvh;max-height:none;border-radius:0}.pgc{font-size:16px;padding:14px 18px calc(26px + env(safe-area-inset-bottom))}.pgc li{font-size:14px}}
/* はじめての案内 */
#ibd{position:fixed;inset:0;z-index:13;background:rgba(7,26,54,.55);opacity:0;pointer-events:none;transition:opacity .25s}
#ibd.on{opacity:1;pointer-events:auto}
#intro{position:fixed;z-index:14;left:50%;bottom:24px;width:min(620px,calc(100vw - 32px));background:#fff;border-radius:16px;padding:26px 28px 24px;box-shadow:0 16px 48px rgba(0,0,0,.45);display:flex;flex-direction:column;max-height:calc(100dvh - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom));visibility:hidden;opacity:0;transform:translate(-50%,20px);transition:opacity .25s,transform .3s,visibility 0s .3s}
#intro.on{visibility:visible;opacity:1;transform:translate(-50%,0);transition:opacity .25s,transform .3s}
#intro h2{margin:0 36px 14px 0;font-size:20px;color:var(--navy);line-height:1.45}
#intro ul{list-style:none;margin:0;padding:0;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
#intro .il,#intro h2{flex:none}
#intro li{display:grid;grid-template-columns:28px 6.6em 1fr;column-gap:14px;align-items:start;padding:12px 0;font-size:16px;line-height:1.7;border-top:1px solid var(--rule)}
#intro .d{text-wrap:balance;word-break:auto-phrase;overflow-wrap:anywhere;min-width:0}
#intro li svg{width:26px;height:26px;margin-top:3px;fill:none;stroke:var(--navy);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#intro li b{color:var(--navy)}
#intro .go{flex:none;display:block;width:100%;min-height:52px;margin-top:14px;border:0;border-radius:10px;background:var(--orange);color:#fff;font:inherit;font-size:16px;font-weight:700;cursor:pointer}
#intro .ix{position:absolute;top:8px;right:8px;width:44px;height:44px;border:0;border-radius:50%;background:#eef1f5;color:var(--navy);font-size:22px;cursor:pointer}
#hint{position:fixed;z-index:9;display:none;padding:8px 14px;background:#fff;color:var(--navy);font-size:14px;font-weight:700;border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,.4);white-space:nowrap;transform:translate(-50%,-100%);pointer-events:none;animation:hp 1.6s ease-in-out 2}
#hint::after{content:"";position:absolute;left:50%;bottom:-6px;width:12px;height:12px;background:#fff;transform:translateX(-50%) rotate(45deg)}
@keyframes hp{0%,100%{margin-top:0}50%{margin-top:-5px}}
@media (max-width:1000px){
  #intro{bottom:calc(12px + env(safe-area-inset-bottom));width:calc(100vw - 24px);max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
  #intro{padding:16px 16px 14px}
  #intro .il{margin:0 0 6px;min-height:32px}
  #intro h2{font-size:18px;margin:0 44px 8px 0}
  #intro li{font-size:14px;line-height:1.5;grid-template-columns:24px 1fr;grid-template-areas:"i b" ". d";column-gap:10px;row-gap:0;padding:8px 0}
  #intro li svg{grid-area:i;width:22px;height:22px;margin-top:0}
  #intro li b{grid-area:b;font-size:15px;line-height:22px}
  #intro li .d{grid-area:d;font-size:13px;color:#4a5568}
  #intro .go{min-height:48px;margin-top:10px}
  #intro .ix{top:6px;right:6px}
}

/* 上段：どの幅でも切れ・重なりを出さない */
.chips{flex:0 1 auto}
@media (max-width:1999px){.chips button small{display:none}.chips button{padding:11px 14px 12px}}
@media (max-width:1999px){.brand>span small{display:none}}
@media (min-width:1400px) and (max-width:1699px){.top .lang{display:none}.lg2{display:inline}.lg2 b{color:#fff}.topc{margin-left:auto}}   /* 業種ボタンと言語切替が重ならないよう、言語切替は下の凡例の行へ */
@media (max-width:1499px){.chips{gap:6px}.chips button{padding:11px 12px 12px;font-size:13px}}
@media (min-width:1200px){.topc .ts{display:none}}
@media (max-width:1199px){.topc .tf{display:none}}
@media (max-width:1199px){.chips{gap:4px}.chips button{padding:10px 10px 11px;font-size:12px}}
@media (max-width:1799px){.chips button small{display:none}}
@media (max-width:1999px){.chips button{padding:11px 10px 12px}}
@media (max-width:1599px){.chips{gap:6px}.chips button{padding:11px 9px 12px}}
@media (min-width:1001px) and (max-width:1299px){.chips{gap:6px}.chips button{padding:11px 9px 12px}.chips button[data-l=grow]{display:none}}
@media (max-width:1099px){.brand>span{display:none}.brand{padding:8px 16px}}
/* ---- atlas plant ---- */
.lang .soon,#lsw .soon,#hlang .soon{opacity:.7}
#lsw .soon{display:flex;align-items:center;padding:0 13px;font-size:13px;color:var(--sub)}
.nrow{display:flex;align-items:center;gap:12px;min-width:0}
/* 自治体の章は図柄なので、色を変えず・枠で切り抜かず、高さ28pxで並べる */
.lgf{flex:none;display:inline-flex;align-items:center;height:28px}
.lgf img{height:28px;width:auto;max-width:56px;display:block}
.lgf.demo{width:44px;justify-content:center;border:1px dashed #9aa5b5;color:#9aa5b5;font-size:11px;height:28px}
.mh .lgf{align-self:center;height:24px}.mh .lgf img{height:24px}
/* 札（点は付けない。枠と塗りで区別する） */
.st{display:inline-block;font-size:12px;font-weight:700;line-height:1.5;padding:2px 10px;border-radius:4px;border:1.5px solid var(--navy);white-space:nowrap}
.st.open{background:var(--navy);color:#fff}
.st.prep{background:var(--orange-soft);color:#8a4a00;border-color:#f6c889}
.st.chk{background:#fff;color:#4a5361;border:1.5px dashed #8d99ab}
.st.done{background:#e3ebf7;color:var(--navy);border-color:#9db6dc}
/* 用地カード */
.sgh{margin:20px 0 0;font-size:14px;font-weight:700;color:var(--navy);line-height:1.5}
.sgh small{font-size:12px;font-weight:400;color:var(--sub);margin-left:8px}
.sgd{margin-top:16px}
.sgd>div{margin:0!important;padding:0!important;background:none!important;border-radius:0!important;font-size:inherit!important}
.sgd summary{font-weight:700;color:var(--navy);font-size:14px}
.sc{margin-top:12px;border:1px solid var(--rule);border-radius:12px;overflow:hidden;background:#fff}
.sc .sph{position:relative;aspect-ratio:16/9;background:#e6e9ee;overflow:hidden}
.sc .sph.sm{aspect-ratio:auto;height:104px}
.sc .sph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.sc .sph img.ct{object-fit:contain;background:#eef1f5}
.sc .sph .lab{position:absolute;left:8px;top:8px;max-width:calc(100% - 16px);background:rgba(7,26,54,.72);color:#fff;font-size:11px;line-height:1.5;padding:1px 8px;border-radius:4px}
.sc .scr{padding:5px 14px 0;font-size:11px;line-height:1.5;color:var(--sub)}
.sc .scr a{color:var(--navy-mid)}
.sc .sb{padding:10px 14px 14px}
.sc .sn{margin:8px 0 0;font-size:16px;font-weight:700;color:var(--navy);line-height:1.5}
.sc .snn{margin:0;font-size:12px;color:var(--sub);line-height:1.6}
.sc .snn:empty{display:none}
.sc .dl{grid-template-columns:6.4em 1fr;gap:3px 12px;margin:10px 0 0;font-size:13.5px;line-height:1.7}
.sc .dl dt{font-size:12.5px;line-height:1.75}
.sc .spt{margin:8px 0 0;padding:8px 10px;background:#f4f6f9;border-radius:6px;font-size:12px;line-height:1.7;color:#333}
.sc .btns{margin-top:12px}
.sc .btns .btn{margin:0;padding:11px 14px;font-size:14px}
.sc .adms{display:flex;gap:16px;margin-top:8px}
.adm{font-size:12px;color:var(--navy-mid);text-decoration:underline;background:none;border:0;padding:6px 0;cursor:pointer;font-family:inherit}
.sc .sasof{margin:6px 0 0;font-size:11px;line-height:1.6;color:var(--sub)}
.sc .spv{margin:12px 0 0;font-size:13px;color:#8a4a00;background:var(--orange-soft);border:1px solid #f6c889;padding:8px 10px;border-radius:6px;line-height:1.7}
.sc .sdone{margin:12px 0 0;font-size:13px;color:var(--navy);background:#e3ebf7;padding:8px 10px;border-radius:6px;line-height:1.7}
/* ピン */
#gS .sp{cursor:pointer}
#gS .sp .gt{font-family:"Avenir Next","Nunito","Helvetica Neue",Arial,sans-serif;pointer-events:none}
#gS .sp .fac{transform-origin:0 0;transition:transform .12s}
#gS .sp:hover .fac{transform:scale(1.32)}
#gS .sp.on .fac{transform:scale(1.4)}
#gS .sp .apx{pointer-events:none}
#hm .lg svg.shpi{width:24px;height:27px}
.shpi,#plegend svg.shpi{width:22px;height:25px;flex:none;overflow:visible;margin:0}
#plegend .sleg{flex-wrap:wrap;gap:4px 12px}
#plegend .lgtt{font-weight:700;color:#fff}
#plegend .lgn{color:#9fb2cf;font-size:10px}
/* 用地ポップアップ */
#pcard.site{width:360px;max-height:calc(100dvh - 120px);overflow-y:auto}
#pcard.site .sc{margin:0;border:0;border-radius:0}
#pcard.site .x{z-index:3}
#pcard.site p.sasof{margin:6px 0 0;font-size:11px}
#pcard.site p.spt{margin:8px 0 0;font-size:12px}
#pcard.site p.sdone{margin:12px 0 0;font-size:13px}
#lsw .soon{white-space:nowrap}
#pcard.site .dl dt,#pcard.site .dl dd{font-size:13px}
@media (max-width:1000px){
  #pcard.site{width:auto;max-height:78dvh}
  .sc .dl{font-size:15px}
  .sc .dl dt{font-size:13px}
  .sc .sn{font-size:17px}
  .sc .btns .btn{min-height:48px;display:flex;align-items:center;justify-content:center}
  .adm{min-height:44px;display:inline-flex;align-items:center}
  .sc .sasof,.sc .scr,#pcard.site p.sasof{font-size:12px}
}
/* 用地の相談フォーム */
#fm .fsite{margin:6px 0 4px;padding:10px 14px;border:1px solid var(--rule);border-radius:8px;background:#f6f8fc;line-height:1.6}
#fm .fsite[hidden]{display:none}
#fm .fsite .k{display:block;font-size:11px;color:var(--sub)}
#fm .fsite b{display:block;font-size:15px;color:var(--navy)}
#fm .fsite .w{display:flex;gap:10px;align-items:center;font-size:12.5px;color:var(--sub);margin-top:2px}
#fm .res .pl{margin:8px 0 0;padding:8px;background:#fff;border:1px solid #f6c889;border-radius:6px;font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-all;max-height:200px;overflow:auto;color:#333}
/* Pro のチラ見せ */
.pro{margin-top:36px}
.pbox{border:1.5px solid var(--navy);border-radius:12px;padding:16px 16px 18px;background:#f6f8fc}
.pbox .pt1{margin:0;font-size:15px;font-weight:700;line-height:1.7;color:var(--navy)}
.pg2.one{grid-template-columns:minmax(0,1fr)!important}
.pg2.one .pi2{aspect-ratio:16/9}
.pg2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.pc{background:#fff;border:1px solid var(--rule);border-radius:10px;overflow:hidden;min-width:0}
.pc .pi2{position:relative;aspect-ratio:3/2;background:#10305c}
.pc .pi2 img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.pc .pi2 .lab{position:absolute;left:6px;top:6px;background:rgba(255,255,255,.88);color:#5b6472;font-size:10px;line-height:1.5;padding:0 6px;border-radius:3px}
.pc .pb{padding:8px 10px 10px;line-height:1.5}
.pc .pb b{display:block;font-size:14px;color:var(--navy)}
.pc .pb span{font-size:11.5px;color:var(--sub)}
.pbox .btn.pro{margin-top:14px}
.cbody .btn.pro{color:#fff}
@media (max-width:360px){.pg2{grid-template-columns:minmax(0,1fr)}}

/* 用地カードの詳しい項目（開閉） */
.sdet{margin-top:10px;border-top:1px solid var(--rule)}
.sdet summary{cursor:pointer;padding:10px 0;font-weight:700;color:var(--navy);font-size:14px}
.sdet>.sdb{margin:0!important;padding:0 0 10px!important;background:none!important;border-radius:0!important;font-size:13px!important}
.sdb .uses,.sdb .unt{margin:0;padding:0;list-style:none}
.sdb .uses>li{margin:0 0 10px}
.sdb .uses>li>b{display:block;font-size:14px;color:var(--navy)}
.sdb .uses ul{margin:2px 0 0;padding-left:1.1em;list-style:disc}
.sdb li{font-size:13px;line-height:1.7;margin:1px 0}
.sdb .unt li{margin:0 0 6px}
.sdb .unt{padding-left:0}
.sdb .sdn{margin:8px 0 0!important;font-size:11.5px!important;line-height:1.7;color:var(--sub)}
.sdb .sdh{margin:8px 0 2px;font-size:12px;font-weight:700;color:var(--navy)}
.sdb .dl{margin-top:2px;grid-template-columns:8.6em 1fr}
@media (max-width:1000px){.sdb li{font-size:14.5px}.sdb .sdn{font-size:12px!important}.sdet summary{font-size:15px;padding:12px 0}}
/* ---- 表示切替・絞り込み ---- */
@media (min-width:1001px) and (max-width:1799px){.chips button[data-l=grow]{display:none}}
.gotg{flex:none;display:flex;gap:8px}
.gb{flex:none;display:inline-flex;align-items:center;gap:4px;line-height:1;border:0;background:rgba(255,255,255,.96);color:var(--navy);border-radius:999px;padding:11px 14px 12px;font-weight:700;font-size:13px;box-shadow:0 3px 12px rgba(0,0,0,.25);white-space:nowrap}
.gb small{font-weight:400;color:var(--sub);font-size:12px}
#gtog.on{background:#ffc83d;color:#10305c}
#gtog:not(.on){background:rgba(7,26,54,.6);color:#fff;border:1.5px solid rgba(255,255,255,.7);box-shadow:none}
#gflt.off{opacity:.6}
body.fopen #gflt{background:var(--navy);color:#fff}
body.fopen #gflt small{color:#dbe6f4}
#flt{position:absolute;z-index:7;left:16px;top:70px;width:330px;max-height:calc(100dvh - var(--dock) - 120px);background:#fff;border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.4);display:none;flex-direction:column;overflow:hidden}
body.fopen #flt{display:flex}
body.fopen #plegend,body.fopen .legend{visibility:hidden}
#flt .fh{display:flex;align-items:center;justify-content:space-between;padding:10px 10px 8px 16px;border-bottom:1px solid var(--rule);flex:none}
#flt .fh b{font-size:15px;color:var(--navy)}
#flt .fcl{width:34px;height:34px;border:0;border-radius:50%;background:#eef1f5;color:var(--navy);font-size:18px;cursor:pointer}
#flt .fb{overflow-y:auto;padding:8px 16px 16px;flex:1;overscroll-behavior:contain}
.fsw{display:flex;align-items:center;gap:12px;margin-top:8px;font-size:14px;font-weight:700;color:var(--navy);cursor:pointer}
.fsw input{position:absolute;opacity:0;pointer-events:none}
.sw2{flex:none;width:46px;height:28px;border-radius:14px;background:#c5cfdd;position:relative;transition:background .2s}
.sw2::after{content:"";position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .2s}
.fsw input:checked+.sw2{background:var(--navy)}
.fsw input:checked+.sw2::after{transform:translateX(18px)}
.fsw input:focus-visible+.sw2{outline:2px solid var(--orange);outline-offset:2px}
.fcnt{margin-top:10px;padding:8px 12px;background:#f4f6f9;border-radius:8px;font-size:14px;color:var(--ink)}
.fcnt b{font-size:18px;color:var(--navy)}
.fcnt.zero{background:var(--orange-soft);color:#8a4a00}.fcnt.zero b{color:#8a4a00}
.fzero{margin:6px 0 0;font-size:13px;line-height:1.7;color:#8a4a00}
.fnt{margin:6px 0 0;font-size:11.5px;line-height:1.6;color:var(--sub)}
.fgp{margin-top:16px}
.fgt{font-size:13px;font-weight:700;color:var(--navy);border-bottom:2px solid var(--navy);padding-bottom:4px;margin-bottom:4px}
.fgt small{font-weight:400;color:var(--sub);font-size:11px;margin-left:8px}
.fck{display:flex;align-items:center;gap:8px;min-height:36px;font-size:14px;cursor:pointer;min-width:0}
.fck input{width:18px;height:18px;flex:none;accent-color:var(--navy)}
.fck em{margin-left:auto;font-style:normal;font-size:12px;color:var(--sub)}
.fck.dim span{color:#8a93a1}
.fck .shpi{width:20px;height:23px}
.frg{border-bottom:1px solid var(--rule)}
.frg summary{display:flex;align-items:center;cursor:pointer;list-style:none;min-height:40px}
.frg summary::-webkit-details-marker{display:none}
.frg summary::before{content:"▸";color:var(--sub);margin-right:6px;font-size:11px}
.frg[open] summary::before{content:"▾"}
.frg summary .fck{flex:1;font-weight:700;color:var(--navy)}
.frg summary em{font-style:normal;font-size:12px;color:var(--sub)}
.ftw{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;padding:0 0 8px 24px}
.fls{margin-top:14px;border:1px solid var(--rule);border-radius:10px;background:#fafbfc}
.fls summary{cursor:pointer;list-style:none;min-height:44px;display:flex;align-items:center;padding:0 12px;font-size:14px;font-weight:700;color:var(--navy)}
.fls summary::-webkit-details-marker{display:none}
.fls summary::after{content:"＋";margin-left:auto;font-weight:400;color:var(--sub)}
.fls[open] summary::after{content:"－"}
.flt{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:8px 12px 2px;border-top:1px solid var(--rule)}
.flt b{font-size:13.5px;color:var(--navy)}
.flt small{font-size:11.5px;color:var(--sub)}
.flr{display:flex;align-items:center;gap:8px;width:100%;min-height:40px;padding:4px 12px 4px 24px;border:0;background:none;font:inherit;font-size:13.5px;text-align:left;color:var(--ink);cursor:pointer}
.flr span{min-width:0}
.flr em{margin-left:auto;flex:none;font-style:normal;font-size:12px;color:var(--sub)}
.flr:hover{background:#eef2f8}
.frs{display:block;width:100%;margin-top:18px;min-height:44px;border:1.5px solid var(--navy);background:#fff;color:var(--navy);border-radius:10px;font-weight:700;font-size:14px;cursor:pointer}
.cli{width:22px;height:22px}
#plegend .ln b{color:#fff}
#gS .sp.cl{cursor:pointer}
#gS .sp.cl:hover .fac{transform:scale(1.15)}
@media (max-width:1000px){
  .gotg,#flt{display:none!important}
  #mbar button.g b{color:#8a4a00}
  #gbody .fck{min-height:44px;font-size:16px}
  #gbody .ftw{grid-template-columns:1fr 1fr}
  #gbody .fcnt{font-size:16px}
  #gbody .fsw{font-size:16px}
}


/* 左下の凡例：PC は既定で1行のボタンにたたむ。出典は画面最下部の1行へ */
#plegend{align-items:flex-start;gap:6px;background:none;padding:0;border-radius:0;width:auto;bottom:calc(var(--dock) + 24px)}
#plegend #lgp{display:none;flex-direction:column;align-items:flex-start;gap:5px;background:rgba(7,26,54,.86);border-radius:10px;padding:8px 12px;max-width:min(580px,calc(100vw - 32px))}
#plegend.open #lgp{display:flex}
#plegend #lgb{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.5);background:rgba(7,26,54,.78);color:#fff;border-radius:999px;padding:6px 12px 6px 14px;font-size:12px;font-weight:700;line-height:1.2}
#plegend #lgb i{background:none;border-radius:0;box-shadow:none;border-style:solid;border-color:#fff;width:9px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(-135deg) translate(-1px,-1px);transition:transform .15s}
#plegend.open #lgb i{transform:rotate(45deg) translate(-1px,-1px)}
#plegend #lgb:focus-visible{outline:2px solid #f2870d;outline-offset:2px}
#attr{position:absolute;z-index:3;left:16px;bottom:0;height:16px;line-height:16px;font-size:10px;color:rgba(219,230,244,.85);white-space:nowrap}
#attr a{color:inherit;text-decoration:underline}
#attr .lg2 b{color:#fff}
@media (max-width:1000px){#attr{display:none!important}}
/* 業種ボタン列：はみ出す分は横スクロール。右端を薄く消して切れていることが分かるように */
.chips{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);padding-right:28px}
@media (min-width:1200px) and (max-width:1699px){.topc .tf{display:none}.topc .ts{display:inline}}
@media (min-width:1001px){.chips{flex:0 1 auto;min-width:0}.top .topc{margin-left:auto}}
