.main_txt {
    padding: 50px 0 200px;
}
.intro {
    background: url(../images/location/main_bg01.webp) no-repeat top center;
    background-size: cover;
    display: flex;
    align-items: center;
}
.text_overlay {
    background: rgba(0, 0, 0, 0.2);
    width: 60%;
    margin-left: 35vw;
}
.text_overlayInner {
    padding: 50px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 30px;
    color: #fff;
}
.text_overlayInner .title {
    text-align: left;
    font-size: 1.5rem;
    letter-spacing: 0.1em;
}
.text_overlayInner .desc {
    text-align: left;
    font-size: 1.0rem;
    line-height: 2.4;
}
.text_overlayInner .desc span {
    font-size: 0.7rem;
    vertical-align: top;
}
.note_wrap {
    display: flex;
    align-items: flex-start;
    flex-direction: row;
    gap: 20px;
}
.note_item {
    border-left: 1px solid #fff;
    padding-left: 1rem;
    text-align: left;
}
.note_item p {
    font-size: 1.0rem;
}
.note_item p span {
    display: block;
    font-size: 0.7rem;
}
.access_education {
    padding: 100px 0;
    background: url(../images/location/access_bg.webp) no-repeat top center;
    background-size: cover;
}
.access_education .desc {
    font-size: 1.0rem;
    letter-spacing: 0.1em;
    line-height: 2.4;
    text-align: left;
    margin-bottom: 30px;
}
.access {
    margin-bottom: 100px;
}
.access_education .title {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 30px;
}
.access_education .title h3 {
    font-size: 2.8rem;
    display: flex;
    width: unset;
}
.access_education .title p {
    font-size: 1.1rem;
    font-weight: 500;
    letter-spacing: 0.1em;
}
.life-information{
    padding-top: 60px;
    background: url(../images/location/bg1.webp) no-repeat top center;
    background-size: cover;
}

.p-location {
    position: relative;
  overflow: clip; /* hiddenでもOK。clip推奨（横スクロール事故が減る） */

  /* ここが重要：コンテナの中に居ても画面いっぱいにする */
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);

  aspect-ratio: 16 / 6;
  min-height: clamp(360px, 55vh, 680px);
}
.hero__media{
  position: absolute;
  inset: 0;
}
.hero__media img{
display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}
.hero__overlay{
    position: relative;
  height: 65%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: clamp(16px, 3vw, 48px);
}
.hero__overlayInner{
  width: min(980px, 92vw);
}
#location .main_txt h2 {
    font-size: 1.2rem;
    letter-spacing: 0.3em;
    font-weight: 600;
    line-height: 2.2;
}
#location .main_txt p {
    font-size: 1.0rem;
    letter-spacing: 0.1em;
    line-height: 2.4;
    margin-top: 30px;
}

.p-location.c-plainBox .main_img_wide {
    position: absolute;
    top: 0;
    z-index: -1;
}
.bg_sec{
    padding: 40px;
}
.bg_sec .main_img {
    margin-bottom: 40px;
}
.title {
    position: relative;
}
.title__overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.title__overlay img {
    width: 50%;
}

@media screen and (max-width: 810px) {
    .title-area {
        margin-bottom: 0;
    }
    .title__overlay img {
        width: 85%;
    }
    .bg_sec .main_img {
        margin: 20px 0 25px;
    }
    .text_overlayInner {
    padding: 50px 20px;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 30px;
        color: #fff;
    }
    .text_overlayInner .title {
        font-size: 1.4rem;
        line-height: 1.5;
        text-align: justify;
        letter-spacing: 0;
    }
    .text_overlayInner .desc {
        font-size: 0.9rem;
        line-height: 2.0;
        text-align: justify;
        letter-spacing: 0;
    }
    .life-information {
        padding-top: 30px;
    }
    .bg_sec {
        padding: 0px;
    }
    .life_info .title .main_img img {
        filter: brightness(0.9);
    }
    .hero__overlay {
        height: 85%;
    }
    #location .main_txt p {
        font-size: 0.9rem;
        margin-top: 14px;
        text-align: left;
        line-height: 2.0;
        text-align: justify;
        letter-spacing: 0;
    }
    .p-location__lifeinfo-item .main_img {
        margin-bottom: 80px;
    }
    .access_education .desc {
        font-size: 0.9rem;
        line-height: 2.0;
        text-align: justify;
        letter-spacing: 0;
    }
    .intro {
        background: url(../images/location/main_bg01_sp.webp) no-repeat top center;
        background-size: cover;
    }
    .intro .inner--base {
        padding: 0;
        margin: 0;
    }
    .note_wrap {
        flex-direction: column;
    }
    .note_item p {
        font-size: 0.9em;
    }
    .text_overlay {
        background: rgba(0, 0, 0, 0.5);
        width: 100%;
        margin-left: 0;
    }
    .access_education .title {
        display: flex;
        align-items: center;
        gap: 20px;
        margin-bottom: 30px;
        flex-direction: column;
    }
    .p-location {
        min-height: clamp(446px, 67vh, 680px);
    }
    .access_education {
        padding: 60px 0;
    }
}
@media screen and (max-width: 599px) {
    #location .main_txt h2 {
        font-size: 1.1rem;
        letter-spacing: 0.3em;
        font-weight: 600;
        line-height: 1.8;
    }
    .hero__overlay {
        padding: 0px;
    }
}






.p-location__lifeinfo-item {
        margin-bottom: 80px;
    }
.life-information h4{margin-top: 60px;padding-bottom: 30px;}


.location-li-item {}

.location-li > div:last-child .location-li-item:last-child {margin-bottom: 0;}
.location-li-item-header {font-size:116%;letter-spacing:.2em;margin:0 0 15px;color: #ef8200;}

.location-li-item > p {margin: 0 0 5px;font-size: 85%;}
.location-li-item ul {list-style-type:none;margin:0;padding:0;}
.location-li-item ul li {position:relative;margin-bottom:10px;line-height:1.5;display:-webkit-flex;display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;justify-content:space-between;-webkit-align-items:flex-end;-ms-align-items:flex-end;align-items:flex-end;font-size: 85%;}
.location-li-item ul li:last-child {margin-bottom: 0;}
.location-li-item ul li span {position:relative;z-index:1;display:inline-block;padding-right:0px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;height:100%;text-align: left;}
.location-li-item ul li span span.ate {
    font-size: 80%;
    /* display: inline-block; */
}
.location-li-item ul li > span:first-child {width: calc(100% - 12.5em);position: relative;overflow: hidden;}
.location-li-item ul li.subItem > span:first-child {padding-left: 1em;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;}
.location-li-item ul li > span:first-child::after {content: '\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65\FF65';display: inline-block;position: absolute;margin: 0 5px;}

.location-li-item ul li > span:last-child {position:absolute;padding-right:0;right:0;width:12.5em;white-space:nowrap;display:-webkit-flex;display:-moz-flex;display:-ms-flex;display:-o-flex;display:flex;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;justify-content:space-between;-webkit-align-items:space-between;-ms-align-items:flex-end;align-items:flex-end;bottom: 0;}
.location-li-item ul li span i {font-style: normal;display: inline-block;}
.location-li-item ul li span i:last-child {
    width: 3.6rem;
    text-align: right;
}
.location-li-item ul li > span:last-child span {
    display: flex;
    justify-content: flex-end;
}
.location-li-item ul li p{width: 100%;padding: 0;margin: 0;line-height: 1.8;text-align: left;}
.location-box .note-box{text-align: left;width: 100%;margin: 0;}
@media print, screen and (min-width: 670px) { /*670px*/


.life-information h4{font-size: 160%;}

.location-header {margin: 0 0 40px;font-size: 20px;padding: 10px 20px;}
.location-header::after {width: 150px;}
.location-li-item {margin-bottom: 50px;}

.location-li > div .location-li-item:last-child {margin-bottom: 0;}
.location-li-item-header {font-weight: bold;margin: 0 0 15px;line-height: 1.5;font-size: 138.5%;}
.location-li-item ul li,.location-li-item p {font-size: 100%;}
}

@media screen and (max-width: 669px) {/*スマホ設定*/
.location-li {
    gap: 10px;
}
.life-information h4{margin-top: 30px;}
.life-information h4 img{height: 30px;object-fit: cover;}
.life-information .col2{width: 100%;}
.location-li-item ul li{font-size: 11px!important;}
}



.mapping{
  position: relative;
  width: 100%;
}

/* 空撮画像 */
.main_img_wide img{
  display:block;
  width:100%;
  height:auto;
}

/* 空撮：最初は非表示→表示 */
.aerial{
  opacity: 0;
  transition: opacity .8s ease;
}
.mapping.is-aerial-show .aerial{
  opacity: 1;
}

/* スポット共通：最初は非表示 & 5px上にズラす */
.spot{
  position: absolute;
  opacity: 0;
  transform: translateY(-5px);
  transition: opacity .45s ease, transform .45s ease;
  pointer-events: none; /* クリックさせないなら */
}

/* 出現：フェードしながら5px下に移動して停止（= translateY(0)） */
.spot.is-show{
  opacity: 1;
  transform: translateY(0);
}

/* ▼ 位置指定（例）※ここを実デザインに合わせて調整 */
/* top/left は % で置くのが基本。必要なら transform: translate(-50%, -50%) でアンカー調整 */
.spot00{ top: 7%; left: 64.4%; width: 0.9vw;}
.spot01{ top: 19%; left: 9.5%; width: 1.7vw;}
.spot02{ top: 28.6%; left: 15.4%; width: 1.7vw;}
.spot03{ top: 43%; left: 18.3%; width: 1.9vw;}
.spot04{ top: 23.6%; left: 21%; width: 5.4vw;}
.spot05{ top: 36%; left: 26.3%; width: 1.9vw;}
.spot06{ top: 30%; left: 36.4%; width: 1.9vw;}
.spot07{ top: 41.4%; left: 39.7%; width: 1.9vw;}
.spot08{ top: 57%; left: 42.4%; width: 1.9vw;}
.spot09{ top: 66%; left: 55.6%; width: 1.9vw;}
.spot10{ top: 36.6%; left: 67.7%; width: 5.3vw;}
.spot11{ top: 33%; left: 75%; width: 5.3vw;}
.spot12{ top: 23.8%; left: 78.8%; width: 5.3vw;}
.spot13{ top: 52%; left: 83%; width: 5.3vw;}

/* スマホでサイズ調整したい場合（例） */
@media (max-width: 810px){
    .spot00{ top: 7%; left: 63.8%; width: 1.2vw;}
    .spot01{ top: 6.4%; left: 9.5%; width: 2.4vw;}
    .spot02{ top: 17.6%; left: 15.4%; width: 2.4vw;}
    .spot03{ top: 36%; left: 18.3%; width: 2.55vw;}
    .spot04{ top: 11.8%; left: 20.6%; width: 7vw;}
    .spot05{ top: 25%; left: 26.3%; width: 2.55vw;}
    .spot06{ top: 24%; left: 36.4%; width: 2.55vw;}
    .spot07{ top: 34.4%; left: 39.7%; width: 2.55vw;}
    .spot08{ top: 49.6%; left: 42.4%; width: 2.55vw;}
    .spot09{ top: 66%; left: 55.6%; width: 2.55vw;}
    .spot10{ top: 22.6%; left: 66.4%; width: 7vw;}
    .spot11{ top: 21%; left: 73.3%; width: 7vw;}
    .spot12{ top: 13.2%; left: 78.9%; width: 7vw;}
    .spot13{ top: 39%; left: 84%; width: 7vw;}
}