@charset "UTF-8";
/*====================================================*/
/* 下層共通 */
/*====================================================*/
/* ヘッダー */
.page-lower .header-container {
    margin-left: calc(36 * 100% / 750);
    margin-right: calc(36 * 100% / 750);
    padding: 1.5rem 0;
}
.page-lower .logo {
    width: min(50%, 160px);
}
.page-lower .logo p {
    margin-right: 5px;
}
@media print,screen and (min-width: 1025px){
    .page-lower .logo {
        width: min(15vw, 212px);
    }
}
@media print,screen and (min-width: 1400px){
    .page-lower .header-container {
        margin-left : calc( ( 100% - 1300px ) / 2 );
        margin-right : calc( ( 100% - 1300px ) / 2 );
    }
}

/* メインビジュアル */
.under_mv {
    position: relative;
}
.under_mv::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-color: rgb(0 0 0 / 20%);
    position: absolute;
    top: 0;
    left: 0;
}
.under_mv::after {
    content: "";
    display: block;
    width: 12.5rem;
    height: 9rem;
    background-image: url(../img/page/mv-parts.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    bottom: 10%;
    left: 0;
}
.mv-title {
    font-size: 1.4rem;
    font-weight: 900;
    letter-spacing: normal;
    position: absolute;
    bottom: 10%;
    left: calc(36 * 100% / 750);
    z-index: 5;
}
.mv-title span {
    display: block;
    margin-bottom: 2.5rem;
    font-size: 3rem;
}
@media print,screen and (min-width: 1025px){
    .under_mv::after {
        width: 260px;
        height: 180px;
        bottom: min(8vw, 120px);
        left: 0;
    }
    .mv-title {
        font-size: 2.5rem;
        bottom: min(8vw, 120px);
        left: calc( 150 * 100% / 1500 );
    }
    .mv-title span {
        margin-bottom: 4rem;
        font-size: 6rem;
    }
}
@media print,screen and (min-width: 1400px){
    .mv-title {
        bottom: 120px;
        left: 150px;
    }
}

/*====================================================*/
/* パンくず */
/*====================================================*/
.bread-wrap {
    padding-top: 2rem;
    padding-bottom: 5rem;
    margin-left: calc(36 * 100% / 750);
    position: relative;
    overflow-x: clip;
}
.bread-wrap > img {
    width: min(58vw, 219px);
    position: absolute;
    top: -4rem;
    right: -1rem;
    z-index: 5;
}
.bread {
    font-size: 1.2rem;
    font-weight: 900;
}
.bread ol,
.bread ol li {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}
.bread ol li:not(:last-of-type)::after {
    content: ">";
    display: inline-block;
    margin: 0 1em;
}
@media print,screen and (min-width: 1025px){
    .bread-wrap {
        padding-top: 4rem;
        padding-bottom: 10rem;
        margin-left: calc( 90 * 100% / 1500 );
    }
    .bread-wrap > img {
        width: min(33vw, 506px);
        top: -9rem;
        right: -1.5rem;
    }
    .bread {
        font-size: 1.6rem;
    }
}
@media print,screen and (min-width: 1500px){
    .bread-wrap {
        margin-left: 9rem;
    }
}


/*====================================================*/
/* メニュー */
/*====================================================*/
.menu-intro {
    padding-bottom: 7.5rem;
    position: relative;
}
.menu-intro p {
    background-color: #000;
    font-size: 1.2rem;
    font-weight: bold;
    line-height: 2;
    text-align: center;
}
.menu-intro > img {
    width: min(30vw, 114px);
    position: absolute;
    bottom: 1rem;
    left: 0;
}
.menu-list {
    margin-bottom: 2rem;
}
.menu-con {
    padding-bottom: 9rem;
    position: relative;
    overflow: hidden;
}
.menu-con::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    position: fixed;
    top: 0;
    z-index: -10;
    opacity: 0;
}
.dinner::after {
    background-image: url(../img/page/menu-pic01_sp.jpg);
}
.lunch::after {
    background-image: url(../img/page/menu-pic02_sp.jpg);
}
.drink::after {
    background-image: url(../img/page/menu-pic03_sp.jpg);
}
.menu-con.active::after {
    animation: fadeIn 0.3s linear forwards;
    z-index: -5;
}
@keyframes fadeIn {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
}
.menu-con h2 {
    padding-top: 13.5rem;
    padding-bottom: 16rem;
    font-size: 1.2rem;
    font-weight: 900;
    text-align: center;
}
.menu-con h2 span {
    display: block;
    margin-bottom: 9px;
    font-size: 2rem;
}

.accordion_container {
    margin-left: calc(36 * 100% / 750);
    margin-right: calc(36 * 100% / 750);
    border: 0.5px solid #ccc;
}
.accordion_title {
    padding: 1.5rem 2rem;
    background-color: #000;
    color: #fff;
    font-size: 1.8rem;
    font-weight: 900;
    position: relative;
    z-index: +1;
    cursor: pointer;
    transition-duration: 0.2s;
}
.accordion_title:hover {
    opacity: 0.8;
}
.icon_wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 50%;
    right: 5%;
    width: 1.5rem;
    height: 1.5rem;
    box-sizing: border-box;
    -webkit-transform: rotate(45deg);
    transform: translateY(-50%) rotate(45deg);
    transform-origin: center center;
    transition-duration: 0.2s;
}
.icon {
    display: block;
    width: 1.5rem;
    height: 1.5rem;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    transform-origin: center center;
    transition-duration: 0.2s;
    position: relative;
}
.accordion_title.open 
.icon_wrap {
    -webkit-transform: rotate(-360deg);
    transform: translateY(-50%) rotate(-360deg);
}
.icon:before, .icon:after {
    content: '';
    display: flex;
    background-color: #fff;
    width: 1.5rem;
    height: 1px;
    position: absolute;
    top: 7px;
    left: 0;
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
    transform-origin: center center;
}
.icon:before {
    width: 1px;
    height: 1.5rem;
    top: 0;
    left: 7px;
}
.accordion_title.open 
.icon_wrap .icon:before {
    content: none;
}
.accordion_title.open .icon_wrap .icon:after {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
}
.accordion_inner {
    display: none;
    padding: 1.5rem 1rem 5.5rem;
    background-color: #000;
    box-sizing: border-box;
}
.ac_inner_wraper section:not(:last-of-type) {
    margin-bottom: 3.5rem;
}
.ac_inner_wraper section h3 {
    margin-bottom: 1.2rem;
    font-size: 1.4rem;
    font-weight: 900;
}
.ac_inner_wraper section h3 span {
    display: inline-block;
    margin-left: 1.2em;
}
.ac_inner_wraper section dl {
    display: grid;
    grid-template-columns: 1fr 8.5em;
    justify-content: space-between;
    align-items: center;
    padding: 2rem 0 2.5rem;
    border-bottom: 0.5px solid #ccc;
    font-size: 1.2rem;
}
.ac_inner_wraper section dl:first-of-type {
    border-top: 0.5px solid #ccc;
}
.ac_inner_wraper section dl dd:first-of-type {
    text-align: right;
}
.ac_inner_wraper section dl dd:nth-of-type(2) {
    grid-area: 2 / 1 / 3 / 3;
    margin-top: 1.5rem;
}
.ac_inner_wraper section > p {
    margin-top: 1.5rem;
}
.drink section h3 {
    display: flex;
    justify-content: space-between;
}
.drink .ac_inner_wraper .sake dl {
    align-items: end;
    line-height: 1.5;
}
.drink .ac_inner_wraper .sake dl:nth-of-type(2) {
    grid-template-columns: 1fr 12em;
    line-height: 1.75;
}
.ac_inner_wraper .shochu dl,
.ac_inner_wraper .wine dl {
    padding: 0 0 0.5em;
    border: none;
    align-items: end;
    line-height: 2;
}
.ac_inner_wraper .shochu dl:nth-of-type(1) {
    padding-top: 1.5rem;
}
.ac_inner_wraper .shochu dl:nth-of-type(3) {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 0.5px solid #ccc;
}
.ac_inner_wraper .shochu dl:nth-of-type(6) {
    margin-bottom: 4rem;
    padding-bottom: 2.5rem;
    border-bottom: 0.5px solid #ccc;
}
.ac_inner_wraper .wine dl:nth-of-type(1) {
    padding-top: 1.5rem;
}
.ac_inner_wraper .wine dl:nth-of-type(3) dt {
    white-space: nowrap;
}
.ac_inner_wraper .wine dl:nth-of-type(4) {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 0.5px solid #ccc;
}
.ac_inner_wraper .wine dl:nth-of-type(5) {
    margin-bottom: 4rem;
    padding-bottom: 2.5rem;
    border-bottom: 0.5px solid #ccc;
}


@media print,screen and (min-width: 1025px){
    .menu-intro {
        padding: 2rem 0 20rem;
    }
    .menu-intro p {
        font-size: 2.5rem;
    }
    .menu-intro > img {
        width: min(19vw, 292px);
        bottom: 10rem;
        left: 0.5rem;
    }
    .menu-list {
        margin-bottom: 3rem;
    }
    .dinner::after {
        background-image: url(../img/page/menu-pic01.jpg);
    }
    .lunch::after {
        background-image: url(../img/page/menu-pic02.jpg);
    }
    .drink::after {
        background-image: url(../img/page/menu-pic03.jpg);
    }
    .menu-con h2 {
        padding-top: 31.5rem;
        padding-bottom: 20rem;
        font-size: 2.5rem;
    }
    .menu-con h2 span {
        margin-bottom: 4.5rem;
        font-size: 7.8rem;
    }
    .accordion_container {
        margin-left: calc( 160 * 100% / 1500 );
        margin-right: calc( 160 * 100% / 1500 );
    }
    .accordion_title {
        padding: 3rem 3.5rem 3rem 8rem;
        font-size: 3.5rem;
    }
    .icon_wrap {
        width: 2rem;
        height: 2rem;
    }
    .icon {
        width: 2rem;
        height: 2rem;
    }
    .accordion_inner {
        padding: 2.5rem 7rem 9.5rem;
    }
    .ac_inner_wraper section:not(:last-of-type) {
        margin-bottom: 9.5rem;
    }
    .ac_inner_wraper section h3 {
        margin-bottom: 1.5rem;
        font-size: 2.5rem;
    }
    .ac_inner_wraper section h3 span {
        margin-left: 0;
        font-size: 1.8rem;
    }
    .ac_inner_wraper section > div:has(h3) {
        display: flex;
        align-items: center;
        justify-content: space-between;
    }
    .ac_inner_wraper section dl {
        grid-template-columns: 0.8fr 1fr;
        justify-content: left;
        padding: 2.5rem 0 2.5rem 1em;
        font-size: 2rem;
    }
    .ac_inner_wraper section dl dd:first-of-type {
        text-align: left;
    }
}
@media print,screen and (min-width: 1400px){
    .drink .ac_inner_wraper {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-column-gap: 5rem;
    }
}

/*====================================================*/
/* 採用情報 */
/*====================================================*/
/* タイトル */
.title {
    font-size: 1.2rem;
    text-align: center;
    position: relative;
}
.title span {
    display: block;
    margin-bottom: 5px;
    font-size: 2rem;
    font-weight: 900;
}
@media print,screen and (min-width: 1025px){
    .title {
        font-size: 2.5rem;
    }
    .title span {
        font-size: 7.8rem;
    }
}

body:has(.page-recruit) #footer {
    background-color: transparent;
}
.page-recruit .intro {
    padding-bottom: 14rem;
    font-size: 1.2rem;
    font-weight: bold;
    text-align: center;
    position: relative;
    overflow-x: clip;
}
.page-recruit .intro h2 {
    color: #ffffff4d;
    font-size: 2.5rem;
    font-weight: 900;
}
.page-recruit .intro p {
    margin-top: -1.5em;
    line-height: 1.75;
}
.page-recruit .intro > img {
    width: min(58vw, 219px);
    position: absolute;
    bottom: 2rem;
    left: -1.6rem;
}

.swiper-container {
    position: relative;
    overflow-x: clip;
}
.swiper-container .swiper-pagination {
    bottom: -2.5rem !important;
}
.swiper-container .swiper-pagination-bullet {
    border: 0.5px solid #fff;
    opacity: 1;
}
.swiper-container .swiper-pagination-bullet-active {
    background: #fff;
}
.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
    margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 15px) !important;
}
.swiper-container > img {
    width: min(39vw, 148px);
    position: absolute;
    right: -0.5rem;
    bottom: -1rem;
    z-index: 5;
}

.shop-slider .swiper-slide p {
    color: #fff;
    font-size: 1.8rem;
    font-weight: bold;
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
}
.about-text {
    padding: 7rem 0 7.5rem;
    font-size: 1.2rem;
    text-align: center;
}
.about-text .title {
    margin-bottom: 2.5rem;
}
.about-text .title::before {
    content: "";
    display: block;
    width: 75%;
    height: 5.5rem;
    background-image: url(../img/page/title-parts01.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: -5;
}
.about-text p {
    font-size: 1.2rem;
    line-height: 1.75;
}

.work {
    padding-bottom: 7.3rem;
    position: relative;
    overflow-x: clip;
}
.work > img {
    width: min(94vw, 356px);
    position: absolute;
    bottom: 4rem;
    left: -0.5rem;
    z-index: -5;
}
.work .title {
    margin-bottom: 2.5rem;
}
.work .title::before {
    content: "";
    display: block;
    width: 90%;
    height: 4.5rem;
    background-image: url(../img/page/title-parts02.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    top: -2rem;
    left: 0;
    z-index: -5;
}
.work > p {
    font-size: 1.2rem;
    line-height: 1.75;
    text-align: center;
}
.work-list {
    margin-top: 3.5rem;
}
.work-list li {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 245px;
    background-size: cover;
    background-position: center;
    text-align: center;
}
.work-list li:first-of-type {
    background-image: linear-gradient(rgba(0, 0, 0, 0.3)), url(../img/page/recruit-pic01.jpg);
}
.work-list li:nth-of-type(2) {
    background-image: linear-gradient(rgba(0, 0, 0, 0.3)), url(../img/page/recruit-pic02.jpg);
}
.work-list li:last-of-type {
    background-image: linear-gradient(rgba(0, 0, 0, 0.3)), url(../img/page/recruit-pic03.jpg);
}
.work-list li p:first-of-type {
    width: 180px;
    margin: 0 auto 2.5rem;
    padding: 0.5em 1em;
    background-color: #000;
    color: #fff;
    font-size: 2rem;
    font-weight: 900;
    text-align: center;
}
.work-list li p span {
    display: inline-block;
    padding: 0.25em 1em;
    border: 1px solid #fff;
    font-size: 1.4rem;
    font-weight: 900;
}
.work-list li p span:not(:last-of-type) {
    margin-right: 1em;
}


/* モーダル（ポップアップ） */
.js_modalBtnWrap {
    display: block;
    width: 100%;
    text-align: center;
}
.js_modalBtnCont {
    height: 245px;
    text-align: center;
    transition: 0.3s;
    position: relative;
}
.js_modalBtnCont > div {
    width: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    z-index: 10;
}
.js_modalBtnCont > div p:first-of-type {
    width: 180px;
    margin: 0 auto 2.5rem;
    padding: 0.5em 1em;
    background-color: #000;
    color: #fff;
    font-size: 2rem;
    font-weight: 900;
    text-align: center;
}
.js_modalBtnCont > div p span {
    display: inline-block;
    padding: 0.25em 1em;
    border: 1px solid #fff;
    font-size: 1.4rem;
    font-weight: 900;
}
.js_modalBtnCont > div p span:not(:last-of-type) {
    margin-right: 1em;
}
.js_modalBtnCont figure {
    width: 100%;
    height: 100%;
    position: relative;
}
.js_modalBtnCont figure::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.3);
    position: absolute;
    top: 0;
    left: 0;
}
.js_modalBtnCont figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: left;
}
.js_modalBtnCont:hover,
.js_modalBtnCont:focus {
    opacity: 0.6;
}
.js_modalWrap {
    opacity: 0;
    z-index: -1;
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}
.js_modalWrap.active {
    animation: modalOpen 0.3s ease forwards;
}
.js_modalWrap.active2 {
    animation: modalClose 0.3s ease forwards;
}
.js_modalBG {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7);
}
.js_modalContInner {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    width: 90%;
    background-color: #fff;
    max-height: 600px;
    padding: 3rem 2rem;
}
.js_modalCont {
    overflow-y: scroll;
    max-height: 540px;
}
.js_modalCont dl {
    padding: 1.5em 0;
    border-bottom: 0.5px solid #000;
    color: #000;
    font-size: 1.2rem;
}
.js_modalCont dt {
    margin-bottom: 0.5em;
} 
.js_modalCont dt img {
    display: inline-block;
    width: 2em;
    height: 2em;
    margin-right: 0.5em;
    margin-bottom: 0.5em;
    vertical-align: middle;
} 
.js_modalCont > * + * {
    margin-top: 10px;
}
.js_modalContInner > .js_modalClose + * {
    margin-top: 0;
}
.js_modalClose {
    display: block;
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    width: 20px;
    height: 20px;
    overflow: hidden;
    cursor: pointer;
    z-index: 1001;
}
.js_modalClose::before,
.js_modalClose::after {
    content: "";
    background-color: #222;
    position: absolute;
    top: -5px;
    right: 10px;
    width: 1px;
    height: 30px;
}
.js_modalClose::before {
    transform: rotate(45deg);
}
.js_modalClose::after {
    transform: rotate(-45deg);
}
@keyframes modalOpen {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
      z-index: 1000;
    }
}
@keyframes modalClose {
    0% {
      opacity: 1;
      z-index: 1000;
    }
    100% {
      opacity: 0;
    }
}


.company {
    margin-left: calc( 36 * 100% / 750 );
    margin-right: calc( 36 * 100% / 750 );
}
.company .title {
    margin-bottom: 3rem;
}
.company div > p {
    margin: 3.5rem 0 4.5rem;
    padding: 1em 0.9em;
    border: 0.5px solid #ccc;
    font-size: 1.2rem;
    line-height: 1.75;
}
.company video {
    display: block;
    width: 100%;
    border-radius: 10px;
}
.gallery {
    padding-left: calc( 36 * 100% / 750 );
    padding-right: calc( 36 * 100% / 750 );
    padding-top: 8rem;
    padding-bottom: 1rem;
    position: relative;
    overflow-x: clip;
}
.gallery > img {
    position: absolute;
    z-index: -5;
}
.gallery > img:first-of-type {
    width: min(50vw, 190px);
    top: -2rem;
    right: -1rem;
}
.gallery > img:nth-of-type(2) {
    width: min(33vw, 125px);
    bottom: -4rem;
    left: 0;
}
.gallery .title {
    margin-bottom: 5.5rem;
}
.gallery li:not(:last-of-type) {
    margin-bottom: 5rem;
}
.gallery li > p {
    margin-bottom: 2rem;
    font-size: 1.2rem;
    font-weight: 900;
    text-align: center;
}
.gallery .map {
    filter: grayscale(100%);
    aspect-ratio: 56 / 41;
    overflow: hidden;
    position: relative;
}
.gallery .map > a {
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 5;
}
.gallery .map iframe {
    width: 100%;
    height: 100%;
}
@media print,screen and (min-width: 1025px){
    .page-recruit .intro {
        padding-top: 2rem;
        padding-bottom: 20rem;
        font-size: 2rem;
    }
    .page-recruit .intro h2 {
        font-size: 7rem;
    }
    .page-recruit .intro p {
        margin-top: -2.5em;
    }
    .page-recruit .intro > img {
        width: min(28vw, 420px);
        bottom: 4.5rem;
        left: -4rem;
    }

    .page-recruit .about {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        flex-direction: row-reverse;
        padding-left: calc( 90 * 100% / 1500 );
        padding-right: calc( 105 * 100% / 1500 );
        overflow-x: clip;
    }
    .swiper-container {
        width: 55%;
        overflow-x: visible;
    }
    .swiper-container > img {
        width: min(19vw, 286px);
        right: -9vw;
        bottom: -7rem;
    }
    .about-text {
        padding: 5rem 0 0;
        font-size: 1.8rem;
        text-align: left;
    }
    .about-text .title {
        padding-left: 2.5rem;
        margin-bottom: 8.5rem;
        font-size: 2.5rem;
        text-align: left;
    }
    .about-text .title span {
        font-size: 6.5rem;
    }
    .about-text .title::before {
        width: 250px;
        height: 160px;
    }
    .about-text p {
        padding-left: 2.5rem;
        font-size: 1.8rem;
    }

    .work {
        padding-top: 14.5rem;
        padding-bottom: 19rem;
    }
    .work > img {
        width: min(90vw, 1361px);
        position: absolute;
        bottom: 7rem;
        z-index: 5;
    }
    .work .title {
        margin-bottom: 5.5rem;
    }
    .work .title::before {
        width: 276px;
        height: 112px;
        top: -3rem;
        left: 28%;
    }
    .work > p {
        font-size: 1.8rem;
    }
    .work-list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        margin-top: 9.5rem;
        padding-left: calc( 90 * 100% / 1500 );
        padding-right: calc( 105 * 100% / 1500 );
        position: relative;
    }
    .work-list > img {
        width: min(13vw, 200px);
        position: absolute;
        top: -5.5rem;
        right: 0;
    }
    .js_modalBtnCont {
        height: 419px;
    }
    .work-list .js_modalBtnWrap:first-of-type {
        grid-area: 1 / 2 / 2 / 3;
    }
    .work-list .js_modalBtnWrap:nth-of-type(5) {
        grid-area: 2 / 1 / 3 / 3;
        justify-content: end;
    }
    .work-list .js_modalBtnWrap:nth-of-type(5) .js_modalBtnCont > div {
        width: 50%;
        left: auto;
        right: 0;
        transform: translateY(-50%);
    }
    .js_modalBtnCont > div p:first-of-type {
        width: 315px;
        margin: 0 auto 4.5rem;
        padding: 0.5em 1em;
        font-size: 3.5rem;
    }
    .js_modalBtnCont > div p span {
        font-size: 2.5rem;
    }
    .js_modalContInner {
        width: 80%;
        max-width: 1200px;
        max-height: 550px;
        padding: 5rem;
    }
    .js_modalCont {
        max-height: 450px;
    }
    .js_modalCont dl {
        display: grid;
        grid-template-columns: 12em 1fr;
        align-items: baseline;
        padding: calc(1em + 5px) 0 1em;
        font-size: 1.6rem;
    }
    .js_modalCont dt {
        margin-bottom: 0;
    }
    .js_modalCont dt img {
        margin-bottom: 5px;
    }

    .company {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-direction: row-reverse;
        margin-left: calc( 90 * 100% / 1500 );
        margin-right: calc( 105 * 100% / 1500 );
    }
    .company > div {
        margin-left: min(3.3vw, 50px);
    }
    .company .title {
        padding-left: 5px;
        margin-bottom: 6rem;
        font-size: 2.5rem;
        text-align: left;
    }
    .company .title span {
        display: inline-block;
        margin-right: 2rem;
        margin-bottom: 0;
        font-size: 6.5rem;
    }
    .company > figure {
        padding-left: 5px;
    }
    .company div > p {
        margin: 5.5rem 0 0;
        padding: 1em 1.5em;
        font-size: 1.8rem;
    }
    .company video {
        width: 45%;
    }

    .gallery {
        padding-left: calc( 90 * 100% / 1500 );
        padding-right: calc( 105 * 100% / 1500 );
        padding-top: 18rem;
        padding-bottom: 2rem;
    }
    .gallery > img:first-of-type {
        width: min(30vw, 465px);
        top: -10rem;
    }
    .gallery > img:nth-of-type(2) {
        width: min(13vw, 200px);
        bottom: -15rem;
    }
    .gallery .title {
        margin-bottom: 7rem;
    }
    .gallery ul {
        display: flex;
        justify-content: space-between;
    }
    .gallery li:not(:last-of-type) {
        margin-bottom: 0;
        margin-right: min(7.6vw, 115px);
    }
    .gallery li > p {
        margin-bottom: 3rem;
        font-size: 1.8rem;
    }
    .gallery .map {
        aspect-ratio: 89 / 64;
    }
}

/*====================================================*/
/* お知らせ */
/*====================================================*/
.two-column {
    padding-left: calc( 36 * 100% / 750 );
    padding-right: calc( 36 * 100% / 750 );
}
.two-column aside {
    margin-top: 1rem;
    margin-bottom: 4.5rem;
    font-size: 1.2rem;
}
.two-column aside > p {
    font-size: 1.4rem;
}
.two-column aside ul {
    margin: 2rem 0 2.5rem;
}
.two-column aside li:not(:last-of-type) {
    margin-bottom: 2rem;
}
.two-column aside li a {
    width: 7em;
    position: relative;
}
.two-column aside li a::after {
    content: "";
    display: block;
    width: 1em;
    height: 1em;
    background-image: url(../img/common/arrow.svg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    top: 1px;
    right: 0;
}
.yearly-sort {
    width: 170px;
    border: 0.5px solid #ccc;
    position: relative;
}
.yearly-sort::after {
    content: "";
    display: block;
    width: 1em;
    height: 1em;
    background-image: url(../img/common/arrow.svg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    top: 50%;
    right: 1.2rem;
    transform: translateY(-50%) rotate(90deg);
}
.yearly-sort select {
    display: block;
    width: 100%;
    height: 100%;
    padding: 1rem 1.2rem;
}
.news-post {
    padding: 1rem 0 1rem;
    border-bottom: 0.5px solid #ccc;
}
.news-post:first-of-type {
    border-top: 0.5px solid #ccc;
}
.news-post a {
    padding-top: 1.2rem;
    padding-bottom: 2rem;
    padding-left: calc( 24 * 100% / 678 );
    padding-right: calc( 24 * 100% / 678 );
    transition: var(--hover-transition);
}
.news-post a:hover {
    opacity: 0.6;
}
.news-post a figure {
    width: 100%;
    aspect-ratio: 317 / 190;
    overflow: hidden;
}
.news-post a figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
time {
    font-family: var(--font-Marcellus);
}
.single-cat {
    text-decoration: underline;
    text-decoration-thickness: 0.5px;
    text-underline-offset: 3px;
    transition: var(--hover-transition);
}
.post-cat:active,
.single-cat:hover,
.single-cat:active {
    opacity: 0.6;
}
@media screen and (max-width: 1024px) {
    .post-text {
        margin: 3rem 1.2rem 0;
        font-size: 1.2rem;
        position: relative;
    }
    .post-text::after {
        content: "";
        display: block;
        width: 1rem;
        height: 1rem;
        background-image: url(../img/common/arrow.svg);
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
        position: absolute;
        top: 50%;
        right: 0;
        transform: translateY(-50%);
    }
    .post-text .post-cat {
        display: inline-block;
        margin-left: 2em;
    }
    .post-text .post-title {
        width: 95%;
        margin-top: 1rem;
        line-height: 1.5;
    }
}
@media screen and (min-width: 1025px) {
    body:has(.magazine-page) #footer {
        background-color: transparent;
    }
    .two-column {
        display: flex;
        justify-content: space-between;
        padding-left: calc( 90 * 100% / 1500 );
        padding-right: calc( 105 * 100% / 1500 );
        overflow-x: clip 
    }
    .two-column aside {
        width: 215px;
        padding-bottom: 15rem;
        margin: 0;
        font-size: 2rem;
        position: relative;
    }
    .two-column aside > img {
        width: min(30vw, 460px);
        position: absolute;
        bottom: -10rem;
        left: -8vw;
    }
    .two-column aside > p {
        font-size: 2.5rem;
    }
    .two-column aside ul {
        margin: 3.5rem 0 5.5rem;
    }
    .two-column aside li:not(:last-of-type) {
        margin-bottom: 3rem;
    }
    .two-column aside li a {
        width: 100%;
    }
    .yearly-sort {
        width: 95%;
    }
    .yearly-sort::after {
        width: 1.2rem;
        height: 1.2rem;
    }
    .yearly-sort select {
        padding: 1.5rem 2rem;
    }
    .two-column .right {
        width: calc(100% - 215px);
        padding-left: min(10vw, 155px);
    }
    .news-list .news-post {
        border-bottom-width: 1px;
    }
    .news-list .news-post:first-of-type {
        border-top-width: 1px;
    }
    .news-list .news-post a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-direction: row-reverse;
        padding-top: 2rem;
        padding-left: calc( 30 * 100% / 935 );
        padding-right: 0;
    }
    .news-list .news-post a figure {
        width: min(22vw, 335px);
        aspect-ratio: 67 / 40;
    }
    .news-list .post-text {
        display: flex;
        align-items: center;
        width: calc(95% - min(22vw, 335px));
        font-size: 1.8rem;
        position: relative;
    }
    .news-list .post-text::after {
        content: "";
        display: block;
        width: 1.2rem;
        height: 1.2rem;
        background-image: url(../img/common/arrow.svg);
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
        position: absolute;
        top: 50%;
        right: 0;
        transform: translateY(-50%);
    }
    .news-list .post-cat {
        margin-top: 2.5rem;
    }
    .news-list .post-title {
        margin-left: min(5.3vw, 80px);
        font-size: 2rem;
        overflow: hidden;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

}
/*====================================================*/
/* お知らせ詳細 */
/*====================================================*/
.single-page {
    margin-bottom: 3rem;
}
.single-main,
.single_pagination {
    margin-left: calc( 36 * 100% / 750 );
    margin-right: calc( 36 * 100% / 750 );
}
.single-main {
    padding-top: 4rem;
    padding-bottom: 6.5rem;
    border-top: 0.5px solid #ccc;
    border-bottom: 0.5px solid #ccc;
}
.single-type {
    font-size: 1.4rem;
    text-align: center;
}
.single-type .single-cat {
    display: inline-block;
    margin-left: 1em;
    font-size: 1.2rem;
}
.single-main > figure {
    margin-top: 2rem;
    margin-bottom: 3rem;
    margin-left: calc( 24 * 100% / 750 );
    margin-right: calc( 24 * 100% / 750 );
    aspect-ratio: 5 / 3;
    overflow: hidden;
}
.single-main > figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.single-title {
    margin-left: calc( 24 * 100% / 750 );
    margin-right: calc( 24 * 100% / 750 );
    font-size: 1.6rem;
    font-weight: 900;
    line-height: 1.5;
    text-align: center;
}
.single-text {
    margin-top: 3rem;
    margin-left: calc( 24 * 100% / 750 );
    margin-right: calc( 24 * 100% / 750 );
    font-size: 1.2rem;
    line-height: 1.75;
}
.single-text p {
    margin-bottom: 1em;
}
.back-btn {
    display: block;
    width: 9em;
    margin: 5rem auto 0;
    font-size: 1.2rem;
    font-weight: bold;
    text-align: center;
    transition: var(--hover-transition);
}
.back-btn::before {
    content: "";
    display: inline-block;
    width: 0.8em;
    height: 0.8em;
    margin-right: 2em;
    margin-bottom: 2px;
    background-image: url(../img/common/arrow.svg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transform: scale(-1, 1);
    vertical-align: middle;
}
.back-btn:hover,
.back-btn:active {
    opacity: 0.6;
}
/* ページネーション */
.single_pagination ul li {
    padding-top: 2rem;
    padding-bottom: 3rem;
    border-bottom: 0.5px solid #ccc;
}
.single_pagination ul a {
    padding-left: calc( 20 * 100% / 750 );
    padding-right: calc( 20 * 100% / 750 );
    transition: var(--hover-transition);
}
.single_pagination ul a:hover,
.single_pagination ul a:active {
    opacity: 0.6;
}
.single_pagination ul a > figure {
    aspect-ratio: 5 / 3;
    overflow: hidden;
}
.single_pagination ul a > figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
@media screen and (min-width: 1025px) {
    body:has(.single-page) #footer {
        background-color: transparent;
    }
    .single-page {
        margin-bottom: 0;
        position: relative;
        overflow-x: clip 
    }
    .single-page > img {
        width: min(50vw, 610px);
        position: absolute;
        bottom: -10rem;
        left: 0;
    }
    .single-main,
    .single_pagination {
        margin-left: calc( 160 * 100% / 1500 );
        margin-right: calc( 160 * 100% / 1500 );
    }
    .single-main {
        display: grid;
        margin-top: 2rem;
        padding-top: 7.5rem;
        padding-bottom: 13rem;
        border-bottom-width: 1px;
        border-top-width: 1px;
    }
    .single-type {
        margin-bottom: 5.5rem;
        font-size: 2.5rem;
    }
    .single-type .single-cat {
        margin-left: 3em;
        font-size: 2rem;
        font-weight: bold;
    }
    .single-main > figure {
        margin-top: 4.5rem;
        margin-bottom: 0;
        margin-left: calc( 170 * 100% / 1180 );
        margin-right: calc( 170 * 100% / 1180 );
        aspect-ratio: 105 / 62;
    }
    .single-title {
        grid-area: 2 / 1 / 3 / 2;
        margin-left: calc( 170 * 100% / 1180 );
        margin-right: calc( 170 * 100% / 1180 );
        font-size: 4rem;
    }
    .single-text {
        margin-top: 7rem;
        margin-left: calc( 205 * 100% / 1180 );
        margin-right: calc( 205 * 100% / 1180 );
        font-size: 1.8rem;
    }
    .single-text p {
        margin-bottom: 2em;
    }
    .back-btn {
        width: 9em;
        margin: 12rem auto 0;
        font-size: 1.8rem;
    }
    /* ページネーション */
    .single_pagination ul {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        margin-top: 1.5rem;
        padding-bottom: 1.5rem;
        border-bottom: 1px solid #ccc;
    }
    .single_pagination ul li {
        padding: 0;
        border-bottom: none;
    }
    .single_pagination ul li:first-of-type {
        border-right: 1px solid #ccc;        
    }
    .single_pagination ul a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-direction: row-reverse;
        padding-top: 3rem;
        padding-bottom: 3rem;
        padding-left: 1rem;
        padding-right: 2rem;
        transition: var(--hover-transition);
    }
    .single_pagination ul li:last-of-type a {
        padding-left: 2rem;
        padding-right: 1rem;
    }
    .single_pagination ul a > figure {
        width: min(45%, 256px);
        height: 100%;
        aspect-ratio: 64 / 45;
    }
    .single_pagination .post-text {
        width: 54%;
        font-size: 1.8rem;
    }
    .single_pagination .post-text .post-cat {
        margin-top: 2.2rem;
        margin-bottom: 4rem;
    }
    .single_pagination .post-text .post-title {
        font-size: 2rem;
        overflow: hidden;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 1;
    }
}


/*====================================================*/
/* プライバシーポリシー */
/*====================================================*/
.privacy-main {
    margin-left: calc(36 * 100% / 750);
    margin-right: calc(36 * 100% / 750);
    font-size: 1.2rem;
    line-height: 1.75;
}
.privacy-main p,
.privacy-main > dl {
    margin-bottom: 1em;
}
.privacy-main dt {
    margin-bottom: 0.5em;
}
.privacy-main dd > ol li {
    text-indent: -1em;
    padding-left: 1em;
}
.privacy-main dd li:not(:last-of-type) {
    margin-bottom: 0.25em;
}
.privacy-main dd li > ol,
.privacy-main dd li > ol:nth-of-type(2) {
    margin-top: 0.25em;
}
.privacy-main dd li > ol li {
    padding-left: 0.5em;
}
@media screen and (min-width: 1025px) {
    .privacy-main {
        margin-left: calc( 90 * 100% / 1500 );
        margin-right: calc( 105 * 100% / 1500 );
        font-size: 1.8rem;
    }
    .privacy-main p,
    .privacy-main > dl {
        margin-bottom: 1.5em;
    }
    .privacy-main dd li:not(:last-of-type) {
        margin-bottom: 0.5em;
    }
    .privacy-main dd li > ol,
    .privacy-main dd li > ol:nth-of-type(2) {
        margin-top: 0.5em;
    }
}
@media screen and (min-width: 1400px) {
    .page {
        max-width: 1500px;
        margin: auto;
    }
    .privacy-main {
        margin-left: 9rem;
        margin-right: 10.5rem;
    }
}



/*====================================================*/
/* お問い合わせ　contact */
/*====================================================*/
.contact_page {
    position: relative;
    overflow-x: clip;
}
.contact_page > img {
    width: min(37vw, 556px);
    position: absolute;
    left: -1rem;
    bottom: 0;
}
.contact_container {
    padding-left: calc(36 * 100% / 750);
    padding-right: calc(36 * 100% / 750);
    padding-bottom: 16rem;
}
.form-top {
    font-size: 1.2rem;
}

/* フォームデザイン */
.contact-form {
    margin: 1.5rem 0 3rem;
    padding: 2.5rem 0 4rem;
    border-top: 0.5px solid #ccc;
    border-bottom: 0.5px solid #ccc;
}
.contact-form dl {
    margin-bottom: 2.5rem;
    font-size: 1.2rem;
    font-weight: bold;
}
.contact-form dt {
    margin-bottom: 1rem;
    padding-left: 3px;
}
input[type=text],
input[type="email"],
input[type="tel"],
select,
textarea {
    width: 100%;
    padding: 1.2em 1em;
    border: 0.5px solid #ccc;
}
textarea {
    height: 8rem;
}

/* プライバシーポリシー */
.con-privacy {
    margin-left: calc(24 * 100% / 678);
    margin-right: calc(24 * 100% / 678);
    margin-bottom: 3rem;
    border: 0.5px solid #ccc;
}
.privacy-policy {
    height: 20rem;
    overflow-y: scroll;
    font-size: 1.2rem;
    line-height: 1.75;
}
.privacy-policy .privacy_wrap {
    padding: 2rem 1.2rem;
}
.privacy-policy .privacy-main > p:first-of-type {
    font-size: 1.2rem;
}
.privacy-policy dl {
    margin-top: 1.5em;
    font-size: 1.2rem;
    line-height: 1.75;
}
.privacy-policy ol,
.privacy-policy ul {
    margin-top: 0.5em;
}

#privacyCheck {
    font-size: 1.2rem;
    text-align: center;
}
.check-disabled {
    color: #afafaf;
}
.wpcf7-list-item {
    margin: 0;
}

.send-btn {
    display: block;
    width: 70%;
    max-width: 250px;
    margin: 5rem auto 0;
    position: relative;
}
.send-btn:hover,
.send-btn:active {
    opacity: 0.8;
}
input.wpcf7-form-control.wpcf7-submit.has-spinner {
    width: 100%;
    padding: 1em 0.25em;
    border: 0.5px solid #ccc;
    color: #fff;
    font-size: 1.6rem;
    font-weight: bold;
    text-align: center;
    transition: var(--hover-transition);
}
input.wpcf7-form-control.wpcf7-submit.has-spinner:disabled {
    opacity: 0.5;
}

.reCAPTCHA-text {
    height: 0;
    color: #000;
    position: relative;
    z-index: -5;
}

@media print,screen and (min-width: 1025px){
    .contact_container {
        margin-left: calc( 320 * 100% / 1500 );
        margin-right: calc( 320 * 100% / 1500 );
        padding-bottom: 1.5rem;
    }
    .form-top {
        font-size: 1.6rem;
    }
    
    /* フォームデザイン */
    .contact-form {
        margin: 1rem 0 3.5rem;
        padding: 0;
        border: none;
    }
    .contact-form dl {
        display: grid;
        grid-template-columns: 15em 1fr;
        align-items: center;
        margin-bottom: 0;
        padding: 1rem 0;
        font-size: 1.8rem;
        border-bottom: 1px solid #ccc;
    }
    .contact-form dl:first-of-type {
        border-top: 1px solid #ccc;
    }
    .contact-form dl:last-of-type {
        align-items: flex-start;
    }
    .contact-form dt {
        margin-bottom: 0;
        padding: 2rem 0 2rem 1.5rem;
        font-weight: 900;
    }
    .contact-form dl:last-of-type dt {
        padding-top: calc(2rem + 1.2em);
    }
    .contact-form dd {
        padding: 2rem 0;
    }
    input[type=text],
    input[type="email"],
    input[type="tel"],
    select,
    textarea {
        border: 0.5px solid #222;
    }
    textarea {
        height: 22rem;
    }

    /* プライバシーポリシー */
    .con-privacy {
        margin: 0 0 3.5rem;
    }
    .privacy-policy {
        height: 16rem;
        font-size: 1.6rem;
    }
	.privacy-policy .privacy_wrap {
		padding: 2.5rem 1.5rem;
	}
    .privacy-policy .privacy-main > p:first-of-type,
    .privacy-policy dl {
        font-size: 1.6rem;
    }
    #privacyCheck {
        font-size: 1.6rem;
    }
    
    .send-btn {
        width: min(25vw, 370px);
        max-width: none;
        margin: 8.5rem auto 0;
        font-size: 2.5rem;
    }
    input.wpcf7-form-control.wpcf7-submit.has-spinner {
		max-height: 75px;
        font-size: 1.8rem;
    }
}

/*====================================================*/
/* 送信完了 */
/*====================================================*/
.contact_container:has(.thankyou) {
    padding-bottom: 5rem;
}
.thankyou {
    font-size: 1.2rem;
    line-height: 1.75;
    text-align: center;
}
.thankyou h2 {
    margin-bottom: 1em;
    font-size: 2rem;
    font-weight: bold;
}
.thankyou .more-btn {
    width: 10em;
    margin: 4rem auto 0;
    position: relative;
    transition: var(--hover-transition);
}
.thankyou .more-btn::after {
    content: "";
    display: block;
    width: 6px;
    height: 10px;
    background-image: url(../img/common/arrow.svg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
}
.thankyou .more-btn:hover {
    opacity: 0.6;
}
@media print,screen and (min-width: 1025px){
    .contact_container:has(.thankyou) {
        margin: 0;
        padding-bottom: 2.5rem;
    }
    .thankyou,
    .thankyou .more-btn {
        font-size: 1.6rem;
    }
    .thankyou h2 {
        font-size: 2.5rem;
    }
}