@charset "UTF-8";
/* バーチャルツアー(Pannellum) */

.vt { --vt-map-scale: 1; margin: 0; }
.cMain__body .vt .vt__lead { margin-bottom: 1.4rem; }

/* ---- ビューア枠 ---- */
.vt__stage { position: relative; border: var(--line_width) solid var(--c_black); background: var(--c_black); }
.vt__viewer { position: relative; width: 100%; aspect-ratio: 16 / 10; background: var(--c_black) center / cover no-repeat; }
.vt .vt__viewer.pnlm-container { background-color: var(--c_black); background-size: cover; background-position: center; background-repeat: no-repeat; font-family: inherit; }
.vt__status { position: absolute; z-index: 5; left: 50%; top: 50%; transform: translate(-50%, -50%); margin: 0; padding: .55em 1.2em; background: rgba(62, 58, 57, .88); color: var(--c_white); font-size: 1.15rem; line-height: 1.5; letter-spacing: .05em; white-space: nowrap; pointer-events: none; }
.vt.is-ready .vt__status { display: none; }
.vt.is-error .vt__status { white-space: normal; max-width: 88%; text-align: center; }

/* ---- ミニマップ ---- */
.vt__map { position: absolute; z-index: 10; top: 6px; left: 44px; width: 168px; height: 180px; box-sizing: content-box; border: var(--line_width) solid var(--c_black); background: rgba(248, 247, 243, .9) url(../img/floorplan.svg) no-repeat left top / contain; transform-origin: left top; transform: scale(var(--vt-map-scale)); }
.vt__pt { position: absolute; z-index: 3; width: 10px; height: 10px; margin: -1px 0 0 -1px; padding: 0; border: 0; border-radius: 50%; background: var(--c_red_lt); box-shadow: 0 0 0 1px rgba(62, 58, 57, .5); cursor: pointer; transition: transform .15s; }
.vt__pt:hover { transform: scale(1.4); }
.vt__pt.is-current { z-index: 4; width: 14px; height: 14px; margin: -3px 0 0 -3px; background: var(--c_red); box-shadow: 0 0 0 2px var(--c_white); cursor: default; }
.vt__pt.is-current:hover { transform: none; }

/* ---- Pannellum の UI ---- */
.vt .pnlm-controls-container { left: 6px; }
.vt .pnlm-controls-container .pnlm-controls { margin-top: 6px; background-color: var(--c_bg); border: var(--line_width) solid var(--c_black); border-radius: 0; }
.vt .pnlm-controls-container .pnlm-control:hover { background-color: var(--c_bg_cream); }
/* 方位磁針 */
.vt .pnlm-compass { right: 6px; bottom: 6px; border-radius: 50%; background-color: rgba(248, 247, 243, .85); border: var(--line_width) solid var(--c_black); }
.vt .pnlm-panorama-info { display: none !important; }
.vt .pnlm-load-box { width: 220px; height: auto; margin: -40px 0 0 -110px; padding: 14px 0 16px; background-color: rgba(62, 58, 57, .9); border-radius: 0; font-size: 14px; line-height: 1.5; letter-spacing: .05em; }
.vt .pnlm-load-box p { margin: 0 0 10px; }
.vt .pnlm-lbar { border-color: var(--c_white); }
.vt .pnlm-lbar-fill { background: var(--c_red); }
.vt .pnlm-info-box { width: 240px; margin-left: -120px; background-color: var(--c_black); border-radius: 0; font-size: 13px; line-height: 1.6; }
.vt .pnlm-about-msg { font-family: inherit; }

/* 移動(矢印)・説明(i)のホットスポット */
.vt .pnlm-hotspot { width: 48px; height: 48px; border-radius: 50%; background-color: rgba(248, 247, 243, .8); background-repeat: no-repeat; background-position: center; background-size: 30px 30px; box-shadow: 0 0 0 2px rgba(62, 58, 57, .35); transition: background-color .15s, box-shadow .15s; }
.vt .pnlm-hotspot:hover { background-color: rgba(248, 247, 243, .96); box-shadow: 0 0 0 2px var(--c_black); }
.vt .pnlm-hotspot.pnlm-scene { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23ea5532' d='M24 5 43 15H33l6 27H9l6-27H5z'/%3E%3C/svg%3E"); background-size: 32px 32px; background-position: center; }
.vt .pnlm-hotspot.pnlm-info { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Ccircle cx='24' cy='24' r='22' fill='%233e3a39'/%3E%3Ccircle cx='24' cy='14.5' r='3.2' fill='%23f8f7f3'/%3E%3Crect x='21' y='20.5' width='6' height='15' rx='1.2' fill='%23f8f7f3'/%3E%3C/svg%3E"); background-color: transparent; background-size: 40px 40px; background-position: center; box-shadow: none; }
.vt .pnlm-hotspot.pnlm-info:hover { background-color: transparent; box-shadow: none; }

/* ホットスポットの吹き出し */
.vt div.pnlm-tooltip span { background-color: var(--c_black); color: var(--c_white); border-radius: 0; padding: 8px 12px; font-size: 13px; line-height: 1.55; letter-spacing: .03em; text-align: left; }
.vt div.pnlm-tooltip:hover span:after { border-color: var(--c_black) transparent transparent transparent; }
.vt .pnlm-tooltip span a, .vt .pnlm-tooltip span a:link, .vt .pnlm-tooltip span a:visited { color: var(--c_white); text-decoration: underline; }
.vt .pnlm-tooltip span a:hover { color: var(--c_red_lt); }

/* ---- 現在地名・解説・写真 ---- */
.vt__caption { margin: 1.5rem 0 0; }
.cMain__body .vt .vt__caption-title { display: flex; align-items: baseline; gap: .6em; margin: 0 0 calc(.6em + var(--h, 0px) * var(--scale_gap_end)); padding: 0 0 .35em; border-bottom: var(--line_width) solid var(--c_black); color: var(--c_red); font-size: 1.6rem; line-height: 1.4; letter-spacing: .02em; transform: scaleY(.9); transform-origin: left top; }
.cMain__body .vt .vt__caption-title::before { content: "現在地"; flex-shrink: 0; align-self: center; padding: .25em .55em; background: var(--c_black); color: var(--c_white); font-size: .58em; letter-spacing: .06em; line-height: 1.2; }
.cMain__body .vt .vt__caption-title:empty { display: none; }
.vt__caption-text { margin: calc(var(--h, 0px) * var(--scale_gap)) 0 calc(var(--h, 0px) * var(--scale_gap)); font-size: 1.3rem; line-height: 1.7; letter-spacing: 0; text-align: justify; transform: scaleY(.9); }
.vt__caption-text[hidden] { display: none; }
.vt__spec { margin: .8em 0 0; padding: .7em 1em; background: var(--c_bg_cream); font-size: .88em; line-height: 1.65; }
.cWrap .vt a.vt__link:link, .cWrap .vt a.vt__link:visited { color: var(--c_black); text-decoration: underline; text-underline-offset: .15em; }
.cWrap .vt a.vt__link:hover { color: var(--c_red); }
.vt button.vt__link--btn { display: inline-block; margin: 0 0 .5em; padding: .35em 1.3em .4em; border: var(--line_width_s) solid var(--c_black); border-radius: 999px; background: transparent; color: var(--c_black); font: inherit; font-size: .92em; line-height: 1; letter-spacing: .05em; cursor: pointer; transition: background-color .15s, color .15s; }
.vt button.vt__link--btn:hover { background: var(--c_black); color: var(--c_white); }
.vt__photos { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin: 1.2rem 0 0; }
.vt__photos[hidden] { display: none; }
.vt__photos a { display: block; }
.vt__photos a.is-wide { grid-column: 1 / -1; }
.vt__photos img { display: block; width: 100%; height: auto; }

/* ---- 操作説明 ---- */
.vt__legend { display: flex; flex-wrap: wrap; gap: .55em 1.8em; margin: 1.6rem 0 0; padding: 0 0 1.2em; border-bottom: var(--line_width_s) solid var(--c_black); list-style: none; font-size: 1.1rem; line-height: 1.5; letter-spacing: .02em; }
.vt__legend li { display: inline-flex; align-items: center; margin: 0; }
.vt__ico { display: inline-block; flex-shrink: 0; width: 1.7em; height: 1.7em; margin-right: .45em; border-radius: 50%; background: var(--c_bg_cream) no-repeat center / 62%; }
.vt__ico--rotate { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233e3a39' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12a8 8 0 1 1-2.3-5.7'/%3E%3Cpath d='M20 4v5h-5'/%3E%3C/svg%3E"); background-size: 66%; }
.vt__ico--arrow { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23ea5532' d='M24 5 43 15H33l6 27H9l6-27H5z'/%3E%3C/svg%3E"); }
.vt__ico--info { background-color: transparent; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Ccircle cx='24' cy='24' r='22' fill='%233e3a39'/%3E%3Ccircle cx='24' cy='14.5' r='3.2' fill='%23f8f7f3'/%3E%3Crect x='21' y='20.5' width='6' height='15' rx='1.2' fill='%23f8f7f3'/%3E%3C/svg%3E"); background-size: 100%; }
.vt__ico--here, .vt__ico--go { width: .95em; height: .95em; margin: 0 .8em 0 .35em; }
.vt__ico--here { background: var(--c_red); box-shadow: 0 0 0 2px var(--c_white), 0 0 0 3px rgba(62, 58, 57, .4); }
.vt__ico--go { background: var(--c_red_lt); box-shadow: 0 0 0 1px rgba(62, 58, 57, .5); }
.vt__keys { display: inline-flex; flex-shrink: 0; margin-right: .5em; }
.vt__key { display: inline-flex; align-items: center; justify-content: center; width: 1.45em; height: 1.45em; border: var(--line_width_s) solid var(--c_black); background: var(--c_bg); font-size: .95em; line-height: 1; }
.vt__key + .vt__key { margin-left: -1px; }
.vt__key--full::before { content: ""; width: .6em; height: .6em; border: 1.5px solid var(--c_black); }

/* ---- 製作・ライセンス表記 ---- */
.cMain__article .cMain__body .vt p.vt__credit { margin: 1.4rem 0 0; padding: 0; background: none; font-size: 1.05rem; line-height: 1.7; text-align: left; }
.cWrap .vt .vt__credit a:link, .cWrap .vt .vt__credit a:visited { text-decoration: underline; }

/* ---- 単独ページ(page-virtual-tour.php) ---- */
.cMain__article .cMain__body p.vt-page__back { margin: 2.5rem 0 0; transform: none; }
.vt-page__back .cBtn { margin: 0; }

/* ---- SP ---- */
@media screen and (max-width: 600px) {
  .vt__viewer { aspect-ratio: 5 / 6; }
  .vt__map { top: 4px; left: 42px; }
  .vt .pnlm-hotspot { width: 44px; height: 44px; }
  .cMain__body .vt .vt__caption-title { font-size: 1.5rem; }
  .vt__photos { grid-template-columns: 1fr; }
  .vt__legend { gap: .45em 1.2em; font-size: 1.15rem; }
}

/* ---- ミニマップ上の各地点の座標 ---- */
.vt .vt__pt--wooddeck{top:72px;left:91px;}
.vt .vt__pt--wooddecksouth{top:95px;left:104px;}
.vt .vt__pt--wooddeckwest{top:82px;left:69px;}
.vt .vt__pt--wooddecknorth{top:57px;left:77px;}
.vt .vt__pt--northbox8{top:3px;left:35px;}
.vt .vt__pt--northbox1{top:10px;left:54px;}
.vt .vt__pt--northmiddle{top:9px;left:78px;}
.vt .vt__pt--northbox10{top:20px;left:122px;}
.vt .vt__pt--eastcorridor{top:59px;left:129px;}
.vt .vt__pt--southcorridor{top:120px;left:104px;}
.vt .vt__pt--westcorridor{top:82px;left:38px;}
.vt .vt__pt--northcorridor{top:30px;left:76px;}
.vt .vt__pt--westbox1south{top:65px;left:36px;}
.vt .vt__pt--westbox1middle{top:45px;left:36px;}
.vt .vt__pt--westbox1north{top:28px;left:36px;}
.vt .vt__pt--roadwestnorth{top:2px;left:2px;}
.vt .vt__pt--roadwestmiddle{top:62px;left:2px;}
.vt .vt__pt--roadwestsouth{top:138px;left:2px;}
.vt .vt__pt--southwest{top:114px;left:23px;}
.vt .vt__pt--southfobox5west{top:136px;left:35px;}
.vt .vt__pt--southfobox5east{top:136px;left:62px;}
.vt .vt__pt--southbox7east{top:131px;left:75px;}
.vt .vt__pt--southbox7west{top:131px;left:50px;}
.vt .vt__pt--southfobox9{top:136px;left:92px;}
.vt .vt__pt--roadeastnorthend{top:2px;left:154px;}
.vt .vt__pt--roadeastnorth{top:17px;left:154px;}
.vt .vt__pt--roadeastmiddle{top:59px;left:154px;}
.vt .vt__pt--roadeastsouth{top:159px;left:154px;}
.vt .vt__pt--setstoragenorth{top:81px;left:27px;}
.vt .vt__pt--setstoragesouth{top:96px;left:23px;}
.vt .vt__pt--bathroom{top:45px;left:18px;}
.vt .vt__pt--bflavatory{top:75px;left:132px;}
.vt .vt__pt--box1north{top:33px;left:55px;}
.vt .vt__pt--box1middle{top:45px;left:55px;}
.vt .vt__pt--box1middleopen{display:none;top:45px;left:55px;}
.vt .vt__pt--box1south{top:60px;left:55px;}
.vt .vt__pt--box2{top:38px;left:99px;}
.vt .vt__pt--box3{top:91px;left:131px;}
.vt .vt__pt--box5west{top:157px;left:39px;}
.vt .vt__pt--box5east{top:157px;left:60px;}
.vt .vt__pt--box6{top:153px;left:76px;}
.vt .vt__pt--box4{top:113px;left:131px;}
.vt .vt__pt--box7northeast{top:98px;left:76px;}
.vt .vt__pt--box7southeast{top:115px;left:76px;}
.vt .vt__pt--box7south{top:115px;left:63px;}
.vt .vt__pt--box7west{top:115px;left:51px;}
.vt .vt__pt--box8north{top:26px;left:27px;}
.vt .vt__pt--box8south{top:35px;left:18px;}
.vt .vt__pt--box9{top:160px;left:94px;}
.vt .vt__pt--box10north{top:30px;left:122px;}
.vt .vt__pt--box10south{top:48px;left:122px;}
