@charset "UTF-8";
body {
    overflow-x: hidden;
}

.main {
    overflow-x: inherit !important;
}


.contents {
    padding: 0;
}

.contents .caption,
.contents figure figcaption {
    font-size: 12px !important;
    letter-spacing: 0;
}

.contents .caption .sm,
.contents figure figcaption .sm {
    font-size: 8px !important;
}

.contents figure figcaption .smBlock {
    display: block;
}

@media screen and (max-width: 768px) {
    .contents .caption,
    .contents figure figcaption {
        font-size: 10px !important;
    }
}

.mTit24 {
    font-size: 24px;
    letter-spacing: 0.15em;
}

@media screen and (max-width: 768px) {
    .mTit24 {
        font-size: min(4.5vw, 24px);
    }
}



.heroVisual__heading {
    top: 20%;
    left: 50%;
    transform: translate(-50%, 0%);
    -webkit-transform: translate(-50%, 0%);
}

@media screen and (max-width: 768px) {
    .heroVisual__heading {
        top: 28%;
    }
}


/* bg-fixed */
.bg-fixed {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 0;
    background: #000;
}

.bg-fixed .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}

.bg-fixed .overlay .caption {
    position: absolute;
    left: 50px;
    bottom: 10px; 
}

.bg-fixed .overlay img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.bg-fixed .overlay video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}


@media screen and (max-width: 768px) {
    .bg-fixed .overlay .caption {
        left: 10px;
    }
}

.flexBox {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

.txt-brown {
    color: #b28146;
}

.blockImg {
    position: relative;
    z-index: 0;
}

.blockImg img {
    width: 100%;
}

.blockImg picture {
    display: block;
    -webkit-filter: brightness(1.1) blur(10px);
    filter: brightness(1.1) blur(10px);
    -webkit-mask-image: -webkit-gradient(linear, left top, right top, color-stop(25%, rgba(0, 0, 0, 0)), color-stop(33%, black), color-stop(66%, black), color-stop(75%, rgba(0, 0, 0, 0)));
    -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 25%, black 33%, black 66%, rgba(0, 0, 0, 0) 75%);
    mask-image: -webkit-gradient(linear, left top, right top, color-stop(25%, rgba(0, 0, 0, 0)), color-stop(33%, black), color-stop(66%, black), color-stop(75%, rgba(0, 0, 0, 0)));
    mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 25%, black 33%, black 66%, rgba(0, 0, 0, 0) 75%);
    -webkit-mask-position: 100% 50%;
    mask-position: 100% 50%;
    -webkit-mask-size: 400% 100%;
    mask-size: 400% 100%;
    -webkit-transition: ease-out;
    transition: ease-out;
    -webkit-transition-duration: 0.3s !important;
    transition-duration: 0.3s !important;
    -webkit-transition-property: -webkit-filter, -webkit-mask-position;
    transition-property: -webkit-filter, -webkit-mask-position;
    transition-property: filter, mask-position;
    transition-property: filter, mask-position, -webkit-filter, -webkit-mask-position;
    will-change: filter, mask-image;
}

.blockImg.sai-animate picture {
    -webkit-filter: brightness(1) blur(0);
    filter: brightness(1) blur(0);
    -webkit-mask-position: 50% 50%;
    mask-position: 50% 50%;
}

.blockWrap {
    background: #fff;
    position: relative;
    z-index: 1;
}

.blockInner {
    position: absolute;
    height: fit-content;
    z-index: 1;
    display: flex;
    align-items: flex-start;
}

.blockTxtS,
.blockTxtM {
    -ms-writing-mode: tb-rl;
    -webkit-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
}

.blockTxtS {
    font-size: clamp(14px, 1.15vw, 20px);
    line-height: 2.5;
    letter-spacing: 0.2em;
    color: #ffffff;
    margin: 0 clamp(1.2em, 1.5vw, 1.7em) 0 0;
}

.blockTxtS span {
    display: inline-block;
    text-align: center;
    position: relative;
}

.blockTxtS .num {
    transform: rotate(-90deg);
    margin-bottom: 0.2em;
    line-height: 1;
    letter-spacing: 0.1em;
    top: -0.2em;
}

.blockTxtS .txt {
    transform: rotate(-90deg);
    margin-bottom: 0.2em;
    left: 0.1em;
}

.blockTxtS .txt2 {
    transform: rotate(-90deg);
    margin: -0.4em 0 0.2em;
    left: 0.25em;
}

.blockTxtS .dot {
    margin: -0.15em 0;
    left: -0.1em;
}

.blockTxtM {
    font-size: clamp(18px, 2.4vw, 35px);
    line-height: 2;
    letter-spacing: 0.3em;
    color: #ffffff;
}

.blockTxtS span,
.blockTxtM span {
    opacity: 0;
    transition: 0.2s ease-out;
}

.blockTxtS.sai-animate span,
.blockTxtM.sai-animate span {
    opacity: 1;
}

.blockCircle {
    position: absolute;
    width: min(15.48vw, 270px);
    height: min(15.48vw, 270px);
    z-index: -1;
}

.blockCircle span {
    display: block;
    width: 100%;
    height: 100%;
    background: url("../imgs/circle.svg") no-repeat top left/100% 100%;
}

.blockCircle {
    -webkit-filter: brightness(1.1) blur(3px);
    opacity: 1;
    filter: brightness(1.1) blur(3px);
    -webkit-mask-image: -webkit-gradient(linear, left top, right top, color-stop(25%, rgba(0, 0, 0, 0)), color-stop(33%, black), color-stop(66%, black), color-stop(75%, rgba(0, 0, 0, 0)));
    -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 25%, black 33%, black 66%, rgba(0, 0, 0, 0) 75%);
    mask-image: -webkit-gradient(linear, left top, right top, color-stop(25%, rgba(0, 0, 0, 0)), color-stop(33%, black), color-stop(66%, black), color-stop(75%, rgba(0, 0, 0, 0)));
    mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 25%, black 33%, black 66%, rgba(0, 0, 0, 0) 75%);
    -webkit-mask-position: 100% 50%;
    mask-position: 100% 50%;
    -webkit-mask-size: 400% 100%;
    mask-size: 400% 100%;
    transition: 1s ease-out !important;
    will-change: filter, mask-image;
    transform: scale(1.1);
}

.blockCircle.sai-animate {
    opacity: 1;
    -webkit-filter: brightness(1) blur(0);
    filter: brightness(1) blur(0);
    -webkit-mask-position: 50% 50%;
    mask-position: 50% 50%;
    transform: scale(1);
}

@media screen and (max-width: 768px) {
    .blockInner {
        height: auto;
        top: 10% !important;
        left: 50% !important;
        transform: translateX(-50%);
        width: calc(100% - 40px);
        flex-direction: column-reverse;
        align-items: center;
    }

    .blockTxtS,
    .blockTxtM {
        text-shadow: rgba(0, 0, 0, 0.7) 1px 1px 10px, rgba(0, 0, 0, 0.7) 1px 1px 10px, rgba(0, 0, 0, 0.7) 1px 1px 10px, rgba(0, 0, 0, 0.7) 1px 1px 10px, rgba(0, 0, 0, 0.7) 1px 1px 10px, rgba(0, 0, 0, 0.7) 1px 1px 10px;
    }

    .blockTxtM {
        -webkit-writing-mode: horizontal-tb;
        writing-mode: horizontal-tb;
        -ms-writing-mode: horizontal-tb;
        margin-bottom: 6vw;
        text-align: center;
        line-height: 1.6;
    }

    .blockTxtS {
        margin-right: 0;
        line-height: 2;
    }
}

/* boxMap2 */

.boxMap2 {
    position: relative;
    z-index: 3;
    padding: 100px 0;
    background: #fff;
}

.boxMap2 .content {
    position: relative;    
    max-width: 1150px;
}

.boxMap2 .photo .capIn {
    right: 5%;
    bottom: 16%;
}


.boxMap2 .map-txt {
    position: absolute;
    left: 0;
    bottom: 0;
    max-width: 710px;
}

.boxMap2 .mDesc {
    font-size: 16px;
}

.boxMap2 .map-txt ul {
    margin-top: 10px;
}

.boxMap2 .map-txt li {
    font-size: 24px;
    line-height: 1;
}

.boxMap2 .map-txt li .f22 {
    font-size: 20px;
}

.boxMap2 .map-txt li .f52 {
    font-size: 45px;
}


@media screen and (max-width: 768px) {

    .boxMap2 {
        padding: 35px 0 20px;
    }

    .boxMap2 .mDesc {
        font-size: 14px;
    }

    .boxMap2 .map-txt {
        position: static;
        margin-top: 20px;
    }

    .boxMap2 .map-txt ul {
        margin-top: 20px;
    }

    .boxMap2 .map-txt li {
        font-size: min(5vw, 32px);
        margin-bottom: 10px;
    }

    .boxMap2 .map-txt li .f52 {
        font-size: min(7vw, 52px);
    }

    .boxMap2 .map-txt li .f22 {
        font-size: min(4vw, 22px);
    }

    .boxMap2 .photo .capIn {
        right: 4%;
        bottom: -12px;
    }
}



/* shrine */
.shrine {
    position: relative;
    z-index: 1;
    padding-bottom: 60px;
    overflow: hidden;
}

.shrine .content {
    padding: 80px 0 0;
}

.shrine .videoWrap {
    position: relative;
    height: 100vh;
}

.shrine .videoWrap video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.shrine .videoWrap .caption {
    position: absolute;
    right: 5px;
    bottom: 5px;
}

.shrine .mDesc {
    color: #3B2118;
}

.shrine .blockInner {
    top: 16%;
    right: 15%;
}

.shrine .item {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: center;
    align-items: center;
}

.shrine .item.item_01 {
    gap: 15%;
    align-items: end;
    margin-top: 0;
}

.shrine .item.item_01 p.mDesc {
    margin-bottom: 30px;
}

.shrine .item.item_02 {
    gap: 7%;
    margin-top: 112px;
}

.shrine .item.item_02 .photo {
    margin-right: -3vw;
}

.shrine .item.item_03 {
    gap: 8.2%;
    margin-top: 125px;
}

.shrine .item.item_03 .photo {
    margin-left: -3vw;
}

.shrine .item.item_04 {
    gap: 20.47%;
    margin-top: -20px;
    align-items: end;
}

.shrine .item.item_04 p.mDesc {
    margin-bottom: -2vw;
}

.shrine .item.item_05 {
    gap: 13.8%;
    margin: clamp(60px, 10vw, 160px) 0 0;
    align-items: start;
}

.shrine .item.item_05 .photo:nth-of-type(1) {
    margin-top: -2vw;
}

.shrine .blockInner .blockCircle {
    top: -5%;
    left: -16%;
}

.shrine .capBot {
    margin-top: 100px;
    position: relative;
    padding-left: 50px;
    font-size: 12px !important;
    color: #3B2118;
}

.shrine .capBot span {
    position: absolute;
    top: 0;
    left: 0;
}

@media screen and (max-width: 768px) {
    .shrine {
        padding-bottom: 40px;
    }

    .shrine .videoWrap {
        position: sticky;
        top: 0;
        left: 0;
    }
    

    .shrine .content {
        width: calc(100% - 60px);
        padding: 30px 0 0;
    }

    .shrine .item {
        flex-direction: column;
        align-items: start !important;
        margin-top: 30px !important;
        gap: 10px !important;
    }

    .shrine .item.item_01 {
        margin-top: 0 !important;
    }

    .shrine .item.item_01 p.mDesc {
        margin-bottom: 0;
    }

    .shrine .item .photo {
        order: -1;
    }

    .shrine .item.item_03 .photo {
        margin-left: 0;
    }

    .shrine .item.item_04 p.mDesc {
        margin-bottom: 0;
    }

    .shrine .item.item_05 .photo:nth-of-type(1) {
        margin-top: 0;
    }

    .shrine .blockInner .blockCircle {
        top: 0;
        left: 0;
    }

    .shrine .capBot {
        margin-top: 40px;
    }
}

@media screen and (max-width: 480px) {
    .shrine .item .photo {
        width: 100%;
    }

    .shrine .item .photo img {
        width: 100%;
    }
}

/* Honmachi Street */
.honmachi {
    position: relative;
    z-index: 1;
    overflow: hidden;
}

.honmachi .blockWrap .photo {
    height: 100vh;
}

.honmachi .blockWrap .photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center bottom;
}

.honmachi .blockTxtM {
    font-size: clamp(18px, 2.3vw, 28px);
}

.honmachi .blockTxtS {
    font-size: clamp(14px, 1.15vw, 18px)
}

.honmachi .blockInner {
    top: 15%;
    left: 11.3%;
    height: fit-content;
}

.honmachi .blockInner .blockCircle {
    top: -10%;
    left: -10%;
}

.honmachi #content02 {
    padding: clamp(60px, 10vw, 115px) 0 0;
}

.honmachi .content .box {
    align-items: center;
    margin: clamp(60px, 10vw, 115px) 0 0;
}

.honmachi .content .box:first-of-type {
    margin-top: 0;
}

.honmachi .content .box:last-of-type {
    margin-bottom: 0;
}

.honmachi .content .box-left {
    width: 42%;
    height: fit-content;
}

.honmachi .content .box-left .box-bottom {
    margin-top: 15px;
}

.honmachi .content .box-left .box-bottom .photo:nth-of-type(1) {
    width: 62%;
}

.honmachi .content .box-left .box-bottom .photo:nth-of-type(2) {
    width: 36%;
}

.honmachi .content .box-right {
    width: 55%;
}

.honmachi .content .box-right .mTit24 {
    margin-bottom: 20px;
}

.honmachi .content .box-right .mDesc {
    line-height: 1.8;
}


.honmachi .content .box_01 .box-left .photo {
    width: 49%;
    margin-bottom: 2%;
}

.honmachi .content .box_02 .box-right,
.honmachi .content .box_04 .box-right {
    order: -1;
}

.honmachi .content .box_02 .box-left {
    width: 37%;
}

.honmachi .content .box_02 .box-right {
    width: 58%;
}

.honmachi .content .box_03 {
    padding: 0 4% 0 2%;
}

.honmachi .content .box_03 .box-left {}

.honmachi .content .box_03 .box-right {
    width: 53%;
}

.honmachi .content .box_04 .box-left {}

.honmachi .content .box_04 .box-right {
    width: 56%;
}

.honmachi .content .box_05 {
    align-items: start !important;
}

.honmachi .content .box_05 .box-right {
    width: 53%;
    margin-top: 40px;
}

.honmachi .capBot {
    margin-top: 50px;
    position: relative;
    padding-left: 50px;
    padding-bottom: 50px;
}

.honmachi .capBot span {
    position: absolute;
    top: 0;
    left: 0;
}

@media screen and (max-width: 1500px) {
    .honmachi .blockInner {
        top: 11%;
    }
}

@media screen and (max-width: 768px) {
    .honmachi .content .box {
        margin: 5vw 0 0;
        padding: 0 !important;
    }

    .honmachi .content .box-left {
        order: -1;
        width: 100% !important;
        gap: 2vw;
        justify-content: start;
    }

    .honmachi .content .box-left div {
        width: 100%;
    }

    .honmachi .content .box-left .box-bottom {
        max-width: 464px;
        margin-top: 20px;
        justify-content: start;
        gap: 1.5vw;
    }

    .honmachi .content .box-right {
        width: 100% !important;
    }

    .honmachi .content .box-right .mTit24 {
        margin-top: 28px;
    }

    .honmachi .blockInner .blockCircle {
        top: 0;
        left: 0;
    }

    .honmachi .content .box_01 .box-left {
        gap: unset;
        justify-content: space-between;
    }

    .honmachi .content .box_01 .box-left .sm {
        display: block;
    }

    .honmachi #content02 {
        width: calc(100% - 60px);
        padding: 30px 0 0;
    }
}


.honmachi .miyamoto-adress {
    background: url(../imgs/miyamoto-adress.webp) no-repeat center center / cover;
    padding: 100px 0;
    height: 100vh;
    overflow-x: hidden;
}

.honmachi .miyamoto-adress .content {
    justify-content: center;
    gap: 6vw;
}

.honmachi .miyamoto-adress .box-tit {
    display: flex;
    gap: 20px;    
    line-height: 1;
}

.honmachi .miyamoto-adress .box-tit p {
    -ms-writing-mode: tb-rl;
    -webkit-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
    color: #898989;
}

.honmachi .miyamoto-adress .box-tit p.en {
    font-size: clamp(14px, 1.8vw, 24px);
    letter-spacing: 0.1em;
}

.honmachi .miyamoto-adress .box-tit p.jp {
    font-size: clamp(40px, 5vw, 68px);
    letter-spacing: 0.1em;
}

.honmachi .miyamoto-adress .box-tit p span {
    opacity: 0;
    transition: 0.2s ease-out;
}

.honmachi .miyamoto-adress .box-tit.sai-animate p span {
    opacity: 1;
}

.honmachi .miyamoto-adress .box-txt {
    max-width: 550px;
}

.honmachi .miyamoto-adress .box-txt p {
    font-size: 22px;
}

.honmachi .miyamoto-adress .box-txt figure {
    width: 100%;
    margin-top: 20px;
}

@media screen and (max-width: 1400px) {
    .honmachi .miyamoto-adress .box-txt {
        max-width: 500px;
    }
    
    .honmachi .miyamoto-adress .box-txt p {
        font-size: 20px;
    }
}

@media screen and (max-width: 768px) {

    .honmachi .miyamoto-adress {
        background-image: url(../imgs/miyamoto-adress_sp.webp);
        padding: 60px 0;
    }

    .honmachi .miyamoto-adress .content {
        width: calc(100% - 60px);
    }
    
    .honmachi .miyamoto-adress .box-tit {
        display: block;
    }

    .honmachi .miyamoto-adress .box-tit p {
        -ms-writing-mode: unset;
        -webkit-writing-mode: unset;
        writing-mode: unset;
        text-align: center;
    }

    .honmachi .miyamoto-adress .box-tit p.en {
        margin-bottom: 10px;
    }

    .honmachi .miyamoto-adress .box-txt {
        transition-delay: 0.2s !important;
    }


    .honmachi .miyamoto-adress .box-txt p {
        font-size: 14px;
    }
}






/* boxTop */

.heroWrap {
    position: sticky;
    top: 0;
    left: 0;
    z-index: 3;
    width: 100%;
    height: 100vh;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    opacity: 1; 
    will-change: opacity, transform;
}

@media screen and (max-width: 768px) {
    .heroWrap {        
        z-index: 3;
    }
}

.boxTop {
    position: relative;
    z-index: 3;
}

.boxTop .caption {
    position: absolute;
    left: 50px;
    bottom: 10px; 
}

@media screen and (max-width: 768px) {
    .boxTop .caption {
        left: 10px;
    }
}

.img02 {
    position: relative;
    z-index: 2;
    width: 100%;
    height: 100vh;
}

.img02 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.txtMap {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
}

.txtMap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.txtMap .mTit {
    text-align: left;
    position: absolute;
    top: 18%;
    left: 5%;
    color: #fff;
    text-shadow: 2px 2px 20px #000, -2px -2px 20px #000, 3px 3px 20px #000, -3px -3px 20px #000, 4px 4px 20px #000, -4px -4px 20px #000;
    line-height: 1.6;
    transition: opacity 1.5s ease-out;
}

.txtMap .mapLogo {
    position: absolute;
    top: 48%;
    left: 48.5%;
    width: 7%;
    line-height: 1;
}

.txtMap .mapTxt01 {
    position: absolute;
    top: 30.5%;
    right: 22.5%;
    width: 6%;
    line-height: 1;
}

.txtMap .mapTxt02 {
    position: absolute;
    top: 72.5%;
    left: 31.5%;
    width: 5%;
    line-height: 1;
}

.txtMap .mapTxt03 {
    position: absolute;
    bottom: 6%;
    left: 35%;
    width: 6%;
    line-height: 1;
}

.txtMap .caption {
    position: absolute;
    left: 50px;
    bottom: 5px;
}

@media screen and (max-width: 1600px) {
    .txtMap .mTit {
        font-size: 2vw;
    }    
}

@media screen and (max-width: 768px) {

    .txtMap {
        opacity: 1 !important;
    }

    .txtMap .mTit {
        font-size: min(6.5vw, 37px);
        top: 5%;
        text-shadow: 2px 2px 20px #000, -2px -2px 20px #000, 3px 3px 20px #000, -3px -3px 20px #000;
    }

    .txtMap .mapLogo {
        top: 51%;
        left: 59%;
        width: 19%;
    }

    .txtMap .mapTxt01 {
        top: 43%;
        right: 2%;
        width: 17%;
    }

    .txtMap .mapTxt02 {
        top: 62%;
        left: 29%;
        width: 15%;
    }

    .txtMap .mapTxt03 {
        bottom: 15%;
        left: 40%;
        width: 17%;
    }

}

.honmachi .miyamoto-adress .scroll {
    color: #000;
}

.honmachi .miyamoto-adress .scroll::before {
    background: #000;
}